src/site/site.xml -text
# The following files will be ignored when merging another
-# branch into this branch in case of merge conflict and
+# branch into this branch in case of merge conflict and
# if the 'ours' merge driver is configured.
# WARNING : This merge driver should NOT be set in development
# environments. It is supposed to be used only in CI
**/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/eu.etaxonomy.taxeditor.product.with.jre merge=ours
/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
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry exported="true" kind="lib" path="lib/spring-security-oauth2-2.0.11.RELEASE.jar"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry exported="true" kind="lib" path="lib/activation-1.1.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/antlr-2.7.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/aopalliance-1.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/apache-log4j-extras-1.2.17.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/aspectjrt-1.8.8.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/aspectjweaver-1.8.8.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/avro-1.6.3.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-anim-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-awt-util-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-bridge-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-css-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-dom-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-ext-1.8.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-extension-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-gvt-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-js-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-parser-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-script-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-svg-dom-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-svggen-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-transcoder-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-util-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/batik-xml-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/c3p0-0.9.5.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-4.5.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-4.5.0-SNAPSHOT.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-ext/4.3.0-SNAPSHOT/cdmlib-ext-4.5.0-SNAPSHOT-sources.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-4.5.0-SNAPSHOT.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-io/4.3.0-SNAPSHOT/cdmlib-io-4.5.0-SNAPSHOT-sources.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-4.5.0-SNAPSHOT.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-model/4.3.0-SNAPSHOT/cdmlib-model-4.5.0-SNAPSHOT-sources.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-4.5.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-4.5.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-4.5.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-4.5.0-SNAPSHOT.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-services/4.3.0-SNAPSHOT/cdmlib-services-4.5.0-SNAPSHOT-sources.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-test-4.5.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cglib-3.2.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cglib-nodep-3.2.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/classmate-1.3.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/codemodel-2.2.11.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.aopalliance-1.0.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.apache.commons.logging-1.1.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.9.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-codec-1.10.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-collections-3.2.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-csv-1.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-dbcp-1.4.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-io-2.4.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-lang3-3.3.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-pool-1.5.4.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/concurrent-1.3.4.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/dbunit-2.4.9.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/dom4j-1.6.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/doxia-core-1.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/doxia-logging-api-1.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/doxia-module-apt-1.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/doxia-module-xhtml-1.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/doxia-sink-api-1.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/dozer-5.3.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/dtd-parser-1.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/easymock-2.3.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/easymockclassextension-2.3.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/ehcache-core-2.6.11.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/ezmorph-1.0.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/FastInfoset-1.2.13.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/fop-1.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/google-api-translate-java-0.92.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/guava-19.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/h2-1.4.190.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/h2mig_pagestore_addon.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hamcrest-core-1.3.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-c3p0-5.0.7.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-cglib-repack-2.1_3.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-commons-annotations-5.0.1.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-core-5.0.7.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-ehcache-5.0.7.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-entitymanager-5.0.7.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-envers-5.0.7.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-jpa-2.1-api-1.0.0.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-search-4.2.0.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-search-analyzers-4.2.0.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-search-engine-5.5.2.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-search-orm-5.5.2.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-5.2.2.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-cdi-5.2.2.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/hsqldb-2.3.3.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/httpclient-4.5.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/httpclient-cache-4.2.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/httpcore-4.4.4.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/httpmime-4.5.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/icu4j-2.6.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/identificationKeyAPI-1.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/istack-commons-runtime-2.21.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/istack-commons-tools-2.21.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/itextpdf-5.5.8.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jackson-annotations-2.6.5.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jackson-core-2.6.5.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jackson-core-asl-1.8.8.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jackson-databind-2.6.5.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jackson-mapper-asl-1.8.8.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jakarta-regexp-1.4.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jandex-2.0.0.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/javassist-3.20.0-GA.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/javax.el-2.2.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/javax.el-api-2.2.5.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/javax.servlet-api-3.1.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jaxb-api-2.2.12.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jaxb-core-2.2.11.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jaxb-jxc-2.2.11.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jaxb-runtime-2.2.11.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jaxb-xjc-2.2.11.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jaxb1-impl-2.2-EA.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.4.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jboss-logging-3.3.0.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jcl-over-slf4j-1.7.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jdbc4-2.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jdom-1.1.3.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jdom2-2.0.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jena-arq-2.13.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jena-core-2.13.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jena-iri-1.1.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jena-tdb-1.1.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/joda-time-2.9.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/json-20090211.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/json-lib-2.4-jdk15.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jsonld-java-0.5.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jsr250-api-1.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jta-1.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jtds-1.3.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/junit-4.12.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/junit-benchmarks-0.7.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/libthrift-0.9.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/log4j-1.2.17.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lsid-client-1.1.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lsid-server-1.1.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lucene-analyzers-common-5.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lucene-backward-codecs-5.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lucene-core-5.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lucene-facet-5.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lucene-grouping-5.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lucene-highlighter-5.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lucene-join-5.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lucene-memory-5.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lucene-misc-5.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lucene-queries-5.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lucene-queryparser-5.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lucene-sandbox-5.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/lucene-suggest-5.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/mapstruct-1.0.0.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/mchange-commons-java-0.2.11.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/mysql-connector-java-5.1.38.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/objenesis-1.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/odfdom-0.8.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/odfdom-java-0.8.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/ognl-2.6.9.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/opencsv-2.3.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/org.osgi.core-1.0.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/osgi-3.6.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/paranamer-2.3.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/plexus-classworlds-1.2-alpha-9.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/plexus-component-annotations-1.5.5.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/plexus-container-default-1.0-alpha-30.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/plexus-utils-3.0.15.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/poi-3.13.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/poi-ooxml-3.13.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/poi-ooxml-schemas-3.13.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/postgresql-9.4-1206-jdbc4.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/relaxngDatatype-20020414.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/rngom-2.2.11.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/sanselan-0.97-incubator.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/Saxon-HE-9.7.0-2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/servlet-api-2.5.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/slf4j-api-1.7.13.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/slf4j-log4j12-1.7.13.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/slf4j-nop-1.7.13.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/snappy-java-1.0.4.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/solr-analysis-extras-3.6.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/solr-core-3.6.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/solr-solrj-3.6.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-aop-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-aspects-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-beans-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-context-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-context-support-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-core-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-expression-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-jdbc-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-modules-cache-0.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-orm-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-oxm-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-plugin-core-1.2.0.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-plugin-metadata-1.2.0.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-security-config-4.0.3.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-security-core-4.0.3.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-security-web-4.0.3.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-test-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-tx-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-web-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/spring-webmvc-4.2.4.RELEASE.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/springfox-core-2.3.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/springfox-schema-2.3.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/springfox-spi-2.3.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/springfox-spring-web-2.3.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/springfox-swagger-common-2.3.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/springfox-swagger2-2.3.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/standard-1.1.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/stax-1.2.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/stax-api-1.0.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/stax-ex-1.7.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/swagger-annotations-1.5.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/swagger-models-1.5.5.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/tools.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/txw2-2.2.11.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/unitils-core-3.4.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/unitils-database-3.4.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/unitils-dbmaintainer-3.4.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/unitils-dbunit-3.4.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/unitils-easymock-3.4.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/unitils-inject-3.4.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/unitils-mock-3.4.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/unitils-orm-3.4.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/unitils-spring-3.4.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/usertype.jodatime-2.0.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/usertype.spi-2.0.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/validation-api-1.1.0.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/wsdl4j-1.6.3.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xalan-2.7.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xercesImpl-2.11.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xml-apis-1.0.b2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xml-apis-ext-1.3.04.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xml-resolver-1.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xmlbeans-2.6.0.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xmlgraphics-commons-1.5.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xmlpull-1.1.3.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xmlunit-1.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xom-1.2.5.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xpp3_min-1.1.4c.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xpp3-1.1.4c.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xsom-20140925.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xstream-1.4.8.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/yjp-controller-api-redist-9.0.8.jar"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-security-oauth2-2.0.11.RELEASE.jar"/>\r
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>\r
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>\r
+ <classpathentry kind="src" path="src/main/java"/>\r
+ <classpathentry kind="src" path="src/main/resources"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/activation-1.1.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/antlr-2.7.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/aopalliance-1.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/apache-log4j-extras-1.2.17.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/aspectjrt-1.8.8.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/aspectjweaver-1.8.8.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/avro-1.6.3.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-anim-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-awt-util-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-bridge-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-css-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-dom-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-ext-1.8.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-extension-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-gvt-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-js-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-parser-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-script-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-svg-dom-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-svggen-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-transcoder-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-util-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/batik-xml-1.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/c3p0-0.9.5.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-4.5.0-SNAPSHOT.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-4.5.0-SNAPSHOT.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-ext/4.3.0-SNAPSHOT/cdmlib-ext-4.5.0-SNAPSHOT-sources.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-4.5.0-SNAPSHOT.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-io/4.3.0-SNAPSHOT/cdmlib-io-4.5.0-SNAPSHOT-sources.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-4.5.0-SNAPSHOT.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-model/4.3.0-SNAPSHOT/cdmlib-model-4.5.0-SNAPSHOT-sources.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-4.5.0-SNAPSHOT.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-4.5.0-SNAPSHOT.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-4.5.0-SNAPSHOT.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-4.5.0-SNAPSHOT.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-services/4.3.0-SNAPSHOT/cdmlib-services-4.5.0-SNAPSHOT-sources.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-test-4.5.0-SNAPSHOT.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/cglib-3.2.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/cglib-nodep-3.2.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/classmate-1.3.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/codemodel-2.2.11.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.aopalliance-1.0.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.apache.commons.logging-1.1.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.9.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/commons-codec-1.10.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/commons-collections-3.2.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/commons-csv-1.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/commons-dbcp-1.4.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/commons-io-2.4.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/commons-lang3-3.3.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/commons-pool-1.5.4.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/concurrent-1.3.4.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/dbunit-2.4.9.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/dom4j-1.6.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/doxia-core-1.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/doxia-logging-api-1.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/doxia-module-apt-1.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/doxia-module-xhtml-1.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/doxia-sink-api-1.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/dozer-5.3.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/dtd-parser-1.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/easymock-2.3.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/easymockclassextension-2.3.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/ehcache-core-2.6.11.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/ezmorph-1.0.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/FastInfoset-1.2.13.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/fop-1.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/google-api-translate-java-0.92.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/guava-19.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/h2-1.4.190.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/h2mig_pagestore_addon.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hamcrest-core-1.3.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-c3p0-5.0.7.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-cglib-repack-2.1_3.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-commons-annotations-5.0.1.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-core-5.0.7.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-ehcache-5.0.7.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-entitymanager-5.0.7.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-envers-5.0.7.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-jpa-2.1-api-1.0.0.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-search-4.2.0.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-search-analyzers-4.2.0.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-search-engine-5.5.2.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-search-orm-5.5.2.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-5.2.2.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-cdi-5.2.2.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/hsqldb-2.3.3.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/httpclient-4.5.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/httpclient-cache-4.2.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/httpcore-4.4.4.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/httpmime-4.5.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/icu4j-2.6.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/identificationKeyAPI-1.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/istack-commons-runtime-2.21.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/istack-commons-tools-2.21.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/itextpdf-5.5.8.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jackson-annotations-2.6.5.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jackson-core-2.6.5.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jackson-core-asl-1.8.8.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jackson-databind-2.6.5.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jackson-mapper-asl-1.8.8.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jakarta-regexp-1.4.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jandex-2.0.0.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/javassist-3.20.0-GA.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/javax.el-2.2.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/javax.el-api-2.2.5.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/javax.servlet-api-3.1.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jaxb-api-2.2.12.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jaxb-core-2.2.11.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jaxb-jxc-2.2.11.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jaxb-runtime-2.2.11.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jaxb-xjc-2.2.11.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jaxb1-impl-2.2-EA.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.4.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jboss-logging-3.3.0.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jcl-over-slf4j-1.7.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jdbc4-2.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jdom-1.1.3.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jdom2-2.0.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jena-arq-2.13.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jena-core-2.13.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jena-iri-1.1.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jena-tdb-1.1.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/joda-time-2.9.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/json-20090211.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/json-lib-2.4-jdk15.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jsonld-java-0.5.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jsr250-api-1.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jta-1.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/jtds-1.3.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/junit-4.12.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/junit-benchmarks-0.7.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/libthrift-0.9.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/log4j-1.2.17.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lsid-client-1.1.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lsid-server-1.1.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lucene-analyzers-common-5.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lucene-backward-codecs-5.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lucene-core-5.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lucene-facet-5.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lucene-grouping-5.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lucene-highlighter-5.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lucene-join-5.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lucene-memory-5.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lucene-misc-5.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lucene-queries-5.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lucene-queryparser-5.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lucene-sandbox-5.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/lucene-suggest-5.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/mapstruct-1.0.0.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/mchange-commons-java-0.2.11.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/mysql-connector-java-5.1.38.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/objenesis-1.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/odfdom-0.8.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/odfdom-java-0.8.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/ognl-2.6.9.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/opencsv-2.3.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/org.osgi.core-1.0.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/osgi-3.6.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/paranamer-2.3.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/plexus-classworlds-1.2-alpha-9.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/plexus-component-annotations-1.5.5.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/plexus-container-default-1.0-alpha-30.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/plexus-utils-3.0.15.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/poi-3.13.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/poi-ooxml-3.13.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/poi-ooxml-schemas-3.13.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/postgresql-9.4-1206-jdbc4.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/relaxngDatatype-20020414.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/rngom-2.2.11.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/sanselan-0.97-incubator.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/Saxon-HE-9.7.0-2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/servlet-api-2.5.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/slf4j-api-1.7.13.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/slf4j-log4j12-1.7.13.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/slf4j-nop-1.7.13.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/snappy-java-1.0.4.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/solr-analysis-extras-3.6.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/solr-core-3.6.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/solr-solrj-3.6.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-aop-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-aspects-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-beans-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-context-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-context-support-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-core-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-expression-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-jdbc-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-modules-cache-0.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-orm-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-oxm-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-plugin-core-1.2.0.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-plugin-metadata-1.2.0.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-security-config-4.0.3.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-security-core-4.0.3.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-security-web-4.0.3.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-test-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-tx-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-web-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/spring-webmvc-4.2.4.RELEASE.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/springfox-core-2.3.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/springfox-schema-2.3.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/springfox-spi-2.3.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/springfox-spring-web-2.3.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/springfox-swagger-common-2.3.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/springfox-swagger2-2.3.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/standard-1.1.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/stax-1.2.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/stax-api-1.0.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/stax-ex-1.7.7.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/swagger-annotations-1.5.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/swagger-models-1.5.5.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/tools.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/txw2-2.2.11.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/unitils-core-3.4.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/unitils-database-3.4.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/unitils-dbmaintainer-3.4.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/unitils-dbunit-3.4.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/unitils-easymock-3.4.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/unitils-inject-3.4.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/unitils-mock-3.4.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/unitils-orm-3.4.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/unitils-spring-3.4.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/usertype.jodatime-2.0.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/usertype.spi-2.0.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/validation-api-1.1.0.Final.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/wsdl4j-1.6.3.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xalan-2.7.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xercesImpl-2.11.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xml-apis-1.0.b2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xml-apis-ext-1.3.04.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xml-resolver-1.2.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xmlbeans-2.6.0.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xmlgraphics-commons-1.5.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xmlpull-1.1.3.1.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xmlunit-1.6.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xom-1.2.5.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xpp3_min-1.1.4c.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xpp3-1.1.4c.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xsom-20140925.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/xstream-1.4.8.jar"/>\r
+ <classpathentry exported="true" kind="lib" path="lib/yjp-controller-api-redist-9.0.8.jar"/>\r
+ <classpathentry kind="output" path="target/classes"/>\r
+</classpath>\r
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
+ <classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-java-bio-2.0.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-java-core-2.2.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-java-swing-2.2.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-java-swt-2.0.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jphyloio-core-0.3.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/libralign-biojava1-0.4.0-preview-2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/libralign-core-0.4.0-preview-2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/libralign-io-0.4.0-preview-2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/libralign-swt-0.4.0-preview-2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/tic-core-2.0.0-preview-2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/tic-swt-2.0.0-preview-2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.9.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-lang3-3.5.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-bio-2.0.0-preview-1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-core-2.0.0-preview-1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-swing-2.0.0-preview-1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-swt-2.0.0-preview-1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/core-1.9.2-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/libralign-biojava1-0.4.0-preview-1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/libralign-core-0.4.0-preview-1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/libralign-swt-0.4.0-preview-1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/sequencing-1.9.2-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/tic-core-2.0.0-preview-1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/tic-swt-2.0.0-preview-1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/owlapi-xmlutils-4.1.4.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-collections4-4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/core-1.9.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/sequencing-1.9.2.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
+ <linkedResources>
+ <link>
+ <name>lib/info.bioinfweb.commons.bio</name>
+ <type>2</type>
+ <locationURI>WORKSPACE_LOC/info.bioinfweb.commons.bio</locationURI>
+ </link>
+ <link>
+ <name>lib/info.bioinfweb.commons.core</name>
+ <type>2</type>
+ <locationURI>WORKSPACE_LOC/info.bioinfweb.commons.core</locationURI>
+ </link>
+ <link>
+ <name>lib/info.bioinfweb.commons.swing</name>
+ <type>2</type>
+ <locationURI>WORKSPACE_LOC/info.bioinfweb.commons.swing</locationURI>
+ </link>
+ <link>
+ <name>lib/info.bioinfweb.commons.swt</name>
+ <type>2</type>
+ <locationURI>WORKSPACE_LOC/info.bioinfweb.commons.swt</locationURI>
+ </link>
+ <link>
+ <name>lib/info.bioinfweb.jphyloio.core</name>
+ <type>2</type>
+ <locationURI>WORKSPACE_LOC/info.bioinfweb.jphyloio.core</locationURI>
+ </link>
+ <link>
+ <name>lib/info.bioinfweb.libralign.biojava1</name>
+ <type>2</type>
+ <locationURI>WORKSPACE_LOC/info.bioinfweb.libralign.biojava1</locationURI>
+ </link>
+ <link>
+ <name>lib/info.bioinfweb.libralign.core</name>
+ <type>2</type>
+ <locationURI>WORKSPACE_LOC/info.bioinfweb.libralign.core</locationURI>
+ </link>
+ <link>
+ <name>lib/info.bioinfweb.libralign.io</name>
+ <type>2</type>
+ <locationURI>WORKSPACE_LOC/info.bioinfweb.libralign.io</locationURI>
+ </link>
+ <link>
+ <name>lib/info.bioinfweb.libralign.swt</name>
+ <type>2</type>
+ <locationURI>WORKSPACE_LOC/info.bioinfweb.libralign.swt</locationURI>
+ </link>
+ <link>
+ <name>lib/info.bioinfweb.tic.core</name>
+ <type>2</type>
+ <locationURI>WORKSPACE_LOC/info.bioinfweb.tic.core</locationURI>
+ </link>
+ <link>
+ <name>lib/info.bioinfweb.tic.swt</name>
+ <type>2</type>
+ <locationURI>WORKSPACE_LOC/info.bioinfweb.tic.swt</locationURI>
+ </link>
+ </linkedResources>
</projectDescription>
Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular.lib;singleton:=true
Bundle-Version: 4.5.0.qualifier
Bundle-ClassPath: .,
- lib/bioinfweb-commons-bio-2.0.0-preview-1.jar,
- lib/bioinfweb-commons-core-2.0.0-preview-1.jar,
- lib/bioinfweb-commons-swing-2.0.0-preview-1.jar,
- lib/bioinfweb-commons-swt-2.0.0-preview-1.jar,
- lib/core-1.9.2-SNAPSHOT.jar,
- lib/libralign-biojava1-0.4.0-preview-1.jar,
- lib/libralign-core-0.4.0-preview-1.jar,
- lib/libralign-swt-0.4.0-preview-1.jar,
- lib/sequencing-1.9.2-SNAPSHOT.jar,
- lib/tic-core-2.0.0-preview-1.jar,
- lib/tic-swt-2.0.0-preview-1.jar
+ 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/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,
+ lib/bioinfweb-commons-java-swt-2.0.0.jar,
+ lib/jphyloio-core-0.3.0.jar,
+ lib/libralign-biojava1-0.4.0-preview-2.jar,
+ lib/libralign-core-0.4.0-preview-2.jar,
+ lib/libralign-io-0.4.0-preview-2.jar,
+ lib/libralign-swt-0.4.0-preview-2.jar,
+ lib/tic-core-2.0.0-preview-2.jar,
+ lib/tic-swt-2.0.0-preview-2.jar
Export-Package: info.bioinfweb.commons,
info.bioinfweb.commons.appversion,
info.bioinfweb.commons.beans,
info.bioinfweb.commons.swing.scrollpaneselector,
info.bioinfweb.commons.swt,
info.bioinfweb.commons.text,
+ info.bioinfweb.jphyloio,
+ info.bioinfweb.jphyloio.dataadapters,
+ info.bioinfweb.jphyloio.dataadapters.implementations,
+ info.bioinfweb.jphyloio.dataadapters.implementations.receivers,
+ info.bioinfweb.jphyloio.dataadapters.implementations.store,
+ info.bioinfweb.jphyloio.events,
+ info.bioinfweb.jphyloio.events.meta,
+ info.bioinfweb.jphyloio.events.type,
+ info.bioinfweb.jphyloio.exception,
+ info.bioinfweb.jphyloio.factory,
+ info.bioinfweb.jphyloio.formatinfo,
+ info.bioinfweb.jphyloio.formats,
+ info.bioinfweb.jphyloio.formats.fasta,
+ info.bioinfweb.jphyloio.formats.mega,
+ info.bioinfweb.jphyloio.formats.newick,
+ info.bioinfweb.jphyloio.formats.nexml,
+ info.bioinfweb.jphyloio.formats.nexus,
+ info.bioinfweb.jphyloio.formats.nexus.blockhandlers,
+ info.bioinfweb.jphyloio.formats.nexus.commandreaders,
+ info.bioinfweb.jphyloio.formats.nexus.commandreaders.all,
+ info.bioinfweb.jphyloio.formats.nexus.commandreaders.characters,
+ info.bioinfweb.jphyloio.formats.nexus.commandreaders.sets,
+ info.bioinfweb.jphyloio.formats.nexus.commandreaders.taxa,
+ info.bioinfweb.jphyloio.formats.nexus.commandreaders.trees,
+ info.bioinfweb.jphyloio.formats.pde,
+ info.bioinfweb.jphyloio.formats.phylip,
+ info.bioinfweb.jphyloio.formats.phyloxml,
+ info.bioinfweb.jphyloio.formats.phyloxml.elementreader,
+ info.bioinfweb.jphyloio.formats.text,
+ info.bioinfweb.jphyloio.formats.xml,
+ info.bioinfweb.jphyloio.formats.xtg,
+ info.bioinfweb.jphyloio.objecttranslation,
+ info.bioinfweb.jphyloio.objecttranslation.implementations,
+ info.bioinfweb.jphyloio.utils,
info.bioinfweb.libralign,
info.bioinfweb.libralign.actions,
info.bioinfweb.libralign.alignmentarea,
info.bioinfweb.tic.input,
info.bioinfweb.tic.toolkit,
info.bioinfweb.tic.toolkit.layoutdata,
+ org.apache.commons.beanutils,
+ org.apache.commons.beanutils.converters,
+ org.apache.commons.beanutils.expression,
+ org.apache.commons.beanutils.locale,
+ org.apache.commons.beanutils.locale.converters,
+ org.apache.commons.collections4,
+ org.apache.commons.collections4.bag,
+ org.apache.commons.collections4.bidimap,
+ org.apache.commons.collections4.collection,
+ org.apache.commons.collections4.comparators,
+ org.apache.commons.collections4.functors,
+ org.apache.commons.collections4.iterators,
+ org.apache.commons.collections4.keyvalue,
+ org.apache.commons.collections4.list,
+ org.apache.commons.collections4.map,
+ org.apache.commons.collections4.multimap,
+ org.apache.commons.collections4.multiset,
+ org.apache.commons.collections4.queue,
+ org.apache.commons.collections4.sequence,
+ org.apache.commons.collections4.set,
+ org.apache.commons.collections4.splitmap,
+ org.apache.commons.collections4.trie,
+ org.apache.commons.collections4.trie.analyzer,
+ org.apache.commons.lang3,
+ org.apache.commons.lang3.builder,
+ org.apache.commons.lang3.concurrent,
+ org.apache.commons.lang3.event,
+ org.apache.commons.lang3.exception,
+ org.apache.commons.lang3.math,
+ org.apache.commons.lang3.mutable,
+ org.apache.commons.lang3.reflect,
+ org.apache.commons.lang3.text,
+ org.apache.commons.lang3.text.translate,
+ org.apache.commons.lang3.time,
+ org.apache.commons.lang3.tuple,
org.biojava.bibliography,
org.biojava.bio,
org.biojava.bio.alignment,
org.biojavax.ga.util,
org.biojavax.ontology,
org.biojavax.utils,
- org.jdesktop.swingx.scrollpaneselector
+ org.jdesktop.swingx.scrollpaneselector,
+ org.semanticweb.owlapi.io
Bundle-ActivationPolicy: lazy
Import-Package: javax.swing
Require-Bundle: org.eclipse.swt
bin.includes = META-INF/,\
- lib/bioinfweb-commons-bio-2.0.0-preview-1.jar,\
- lib/bioinfweb-commons-core-2.0.0-preview-1.jar,\
- lib/bioinfweb-commons-swing-2.0.0-preview-1.jar,\
- lib/bioinfweb-commons-swt-2.0.0-preview-1.jar,\
- lib/core-1.9.2-SNAPSHOT.jar,\
- lib/libralign-biojava1-0.4.0-preview-1.jar,\
- lib/libralign-core-0.4.0-preview-1.jar,\
- lib/libralign-swt-0.4.0-preview-1.jar,\
- lib/sequencing-1.9.2-SNAPSHOT.jar,\
- lib/tic-core-2.0.0-preview-1.jar,\
- lib/tic-swt-2.0.0-preview-1.jar
+ lib/tic-swt-2.0.0-preview-1.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/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,\
+ lib/bioinfweb-commons-java-swt-2.0.0.jar,\
+ lib/jphyloio-core-0.3.0.jar,\
+ lib/libralign-biojava1-0.4.0-preview-2.jar,\
+ lib/libralign-core-0.4.0-preview-2.jar,\
+ lib/libralign-io-0.4.0-preview-2.jar,\
+ lib/libralign-swt-0.4.0-preview-2.jar,\
+ lib/tic-core-2.0.0-preview-2.jar,\
+ lib/tic-swt-2.0.0-preview-2.jar
+ lib/jphyloio-core-0-SNAPSHOT.jar,\
+ lib/owlapi-xmlutils-4.1.4.jar
--- /dev/null
+bin.includes = META-INF/,\
+ lib/tic-swt-2.0.0-preview-1.jar,\
+ lib/commons-collections4-4.1.jar,\
+ lib/core-1.9.2.jar,\
+ lib/sequencing-1.9.2.jar,\
+ lib/info.bioinfweb.commons.bio/bin/,\
+ lib/info.bioinfweb.commons.core/bin/,\
+ lib/info.bioinfweb.commons.swing/bin/,\
+ lib/info.bioinfweb.commons.swt/bin/,\
+ lib/info.bioinfweb.libralign.core/bin/,\
+ lib/info.bioinfweb.libralign.io/bin/,\
+ lib/info.bioinfweb.libralign.swt/bin/,\
+ 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/info.bioinfweb.jphyloio.core/bin/,\
+ lib/commons-beanutils-1.9.2.jar
+ lib/jphyloio-core-0-SNAPSHOT.jar,\
+ lib/owlapi-xmlutils-4.1.4.jar
--- /dev/null
+bin.includes = META-INF/,\
+ lib/tic-swt-2.0.0-preview-1.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/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,\
+ lib/bioinfweb-commons-java-swt-2.0.0.jar,\
+ lib/jphyloio-core-0.3.0.jar,\
+ lib/libralign-biojava1-0.4.0-preview-2.jar,\
+ lib/libralign-core-0.4.0-preview-2.jar,\
+ lib/libralign-io-0.4.0-preview-2.jar,\
+ lib/libralign-swt-0.4.0-preview-2.jar,\
+ lib/tic-core-2.0.0-preview-2.jar,\
+ lib/tic-swt-2.0.0-preview-2.jar
+ lib/jphyloio-core-0-SNAPSHOT.jar,\
+ lib/owlapi-xmlutils-4.1.4.jar
<goal>copy-dependencies</goal>
</goals>
<configuration>
- <includeArtifactIds>libralign-swt, libralign-core,
- bioinfweb-commons-swt, bioinfweb-commons-core,
- bioinfweb-commons-bio, bioinfweb-commons-swing,
- tic-core, libralign-biojava1, core, sequencing, tic-swt</includeArtifactIds>
+ <includeArtifactIds>libralign-core, libralign-swt, libralign-biojava1, libralign-io,
+ bioinfweb-commons-java-swt, bioinfweb-commons-java-core,
+ bioinfweb-commons-java-bio, bioinfweb-commons-java-swing,
+ tic-core, core, sequencing,
+ tic-swt, jphyloio-core, owlapi-xmlutils,
+ commons-lang3, commons-collections4, commons-beanutils</includeArtifactIds>
<outputDirectory>lib</outputDirectory>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</target>
</configuration>
</execution>
+
+ <!-- The following should not be necessary anymore. -->
<execution>
<id>update-snapshot-jar-names</id>
<phase>validate</phase>
</move>
<move todir="./lib">
<fileset dir="./lib" />
- <mapper type="regexp" from="(^core\-[0-9]\.[0-9]\.[0-9])(\.jar)" to="\1-SNAPSHOT\2" />
- </move>
- <move todir="./lib">
- <fileset dir="./lib" />
- <mapper type="regexp" from="(^sequencing\-[0-9]\.[0-9]\.[0-9])(\.jar)" to="\1-SNAPSHOT\2" />
+ <mapper type="regexp" from="(^jphyloio\-.*\-[0-9]-)[0-9.-]+(\.jar)" to="\1SNAPSHOT\2" />
</move>
</target>
</configuration>
</build>
<dependencies>
- <!-- LibrAling -->
+ <!-- Apache commons -->
<dependency>
- <groupId>info.bioinfweb.libralign</groupId>
- <artifactId>libralign-core</artifactId>
- <version>0.4.0-preview-1</version>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.5</version>
</dependency>
<dependency>
- <groupId>info.bioinfweb.libralign</groupId>
- <artifactId>libralign-swt</artifactId>
- <version>0.4.0-preview-1</version>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>4.1</version>
</dependency>
<dependency>
- <groupId>info.bioinfweb.libralign</groupId>
- <artifactId>libralign-biojava1</artifactId>
- <version>0.4.0-preview-1</version>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ <version>1.9.2</version>
</dependency>
- <!-- commons -->
+
+ <!-- bioinfweb.commons -->
<dependency>
<groupId>info.bioinfweb.commons.java</groupId>
- <artifactId>bioinfweb-commons-swt</artifactId>
- <version>2.0.0-preview-1</version>
+ <artifactId>bioinfweb-commons-java-core</artifactId>
+ <version>2.2.0</version>
</dependency>
<dependency>
<groupId>info.bioinfweb.commons.java</groupId>
- <artifactId>bioinfweb-commons-core</artifactId>
- <version>2.0.0-preview-1</version>
+ <artifactId>bioinfweb-commons-java-swt</artifactId>
+ <version>2.0.0</version>
</dependency>
<dependency>
<groupId>info.bioinfweb.commons.java</groupId>
- <artifactId>bioinfweb-commons-bio</artifactId>
- <version>2.0.0-preview-1</version>
+ <artifactId>bioinfweb-commons-java-bio</artifactId>
+ <version>2.0.0</version>
</dependency>
<dependency>
<groupId>info.bioinfweb.commons.java</groupId>
- <artifactId>bioinfweb-commons-swing</artifactId>
- <version>2.0.0-preview-1</version>
+ <artifactId>bioinfweb-commons-java-swing</artifactId>
+ <version>2.2.0</version>
</dependency>
- <!-- tic -->
+
+ <!-- TIC -->
<dependency>
<groupId>info.bioinfweb.tic</groupId>
<artifactId>tic-core</artifactId>
- <version>2.0.0-preview-1</version>
+ <version>2.0.0-preview-2</version>
</dependency>
<dependency>
<groupId>info.bioinfweb.tic</groupId>
<artifactId>tic-swt</artifactId>
- <version>2.0.0-preview-1</version>
+ <version>2.0.0-preview-2</version>
</dependency>
- <!-- biojava -->
+
+ <!-- BioJava -->
<dependency>
<groupId>org.biojava</groupId>
<artifactId>core</artifactId>
<artifactId>sequencing</artifactId>
<version>1.9.2</version>
</dependency>
+
+ <!-- LibrAlign -->
+ <dependency>
+ <groupId>info.bioinfweb.libralign</groupId>
+ <artifactId>libralign-core</artifactId>
+ <version>0.4.0-preview-2</version>
+ </dependency>
+ <dependency>
+ <groupId>info.bioinfweb.libralign</groupId>
+ <artifactId>libralign-swt</artifactId>
+ <version>0.4.0-preview-2</version>
+ </dependency>
+ <dependency>
+ <groupId>info.bioinfweb.libralign</groupId>
+ <artifactId>libralign-biojava1</artifactId>
+ <version>0.4.0-preview-2</version>
+ </dependency>
+ <dependency>
+ <groupId>info.bioinfweb.libralign</groupId>
+ <artifactId>libralign-io</artifactId>
+ <version>0.4.0-preview-2</version>
+ </dependency>
+
+ <!-- JPhyloIO -->
+ <dependency>
+ <groupId>info.bioinfweb.jphyloio</groupId>
+ <artifactId>jphyloio-core</artifactId>
+ <version>0.3.0</version>
+ </dependency>
+ <dependency>
+ <groupId>info.bioinfweb.thirdparty.owlapi</groupId>
+ <artifactId>owlapi-xmlutils</artifactId>
+ <version>4.1.4</version>
+ </dependency>
</dependencies>
<repositories>
<name>bioinfweb repository</name>
<url>http://bioinfweb.info/MavenRepository/</url>
</repository>
+ <!-- <repository>
+ <id>central-maven-repo</id>
+ <name>Maven Central</name>
+ <url>http://central.maven.org/maven2/</url>
+ </repository> -->
</repositories>
-
</project>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry including="**/*.java" kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/test/java"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
/target
.settings/
+!src/main/java/eu/etaxonomy/taxeditor/molecular/io/.project
+!src/main/java/eu/etaxonomy/taxeditor/molecular/io/integration-test.log
+!src/main/java/eu/etaxonomy/taxeditor/molecular/io/target
+!src/main/java/eu/etaxonomy/taxeditor/molecular/io/.directory
+!src/main/java/eu/etaxonomy/taxeditor/molecular/io/hibernate.log
+!src/main/java/eu/etaxonomy/taxeditor/molecular/io/.settings
+!src/test/java/eu/etaxonomy/taxeditor/molecular/io/.project
+!src/test/java/eu/etaxonomy/taxeditor/molecular/io/integration-test.log
+!src/test/java/eu/etaxonomy/taxeditor/molecular/io/target
+!src/test/java/eu/etaxonomy/taxeditor/molecular/io/.directory
+!src/test/java/eu/etaxonomy/taxeditor/molecular/io/hibernate.log
+!src/test/java/eu/etaxonomy/taxeditor/molecular/io/.settings
+!src/test/java/eu/etaxonomy/taxeditor/molecular/.project
+!src/test/java/eu/etaxonomy/taxeditor/molecular/integration-test.log
+!src/test/java/eu/etaxonomy/taxeditor/molecular/target
+!src/test/java/eu/etaxonomy/taxeditor/molecular/.directory
+!src/test/java/eu/etaxonomy/taxeditor/molecular/hibernate.log
+!src/test/java/eu/etaxonomy/taxeditor/molecular/.settings
+!src/test/java/eu/etaxonomy/taxeditor/.project
+!src/test/java/eu/etaxonomy/taxeditor/integration-test.log
+!src/test/java/eu/etaxonomy/taxeditor/target
+!src/test/java/eu/etaxonomy/taxeditor/.directory
+!src/test/java/eu/etaxonomy/taxeditor/hibernate.log
+!src/test/java/eu/etaxonomy/taxeditor/.settings
+!src/test/java/eu/etaxonomy/.project
+!src/test/java/eu/etaxonomy/integration-test.log
+!src/test/java/eu/etaxonomy/target
+!src/test/java/eu/etaxonomy/.directory
+!src/test/java/eu/etaxonomy/hibernate.log
+!src/test/java/eu/etaxonomy/.settings
+!src/test/java/eu/.project
+!src/test/java/eu/integration-test.log
+!src/test/java/eu/target
+!src/test/java/eu/.directory
+!src/test/java/eu/hibernate.log
+!src/test/java/eu/.settings
+!src/test/java/.project
+!src/test/java/integration-test.log
+!src/test/java/target
+!src/test/java/.directory
+!src/test/java/hibernate.log
+!src/test/java/.settings
+!src/test/.project
+!src/test/integration-test.log
+!src/test/target
+!src/test/.directory
+!src/test/hibernate.log
+!src/test/.settings
+!src/main/java/eu/etaxonomy/taxeditor/molecular/io/wizard/.project
+!src/main/java/eu/etaxonomy/taxeditor/molecular/io/wizard/integration-test.log
+!src/main/java/eu/etaxonomy/taxeditor/molecular/io/wizard/target
+!src/main/java/eu/etaxonomy/taxeditor/molecular/io/wizard/.directory
+!src/main/java/eu/etaxonomy/taxeditor/molecular/io/wizard/hibernate.log
+!src/main/java/eu/etaxonomy/taxeditor/molecular/io/wizard/.settings
eu.etaxonomy.taxeditor.cdmlib,
eu.etaxonomy.taxeditor.editor,
eu.etaxonomy.taxeditor.store,
- eu.etaxonomy.taxeditor.molecular.lib
+ eu.etaxonomy.taxeditor.molecular.lib,
+ org.eclipse.core.databinding.observable;bundle-version="1.4.0",
+ org.eclipse.core.databinding;bundle-version="1.4.0",
+ org.eclipse.jface.databinding;bundle-version="1.5.0",
+ org.eclipse.core.databinding.property;bundle-version="1.4.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.taxeditor.molecular,
eu.etaxonomy.taxeditor.molecular.editor,
- eu.etaxonomy.taxeditor.molecular.handler
+ eu.etaxonomy.taxeditor.molecular.handler,
+ eu.etaxonomy.taxeditor.molecular.io
view.PHEROGRAM_VIEW = Pherogram View
command.EDIT_SEQUENCE = Edit Sequence
command.name.SHOW_PHEROGRAM = Show Pherogram
+command.name.EXPORT_SEQUENCE_TO_FILE = Export to alignment file
command.name.CUT_PHEROGRAM_LEFT = Cut pherogram left
command.name.CUT_PHEROGRAM_RIGHT = Cut pherogram right
command.name.REVERSE_COMPLEMENT_SELECTED_ROWS = Reverse complement selected rows
menu.ALIGNMENT_EDITOR = Alignment Editor
menu.label.PHEROGRAM_VIEW = Pherogram View
command.label.EDIT_SEQUENCE = Edit Sequence
+command.label.EXPORT_SEQUENCE_TO_FILE = Export to alignment file
command.label.SHOW_PHEROGRAM = Show Pherogram
\ No newline at end of file
#Properties file for eu.etaxonomy.taxeditor.molecular
editor.ALIGNMENT_EDITOR = Alignment Editor
view.PHEROGRAM_VIEW = PherogramView
-command.EDIT_SEQUENCE = Edit Sequence
+command.EDIT_SEQUENCE = Sequenz bearbeiten
command.name.SHOW_PHEROGRAM = Show Pherogram
-command.name.CUT_PHEROGRAM_LEFT = Cut pherogram left
-command.name.CUT_PHEROGRAM_RIGHT = Cut pherogram right
-command.name.REVERSE_COMPLEMENT_SELECTED_ROWS = Reverse complement selected rows
-command.name.CREATE_CONSENUS_SEQUENCE = (Re)create consensus sequence
-command.name.UPDATE_CONSENSUS_SEQUENCE = Update consensus sequence
-command.name.TOGGLE_SHOW_PROBABILITY_VALUES = Toggle show probability values
-command.name.TOGGLE_SHOW_BASE_CALL_LINES = Toggle show base call lines
-command.name.CHANGE_QUALITY_OUTPUT = Change quality output
-command.name.LOAD_PHEROGRAM = Load Pherogram
-command.name.TOGGLE_INSERT_OVERWRITE = Toggle insert/overwrite
-command.name.TOGGLE_LEFT_RIGHT_INSERTION = Toggle left/right insertion in base call sequence
-command.TOGGLE_INSERT_OVERWRITE = Toggle insert/overwrite
+command.name.EXPORT_SEQUENCE_TO_FILE = Alignmentdatei exportieren
+command.name.CUT_PHEROGRAM_LEFT = Pherogramm links abschneiden
+command.name.CUT_PHEROGRAM_RIGHT = Pherogramm rechts abschneiden
+command.name.REVERSE_COMPLEMENT_SELECTED_ROWS = Ausgewählte Spalten reverse complementen
+command.name.CREATE_CONSENUS_SEQUENCE = Konsensussequenz (neu) erzeugen
+command.name.UPDATE_CONSENSUS_SEQUENCE = Konsensussequenz aktualisieren
+command.name.TOGGLE_SHOW_PROBABILITY_VALUES = Anzeige von Wahrscheinlichkeiten umschalten
+command.name.TOGGLE_SHOW_BASE_CALL_LINES = Base-Call-Linienanzeige umschalten
+command.name.CHANGE_QUALITY_OUTPUT = Qualitätsausgabe umschalten
+command.name.LOAD_PHEROGRAM = Pherogram laden
+command.name.TOGGLE_INSERT_OVERWRITE = Einfügen/Überschreiben umschalten
+command.name.TOGGLE_LEFT_RIGHT_INSERTION = Links/rechts Einfügen in Base-Call-Sequenz umschalten
+command.TOGGLE_INSERT_OVERWRITE = Einfügen/Überschreiben umschalten
menu.ALIGNMENT_EDITOR = Alignment Editor
menu.label.PHEROGRAM_VIEW = Pherogram View
-command.label.EDIT_SEQUENCE = Edit Sequence
-command.label.SHOW_PHEROGRAM = Show Pherogram
\ No newline at end of file
+command.label.EDIT_SEQUENCE = Sequenz bearbeiten
+command.label.EXPORT_SEQUENCE_TO_FILE = Alignmentdatei exportieren
+command.label.SHOW_PHEROGRAM = Pherogram anzeigen
\ No newline at end of file
--- /dev/null
+exportSequenceToFileHandlerIOErrorMessage=An error occurred when trying to export a consensus sequence alignment to the file "%s".
+exportSequenceToFileHandlerIOErrorTitle=I/O error
+exportSequenceToFileHandlerOverwriteTitle=Overwrite file
+exportSequenceToFileHandlerOverwriteText=The file \"%s\" already exists.\n\nDo you want to overwrite it?
+wizardExportAlignmentAppendExtensionButton=Append default extension
+wizardExportAlignmentBrowseButton=Browse...
+wizardExportAlignmentDataLabel=Select the data to export:
+wizardExportAlignmentDescription=Define the output file and format.
+wizardExportAlignmentDestinationLabel=Select the export destination:
+wizardExportAlignmentErrorMissingFileName=The file name must not be empty.
+wizardExportAlignmentErrorMissingSeqLabel=The consensus sequence label must not be empty.
+wizardExportAlignmentErrorNothingToExport=Either single reads or the consensus sequence have to be selected for export.
+wizardExportAlignmentExportConsensusSeqLabel=Export consensus sequence
+wizardExportAlignmentExportFormatLabel=Select the export format:
+wizardExportAlignmentExportSingleReads=Export single reads
+wizardExportAlignmentFileDialogTitle=Export to
+wizardExportAlignmentFileLabel=Alignment file:
+wizardExportAlignmentTitle=Sequence export
+wizardExportAlignmentWarningFileNameStartsDot=File starting with '.' are not supported on all operating systems.
+wizardExportAlignmentwarningMissingExtension=The file name does have a valid extension for the selected format.
+wizardExportAlignmentWarningFileExists=The file already exists and will be overwritten.
+wizardExportAlignmentOptionsDescription=Specify additional export parameters.
+wizardExportAlignmentOptionsTitle=Export options
+wizardExportAlignmentExportedSeqHeading=Specify the sequences to be exported:
+wizardExportAlignmentAdditionalOptionsHeading=Specify additional export options:
+wizardExportAlignmentElongateSeqHeading=Elongate sequences to have equal length with:
+wizardExportAlignmentElongateSeqMissingData=Missing data ('?')"
+wizardExportAlignmentElongateSeqGap=Gap ('-')
--- /dev/null
+exportSequenceToFileHandlerIOErrorMessage=Beim Schreiben der Datei "%s" ist ein Fehler aufgetreten.
+exportSequenceToFileHandlerIOErrorTitle=E/A Fehler
+exportSequenceToFileHandlerOverwriteTitle=Datei überschreiben
+exportSequenceToFileHandlerOverwriteText=Die Datei \"%s\" existiert bereits.\n\nSoll sie überschrieben werden?
+wizardExportAlignmentAppendExtensionButton=Standarddateiendung anhängen
+wizardExportAlignmentBrowseButton=Durchsuchen...
+wizardExportAlignmentDataLabel=Zu exportierende Daten:
+wizardExportAlignmentDescription=Wählen Sie den Zielort und das Zielformat aus!
+wizardExportAlignmentDestinationLabel=Zieldatei:
+wizardExportAlignmentErrorMissingFileName=Der Dateiname darf nicht leer sein.
+wizardExportAlignmentErrorMissingSeqLabel=Der Name der Konsensussequenz darf nicht leer sein.
+wizardExportAlignmentErrorNothingToExport=Es müssen entweder die einzelnen Reads oder die Konsensussequenz zum Export ausgewählt werden.
+wizardExportAlignmentExportConsensusSeqLabel=Konsensussequenz exportieren
+wizardExportAlignmentExportFormatLabel=Zielformat:
+wizardExportAlignmentExportSingleReads=Einzelne Reads exportieren
+wizardExportAlignmentFileDialogTitle=Exportieren nach
+wizardExportAlignmentFileLabel=Alignment Datei:
+wizardExportAlignmentTitle=Sequenzexport
+wizardExportAlignmentWarningFileNameStartsDot=Dateinamen, die mit einem '.' beginnen, werden nicht auf allen Betriebssystemen unterstützt.
+wizardExportAlignmentwarningMissingExtension=Der momentane Dateiname hat keine zum aktuellen Format passende Endung.
+wizardExportAlignmentWarningFileExists=The existiert bereits und würde überschrieben.
+wizardExportAlignmentOptionsDescription=Geben Sie weitere Exportparameter an!
+wizardExportAlignmentOptionsTitle=Exportoptionen
+wizardExportAlignmentExportedSeqHeading=Zu exportierende Sequenzen:
+wizardExportAlignmentAdditionalOptionsHeading=Erweiterte Exportoptionen:
+wizardExportAlignmentElongateSeqHeading=Sequenzen auf einheitliche Länge bringen mit:
+wizardExportAlignmentElongateSeqMissingData=Fehlende Daten ('?')"
+wizardExportAlignmentElongateSeqGap=Lücke ('-')
id="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.toggleLeftRightInsertion"
name="%command.name.TOGGLE_LEFT_RIGHT_INSERTION">
</command>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.molecular.handler.ExportSequenceToFileHandler"
+ id="eu.etaxonomy.taxeditor.molecular.exportSequenceToFile"
+ name="%command.name.EXPORT_SEQUENCE_TO_FILE">
+ </command>
</extension>
<extension
point="org.eclipse.ui.menus">
</reference>
</visibleWhen>
</command>
+ <command
+ commandId="eu.etaxonomy.taxeditor.molecular.exportSequenceToFile"
+ label="%command.label.EXPORT_SEQUENCE_TO_FILE"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ <reference
+ definitionId="isSequence">
+ </reference>
+ </visibleWhen>
+ </command>
<command
commandId="eu.etaxonomy.taxeditor.molecular.showPherogram"
label="%command.label.SHOW_PHEROGRAM"
--- /dev/null
+/**
+ * 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.molecular;
+
+
+import org.eclipse.osgi.util.NLS;
+
+
+
+/**
+ * Provides messages and texts for classes of the molecular plugin.
+ *
+ * @author Ben Stöver
+ * @date 17.11.2016
+ */
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "OSGI-INF/l10n/messages"; //$NON-NLS-1$
+
+
+ public static String exportSequenceToFileHandlerIOErrorMessage;
+ public static String exportSequenceToFileHandlerIOErrorTitle;
+ public static String exportSequenceToFileHandlerOverwriteTitle;
+ public static String exportSequenceToFileHandlerOverwriteText;
+
+ public static String wizardExportAlignmentAppendExtensionButton;
+ public static String wizardExportAlignmentBrowseButton;
+ public static String wizardExportAlignmentDataLabel;
+ public static String wizardExportAlignmentDescription;
+ public static String wizardExportAlignmentDestinationLabel;
+ public static String wizardExportAlignmentErrorMissingFileName;
+ public static String wizardExportAlignmentErrorMissingSeqLabel;
+ public static String wizardExportAlignmentErrorNothingToExport;
+ public static String wizardExportAlignmentExportConsensusSeqLabel;
+ public static String wizardExportAlignmentExportFormatLabel;
+ public static String wizardExportAlignmentExportSingleReads;
+ public static String wizardExportAlignmentFileDialogTitle;
+ public static String wizardExportAlignmentFileLabel;
+ public static String wizardExportAlignmentOptionsDescription;
+ public static String wizardExportAlignmentOptionsTitle;
+ public static String wizardExportAlignmentTitle;
+ public static String wizardExportAlignmentWarningFileNameStartsDot;
+ public static String wizardExportAlignmentwarningMissingExtension;
+ public static String wizardExportAlignmentWarningFileExists;
+ public static String wizardExportAlignmentExportedSeqHeading;
+ public static String wizardExportAlignmentAdditionalOptionsHeading;
+ public static String wizardExportAlignmentElongateSeqHeading;
+ public static String wizardExportAlignmentElongateSeqMissingData;
+ public static String wizardExportAlignmentElongateSeqGap;
+
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {}
+}
import eu.etaxonomy.cdm.model.molecular.SequenceString;
import eu.etaxonomy.cdm.model.molecular.SingleRead;
import eu.etaxonomy.cdm.model.molecular.SingleReadAlignment;
-import eu.etaxonomy.cdm.model.molecular.SingleReadAlignment.Shift;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin;
import eu.etaxonomy.taxeditor.molecular.handler.ToggleInsertOverwriteHandler;
private MultipleAlignmentsContainer alignmentsContainer = null;
- private final Map<Integer, SingleReadAlignment> cdmMap = new TreeMap<Integer, SingleReadAlignment>(); //TODO Move this to ContigSequenceDataProvider
+ private final Map<String, SingleReadAlignment> cdmMap = new TreeMap<String, SingleReadAlignment>(); //TODO Move this to ContigSequenceDataProvider
private boolean dirty = false;
- public AlignmentEditor()
- {
+
+ public AlignmentEditor() {
super();
conversationHolder = CdmStore.createConversation();
//conversationHolder = null;
result.setAllowVerticalScrolling(allowVerticalScrolling);
CharacterTokenSet tokenSet = CharacterTokenSet.newDNAInstance(); //TODO Should NUCLEOTIDE be used instead?
- AlignmentModel<Character> provider = new PackedAlignmentModel<Character>(tokenSet);
- result.setAlignmentModel(provider, false);
- provider.getChangeListeners().add(DIRTY_LISTENER);
+ AlignmentModel<Character> model = new PackedAlignmentModel<Character>(tokenSet);
+ result.setAlignmentModel(model, false);
+ model.getChangeListeners().add(DIRTY_LISTENER);
result.getPaintSettings().getTokenPainterList().set(0, new NucleotideTokenPainter());
return result;
}
- public boolean hasPherogram(int sequenceID) {
+ public boolean hasPherogram(String sequenceID) {
return getReadsArea().getDataAreas().getSequenceAreas(sequenceID).size() > PHEROGRAM_AREA_INDEX;
}
- public PherogramArea getPherogramArea(int sequenceID) {
+ public PherogramArea getPherogramArea(String sequenceID) {
if (hasPherogram(sequenceID)) {
return (PherogramArea)getReadsArea().getDataAreas().getSequenceAreas(sequenceID).get(PHEROGRAM_AREA_INDEX);
}
// Add test consensus sequence:
AlignmentModel consensusModel = getEditableConsensusArea().getAlignmentModel();
- int id = consensusModel.addSequence(CONSENSUS_NAME);
+ String id = consensusModel.addSequence(CONSENSUS_NAME);
Collection<Object> tokens = new ArrayList<Object>(); // First save tokens in a collection to avoid GUI updated for each token.
tokens.add(consensusModel.getTokenSet().tokenByRepresentation("A"));
tokens.add(consensusModel.getTokenSet().tokenByRepresentation("C"));
for (SingleReadAlignment singleReadAlignment : sequenceNode.getSingleReadAlignments()) {
try {
SingleRead pherogramInfo = singleReadAlignment.getSingleRead();
- URI uri = null;
- if (pherogramInfo.getPherogram() != null) {
- uri = MediaUtils.getFirstMediaRepresentationPart(pherogramInfo.getPherogram()).getUri();
- }
- int id = addRead(DerivateLabelProvider.getDerivateText(pherogramInfo, conversationHolder),
- uri,
+ String id = addRead(DerivateLabelProvider.getDerivateText(pherogramInfo, conversationHolder),
+ getPherogramURI(pherogramInfo),
singleReadAlignment.isReverseComplement(),
singleReadAlignment.getEditedSequence(),
singleReadAlignment.getFirstSeqPosition(),
}
// Set consensus sequence:
- AlignmentModel consensusProvider = getEditableConsensusArea().getAlignmentModel();
- int id = consensusProvider.addSequence(CONSENSUS_NAME);
- consensusProvider.insertTokensAt(id, 0, AlignmentModelUtils.charSequenceToTokenList(
- sequenceNode.getConsensusSequence().getString(), consensusProvider.getTokenSet()));
+ AlignmentModel consensusModel = getEditableConsensusArea().getAlignmentModel();
+ String id = consensusModel.addSequence(CONSENSUS_NAME);
+ consensusModel.insertTokensAt(id, 0, AlignmentModelUtils.charSequenceToTokenList(
+ sequenceNode.getConsensusSequence().getString(), consensusModel.getTokenSet()));
//TODO Can the consensus sequence also be null? / Should it be created here, if nothing is in the DB?
}
bars.getStatusLineManager().setMessage("Edit mode: " +
(getReadsArea().getEditSettings().isInsert() ? "Insert" : "Overwrite") + " " +
"Insertion in pherogram: " +
- (getReadsArea().getEditSettings().isInsertLeftInDataArea() ? "Left" : "Right"));
+ (getReadsArea().getEditSettings().isInsertLeftInDataArea() ? "Left" : "Right")); //TODO multi language
}
private SingleReadAlignment.Shift[] convertToCDMShifts(PherogramAreaModel model) {
Iterator<ShiftChange> iterator = model.shiftChangeIterator();
- List<Shift> shifts = new ArrayList<SingleReadAlignment.Shift>();
+ List<SingleReadAlignment.Shift> shifts = new ArrayList<SingleReadAlignment.Shift>();
while (iterator.hasNext()) {
ShiftChange shiftChange = iterator.next();
shifts.add(new SingleReadAlignment.Shift(shiftChange.getBaseCallIndex(), shiftChange.getShiftChange()));
}
- return shifts.toArray(new Shift[]{});
+ return shifts.toArray(new SingleReadAlignment.Shift[shifts.size()]);
}
@Override
public void doSave(IProgressMonitor monitor) {
if (getEditorInput() instanceof AlignmentEditorInput) {
- String taskName = "Saving alignment";
+ String taskName = "Saving alignment"; //TODO multi language
monitor.beginTask(taskName, 3);
//re-loading sequence to avoid session conflicts
// Write single reads:
stringProvider.setUnderlyingModel(getReadsArea().getAlignmentModel());
sequenceNode.getSingleReadAlignments().retainAll(cdmMap.values()); // Remove all reads that are not in the alignment anymore.
- Iterator<Integer> iterator = getReadsArea().getAlignmentModel().sequenceIDIterator();
+ Iterator<String> iterator = getReadsArea().getAlignmentModel().sequenceIDIterator();
while (iterator.hasNext()) {
- int id = iterator.next();
+ String id = iterator.next();
SingleReadAlignment singleRead = cdmMap.get(id);
if (singleRead == null) {
- throw new InternalError("Creating new reads from AlignmentEditor not implemented.");
+ throw new InternalError("Creating new reads from AlignmentEditor not implemented."); //TODO multi language
//TODO Create new read object. => Shall it be allowed to add reads in the alignment editor which are not represented in the CDM tree before the alignment editor is saved?
//singleRead = SingleReadAlignment.NewInstance(consensusSequence, singleRead, shifts, editedSequence);
}
private String cutPherogram(boolean left) {
SelectionModel selection = getReadsArea().getSelection();
if (selection.getCursorHeight() != 1) {
- return "Cutting pherograms is only possible if exactly one row is selected.";
+ return "Cutting pherograms is only possible if exactly one row is selected."; //TODO multi language
}
else {
PherogramArea pherogramArea =
getPherogramArea(getReadsArea().getSequenceOrder().idByIndex(selection.getCursorRow()));
if (pherogramArea == null) {
- return "There is no pherogram attached to the current sequence.";
+ return "There is no pherogram attached to the current sequence."; //TODO multi language
}
else {
if (left) {
return null;
}
else {
- return "The left end of the selection lies outside the pherogram attached to this sequence.";
+ return "The left end of the selection lies outside the pherogram attached to this sequence."; //TODO multi language
}
}
else {
return null;
}
else {
- return "The right end of the selection lies outside the pherogram attached to this sequence.";
+ return "The right end of the selection lies outside the pherogram attached to this sequence."; //TODO multi language
}
}
}
SelectionModel selection = getReadsArea().getSelection();
AlignmentModel<?> model = getReadsArea().getAlignmentModel();
for (int row = selection.getFirstRow(); row < selection.getFirstRow() + selection.getCursorHeight(); row++) {
- int sequenceID = getReadsArea().getSequenceOrder().idByIndex(row);
+ String sequenceID = getReadsArea().getSequenceOrder().idByIndex(row);
PherogramArea area = getPherogramArea(sequenceID);
PherogramAreaModel pherogramAlignmentModel = area.getModel();
AlignmentModelUtils.reverseComplement(model, sequenceID,
public <T> void createConsensusSequence() {
ConsensusSequenceArea area = getConsensusHintDataArea();
AlignmentModel<T> model = (AlignmentModel<T>)getEditableConsensusArea().getAlignmentModel();
- int sequenceID = model.sequenceIDIterator().next(); // There is always one sequence contained.
+ String sequenceID = model.sequenceIDIterator().next(); // There is always one sequence contained.
int length = getReadsArea().getAlignmentModel().getMaxSequenceLength();
Collection<T> tokens = new ArrayList<T>(length);
ConsensusSequenceArea area = getConsensusHintDataArea();
AlignmentModel<T> model = (AlignmentModel<T>)getEditableConsensusArea().getAlignmentModel();
TokenSet<T> tokenSet = model.getTokenSet();
- int sequenceID = model.sequenceIDIterator().next(); // There is always one sequence contained.
+ String sequenceID = model.sequenceIDIterator().next(); // There is always one sequence contained.
int currentConsensusLength = model.getSequenceLength(sequenceID);
int overallLength = getReadsArea().getAlignmentModel().getMaxSequenceLength();
private String newReadName() {
int index = 1;
- while (getReadsArea().getAlignmentModel().sequenceIDByName(DEFAULT_READ_NAME_PREFIX + index)
- != AlignmentModel.NO_SEQUENCE_FOUND) {
-
+ while (getReadsArea().getAlignmentModel().sequenceIDByName(DEFAULT_READ_NAME_PREFIX + index) != null) {
index++;
}
return DEFAULT_READ_NAME_PREFIX + index;
* @throws IOException if an error occurred when trying to read the pherogram file
* @throws UnsupportedChromatogramFormatException if the format of the pherogram file is not supported
*/
- public int addRead(String name, URI pherogramURI, boolean reverseComplemented, String editedSequence,
+ public String addRead(String name, URI pherogramURI, boolean reverseComplemented, String editedSequence,
Integer firstSeqPos, Integer leftCutPos, Integer rightCutPos, SingleReadAlignment.Shift[] shifts)
throws IOException, UnsupportedChromatogramFormatException {
- AlignmentModel provider = getReadsArea().getAlignmentModel();
+ AlignmentModel model = getReadsArea().getAlignmentModel();
PherogramProvider pherogramProvider = null;
if (pherogramURI != null) {
pherogramProvider = readPherogram(pherogramURI); // Must happen before a sequence is added, because it might throw an exception.
}
// Create sequence:
- provider.addSequence(name);
- int id = provider.sequenceIDByName(name);
+ model.addSequence(name);
+ String id = model.sequenceIDByName(name);
// Set edited sequence:
Collection<Object> tokens = null; // First save tokens in a collection to avoid GUI updated for each token.
if (editedSequence != null) {
- tokens = AlignmentModelUtils.charSequenceToTokenList(editedSequence, provider.getTokenSet());
+ tokens = AlignmentModelUtils.charSequenceToTokenList(editedSequence, model.getTokenSet());
}
else if (pherogramProvider != null) { // Copy base call sequence into alignment:
tokens = new ArrayList<Object>();
for (int i = 0; i < pherogramProvider.getSequenceLength(); i++) {
- tokens.add(provider.getTokenSet().tokenByRepresentation(
+ tokens.add(model.getTokenSet().tokenByRepresentation(
Character.toString(pherogramProvider.getBaseCall(i))));
}
setDirty();
}
if (tokens != null) { // If either an edited sequence or a pherogram URI was provided.
- provider.insertTokensAt(id, 0, tokens);
+ model.insertTokensAt(id, 0, tokens);
if (pherogramProvider != null) {
// Create pherogram area:
new PherogramAreaModel(pherogramProvider));
// Set position properties and shifts:
- PherogramAreaModel model = pherogramArea.getModel();
+ PherogramAreaModel phergramModel = pherogramArea.getModel();
if ((firstSeqPos != null) && (leftCutPos != null)) {
- model.setFirstSeqLeftCutPos(firstSeqPos, leftCutPos);
+ phergramModel.setFirstSeqLeftCutPos(firstSeqPos, leftCutPos);
}
if (rightCutPos != null) {
- model.setRightCutPosition(rightCutPos);
+ phergramModel.setRightCutPosition(rightCutPos);
}
if ((shifts != null) && (shifts.length > 0)) {
for (int i = 0; i < shifts.length; i++) {
- model.addShiftChange(shifts[i].position, shifts[i].shift);
+ phergramModel.addShiftChange(shifts[i].position, shifts[i].shift);
}
setDirty();
}
}
return id;
}
+
+
+ public static URI getPherogramURI(SingleRead pherogramInfo) {
+ if (pherogramInfo.getPherogram() != null) {
+ return MediaUtils.getFirstMediaRepresentationPart(pherogramInfo.getPherogram()).getUri();
+ }
+ else {
+ return null;
+ }
+ }
}
if (activePart instanceof AlignmentEditor) {
AlignmentEditor editor = (AlignmentEditor)activePart;
- Iterator<Integer> idIterator = editor.getReadsArea().getAlignmentModel().sequenceIDIterator();
+ Iterator<String> idIterator = editor.getReadsArea().getAlignmentModel().sequenceIDIterator();
while (idIterator.hasNext()) {
PherogramArea area = editor.getPherogramArea(idIterator.next());
if (area != null) {
* @date 26.08.2015\r
*/\r
public class AlignmentEditorPasteHandler extends AbstractFocusedAlignmentAreaHandler implements IElementUpdater {\r
- private void pasteString(AlignmentArea area, int sequenceID, String content) {\r
+ private void pasteString(AlignmentArea area, String sequenceID, String content) {\r
area.getActionProvider().deleteSelection(); // Overwrite selected tokens.\r
area.getActionProvider().elongateSequence(sequenceID, area.getSelection().getCursorColumn());\r
\r
+ @SuppressWarnings("unchecked")\r
AlignmentModel<Object> alignmentModel = (AlignmentModel<Object>)area.getAlignmentModel();\r
alignmentModel.insertTokensAt(sequenceID, area.getSelection().getCursorColumn(),\r
AlignmentModelUtils.charSequenceToTokenList(content, alignmentModel.getTokenSet(),\r
\r
if (!lines.isEmpty()) { //TODO Can lines be empty? (Can an empty string "" be copied to the clipboard?)\r
if (selection.getCursorHeight() == 1) { // If the consensus sequence is focused, this is the only possible case.\r
- int sequenceID = focusedArea.getSequenceOrder().idByIndex(selection.getCursorRow());\r
+ String sequenceID = focusedArea.getSequenceOrder().idByIndex(selection.getCursorRow());\r
if (lines.size() == 1) {\r
pasteString(focusedArea, sequenceID, lines.get(0));\r
}\r
--- /dev/null
+// $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.handler;\r
+\r
+\r
+import info.bioinfweb.jphyloio.JPhyloIOEventWriter;\r
+import info.bioinfweb.jphyloio.ReadWriteParameterMap;\r
+import info.bioinfweb.jphyloio.ReadWriteParameterNames;\r
+import info.bioinfweb.jphyloio.dataadapters.implementations.ListBasedDocumentDataAdapter;\r
+import info.bioinfweb.jphyloio.factory.JPhyloIOReaderWriterFactory;\r
+import info.bioinfweb.jphyloio.objecttranslation.ObjectTranslatorFactory;\r
+\r
+import java.io.File;\r
+import java.io.IOException;\r
+\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.runtime.IStatus;\r
+import org.eclipse.jface.viewers.ISelection;\r
+import org.eclipse.jface.viewers.TreeNode;\r
+import org.eclipse.jface.wizard.WizardDialog;\r
+import org.eclipse.ui.handlers.HandlerUtil;\r
+\r
+import eu.etaxonomy.cdm.model.molecular.Sequence;\r
+import eu.etaxonomy.taxeditor.editor.EditorUtil;\r
+import eu.etaxonomy.taxeditor.model.MessagingUtils;\r
+import eu.etaxonomy.taxeditor.molecular.Messages;\r
+import eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin;\r
+import eu.etaxonomy.taxeditor.molecular.io.CDMPherogramAlignmentObjectTranslator;\r
+import eu.etaxonomy.taxeditor.molecular.io.CDMSequenceMatrixAdapter;\r
+import eu.etaxonomy.taxeditor.molecular.io.SingleReadAlignmentRDFXMLConstants;\r
+import eu.etaxonomy.taxeditor.molecular.io.wizard.ExportSingleReadAlignmentWizard;\r
+import eu.etaxonomy.taxeditor.util.ApplicationUtil;\r
+\r
+\r
+\r
+/**\r
+ * Allows to export a single read alignment to various alignment formats using\r
+ * <a href="http://bioinfweb.info/JPhyloIO/"><i>JPhyloIO</i></a>.\r
+ *\r
+ * @author Ben Stöver\r
+ * @date 24.04.2016\r
+ */\r
+public class ExportSequenceToFileHandler extends AbstractHandler {\r
+ private static final JPhyloIOReaderWriterFactory factory = new JPhyloIOReaderWriterFactory();\r
+\r
+\r
+ @Override\r
+ public Object execute(ExecutionEvent event) throws ExecutionException {\r
+ ISelection currentSelection = HandlerUtil.getCurrentSelection(event);\r
+ TreeNode treeNodeOfSelection = EditorUtil.getTreeNodeOfSelection(currentSelection);\r
+ if (treeNodeOfSelection != null && treeNodeOfSelection.getValue() instanceof Sequence) {\r
+ Sequence sequence = (Sequence)treeNodeOfSelection.getValue();\r
+\r
+ final ExportSingleReadAlignmentWizard wizard = new ExportSingleReadAlignmentWizard();\r
+ final WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), wizard);\r
+ if (dialog.open() == IStatus.OK) {\r
+ // Prepare writer parameters:\r
+ ReadWriteParameterMap parameters = new ReadWriteParameterMap();\r
+ parameters.put(ReadWriteParameterNames.KEY_APPLICATION_NAME, ApplicationUtil.getTitle());\r
+ //parameters.put(ReadWriteParameterNames.KEY_APPLICATION_VERSION, ApplicationUtil.getVersion()); // Setting the version unnecessary, since its already contained in the title.\r
+ parameters.put(ReadWriteParameterNames.KEY_APPLICATION_URL, "http://cybertaxonomy.eu/taxeditor/"); //TODO Specify URL obtained from a central class?\r
+ parameters.put(ReadWriteParameterNames.KEY_SEQUENCE_EXTENSION_TOKEN, wizard.getModel().getElongationToken());\r
+\r
+ // Create and register object translator for writing pherogram alignment shifts:\r
+ ObjectTranslatorFactory translatorFactory = new ObjectTranslatorFactory();\r
+ translatorFactory.addXSDTranslators(true);\r
+ translatorFactory.addTranslator(new CDMPherogramAlignmentObjectTranslator(), true, SingleReadAlignmentRDFXMLConstants.DATA_TYPE_PHERORAGM_ALIGNMENT);\r
+ parameters.put(ReadWriteParameterNames.KEY_OBJECT_TRANSLATOR_FACTORY, translatorFactory);\r
+\r
+ // Create writer and document adapters:\r
+ JPhyloIOEventWriter writer = factory.getWriter(wizard.getModel().getFormatInfo().getFormatID());\r
+ ListBasedDocumentDataAdapter document = new ListBasedDocumentDataAdapter();\r
+ document.getMatrices().add(new CDMSequenceMatrixAdapter(sequence, wizard.getModel().getConsensusSequenceLabel(),\r
+ wizard.getModel().isExportConsensusSequence(), wizard.getModel().isExportSingleReads()));\r
+\r
+ // Write document:\r
+ File file = new File(wizard.getModel().getFileName());\r
+ if (!file.exists() || MessagingUtils.confirmDialog(Messages.exportSequenceToFileHandlerOverwriteTitle, String.format(\r
+ Messages.exportSequenceToFileHandlerOverwriteText, file.getAbsolutePath()))) {\r
+\r
+ try {\r
+ writer.writeDocument(document, file, parameters);\r
+ }\r
+ catch (IOException e) {\r
+ e.printStackTrace();\r
+ MessagingUtils.errorDialog(Messages.exportSequenceToFileHandlerIOErrorTitle, this,\r
+ String.format(Messages.exportSequenceToFileHandlerIOErrorMessage,\r
+ file.getAbsolutePath()), TaxeditorMolecularPlugin.PLUGIN_ID, e, false);\r
+ }\r
+ }\r
+\r
+ }\r
+ }\r
+ return null;\r
+ }\r
+}\r
* Displays an undistorted pherogram with {@link PherogramViewPart}.
*
* @author Ben Stöver
- *
*/
public class ShowPherogramHandler extends AbstractHandler {
public static void showPherogram(PherogramComponentModel model) throws PartInitException {
--- /dev/null
+// $Id$
+/**
+* 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.molecular.io;
+
+
+import info.bioinfweb.commons.io.XMLUtils;
+import info.bioinfweb.jphyloio.ReaderStreamDataProvider;
+import info.bioinfweb.jphyloio.WriterStreamDataProvider;
+import info.bioinfweb.jphyloio.objecttranslation.InvalidObjectSourceDataException;
+import info.bioinfweb.jphyloio.objecttranslation.implementations.AbstractXMLObjectTranslator;
+
+import java.io.IOException;
+
+import javax.xml.stream.XMLEventReader;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import eu.etaxonomy.cdm.model.molecular.SingleReadAlignment;
+
+
+
+/**
+ * <i>JPhyloIO</i> object translator to read and write a shift list of a {@link SingleReadAlignment} object from and
+ * to <i>XML</i>.
+ *
+ * @author Ben Stöver
+ * @date 28.10.2016
+ */
+public class CDMPherogramAlignmentObjectTranslator extends AbstractXMLObjectTranslator<SingleReadAlignment.Shift[]>
+ implements SingleReadAlignmentRDFXMLConstants {
+
+ @Override
+ public Class<SingleReadAlignment.Shift[]> getObjectClass() {
+ return SingleReadAlignment.Shift[].class;
+ }
+
+
+ @Override
+ public SingleReadAlignment.Shift[] readXMLRepresentation(XMLEventReader reader, ReaderStreamDataProvider<?> streamDataProvider)
+ throws IOException, XMLStreamException, InvalidObjectSourceDataException {
+
+ // TODO implement
+ throw new InternalError("Not implemented.");
+ }
+
+
+ @Override
+ public void writeXMLRepresentation(XMLStreamWriter writer, Object object, WriterStreamDataProvider<?> streamDataProvider)
+ throws IOException, XMLStreamException, ClassCastException {
+
+ SingleReadAlignment.Shift[] shifts = (SingleReadAlignment.Shift[])object;
+ XMLUtils.writeStartElement(writer, TAG_SHIFTS);
+ for (SingleReadAlignment.Shift shift : shifts) {
+ XMLUtils.writeStartElement(writer, TAG_SHIFT);
+ XMLUtils.writeAttribute(writer, ATTR_POSITION, Integer.toString(shift.position));
+ XMLUtils.writeAttribute(writer, ATTR_SHIFT, Integer.toString(shift.shift));
+ writer.writeEndElement();
+ }
+ writer.writeEndElement();
+ }
+}
--- /dev/null
+// $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 info.bioinfweb.commons.bio.CharacterStateSetType;\r
+import info.bioinfweb.commons.io.W3CXSConstants;\r
+import info.bioinfweb.commons.text.StringUtils;\r
+import info.bioinfweb.jphyloio.ReadWriteConstants;\r
+import info.bioinfweb.jphyloio.ReadWriteParameterMap;\r
+import info.bioinfweb.jphyloio.dataadapters.JPhyloIOEventReceiver;\r
+import info.bioinfweb.jphyloio.dataadapters.MatrixDataAdapter;\r
+import info.bioinfweb.jphyloio.dataadapters.ObjectListDataAdapter;\r
+import info.bioinfweb.jphyloio.dataadapters.implementations.NoCharDefsNoSetsMatrixDataAdapter;\r
+import info.bioinfweb.jphyloio.dataadapters.implementations.store.StoreObjectListDataAdapter;\r
+import info.bioinfweb.jphyloio.events.CharacterSetIntervalEvent;\r
+import info.bioinfweb.jphyloio.events.LinkedLabeledIDEvent;\r
+import info.bioinfweb.jphyloio.events.SequenceTokensEvent;\r
+import info.bioinfweb.jphyloio.events.TokenSetDefinitionEvent;\r
+import info.bioinfweb.jphyloio.events.type.EventContentType;\r
+import info.bioinfweb.jphyloio.utils.JPhyloIOWritingUtils;\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
+import java.util.List;\r
+\r
+import javax.xml.namespace.QName;\r
+\r
+import eu.etaxonomy.cdm.model.molecular.Sequence;\r
+import eu.etaxonomy.cdm.model.molecular.SingleReadAlignment;\r
+import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor;\r
+\r
+\r
+\r
+/**\r
+ * In implementation of {@link MatrixDataAdapter} that delegates to a {@link Sequence} object.\r
+ * <p>\r
+ * Note that this adapter stores information on the {@link Sequence} in creation. Modifying the sequence or linked\r
+ * objects will require to create a new instance of this class. Otherwise unexpected behavior may be the consequence.\r
+ *\r
+ * @author Ben Stöver\r
+ * @date 29.04.2016\r
+ */\r
+public class CDMSequenceMatrixAdapter extends NoCharDefsNoSetsMatrixDataAdapter implements ReadWriteConstants, SingleReadAlignmentRDFXMLConstants {\r
+ public static final String MATRIX_ID = DEFAULT_MATRIX_ID_PREFIX + "ContigAlignment";\r
+ public static final String SINGLE_READ_SEQUENCE_ID_PREFIX = DEFAULT_SEQUENCE_ID_PREFIX + "SingleRead";\r
+ public static final String CONSENSUS_SEQUENCE_ID= DEFAULT_SEQUENCE_ID_PREFIX + "Consensus";\r
+\r
+\r
+ private Sequence sequence;\r
+ private boolean exportConsensus;\r
+ private List<SingleReadAlignment> singleReadList;\r
+ private String consensusSequenceLabel;\r
+ private ObjectListDataAdapter<TokenSetDefinitionEvent> tokenSetList;\r
+ //TODO Also allow specifying single read labels?\r
+\r
+\r
+ /**\r
+ * Creates a new instance of this class.\r
+ *\r
+ * @param sequence the <i>CDM</i> sequence object containing the data to be exported\r
+ * @param consensusSequenceLabel the label to be used for the consensus sequence (Maybe {@code null}.)\r
+ * @param exportConsensus Specify {@code true} here, if the consensus sequence shall be included in the export or {@code false}\r
+ * otherwise.\r
+ * @param exportSingleReads Specify {@code true} here, if the single reads shall be included in the export or {@code false}\r
+ * otherwise.\r
+ * @throws IllegalArgumentException if both {@code exportConsensus} and {@code exportSingleReads} are {@code false}\r
+ */\r
+ public CDMSequenceMatrixAdapter(Sequence sequence, String consensusSequenceLabel, boolean exportConsensus, boolean exportSingleReads) {\r
+ super();\r
+ if (!exportConsensus && !exportSingleReads) {\r
+ throw new IllegalArgumentException("Either exportConsensus or exportSingleReads must be true. "\r
+ + "Otherwise no sequences would be contained in this matrix.");\r
+ }\r
+ else {\r
+ this.sequence = sequence;\r
+ this.exportConsensus = exportConsensus;\r
+ this.consensusSequenceLabel = consensusSequenceLabel;\r
+ tokenSetList = createTokenSetList();\r
+ if (exportSingleReads) {\r
+ singleReadList = new ArrayList<SingleReadAlignment>(sequence.getSingleReadAlignments()); // Store references of single reads in defined order to allow random access.\r
+ //TODO Omit single reads that do not have an edited sequence yet?\r
+ }\r
+ else {\r
+ singleReadList = Collections.emptyList();\r
+ }\r
+ }\r
+ }\r
+\r
+\r
+ private ObjectListDataAdapter<TokenSetDefinitionEvent> createTokenSetList() {\r
+ StoreObjectListDataAdapter<TokenSetDefinitionEvent> result = new StoreObjectListDataAdapter<TokenSetDefinitionEvent>();\r
+ final String id = ReadWriteConstants.DEFAULT_TOKEN_SET_ID_PREFIX;\r
+ result.setObjectStartEvent(new TokenSetDefinitionEvent(CharacterStateSetType.DNA, id, null));\r
+ long length = getColumnCount(null); //TODO Change this expression, if column count should return -1 in the future.\r
+ if (length > 0) { // Empty character set interval events are not allowed. //TODO Handle -1 separately\r
+ result.getObjectContent(id).add(new CharacterSetIntervalEvent(0, length));\r
+ }\r
+ return result;\r
+ }\r
+\r
+\r
+ /**\r
+ * @return the sequence\r
+ */\r
+ public Sequence getCDMSequence() {\r
+ return sequence;\r
+ }\r
+\r
+\r
+ private int extractSingleReadIndexFromID(String sequenceID) {\r
+ if (sequenceID.startsWith(SINGLE_READ_SEQUENCE_ID_PREFIX)) {\r
+ try {\r
+ return Integer.parseInt(sequenceID.substring(SINGLE_READ_SEQUENCE_ID_PREFIX.length()));\r
+ }\r
+ catch (NumberFormatException e) {} // fall through\r
+ }\r
+ return -1;\r
+ }\r
+\r
+\r
+ @Override\r
+ public LinkedLabeledIDEvent getStartEvent(ReadWriteParameterMap parameters) {\r
+ return new LinkedLabeledIDEvent(EventContentType.ALIGNMENT, MATRIX_ID, "Contig alignment", null);\r
+ //TODO Use label according to derivate and markers.\r
+ }\r
+\r
+\r
+ @Override\r
+ public boolean containsLongTokens(ReadWriteParameterMap parameters) {\r
+ return false;\r
+ }\r
+\r
+\r
+ @Override\r
+ public long getColumnCount(ReadWriteParameterMap parameters) {\r
+ return -1; // Indicates that sequences may have different lengths. (Otherwise writing files without sequence elongation would not be possible.)\r
+ }\r
+\r
+\r
+ @Override\r
+ public long getSequenceCount(ReadWriteParameterMap parameters) {\r
+ int addend = 1;\r
+ if (!exportConsensus) {\r
+ addend = 0;\r
+ }\r
+ return singleReadList.size() + addend;\r
+ }\r
+\r
+\r
+ @Override\r
+ public Iterator<String> getSequenceIDIterator(ReadWriteParameterMap parameters) {\r
+ return new SequenceIDIterator(singleReadList.size(), exportConsensus);\r
+ }\r
+\r
+\r
+ @Override\r
+ public long getSequenceLength(ReadWriteParameterMap parameters, String sequenceID) throws IllegalArgumentException {\r
+ int singleReadIndex = extractSingleReadIndexFromID(sequenceID);\r
+ if (singleReadIndex >= 0) {\r
+ String sequence = singleReadList.get(singleReadIndex).getEditedSequence();\r
+ if (sequence != null) {\r
+ return sequence.length();\r
+ }\r
+ else { // This would happen e.g. if not edited sequence was copied from pherogram yet.\r
+ return 0;\r
+ }\r
+ }\r
+ else if (exportConsensus && CONSENSUS_SEQUENCE_ID.equals(sequenceID)) {\r
+ return getCDMSequence().getSequenceString().length();\r
+ }\r
+ else {\r
+ throw new IllegalArgumentException("No sequence with the ID \"" + sequenceID + "\" could be found.");\r
+ }\r
+ }\r
+\r
+\r
+ @Override\r
+ public LinkedLabeledIDEvent getSequenceStartEvent(ReadWriteParameterMap parameters, String sequenceID) {\r
+ int singleReadIndex = extractSingleReadIndexFromID(sequenceID);\r
+ if (singleReadIndex >= 0) {\r
+ return new LinkedLabeledIDEvent(EventContentType.SEQUENCE, sequenceID, "Single read " + singleReadIndex, null);\r
+ //TODO Use name displayed in derivate hierarchy or specified name as label instead?\r
+ }\r
+ else if (exportConsensus && CONSENSUS_SEQUENCE_ID.equals(sequenceID)) {\r
+ return new LinkedLabeledIDEvent(EventContentType.SEQUENCE, sequenceID, consensusSequenceLabel, null);\r
+ }\r
+ else {\r
+ throw new IllegalArgumentException("No sequence with the ID \"" + sequenceID + "\" could be found.");\r
+ }\r
+ }\r
+\r
+\r
+ private void writeStringPart(JPhyloIOEventReceiver receiver, String string, long startColumn, long endColumn) throws IOException {\r
+ if (string != null) {\r
+ receiver.add(new SequenceTokensEvent(StringUtils.charSequenceToStringList(\r
+ string.substring((int)startColumn, (int)endColumn))));\r
+ }\r
+ }\r
+\r
+\r
+ private String createMetadataID(String sequenceID, QName predicate) {\r
+ return sequenceID + "META" + predicate.getLocalPart();\r
+ }\r
+\r
+\r
+ private void writeMetadataEvents(JPhyloIOEventReceiver receiver, String sequenceID, QName predicate, QName dataType, Object objectValue)\r
+ throws IOException {\r
+\r
+ if (objectValue != null) {\r
+ JPhyloIOWritingUtils.writeSimpleLiteralMetadata(receiver, createMetadataID(sequenceID, predicate), null,\r
+ predicate, dataType, objectValue, null);\r
+ }\r
+ }\r
+\r
+\r
+ @Override\r
+ public void writeSequencePartContentData(ReadWriteParameterMap parameters, JPhyloIOEventReceiver receiver, String sequenceID,\r
+ long startColumn, long endColumn) throws IOException, IllegalArgumentException {\r
+\r
+ int singleReadIndex = extractSingleReadIndexFromID(sequenceID);\r
+ if (singleReadIndex >= 0) {\r
+ SingleReadAlignment singleRead = singleReadList.get(singleReadIndex);\r
+ if (startColumn == 0) {\r
+ writeMetadataEvents(receiver, sequenceID, PREDICATE_IS_SINGLE_READ, W3CXSConstants.DATA_TYPE_BOOLEAN, new Boolean(true));\r
+ writeMetadataEvents(receiver, sequenceID, PREDICATE_IS_REVERSE_COMPLEMENTED, W3CXSConstants.DATA_TYPE_BOOLEAN, new Boolean(singleRead.isReverseComplement()));\r
+ writeMetadataEvents(receiver, sequenceID, PREDICATE_HAS_LEFT_CUT_POSITION, W3CXSConstants.DATA_TYPE_INT, singleRead.getLeftCutPosition());\r
+ writeMetadataEvents(receiver, sequenceID, PREDICATE_HAS_RIGHT_CUT_POSITION, W3CXSConstants.DATA_TYPE_INT, singleRead.getRightCutPosition());\r
+\r
+ URI pherogramURI = AlignmentEditor.getPherogramURI(singleRead.getSingleRead());\r
+ if (pherogramURI != null) {\r
+ JPhyloIOWritingUtils.writeTerminalResourceMetadata(receiver, createMetadataID(sequenceID, PREDICATE_HAS_PHEROGRAM),\r
+ null, PREDICATE_HAS_PHEROGRAM, pherogramURI);\r
+ }\r
+\r
+ writeMetadataEvents(receiver, sequenceID, PREDICATE_HAS_PHEROGRAM_ALIGNMENT, DATA_TYPE_PHERORAGM_ALIGNMENT, singleRead.getShifts());\r
+ //TODO This needs to be written with sequence type XML!\r
+ }\r
+ writeStringPart(receiver, singleRead.getEditedSequence(), startColumn, endColumn);\r
+ }\r
+ else if (exportConsensus && CONSENSUS_SEQUENCE_ID.equals(sequenceID)) {\r
+ if (startColumn == 0) {\r
+ writeMetadataEvents(receiver, sequenceID, PREDICATE_IS_CONSENSUS_SEQUENCE, W3CXSConstants.DATA_TYPE_BOOLEAN, new Boolean(true));\r
+ //TODO Possibly export additional properties of sequence (e.g. isBarcode(), getDdbjId(), ...) as metadata?\r
+ }\r
+ writeStringPart(receiver, getCDMSequence().getSequenceString(), startColumn, endColumn);\r
+ }\r
+ else {\r
+ throw new IllegalArgumentException("No sequence with the ID \"" + sequenceID + "\" could be found.");\r
+ }\r
+ }\r
+\r
+\r
+ /* (non-Javadoc)\r
+ * @see info.bioinfweb.jphyloio.dataadapters.implementations.NoSetsMatrixDataAdapter#getTokenSets()\r
+ */\r
+ @Override\r
+ public ObjectListDataAdapter<TokenSetDefinitionEvent> getTokenSets(ReadWriteParameterMap parameters) {\r
+ return tokenSetList;\r
+ }\r
+}\r
--- /dev/null
+// $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
+import java.util.Iterator;\r
+import java.util.NoSuchElementException;\r
+\r
+\r
+\r
+/**\r
+ * Iterator implementation used internally be {@link CDMSequenceMatrixAdapter}.\r
+ *\r
+ * @author Ben Stöver\r
+ * @date 29.04.2016\r
+ */\r
+class SequenceIDIterator implements Iterator<String> {\r
+ private boolean containsConsensus;\r
+ private int singleReadPos;\r
+ private int singleReadCount;\r
+\r
+\r
+ /**\r
+ * Creates a new instance of this class.\r
+ *\r
+ * @param singleReadCount the number of single read IDs to be returned by this iterator before the consensus sequence\r
+ */\r
+ public SequenceIDIterator(int singleReadCount, boolean containsConsensus) {\r
+ super();\r
+ this.containsConsensus = containsConsensus;\r
+ this.singleReadCount = singleReadCount;\r
+ this.singleReadPos = 0;\r
+ }\r
+\r
+\r
+ @Override\r
+ public boolean hasNext() {\r
+ return (singleReadPos < singleReadCount) || (containsConsensus && (singleReadPos <= singleReadCount));\r
+ }\r
+\r
+\r
+ @Override\r
+ public String next() {\r
+ if (singleReadPos < singleReadCount) {\r
+ return CDMSequenceMatrixAdapter.SINGLE_READ_SEQUENCE_ID_PREFIX + (singleReadPos++);\r
+ }\r
+ else if (containsConsensus && (singleReadPos == singleReadCount)) {\r
+ singleReadPos++;\r
+ return CDMSequenceMatrixAdapter.CONSENSUS_SEQUENCE_ID;\r
+ }\r
+ else {\r
+ throw new NoSuchElementException("There are no more sequence IDs availble from this iterator.");\r
+ }\r
+ }\r
+\r
+\r
+ @Override\r
+ public void remove() {\r
+ throw new UnsupportedOperationException("This iterator does not support removing elements.");\r
+ }\r
+}\r
--- /dev/null
+// $Id$
+/**
+* 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.molecular.io;
+
+
+import javax.xml.namespace.QName;
+
+
+
+/**
+ * Contains constants for <i>RDF</i> predicates used in the I/O of single read alignments e.g. from and to the <i>NeXML</i> format.
+ *
+ * @author Ben Stöver
+ * @date 27.10.2016
+ */
+public interface SingleReadAlignmentRDFXMLConstants {
+ public static final String NAMESPACE_URI_PREFIX = "http://bioinfweb.info/xmlns/PhyDE/ReadAlignment/"; //TODO Possibly change this namespace, when according decision is made.
+ public static final String PREDICATE_NAMESPACE_URI = NAMESPACE_URI_PREFIX + "Predicates/";
+ public static final String PREDICATE_NAMESPACE_PREFIX = "ra";
+ public static final String DATA_TYPE_NAMESPACE_URI = NAMESPACE_URI_PREFIX + "DataTypes/";
+ public static final String DATA_TYPE_NAMESPACE_PREFIX = "radt";
+ public static final String PHEROGRAM_ALIGNMENT_NAMESPACE_URI = NAMESPACE_URI_PREFIX + "PherogramAlignment/";
+ public static final String PHEROGRAM_ALIGNMENT_NAMESPACE_PREFIX = "pha";
+
+ public static final QName PREDICATE_IS_SINGLE_READ = new QName(PREDICATE_NAMESPACE_URI, "isSingleRead", PREDICATE_NAMESPACE_PREFIX);
+ public static final QName PREDICATE_IS_CONSENSUS_SEQUENCE = new QName(PREDICATE_NAMESPACE_URI, "isConsensus", PREDICATE_NAMESPACE_PREFIX);
+ public static final QName PREDICATE_IS_REVERSE_COMPLEMENTED = new QName(PREDICATE_NAMESPACE_URI, "isRCed", PREDICATE_NAMESPACE_PREFIX);
+ public static final QName PREDICATE_HAS_PHEROGRAM = new QName(PREDICATE_NAMESPACE_URI, "hasPherogram", PREDICATE_NAMESPACE_PREFIX);
+ public static final QName PREDICATE_HAS_PHEROGRAM_ALIGNMENT = new QName(PREDICATE_NAMESPACE_URI, "hasPherogramAlignment", PREDICATE_NAMESPACE_PREFIX);
+ public static final QName PREDICATE_HAS_LEFT_CUT_POSITION = new QName(PREDICATE_NAMESPACE_URI, "hasLeftCutPosition", PREDICATE_NAMESPACE_PREFIX);
+ public static final QName PREDICATE_HAS_RIGHT_CUT_POSITION = new QName(PREDICATE_NAMESPACE_URI, "hasRightCutPosition", PREDICATE_NAMESPACE_PREFIX);
+
+ public static final QName DATA_TYPE_PHERORAGM_ALIGNMENT = new QName(DATA_TYPE_NAMESPACE_URI, "pherogramAlignment", DATA_TYPE_NAMESPACE_PREFIX);
+
+ public static final QName TAG_SHIFTS = new QName(PHEROGRAM_ALIGNMENT_NAMESPACE_URI, "shifts", PHEROGRAM_ALIGNMENT_NAMESPACE_PREFIX);
+ public static final QName TAG_SHIFT = new QName(PHEROGRAM_ALIGNMENT_NAMESPACE_URI, "shift", PHEROGRAM_ALIGNMENT_NAMESPACE_PREFIX);
+ public static final QName ATTR_POSITION = new QName(PHEROGRAM_ALIGNMENT_NAMESPACE_URI, "pos", PHEROGRAM_ALIGNMENT_NAMESPACE_PREFIX);
+ public static final QName ATTR_SHIFT = new QName(PHEROGRAM_ALIGNMENT_NAMESPACE_URI, "shift", PHEROGRAM_ALIGNMENT_NAMESPACE_PREFIX);
+}
--- /dev/null
+/**
+* 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.molecular.io.wizard;
+
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.wizard.WizardPage;
+
+
+
+/**
+ * @author bstoe_01
+ * @date 18.11.2016
+ *
+ */
+public abstract class AbstractExportSingleReadAlignmentWizardPage extends WizardPage {
+ public AbstractExportSingleReadAlignmentWizardPage(String pageName, String title, ImageDescriptor titleImage) {
+ super(pageName, title, titleImage);
+ }
+
+
+ public AbstractExportSingleReadAlignmentWizardPage(String pageName) {
+ super(pageName);
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ExportSingleReadAlignmentWizard getWizard() {
+ return (ExportSingleReadAlignmentWizard)super.getWizard(); // Would throw an exception, if this page is used within another wizard.
+ }
+}
--- /dev/null
+// $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.wizard;\r
+\r
+\r
+import info.bioinfweb.commons.io.ContentExtensionFileFilter;\r
+import info.bioinfweb.commons.io.ContentExtensionFileFilter.TestStrategy;\r
+import info.bioinfweb.commons.io.ExtensionFileFilter;\r
+import info.bioinfweb.jphyloio.formatinfo.JPhyloIOFormatInfo;\r
+\r
+import java.io.File;\r
+\r
+import org.eclipse.core.databinding.DataBindingContext;\r
+import org.eclipse.core.databinding.validation.MultiValidator;\r
+import org.eclipse.core.databinding.validation.ValidationStatus;\r
+import org.eclipse.core.runtime.IStatus;\r
+import org.eclipse.jface.databinding.swt.ISWTObservableValue;\r
+import org.eclipse.jface.databinding.swt.SWTObservables;\r
+import org.eclipse.jface.databinding.wizard.WizardPageSupport;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.events.SelectionAdapter;\r
+import org.eclipse.swt.events.SelectionEvent;\r
+import org.eclipse.swt.layout.FormAttachment;\r
+import org.eclipse.swt.layout.FormData;\r
+import org.eclipse.swt.layout.FormLayout;\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.FileDialog;\r
+import org.eclipse.swt.widgets.Label;\r
+import org.eclipse.swt.widgets.Text;\r
+\r
+import eu.etaxonomy.taxeditor.molecular.Messages;\r
+\r
+\r
+\r
+/**\r
+ * Wizard page that allows to specify which parts of a single read alignment shall be exported to an alignment file.\r
+ *\r
+ * @author Ben Stöver\r
+ * @date 18.04.2016\r
+ */\r
+public class ExportSingleReadAlignmentFileFormatPage extends AbstractExportSingleReadAlignmentWizardPage {\r
+ private Text fileTextField;\r
+ private Combo formatComboBox;\r
+\r
+\r
+ /**\r
+ * Create the wizard.\r
+ */\r
+ public ExportSingleReadAlignmentFileFormatPage() {\r
+ super("ExportSingleReadAlignmentFileFormat"); //TODO Which pageName should be used here? Any conventions? //$NON-NLS-1$\r
+ setTitle(Messages.wizardExportAlignmentTitle);\r
+ setDescription(Messages.wizardExportAlignmentDescription);\r
+ }\r
+\r
+\r
+ /**\r
+ * Create contents of the wizard.\r
+ *\r
+ * @param parent the parent component\r
+ */\r
+ @Override\r
+ public void createControl(Composite parent) {\r
+ DataBindingContext dbc = new DataBindingContext();\r
+ WizardPageSupport.create(this, dbc);\r
+\r
+ Composite container = new Composite(parent, SWT.NULL);\r
+\r
+ setControl(container);\r
+ container.setLayout(new FormLayout());\r
+\r
+ Label lblFormat = new Label(container, SWT.NONE);\r
+ FormData fd_lblFormat = new FormData();\r
+ fd_lblFormat.right = new FormAttachment(100, -10);\r
+ fd_lblFormat.top = new FormAttachment(0, 10);\r
+ fd_lblFormat.left = new FormAttachment(0, 10);\r
+ lblFormat.setLayoutData(fd_lblFormat);\r
+ lblFormat.setText(Messages.wizardExportAlignmentExportFormatLabel);\r
+\r
+ Label lblSelectTheExport = new Label(container, SWT.NONE);\r
+ FormData fd_lblSelectTheExport = new FormData();\r
+ fd_lblSelectTheExport.right = new FormAttachment(100, -10);\r
+ fd_lblSelectTheExport.left = new FormAttachment(0, 10);\r
+ lblSelectTheExport.setLayoutData(fd_lblSelectTheExport);\r
+ lblSelectTheExport.setText(Messages.wizardExportAlignmentDestinationLabel);\r
+\r
+ Label lblAlignmentFile = new Label(container, SWT.NONE);\r
+ FormData fd_lblAlignmentFile = new FormData();\r
+ fd_lblAlignmentFile.top = new FormAttachment(lblSelectTheExport, 9);\r
+ fd_lblAlignmentFile.right = new FormAttachment(0, 128);\r
+ fd_lblAlignmentFile.left = new FormAttachment(0, 10);\r
+ lblAlignmentFile.setLayoutData(fd_lblAlignmentFile);\r
+ lblAlignmentFile.setText(Messages.wizardExportAlignmentFileLabel);\r
+\r
+ fileTextField = new Text(container, SWT.BORDER);\r
+ FormData fd_text = new FormData();\r
+ fd_text.left = new FormAttachment(lblAlignmentFile, 6);\r
+ fd_text.right = new FormAttachment(100, -10);\r
+ fd_text.top = new FormAttachment(lblSelectTheExport, 6);\r
+ fileTextField.setLayoutData(fd_text);\r
+ final ISWTObservableValue fileNameObservable = SWTObservables.observeText(fileTextField, SWT.Modify);\r
+ dbc.bindValue(fileNameObservable, getWizard().getModel().getFileNameObservable());\r
+\r
+ Button btnBrowse = new Button(container, SWT.NONE);\r
+ btnBrowse.addSelectionListener(new SelectionAdapter() {\r
+ @Override\r
+ public void widgetSelected(SelectionEvent e) {\r
+ FileDialog dialog = new FileDialog(getShell(), SWT.OPEN);\r
+ dialog.setText(Messages.wizardExportAlignmentFileDialogTitle);\r
+ ContentExtensionFileFilter filter = getSelectedFormat().createFileFilter(TestStrategy.EXTENSION);\r
+ dialog.setFilterExtensions(new String[]{filter.getExtensionsAsString()});\r
+ dialog.setFilterNames(new String[]{filter.getDescription()});\r
+ String selectedFile = dialog.open();\r
+ if (selectedFile != null) { // Otherwise selecting was canceled.\r
+ fileTextField.setText(selectedFile);\r
+ }\r
+ }\r
+ });\r
+ FormData fd_btnBrowse = new FormData();\r
+ fd_btnBrowse.bottom = new FormAttachment(fileTextField, 43, SWT.BOTTOM);\r
+ fd_btnBrowse.top = new FormAttachment(fileTextField, 13);\r
+ fd_btnBrowse.left = new FormAttachment(100, -128);\r
+ fd_btnBrowse.right = new FormAttachment(100, -10);\r
+ btnBrowse.setLayoutData(fd_btnBrowse);\r
+ btnBrowse.setText(Messages.wizardExportAlignmentBrowseButton);\r
+\r
+ formatComboBox = new Combo(container, SWT.READ_ONLY);\r
+ fd_lblSelectTheExport.top = new FormAttachment(formatComboBox, 23);\r
+ for (JPhyloIOFormatInfo formatInfo : ExportSingleReadAlignmentWizardModel.FORMATS) {\r
+ formatComboBox.add(formatInfo.getFormatName());\r
+ }\r
+ FormData fd_formatComboBox = new FormData();\r
+ fd_formatComboBox.top = new FormAttachment(lblFormat, 6);\r
+ fd_formatComboBox.left = new FormAttachment(0, 10);\r
+ fd_formatComboBox.right = new FormAttachment(100, -10);\r
+ formatComboBox.setLayoutData(fd_formatComboBox);\r
+ final ISWTObservableValue formatObservable = SWTObservables.observeSingleSelectionIndex(formatComboBox); // ViewerProperties.singleSelection().observe(formatComboBox); falls ein ComboViewer verwendet wird. (Dann kann direkt FormatInfo verwendet werden.)\r
+ dbc.bindValue(formatObservable, getWizard().getModel().getFormatInfoObservable());\r
+ formatComboBox.select(0); // Must happen after the component has been bound to the model.\r
+\r
+ Button appendExtensionButton = new Button(container, SWT.NONE);\r
+ appendExtensionButton.addSelectionListener(new SelectionAdapter() {\r
+ @Override\r
+ public void widgetSelected(SelectionEvent e) {\r
+ fileTextField.setText(fileTextField.getText() + ExtensionFileFilter.EXTENSION_SEPARATOR +\r
+ getSelectedFormat().createFileFilter(TestStrategy.EXTENSION).getDefaultExtension());\r
+ }\r
+ });\r
+ FormData fd_btnNewButton = new FormData();\r
+ fd_btnNewButton.left = new FormAttachment(btnBrowse, -264, SWT.LEFT);\r
+ fd_btnNewButton.bottom = new FormAttachment(fileTextField, 43, SWT.BOTTOM);\r
+ fd_btnNewButton.right = new FormAttachment(btnBrowse, -6);\r
+ fd_btnNewButton.top = new FormAttachment(fileTextField, 13);\r
+ appendExtensionButton.setLayoutData(fd_btnNewButton);\r
+ appendExtensionButton.setText(Messages.wizardExportAlignmentAppendExtensionButton);\r
+\r
+ dbc.addValidationStatusProvider(new MultiValidator() {\r
+ @Override\r
+ protected IStatus validate() {\r
+ String fileName = (String)fileNameObservable.getValue();\r
+ Integer index = (Integer)formatObservable.getValue(); // If formatObservable.getValue() is not called from within this method, it is not called on modifications of the according combo anymore. (Would be interesting to know why.)\r
+ if ((fileName == null) || fileName.isEmpty()) {\r
+ return ValidationStatus.error(Messages.wizardExportAlignmentErrorMissingFileName);\r
+ }\r
+ else if (!ExportSingleReadAlignmentWizardModel.FORMATS.get(index).createFileFilter(TestStrategy.EXTENSION).accept(\r
+ new File(fileName))) {\r
+\r
+ return ValidationStatus.warning(Messages.wizardExportAlignmentwarningMissingExtension);\r
+ }\r
+ else if (fileName.charAt(0) == ExtensionFileFilter.EXTENSION_SEPARATOR) {\r
+ return ValidationStatus.warning(Messages.wizardExportAlignmentWarningFileNameStartsDot);\r
+ }\r
+ else if (new File(fileName).exists()) {\r
+ return ValidationStatus.warning(Messages.wizardExportAlignmentWarningFileExists);\r
+ }\r
+ else {\r
+ return ValidationStatus.ok();\r
+ }\r
+ }\r
+ });\r
+ }\r
+\r
+\r
+ private JPhyloIOFormatInfo getSelectedFormat() {\r
+ return ExportSingleReadAlignmentWizardModel.FORMATS.get(formatComboBox.getSelectionIndex());\r
+ }\r
+}\r
--- /dev/null
+// $Id$
+/**
+* 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.molecular.io.wizard;
+
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.validation.MultiValidator;
+import org.eclipse.core.databinding.validation.ValidationStatus;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.databinding.swt.ISWTObservableValue;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.wizard.WizardPageSupport;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+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.molecular.Messages;
+
+
+
+/**
+ * Wizard page that allows to specify which parts of a single read alignment shall be exported to an alignment file.
+ *
+ * @author Ben Stöver
+ * @date 18.04.2016
+ */
+public class ExportSingleReadAlignmentOptionsPage extends AbstractExportSingleReadAlignmentWizardPage {
+ private Text consensusSequenceLabelTextField;
+ private Button exportConsensusSequenceCB;
+ private Button exportSingleReadsCB;
+ private Button gapRadioButton;
+ private Button missingDataRadioButton;
+ private Button elongateSequecesCheckBox;
+
+
+ /**
+ * Create the wizard.
+ */
+ public ExportSingleReadAlignmentOptionsPage() {
+ super("ExportSingleReadAlignmentOptions"); //TODO Which pageName should be used here? Any conventions? //$NON-NLS-1$
+ setTitle(Messages.wizardExportAlignmentOptionsTitle);
+ setDescription(Messages.wizardExportAlignmentOptionsDescription);
+ }
+
+
+ /**
+ * Create contents of the wizard.
+ *
+ * @param parent the parent component
+ */
+ @Override
+ public void createControl(Composite parent) {
+ DataBindingContext dbc = new DataBindingContext();
+ WizardPageSupport.create(this, dbc);
+
+ Composite container = new Composite(parent, SWT.NULL);
+
+ setControl(container);
+ container.setLayout(new FormLayout());
+
+ exportSingleReadsCB = new Button(container, SWT.CHECK);
+ FormData fd_exportSingleReadsCB = new FormData();
+ fd_exportSingleReadsCB.top = new FormAttachment(0, 40);
+ fd_exportSingleReadsCB.left = new FormAttachment(0, 10);
+ exportSingleReadsCB.setLayoutData(fd_exportSingleReadsCB);
+ exportSingleReadsCB.setText(Messages.wizardExportAlignmentExportSingleReads);
+ final ISWTObservableValue exportSingleReadsObservable = SWTObservables.observeSelection(exportSingleReadsCB);
+ dbc.bindValue(exportSingleReadsObservable, getWizard().getModel().getExportSingleReadsObservable());
+ exportSingleReadsCB.setSelection(false);
+ exportSingleReadsCB.setSelection(true); // Must happen after the component has been bound to the model.
+
+
+ exportConsensusSequenceCB = new Button(container, SWT.CHECK);
+ exportConsensusSequenceCB.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ consensusSequenceLabelTextField.setEnabled(exportConsensusSequenceCB.getSelection());
+ }
+ });
+ FormData fd_exportConsensusSequenceCB = new FormData();
+ fd_exportConsensusSequenceCB.top = new FormAttachment(exportSingleReadsCB, 6);
+ fd_exportConsensusSequenceCB.left = new FormAttachment(0, 10);
+ exportConsensusSequenceCB.setLayoutData(fd_exportConsensusSequenceCB);
+ exportConsensusSequenceCB.setText(Messages.wizardExportAlignmentExportConsensusSeqLabel);
+ final ISWTObservableValue exportConsensusSequenceObservable = SWTObservables.observeSelection(exportConsensusSequenceCB);
+ dbc.bindValue(exportConsensusSequenceObservable, getWizard().getModel().getExportConsensusSequenceObservable());
+ exportConsensusSequenceCB.setSelection(false);
+ exportConsensusSequenceCB.setSelection(true); // Must happen after the component has been bound to the model.
+
+ consensusSequenceLabelTextField = new Text(container, SWT.BORDER);
+ FormData fd_consensusSequenceNameTextField = new FormData();
+ fd_consensusSequenceNameTextField.bottom = new FormAttachment(exportConsensusSequenceCB, 32, SWT.BOTTOM);
+ fd_consensusSequenceNameTextField.top = new FormAttachment(exportConsensusSequenceCB, 6);
+ fd_consensusSequenceNameTextField.right = new FormAttachment(100, -10);
+ fd_consensusSequenceNameTextField.left = new FormAttachment(0, 32);
+ consensusSequenceLabelTextField.setLayoutData(fd_consensusSequenceNameTextField);
+ final ISWTObservableValue consensusSequenceLabelObservable = SWTObservables.observeText(consensusSequenceLabelTextField, SWT.Modify);
+ dbc.bindValue(consensusSequenceLabelObservable, getWizard().getModel().getConsensusSequenceLabelObservable());
+ consensusSequenceLabelTextField.setText("Consensus"); //$NON-NLS-1$
+
+ Label lblSpecifyTheSequences = new Label(container, SWT.NONE);
+ FormData fd_lblSpecifyTheSequences = new FormData();
+ fd_lblSpecifyTheSequences.top = new FormAttachment(0, 10);
+ fd_lblSpecifyTheSequences.left = new FormAttachment(0, 10);
+ lblSpecifyTheSequences.setLayoutData(fd_lblSpecifyTheSequences);
+ lblSpecifyTheSequences.setText(Messages.wizardExportAlignmentExportedSeqHeading);
+
+ Label lblSpecifyAdditionalExport = new Label(container, SWT.NONE);
+ FormData fd_lblSpecifyAdditionalExport = new FormData();
+ fd_lblSpecifyAdditionalExport.top = new FormAttachment(consensusSequenceLabelTextField, 24);
+ fd_lblSpecifyAdditionalExport.left = new FormAttachment(exportSingleReadsCB, 0, SWT.LEFT);
+ lblSpecifyAdditionalExport.setLayoutData(fd_lblSpecifyAdditionalExport);
+ lblSpecifyAdditionalExport.setText(Messages.wizardExportAlignmentAdditionalOptionsHeading);
+
+ elongateSequecesCheckBox = new Button(container, SWT.CHECK);
+ elongateSequecesCheckBox.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ missingDataRadioButton.setEnabled(elongateSequecesCheckBox.getSelection());
+ gapRadioButton.setEnabled(elongateSequecesCheckBox.getSelection());
+ }
+ });
+ FormData fd_btnElongateSequecesTo = new FormData();
+ fd_btnElongateSequecesTo.left = new FormAttachment(exportSingleReadsCB, 0, SWT.LEFT);
+ fd_btnElongateSequecesTo.top = new FormAttachment(lblSpecifyAdditionalExport, 12);
+ elongateSequecesCheckBox.setLayoutData(fd_btnElongateSequecesTo);
+ elongateSequecesCheckBox.setText(Messages.wizardExportAlignmentElongateSeqHeading);
+ dbc.bindValue(SWTObservables.observeSelection(elongateSequecesCheckBox), getWizard().getModel().getElongateSequencesObservable());
+
+ missingDataRadioButton = new Button(container, SWT.RADIO);
+ FormData fd_missingDataRadioButton = new FormData();
+ fd_missingDataRadioButton.top = new FormAttachment(elongateSequecesCheckBox, 6);
+ missingDataRadioButton.setLayoutData(fd_missingDataRadioButton);
+ missingDataRadioButton.setEnabled(false);
+ missingDataRadioButton.setText(Messages.wizardExportAlignmentElongateSeqMissingData);
+
+ gapRadioButton = new Button(container, SWT.RADIO);
+ fd_missingDataRadioButton.left = new FormAttachment(gapRadioButton, 80);
+ FormData fd_gapRadioButton = new FormData();
+ fd_gapRadioButton.top = new FormAttachment(elongateSequecesCheckBox, 6);
+ fd_gapRadioButton.left = new FormAttachment(consensusSequenceLabelTextField, 0, SWT.LEFT);
+ gapRadioButton.setLayoutData(fd_gapRadioButton);
+ gapRadioButton.setEnabled(false);
+ gapRadioButton.setSelection(true);
+ gapRadioButton.setText(Messages.wizardExportAlignmentElongateSeqGap);
+ dbc.bindValue(SWTObservables.observeSelection(gapRadioButton), getWizard().getModel().getUseGapTokenObservable());
+
+ setPageComplete(true); // Allow to finish the wizard in the previous page.
+
+ dbc.addValidationStatusProvider(new MultiValidator() {
+ @Override
+ protected IStatus validate() {
+ String label = (String)consensusSequenceLabelObservable.getValue();
+ boolean exportConsensus = (Boolean)exportConsensusSequenceObservable.getValue();
+ boolean exportReads = (Boolean)exportSingleReadsObservable.getValue();
+
+ if (!exportConsensus && !exportReads) {
+ return ValidationStatus.error(Messages.wizardExportAlignmentErrorNothingToExport);
+ }
+ else if (exportConsensus && ((label == null) || label.isEmpty())) {
+ return ValidationStatus.error(Messages.wizardExportAlignmentErrorMissingSeqLabel);
+ }
+ else {
+ return ValidationStatus.ok();
+ }
+ }
+ });
+ }
+}
--- /dev/null
+// $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.wizard;\r
+\r
+\r
+import org.eclipse.jface.wizard.Wizard;\r
+\r
+\r
+\r
+/**\r
+ * A wizard to export a single read alignment from <i>CDM</i> using <i>JPhyloIO</i>.\r
+ *\r
+ * @author Ben Stöver\r
+ * @date 23.06.2016\r
+ */\r
+public class ExportSingleReadAlignmentWizard extends Wizard {\r
+ private ExportSingleReadAlignmentWizardModel model = new ExportSingleReadAlignmentWizardModel();\r
+\r
+ private ExportSingleReadAlignmentFileFormatPage fileFormatPage;\r
+ private ExportSingleReadAlignmentOptionsPage optionsPage;\r
+\r
+\r
+ public ExportSingleReadAlignmentWizard() {\r
+ setWindowTitle("Export single read alignment"); //TODO Use multi language message\r
+ }\r
+\r
+\r
+ public ExportSingleReadAlignmentWizardModel getModel() {\r
+ return model;\r
+ }\r
+\r
+\r
+ @Override\r
+ public void addPages() {\r
+ fileFormatPage = new ExportSingleReadAlignmentFileFormatPage();\r
+ optionsPage = new ExportSingleReadAlignmentOptionsPage();\r
+\r
+ addPage(fileFormatPage);\r
+ addPage(optionsPage);\r
+ }\r
+\r
+\r
+ @Override\r
+ public boolean performFinish() {\r
+ return true;\r
+ //TODO Add default extension to file, if necessary?\r
+ }\r
+}\r
--- /dev/null
+/**
+* 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.molecular.io.wizard;
+
+
+import info.bioinfweb.commons.bio.SequenceUtils;
+import info.bioinfweb.jphyloio.events.type.EventContentType;
+import info.bioinfweb.jphyloio.factory.JPhyloIOReaderWriterFactory;
+import info.bioinfweb.jphyloio.formatinfo.JPhyloIOFormatInfo;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.WritableValue;
+
+
+
+/**
+ * The data model for a wizard to export single read alignments to different file formats using <i>JPhyloIO</i>.
+ *
+ * @author Ben Stöver
+ * @date 16.11.2016
+ */
+public class ExportSingleReadAlignmentWizardModel {
+ protected static final JPhyloIOReaderWriterFactory READER_WRITER_FACTORY = new JPhyloIOReaderWriterFactory();
+ protected static final List<JPhyloIOFormatInfo> FORMATS = createFormatInfoList();
+
+
+ private IObservableValue formatInfo = new WritableValue(0, Integer.class);
+ private IObservableValue fileName = new WritableValue(null, String.class);
+ private IObservableValue exportSingleReads = new WritableValue(true, Boolean.class);
+ private IObservableValue exportConsensusSequence = new WritableValue(true, Boolean.class);
+ private IObservableValue consensusSequenceLabel = new WritableValue("Consensus", String.class);
+ private IObservableValue elongateSequences = new WritableValue(false, Boolean.class);
+ private IObservableValue useGapToken = new WritableValue(true, Boolean.class);
+
+
+ private static List<JPhyloIOFormatInfo> createFormatInfoList() {
+ List<JPhyloIOFormatInfo> result = new ArrayList<JPhyloIOFormatInfo>();
+ for (String formatID : READER_WRITER_FACTORY.getFormatIDsSet()) {
+ JPhyloIOFormatInfo info = READER_WRITER_FACTORY.getFormatInfo(formatID);
+ if (info.isElementModeled(EventContentType.ALIGNMENT, false)) { // Check if the current format allows to write alignments.
+ result.add(info);
+ }
+ }
+ return Collections.unmodifiableList(result);
+ }
+
+
+ protected IObservableValue getFormatInfoObservable() {
+ return formatInfo;
+ }
+
+
+ /**
+ * Returns the <i>JPhyloIO</i> format info object to be used for exporting.
+ *
+ * @return the format info
+ */
+ public JPhyloIOFormatInfo getFormatInfo() {
+ return FORMATS.get((Integer)formatInfo.getValue());
+ }
+
+
+ public String getFileName() {
+ return (String)fileName.getValue();
+ }
+
+
+ protected IObservableValue getFileNameObservable() {
+ return fileName;
+ }
+
+
+ public boolean isExportSingleReads() {
+ return (Boolean)exportSingleReads.getValue();
+ }
+
+
+ protected IObservableValue getExportSingleReadsObservable() {
+ return exportSingleReads;
+ }
+
+
+ public boolean isExportConsensusSequence() {
+ return (Boolean)exportConsensusSequence.getValue();
+ }
+
+
+ protected IObservableValue getExportConsensusSequenceObservable() {
+ return exportConsensusSequence;
+ }
+
+
+ public String getConsensusSequenceLabel() {
+ return (String)consensusSequenceLabel.getValue();
+ }
+
+
+ protected IObservableValue getConsensusSequenceLabelObservable() {
+ return consensusSequenceLabel;
+ }
+
+
+ public String getElongationToken() {
+ if ((Boolean)elongateSequences.getValue()) {
+ if ((Boolean)useGapToken.getValue()) {
+ return Character.toString(SequenceUtils.GAP_CHAR);
+ }
+ else {
+ return Character.toString(SequenceUtils.MISSING_DATA_CHAR);
+ }
+ }
+ else {
+ return null;
+ }
+ }
+
+
+ protected IObservableValue getElongateSequencesObservable() {
+ return elongateSequences;
+ }
+
+
+ protected IObservableValue getUseGapTokenObservable() {
+ return useGapToken;
+ }
+}
--- /dev/null
+// $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 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
+ */\r
+public class SequenceIDIteratorTest {\r
+ @Test\r
+ public void test_next() {\r
+ SequenceIDIterator iterator = new SequenceIDIterator(3, true);\r
+\r
+ for (int i = 0; i < 3; i++) {\r
+ assertTrue(iterator.hasNext());\r
+ assertEquals("seqSingleRead" + i, iterator.next());\r
+ }\r
+ assertTrue(iterator.hasNext());\r
+ assertEquals("seqConsensus", iterator.next());\r
+ assertFalse(iterator.hasNext());\r
+ }\r
+\r
+\r
+ @Test\r
+ public void test_next_woConsensus() {\r
+ SequenceIDIterator iterator = new SequenceIDIterator(3, false);\r
+\r
+ for (int i = 0; i < 3; i++) {\r
+ assertTrue(iterator.hasNext());\r
+ assertEquals("seqSingleRead" + i, iterator.next());\r
+ }\r
+ assertFalse(iterator.hasNext());\r
+ }\r
+}\r
-<?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="4.5.0.qualifier">
- <aboutInfo>
- <image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
- <text>
- %productBlurb
- </text>
- </aboutInfo>
- <configIni use="default"></configIni>
- <launcherArgs>
- <programArgs>-data @user.home/.cdmLibrary -Dserver_port=58080
- </programArgs>
- <vmArgs>-Xmx512M -XX:MaxPermSize=256M -Dorg.eclipse.update.reconcile=false -Declipse.p2.unsignedPolicy=allow
- </vmArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
- </vmArgsMac>
- </launcherArgs>
- <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>
- </launcher>
- <vm></vm>
- <plugins></plugins>
- <features>
- <feature id="eu.etaxonomy.taxeditor.feature"/>
- </features>
- <configurations>
- <plugin autoStart="true" id="eu.etaxonomy.taxeditor.application" startLevel="5"/>
- <plugin autoStart="true" id="org.eclipse.core.runtime" startLevel="4"/>
- <plugin autoStart="true" id="org.eclipse.equinox.common" startLevel="2"/>
- <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"/>
- </configurations>
-</product>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<?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="4.5.0.qualifier">\r
+ <aboutInfo>\r
+ <image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>\r
+ <text>\r
+ %productBlurb\r
+ </text>\r
+ </aboutInfo>\r
+ <configIni use="default"></configIni>\r
+ <launcherArgs>\r
+ <programArgs>-data @user.home/.cdmLibrary -Dserver_port=58080\r
+ </programArgs>\r
+ <vmArgs>-Xmx512M -XX:MaxPermSize=256M -Dorg.eclipse.update.reconcile=false -Declipse.p2.unsignedPolicy=allow\r
+ </vmArgs>\r
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts\r
+ </vmArgsMac>\r
+ </launcherArgs>\r
+ <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"/>\r
+ <splash location="eu.etaxonomy.taxeditor.application" startupForegroundColor="000000" startupMessageRect="7,432,360,20" startupProgressRect="5,447,366,15"/>\r
+ <launcher name="TaxonomicEditor">\r
+ <solaris/>\r
+ <win useIco="false">\r
+ <bmp/>\r
+ </win>\r
+ </launcher>\r
+ <vm></vm>\r
+ <plugins></plugins>\r
+ <features>\r
+ <feature id="eu.etaxonomy.taxeditor.feature"/>\r
+ </features>\r
+ <configurations>\r
+ <plugin autoStart="true" id="eu.etaxonomy.taxeditor.application" startLevel="5"/>\r
+ <plugin autoStart="true" id="org.eclipse.core.runtime" startLevel="4"/>\r
+ <plugin autoStart="true" id="org.eclipse.equinox.common" startLevel="2"/>\r
+ <plugin autoStart="true" id="org.eclipse.equinox.ds" startLevel="2"/>\r
+ <plugin autoStart="true" id="org.eclipse.equinox.p2.transport.ecf" startLevel="4"/>\r
+ <plugin autoStart="true" id="org.eclipse.equinox.simpleconfigurator" startLevel="1"/>\r
+ </configurations>\r
+</product>\r
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="Eclipse Indigo Target" sequenceNumber="7">
-<locations>
-<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.0.5.20111003_1754-3676ac8-dev-e36"/>
-<unit id="org.eclipse.swtbot.eclipse.gef.feature.group" version="2.0.5.20111003_1754-3676ac8-dev-e36"/>
-<unit id="org.eclipse.swtbot.ide.feature.group" version="2.0.5.20111003_1754-3676ac8-dev-e36"/>
-<unit id="org.eclipse.swtbot.eclipse.test.junit4.feature.group" version="2.0.5.20111003_1754-3676ac8-dev-e36"/>
-<repository location="http://download.eclipse.org/technology/swtbot/helios/dev-build/update-site"/>
-</location>
-<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.jdt.feature.group" version="3.7.2.v20120120-1414-7z8gFcuFMP7BW5XTz0jLTnz0l9B1"/>
-<unit id="org.eclipse.pde.source.feature.group" version="3.7.2.v20120120-1420-7b7rFUOFEx2Xnqafnpz0E--0"/>
-<unit id="org.eclipse.platform.feature.group" version="3.7.2.v20120207-1839-9gF7UHPDFxGjd-PqDr2jX_4yKaumkoHTz04_q-q"/>
-<unit id="org.eclipse.equinox.executable.feature.group" version="3.5.1.v20111216-1653-7P7NFUIFIbaUcU77s0KQWHw5HZTZ"/>
-<unit id="org.eclipse.platform.source.feature.group" version="3.7.2.v20120207-1839-9gF7UHPDFxGjd-PqDr2jX_4yKaumkoHTz04_q-q"/>
-<unit id="org.eclipse.platform.sdk" version="3.7.2.M20120208-0800"/>
-<unit id="org.eclipse.rcp.feature.group" version="3.7.2.v20120120-1424-9DB5FmnFq5JCf1UA38R-kz0S0272"/>
-<unit id="org.eclipse.rcp.source.feature.group" version="3.7.2.v20120120-1424-9DB5FmnFq5JCf1UA38R-kz0S0272"/>
-<unit id="org.eclipse.rcp.sdk.id" version="3.7.2.M20120208-0800"/>
-<unit id="org.eclipse.equinox.sdk.feature.group" version="3.7.1.R37x_v20110907-7M7W8i8eNV4WsRkue-4Vq4J6pCyW"/>
-<unit id="org.eclipse.zest.sdk.feature.group" version="1.3.0.v20110425-2050-67C18COMPIAKSVKGQaRTQTiSN8WP"/>
-<unit id="org.eclipse.pde.feature.group" version="3.7.2.v20120120-1420-7b7rFUOFEx2Xnqafnpz0E--0"/>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<?pde version="3.8"?><target name="Eclipse Indigo Target" sequenceNumber="8">\r
+<locations>\r
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">\r
+<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.0.5.20111003_1754-3676ac8-dev-e36"/>\r
+<unit id="org.eclipse.swtbot.eclipse.gef.feature.group" version="2.0.5.20111003_1754-3676ac8-dev-e36"/>\r
+<unit id="org.eclipse.swtbot.ide.feature.group" version="2.0.5.20111003_1754-3676ac8-dev-e36"/>\r
+<unit id="org.eclipse.swtbot.eclipse.test.junit4.feature.group" version="2.0.5.20111003_1754-3676ac8-dev-e36"/>\r
+<repository location="http://download.eclipse.org/technology/swtbot/helios/dev-build/update-site"/>\r
+</location>\r
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">\r
+<unit id="org.eclipse.jdt.feature.group" version="3.7.2.v20120120-1414-7z8gFcuFMP7BW5XTz0jLTnz0l9B1"/>\r
+<unit id="org.eclipse.pde.source.feature.group" version="3.7.2.v20120120-1420-7b7rFUOFEx2Xnqafnpz0E--0"/>\r
+<unit id="org.eclipse.platform.feature.group" version="3.7.2.v20120207-1839-9gF7UHPDFxGjd-PqDr2jX_4yKaumkoHTz04_q-q"/>\r
+<unit id="org.eclipse.equinox.executable.feature.group" version="3.5.1.v20111216-1653-7P7NFUIFIbaUcU77s0KQWHw5HZTZ"/>\r
+<unit id="org.eclipse.platform.source.feature.group" version="3.7.2.v20120207-1839-9gF7UHPDFxGjd-PqDr2jX_4yKaumkoHTz04_q-q"/>\r
+<unit id="org.eclipse.platform.sdk" version="3.7.2.M20120208-0800"/>\r
+<unit id="org.eclipse.rcp.feature.group" version="3.7.2.v20120120-1424-9DB5FmnFq5JCf1UA38R-kz0S0272"/>\r
+<unit id="org.eclipse.rcp.source.feature.group" version="3.7.2.v20120120-1424-9DB5FmnFq5JCf1UA38R-kz0S0272"/>\r
+<unit id="org.eclipse.rcp.sdk.id" version="3.7.2.M20120208-0800"/>\r
+<unit id="org.eclipse.equinox.sdk.feature.group" version="3.7.1.R37x_v20110907-7M7W8i8eNV4WsRkue-4Vq4J6pCyW"/>\r
+<unit id="org.eclipse.zest.sdk.feature.group" version="1.3.0.v20110425-2050-67C18COMPIAKSVKGQaRTQTiSN8WP"/>\r
+<unit id="org.eclipse.pde.feature.group" version="3.7.2.v20120120-1420-7b7rFUOFEx2Xnqafnpz0E--0"/>\r
<repository location="http://download.eclipse.org/releases/indigo/"/>
-</location>
-<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.nebula.widgets.compositetable.feature.feature.group" version="1.0.0.201409040043"/>
-<repository location="http://archive.eclipse.org/nebula/Q32014/release/"/>
-</location>
-</locations>
-</target>
+</location>\r
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">\r
+<unit id="org.eclipse.nebula.widgets.compositetable.feature.feature.group" version="1.0.0.201409040043"/>\r
+<repository location="http://archive.eclipse.org/nebula/Q32014/release/"/>\r
+</location>\r
+</locations>\r
+</target>\r