eu.etaxonomy.taxeditor.cdmlib/lib/JavaAPIforKml*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/iiif-apis*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/commons-beanutils*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-lang3*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-codec*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-imaging*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.servletbridge.extensionbundle-1.2.0.v20100503.jar
eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.transforms.hook-1.0.300.v20100719.jar
Bundle-ManifestVersion: 2
Bundle-Name: Application
Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.17.0
Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
Bundle-Vendor: EDIT
Bundle-Localization: OSGI-INF/l10n/plugin
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
/**
* @author pplitzner
* @date 05.07.2017
- *
*/
public class LifeCycleManager implements IContextListener{
private void processAdditions(MApplication application) {
this.application = application;
hideParts();
-
}
@ProcessRemovals
}catch(IllegalStateException e){
//application does not have an active window
}
-
}
-
-
-
}
- /**
- * {@inheritDoc}
- */
@Override
public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
}
- /**
- * {@inheritDoc}
- */
@Override
public void contextStop(IMemento memento, IProgressMonitor monitor) {
hideParts();
}
}
- /**
- * {@inheritDoc}
- */
@Override
public void contextStart(IMemento memento, IProgressMonitor monitor) {
PreferencesUtil.setDefaults();
* @author n.hoffmann
*/
public class TaxonomicEditorPlugin extends AbstractUIPlugin {
- private static final Logger logger = Logger
- .getLogger(TaxonomicEditorPlugin.class);
+
+ private static final Logger logger = Logger.getLogger(TaxonomicEditorPlugin.class);
// The plug-in ID
/** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.application"</code> */
/**
* @author pplitzner
* @date 10.12.2013
- *
*/
public class DerivatePerspective extends Default {
layout.addView(DETAILS_VIEW, IPageLayout.RIGHT, 0.6f, layout.getEditorArea());
layout.addView(FACTUAL_DATA_VIEW, IPageLayout.BOTTOM, 0.6f, NAVIGATOR);
-
}
-
-}
+}
\ No newline at end of file
/**
* @author n.hoffmann
- *
*/
public class PolytomousKey extends Default {
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
- */
@Override
public void createInitialLayout(IPageLayout layout) {
layout.addView(AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_KEY_POLYTOMOUS_E4_POLYTOMOUSKEYVIEWPARTE4, IPageLayout.LEFT, 0.25f, layout.getEditorArea());
createAdditionalFolder(layout, layout.getEditorArea());
}
-
}
/**
* @author n.hoffmann
* @created Jan 17, 2011
- * @version 1.0
*/
public class Taxonomic extends Default {
\r
createAdditionalFolder(layout, layout.getEditorArea());\r
}\r
-\r
-\r
-}\r
-\r
+}
\ No newline at end of file
Bundle-ManifestVersion: 2
Bundle-Name: Bulkeditor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.bulkeditor;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.17.0
Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.SpecimenDescription;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
+import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.cdm.model.name.TaxonName;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.permission.Group;
import eu.etaxonomy.cdm.model.permission.User;
import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorQuery;
if (element instanceof DescriptionBase){
if (element instanceof TaxonNameDescription){
TaxonName changedName = ((TaxonNameDescription)element).getTaxonName();
- getEditorInput().addSaveCandidate(changedName);
+ if (getEditorInput() instanceof TaxonEditorInput){
+ IStructuredSelection sel = getSelection();
+ Object firstElement = sel.getFirstElement();
+ if (firstElement instanceof TaxonBase){
+ getEditorInput().addSaveCandidate((TaxonBase)firstElement);
+ }
+ }else{
+ getEditorInput().addSaveCandidate(changedName);
+ }
+
input.replaceInModel(changedName);
}else if (element instanceof TaxonDescription){
Taxon changedTaxon = ((TaxonDescription)element).getTaxon();
}else if (element instanceof DescriptionElementBase){
if (((DescriptionElementBase)element).getInDescription() instanceof TaxonNameDescription){
TaxonName changedName = ((TaxonNameDescription)((DescriptionElementBase)element).getInDescription()).getTaxonName();
- getEditorInput().addSaveCandidate(changedName);
+ //check whether the bulk editor is taxon or name bulk editor
+ if (getEditorInput() instanceof TaxonEditorInput){
+ IStructuredSelection sel = getSelection();
+ Object firstElement = sel.getFirstElement();
+ if (firstElement instanceof TaxonBase){
+ getEditorInput().addSaveCandidate((TaxonBase)firstElement);
+ }
+ }else{
+ getEditorInput().addSaveCandidate(changedName);
+ }
input.replaceInModel(changedName);
}else if (((DescriptionElementBase)element).getInDescription() instanceof TaxonDescription){
Taxon changedTaxon = ((TaxonDescription)((DescriptionElementBase)element).getInDescription()).getTaxon();
getEditorInput().addSaveCandidate(changedTaxon);
input.replaceInModel(changedTaxon);
+ }else if (((DescriptionElementBase)element).getInDescription() instanceof SpecimenDescription){
+ SpecimenOrObservationBase changedSpecimen = ((SpecimenDescription)((DescriptionElementBase)element).getInDescription()).getDescribedSpecimenOrObservation();
+ getEditorInput().addSaveCandidate(changedSpecimen);
+ input.replaceInModel(changedSpecimen);
+ }
+ }else if (element instanceof Media){
+ IStructuredSelection sel = getSelection();
+ Object firstElement = sel.getFirstElement();
+ if (firstElement instanceof TaxonBase){
+ TaxonBase changedTaxon = (TaxonBase)sel.getFirstElement();
+ getEditorInput().addSaveCandidate(changedTaxon);
+ input.replaceInModel(changedTaxon);
+ }else if (firstElement instanceof SpecimenOrObservationBase){
+ SpecimenOrObservationBase changedSpecimen = (SpecimenOrObservationBase)sel.getFirstElement();
+ getEditorInput().addSaveCandidate(changedSpecimen);
+ input.replaceInModel(changedSpecimen);
}
}else if(element instanceof Group){
Group oldGroup = ((GroupEditorInput)input).getEntityFromModel((Group)element);
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
-
package eu.etaxonomy.taxeditor.bulkeditor.e4;
import java.io.File;
import javax.inject.Inject;
+import org.eclipse.e4.core.services.events.IEventBroker;
import org.eclipse.e4.ui.services.EMenuService;
import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
import org.eclipse.jface.layout.GridDataFactory;
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorQuery;
import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
import eu.etaxonomy.taxeditor.model.ImageResources;
import eu.etaxonomy.taxeditor.store.StoreUtil;
/**
- *
* @author pplitzner
* @since Sep 8, 2017
- *
*/
public class BulkEditorE4Composite extends Composite {
private BulkEditorE4 bulkEditor;
private BulkEditorSearchE4 bulkEditorSearch;
+ @Inject
+ private IEventBroker eventBroker;
+
public BulkEditorE4Composite(BulkEditorE4 bulkEditor, Composite parent, int style) {
super(parent, style);
parent.setLayout(new GridLayout());
bottomComposite.setLayout(new GridLayout());
}
- @SuppressWarnings("unused")
public void init(AbstractBulkEditorInput<?> input){
input.getPropertyKeys().forEach(key->columnList.add(key));
selectionListener.setFullySelectedRowsOnly(false);
bottomComposite.layout();
-
}
private void createTable(){
public void configureUiBindings(
UiBindingRegistry uiBindingRegistry) {
// add e4 menu to NatTable
- new PopupMenuBuilder(natTable, e4Menu)
- .withHideColumnMenuItem()
- .withShowAllColumnsMenuItem()
- .build();
+ new PopupMenuBuilder(natTable, e4Menu)
+ .withHideColumnMenuItem()
+ .withShowAllColumnsMenuItem()
+ .build();
// register the UI binding for header, corner and body region
uiBindingRegistry.registerMouseDownBinding(
}
});
-
//enable sorting
natTable.addConfiguration(new SingleClickSortConfiguration());
}
public void performSearch(BulkEditorQuery query) {
+ eventBroker.post(WorkbenchEventConstants.CURRENT_ACTIVE_EDITOR, null);
performSearch(query, null);
+
}
- /** {@inheritDoc}
- * @param selection */
public void performSearch(BulkEditorQuery query, IStructuredSelection selection) {
if (query != null) {
if(StoreUtil.promptCheckIsDirty(bulkEditor)){
}
}
- ListDataProvider<CdmBase> getBodyDataProvider() {
+ protected ListDataProvider<CdmBase> getBodyDataProvider() {
return bodyDataProvider;
}
- ESelectionService getSelService() {
+ protected ESelectionService getSelService() {
return selService;
}
- NatTable getNatTable() {
+ protected NatTable getNatTable() {
return natTable;
}
- public Properties getNatTableState() {
+ protected Properties getNatTableState() {
return bulkEditorSearch.getNatTableState();
}
- File getStatePropertiesFile() {
+ protected File getStatePropertiesFile() {
return bulkEditorSearch.getStatePropertiesFile();
}
-
}
Bundle-ManifestVersion: 2
Bundle-Name: CDM Library Dependencies Plugin
Bundle-SymbolicName: eu.etaxonomy.taxeditor.cdmlib;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.17.0
Eclipse-BundleShape: dir
Export-Package: com.google.api,
com.google.api.detect,
eu.etaxonomy.cdm.filter,
eu.etaxonomy.cdm.format,
eu.etaxonomy.cdm.format.common,
- eu.etaxonomy.cdm.format.taxon,
eu.etaxonomy.cdm.format.description,
+ eu.etaxonomy.cdm.format.taxon,
eu.etaxonomy.cdm.hibernate,
eu.etaxonomy.cdm.hibernate.search,
eu.etaxonomy.cdm.io.api.application,
eu.etaxonomy.cdm.persistence.dto,
eu.etaxonomy.cdm.persistence.fetch,
eu.etaxonomy.cdm.persistence.hibernate,
- eu.etaxonomy.cdm.persistence.permission,
- eu.etaxonomy.cdm.persistence.permission.voter,
eu.etaxonomy.cdm.persistence.hibernate.replace,
eu.etaxonomy.cdm.persistence.hibernate.replace.impl,
+ eu.etaxonomy.cdm.persistence.permission,
+ eu.etaxonomy.cdm.persistence.permission.voter,
eu.etaxonomy.cdm.persistence.query,
eu.etaxonomy.cdm.persistence.view,
eu.etaxonomy.cdm.print,
org.apache.commons.collections;uses:="org.apache.commons.collections.keyvalue,new org.apache.commons.collections",
org.apache.commons.collections.buffer,
org.apache.commons.dbcp,
+ org.apache.commons.imaging,
org.apache.commons.io;uses:="org.apache.commons.io.filefilter",
org.apache.commons.lang;uses:="org.apache.commons.lang.exception",
org.apache.commons.lang.exception,
org.apache.lucene.util.fst,
org.apache.lucene.util.mutable,
org.apache.lucene.util.packed,
- org.apache.sanselan;uses:="org.apache.sanselan.common,org.apache.sanselan.common.byteSources",
org.apache.xerces.dom,
- org.h2.jdbc,
org.hamcrest,
org.hibernate,
org.hibernate.annotations.common.reflection,
org.springframework.security.core,
org.springframework.security.core.context,
org.springframework.security.core.userdetails,
- org.springframework.security.oauth2.client,
- org.springframework.security.oauth2.client.filter,
- org.springframework.security.oauth2.client.filter.state,
- org.springframework.security.oauth2.client.http,
- org.springframework.security.oauth2.client.resource,
- org.springframework.security.oauth2.client.test,
- org.springframework.security.oauth2.client.token,
- org.springframework.security.oauth2.client.token.auth,
- org.springframework.security.oauth2.client.token.grant.client,
- org.springframework.security.oauth2.client.token.grant.code,
- org.springframework.security.oauth2.client.token.grant.implicit,
- org.springframework.security.oauth2.client.token.grant.password,
- org.springframework.security.oauth2.client.token.grant.redirect,
- org.springframework.security.oauth2.common,
- org.springframework.security.oauth2.common.exceptions,
- org.springframework.security.oauth2.common.util,
- org.springframework.security.oauth2.config.annotation.builders,
- org.springframework.security.oauth2.config.annotation.configuration,
- org.springframework.security.oauth2.config.annotation.configurers,
- org.springframework.security.oauth2.config.annotation.web.configuration,
- org.springframework.security.oauth2.config.annotation.web.configurers,
- org.springframework.security.oauth2.config.xml,
- org.springframework.security.oauth2.http.converter,
- org.springframework.security.oauth2.http.converter.jaxb,
- org.springframework.security.oauth2.provider,
- org.springframework.security.oauth2.provider.approval,
- org.springframework.security.oauth2.provider.authentication,
- org.springframework.security.oauth2.provider.client,
- org.springframework.security.oauth2.provider.code,
- org.springframework.security.oauth2.provider.endpoint,
- org.springframework.security.oauth2.provider.error,
- org.springframework.security.oauth2.provider.expression,
- org.springframework.security.oauth2.provider.implicit,
- org.springframework.security.oauth2.provider.password,
- org.springframework.security.oauth2.provider.refresh,
- org.springframework.security.oauth2.provider.request,
- org.springframework.security.oauth2.provider.token,
- org.springframework.security.oauth2.provider.token.store,
- org.springframework.security.oauth2.provider.token.store.redis,
- org.springframework.security.oauth2.provider.vote,
org.springframework.security.provisioning,
org.springframework.stereotype,
org.springframework.transaction;uses:="org.springframework.core",
org.apache.commons.logging,
org.springframework.beans.factory",
org.springframework.util,
- org.springframework.web.servlet;
- uses:="org.springframework.web.multipart,
- org.apache.commons.logging,
- org.springframework.context.i18n,
- org.springframework.ui.context,
- org.springframework.util,
- org.springframework.beans,
- org.springframework.context,
- org.springframework.web.context,
- org.springframework.context.event,
- javax.servlet,
- org.springframework.ui,
- javax.servlet.http",
org.swtchart
Bundle-Vendor: EDIT
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
lib/aspectjrt-1.8.8.jar,
lib/aspectjweaver-1.8.8.jar,
lib/batik-xml-1.7.jar,
- lib/cdmlib-commons-5.16.0.jar,
- lib/cdmlib-ext-5.16.0.jar,
- lib/cdmlib-io-5.16.0.jar,
- lib/cdmlib-model-5.16.0.jar,
- lib/cdmlib-persistence-5.16.0.jar,
- lib/cdmlib-print-5.16.0.jar,
- lib/cdmlib-remote-5.16.0.jar,
- lib/cdmlib-cache-5.16.0.jar,
- lib/cdmlib-services-5.16.0.jar,
+ lib/cdmlib-commons-5.17.0.jar,
+ lib/cdmlib-ext-5.17.0.jar,
+ lib/cdmlib-io-5.17.0.jar,
+ lib/cdmlib-model-5.17.0.jar,
+ lib/cdmlib-persistence-5.17.0.jar,
+ lib/cdmlib-print-5.17.0.jar,
+ lib/cdmlib-remote-5.17.0.jar,
+ lib/cdmlib-cache-5.17.0.jar,
+ lib/cdmlib-services-5.17.0.jar,
lib/com.springsource.org.aopalliance-1.0.0.jar,
lib/com.springsource.org.apache.commons.logging-1.1.1.jar,
lib/commons-beanutils-1.9.4.jar,
- lib/commons-codec-1.10.jar,
+ lib/commons-codec-1.14.jar,
lib/commons-collections-3.2.2.jar,
lib/commons-csv-1.0.jar,
lib/commons-dbcp-1.4.jar,
+ lib/commons-imaging-1.0-alpha2.jar,
lib/commons-io-2.4.jar,
lib/commons-lang-2.6.jar,
- lib/commons-lang3-3.3.2.jar,
+ lib/commons-lang3-3.10.jar,
lib/commons-logging-1.2.jar,
lib/commons-pool-1.5.4.jar,
lib/dbunit-2.4.9.jar,
lib/dom4j-1.6.1.jar,
- lib/dozer-5.3.0.jar,
lib/dtd-parser-1.1.jar,
lib/ehcache-core-2.6.11.jar,
lib/ezmorph-1.0.6.jar,
lib/google-api-translate-java-0.92.jar,
lib/h2-1.4.190.jar,
- lib/h2mig_pagestore_addon.jar,
lib/hamcrest-core-1.3.jar,
lib/hibernate-c3p0-5.0.7.Final.jar,
- lib/hibernate-cglib-repack-2.1_3.jar,
lib/hibernate-commons-annotations-5.0.1.Final.jar,
lib/hibernate-core-5.0.7.Final.jar,
- lib/hibernate-ehcache-5.0.7.Final.jar,
lib/hibernate-entitymanager-5.0.7.Final.jar,
lib/hibernate-envers-5.0.7.Final.jar,
lib/hibernate-jpa-2.1-api-1.0.0.Final.jar,
lib/hibernate-search-orm-5.5.2.Final.jar,
lib/hibernate-validator-5.2.2.Final.jar,
lib/hibernate-validator-cdi-5.2.2.Final.jar,
- lib/hsqldb-2.3.3.jar,
lib/icu4j-2.6.1.jar,
lib/identificationKeyAPI-1.0.jar,
lib/itextpdf-5.5.8.jar,
lib/joda-time-2.9.1.jar,
lib/log4j-1.2.17.jar,
lib/lsid-client-1.1.2.jar,
- lib/sanselan-0.97-incubator.jar,
lib/spring-aop-4.2.4.RELEASE.jar,
lib/spring-aspects-4.2.4.RELEASE.jar,
lib/spring-beans-4.2.4.RELEASE.jar,
lib/spring-core-4.2.4.RELEASE.jar,
lib/spring-expression-4.2.4.RELEASE.jar,
lib/spring-jdbc-4.2.4.RELEASE.jar,
- lib/spring-modules-cache-0.7.jar,
lib/spring-orm-4.2.4.RELEASE.jar,
lib/spring-oxm-4.2.4.RELEASE.jar,
lib/spring-plugin-core-1.2.0.RELEASE.jar,
lib/spring-plugin-metadata-1.2.0.RELEASE.jar,
lib/spring-security-config-4.0.3.RELEASE.jar,
lib/spring-security-core-4.0.3.RELEASE.jar,
- lib/spring-security-web-4.0.3.RELEASE.jar,
lib/spring-test-4.2.4.RELEASE.jar,
lib/spring-tx-4.2.4.RELEASE.jar,
lib/spring-web-4.2.4.RELEASE.jar,
- lib/spring-webmvc-4.2.4.RELEASE.jar,
lib/springfox-core-2.3.1.jar,
lib/springfox-schema-2.3.1.jar,
lib/springfox-spi-2.3.1.jar,
lib/springfox-spring-web-2.3.1.jar,
- lib/springfox-swagger-common-2.3.1.jar,
- lib/springfox-swagger2-2.3.1.jar,
lib/standard-1.1.2.jar,
lib/tools.jar,
lib/txw2-2.2.11.jar,
lib/xml-resolver-1.2.jar,
lib/xmlbeans-2.6.0.jar,
lib/xmlgraphics-commons-1.5.jar,
- lib/xmlpull-1.1.3.1.jar,
lib/xmlunit-1.6.jar,
- lib/xom-1.2.5.jar,
- lib/xpp3_min-1.1.4c.jar,
- lib/xpp3-1.1.4c.jar,
lib/xsom-20140925.jar,
- lib/xstream-1.4.8.jar,
- lib/yjp-controller-api-redist-9.0.8.jar,
- lib/spring-security-oauth2-2.0.11.RELEASE.jar,
lib/opencsv-2.3.jar,
lib/jdbc4-2.0.jar,
lib/junit-4.12.jar,
lib/jackson-databind-2.6.5.jar,
- lib/jackson-core-asl-1.8.8.jar,
- lib/jackson-mapper-asl-1.8.8.jar,
lib/jakarta-regexp-1.4.jar,
lib/jandex-2.0.0.Final.jar,
lib/javassist-3.20.0-GA.jar,
lib/javax.el-2.2.6.jar,
lib/javax.el-api-2.2.5.jar,
- lib/javax.servlet-api-3.1.0.jar,
lib/jaxb-api-2.2.12.jar,
lib/jaxb-core-2.2.11.jar,
lib/jaxb-jxc-2.2.11.jar,
lib/jsr250-api-1.0.jar,
lib/jta-1.1.jar,
lib/jtds-1.3.1.jar,
- lib/junit-benchmarks-0.7.2.jar,
lib/batik-dom-1.7.jar,
lib/batik-anim-1.7.jar,
lib/batik-awt-util-1.7.jar,
lib/cglib-nodep-3.2.0.jar,
lib/classmate-1.3.1.jar,
lib/codemodel-2.2.11.jar,
- lib/concurrent-1.3.4.jar,
- lib/easymock-2.3.jar,
- lib/easymockclassextension-2.3.jar,
lib/FastInfoset-1.2.13.jar,
lib/fop-1.1.jar,
lib/guava-19.0.jar,
lib/objenesis-1.2.jar,
lib/odfdom-0.8.jar,
lib/odfdom-java-0.8.7.jar,
- lib/ognl-2.6.9.jar,
lib/paranamer-2.3.jar,
lib/poi-3.13.jar,
lib/poi-ooxml-3.13.jar,
lib/org.swtchart_0.10.0.v20160212.jar,
lib/commons-math3-3.6.1.jar,
lib/docx4j-6.0.1.jar,
- lib/mysql-connector-java-8.0.15.jar,
- lib/httpclient-4.5.11.jar,
+ lib/mysql-connector-java-8.0.20.jar,
+ lib/httpclient-4.5.12.jar,
lib/httpclient-cache-4.2.6.jar,
lib/httpcore-4.4.13.jar,
- lib/httpmime-4.5.1.jar,
+ lib/httpmime-4.5.12.jar,
lib/JavaAPIforKml-2.2.1.jar,
lib/iiif-apis-0.3.7.jar
Import-Package: eu.etaxonomy.cdm.api.application
lib/aspectjrt-1.8.8.jar,\
lib/aspectjweaver-1.8.8.jar,\
lib/batik-xml-1.7.jar,\
- lib/cdmlib-commons-5.16.0.jar,\
- lib/cdmlib-ext-5.16.0.jar,\
- lib/cdmlib-io-5.16.0.jar,\
- lib/cdmlib-model-5.16.0.jar,\
- lib/cdmlib-persistence-5.16.0.jar,\
- lib/cdmlib-print-5.16.0.jar,\
- lib/cdmlib-remote-5.16.0.jar,\
- lib/cdmlib-services-5.16.0.jar,\
+ lib/cdmlib-commons-5.17.0.jar,\
+ lib/cdmlib-ext-5.17.0.jar,\
+ lib/cdmlib-io-5.17.0.jar,\
+ lib/cdmlib-model-5.17.0.jar,\
+ lib/cdmlib-persistence-5.17.0.jar,\
+ lib/cdmlib-print-5.17.0.jar,\
+ lib/cdmlib-remote-5.17.0.jar,\
+ lib/cdmlib-services-5.17.0.jar,\
lib/com.springsource.org.aopalliance-1.0.0.jar,\
lib/com.springsource.org.apache.commons.logging-1.1.1.jar,\
lib/commons-beanutils-1.9.4.jar,\
- lib/commons-codec-1.10.jar,\
+ lib/commons-codec-1.14.jar,\
lib/commons-collections-3.2.2.jar,\
lib/commons-csv-1.0.jar,\
lib/commons-dbcp-1.4.jar,\
+ lib/commons-imaging-1.0-alpha2.jar,\
lib/commons-io-2.4.jar,\
lib/commons-lang-2.6.jar,\
- lib/commons-lang3-3.3.2.jar,\
+ lib/commons-lang3-3.10.jar,\
lib/commons-logging-1.2.jar,\
lib/commons-pool-1.5.4.jar,\
lib/dbunit-2.4.9.jar,\
lib/dom4j-1.6.1.jar,\
- lib/dozer-5.3.0.jar,\
lib/dtd-parser-1.1.jar,\
lib/ehcache-core-2.6.11.jar,\
lib/ezmorph-1.0.6.jar,\
lib/google-api-translate-java-0.92.jar,\
lib/h2-1.4.190.jar,\
- lib/h2mig_pagestore_addon.jar,\
lib/hamcrest-core-1.3.jar,\
lib/hibernate-c3p0-5.0.7.Final.jar,\
- lib/hibernate-cglib-repack-2.1_3.jar,\
lib/hibernate-commons-annotations-5.0.1.Final.jar,\
lib/hibernate-core-5.0.7.Final.jar,\
- lib/hibernate-ehcache-5.0.7.Final.jar,\
lib/hibernate-entitymanager-5.0.7.Final.jar,\
lib/hibernate-envers-5.0.7.Final.jar,\
lib/hibernate-jpa-2.1-api-1.0.0.Final.jar,\
lib/hibernate-search-orm-5.5.2.Final.jar,\
lib/hibernate-validator-5.2.2.Final.jar,\
lib/hibernate-validator-cdi-5.2.2.Final.jar,\
- lib/hsqldb-2.3.3.jar,\
- lib/httpclient-4.5.11.jar,\
+ lib/httpclient-4.5.12.jar,\
lib/httpclient-cache-4.2.6.jar,\
lib/httpcore-4.4.13.jar,\
- lib/httpmime-4.5.1.jar,\
+ lib/httpmime-4.5.12.jar,\
lib/icu4j-2.6.1.jar,\
lib/identificationKeyAPI-1.0.jar,\
lib/itextpdf-5.5.8.jar,\
lib/joda-time-2.9.1.jar,\
lib/log4j-1.2.17.jar,\
lib/lsid-client-1.1.2.jar,\
- lib/sanselan-0.97-incubator.jar,\
lib/spring-aop-4.2.4.RELEASE.jar,\
lib/spring-aspects-4.2.4.RELEASE.jar,\
lib/spring-beans-4.2.4.RELEASE.jar,\
lib/spring-core-4.2.4.RELEASE.jar,\
lib/spring-expression-4.2.4.RELEASE.jar,\
lib/spring-jdbc-4.2.4.RELEASE.jar,\
- lib/spring-modules-cache-0.7.jar,\
lib/spring-orm-4.2.4.RELEASE.jar,\
lib/spring-oxm-4.2.4.RELEASE.jar,\
lib/spring-plugin-core-1.2.0.RELEASE.jar,\
lib/spring-plugin-metadata-1.2.0.RELEASE.jar,\
lib/spring-security-config-4.0.3.RELEASE.jar,\
lib/spring-security-core-4.0.3.RELEASE.jar,\
- lib/spring-security-web-4.0.3.RELEASE.jar,\
lib/spring-test-4.2.4.RELEASE.jar,\
lib/spring-tx-4.2.4.RELEASE.jar,\
lib/spring-web-4.2.4.RELEASE.jar,\
- lib/spring-webmvc-4.2.4.RELEASE.jar,\
lib/springfox-core-2.3.1.jar,\
lib/springfox-schema-2.3.1.jar,\
lib/springfox-spi-2.3.1.jar,\
lib/springfox-spring-web-2.3.1.jar,\
- lib/springfox-swagger-common-2.3.1.jar,\
- lib/springfox-swagger2-2.3.1.jar,\
lib/standard-1.1.2.jar,\
lib/tools.jar,\
lib/txw2-2.2.11.jar,\
lib/xml-resolver-1.2.jar,\
lib/xmlbeans-2.6.0.jar,\
lib/xmlgraphics-commons-1.5.jar,\
- lib/xmlpull-1.1.3.1.jar,\
lib/xmlunit-1.6.jar,\
- lib/xom-1.2.5.jar,\
- lib/xpp3_min-1.1.4c.jar,\
- lib/xpp3-1.1.4c.jar,\
lib/xsom-20140925.jar,\
- lib/xstream-1.4.8.jar,\
- lib/yjp-controller-api-redist-9.0.8.jar,\
- lib/spring-security-oauth2-2.0.11.RELEASE.jar,\
lib/opencsv-2.3.jar,\
lib/jdbc4-2.0.jar,\
lib/junit-4.12.jar,\
lib/jackson-databind-2.6.5.jar,\
- lib/jackson-core-asl-1.8.8.jar,\
- lib/jackson-mapper-asl-1.8.8.jar,\
lib/jakarta-regexp-1.4.jar,\
lib/jandex-2.0.0.Final.jar,\
lib/javassist-3.20.0-GA.jar,\
lib/javax.el-2.2.6.jar,\
lib/javax.el-api-2.2.5.jar,\
- lib/javax.servlet-api-3.1.0.jar,\
lib/jaxb-api-2.2.12.jar,\
lib/jaxb-core-2.2.11.jar,\
lib/jaxb-jxc-2.2.11.jar,\
lib/jsr250-api-1.0.jar,\
lib/jta-1.1.jar,\
lib/jtds-1.3.1.jar,\
- lib/junit-benchmarks-0.7.2.jar,\
lib/batik-dom-1.7.jar,\
lib/batik-anim-1.7.jar,\
lib/batik-awt-util-1.7.jar,\
lib/cglib-nodep-3.2.0.jar,\
lib/classmate-1.3.1.jar,\
lib/codemodel-2.2.11.jar,\
- lib/concurrent-1.3.4.jar,\
- lib/easymock-2.3.jar,\
- lib/easymockclassextension-2.3.jar,\
lib/FastInfoset-1.2.13.jar,\
lib/fop-1.1.jar,\
lib/guava-19.0.jar,\
lib/objenesis-1.2.jar,\
lib/odfdom-0.8.jar,\
lib/odfdom-java-0.8.7.jar,\
- lib/ognl-2.6.9.jar,\
lib/paranamer-2.3.jar,\
lib/poi-3.13.jar,\
lib/poi-ooxml-3.13.jar,\
lib/lucene-analyzers-common-5.4.1.jar,\
lib/lucene-sandbox-5.4.1.jar,\
lib/lucene-suggest-5.4.1.jar,\
- lib/cdmlib-cache-5.16.0.jar,\
+ lib/cdmlib-cache-5.17.0.jar,\
lib/redmine-java-api-3.1.0.jar,\
lib/org.swtchart_0.10.0.v20160212.jar,\
lib/commons-math3-3.6.1.jar,\
lib/docx4j-6.0.1.jar,\
- lib/mysql-connector-java-8.0.15.jar,\
+ lib/mysql-connector-java-8.0.20.jar,\
lib/JavaAPIforKml-2.2.1.jar,\
lib/iiif-apis-0.3.7.jar
<parent>\r
<groupId>eu.etaxonomy</groupId>\r
<artifactId>taxeditor-parent</artifactId>\r
- <version>5.16.0</version>\r
+ <version>5.17.0</version>\r
</parent>\r
<modelVersion>4.0.0</modelVersion>\r
<artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>\r
<packaging>eclipse-plugin</packaging>\r
<name>CDM Library Dependencies Plugin</name>\r
<description>CDM Library and dependencies as a plugin</description>\r
-\r
<build>\r
<pluginManagement>\r
<plugins>\r
cdmlib-remote-webapp\r
</excludeArtifactIds>\r
<includeArtifactIds>\r
- cdmlib-services,cdmlib-commons,cdmlib-cache,cdmlib-persistence,cdmlib-ext,cdmlib-model,cdmlib-io,cdmlib-print,cdmlib-remote,cdmlib-test\r
+ cdmlib-commons,cdmlib-model,cdmlib-persistence,cdmlib-services,cdmlib-cache,cdmlib-ext,cdmlib-io,cdmlib-remote,cdmlib-print\r
</includeArtifactIds>\r
<outputDirectory>${basedir}/lib</outputDirectory>\r
<overWriteReleases>true</overWriteReleases>\r
</goals>\r
<configuration>\r
<includeArtifactIds>\r
- httpclient,JavaAPIforKml,iiif-apis,commons-beanutils\r
+ httpclient,JavaAPIforKml,iiif-apis,commons-beanutils,commons-lang3,commons-codec,commons-imaging,h2\r
</includeArtifactIds>\r
<outputDirectory>\r
${basedir}/lib\r
<excludeTransitive>false</excludeTransitive>\r
</configuration>\r
</execution>\r
- <execution>\r
- <id>copy-dependency-war</id>\r
- <phase>validate</phase>\r
- <goals>\r
- <goal>copy-dependencies</goal>\r
- </goals>\r
- <configuration>\r
- <includeArtifactIds>\r
- cdmlib-remote-webapp\r
- </includeArtifactIds>\r
- <outputDirectory>\r
- ${basedir}/src/main/resources/etc/jetty\r
- </outputDirectory>\r
- <overWriteReleases>true</overWriteReleases>\r
- <overWriteSnapshots>true</overWriteSnapshots>\r
- <excludeTransitive>true</excludeTransitive>\r
- </configuration>\r
- </execution>\r
</executions>\r
</plugin>\r
<plugin>\r
<groupId>org.apache.maven.plugins</groupId>\r
<artifactId>maven-antrun-plugin</artifactId>\r
- <version>1.7</version>\r
<executions>\r
<execution>\r
<id>update-snapshot-jar-names</id>\r
</goals>\r
<configuration>\r
<target>\r
- <echo>Anonymizing war</echo>\r
- <move todir="./src/main/resources/etc/jetty">\r
- <fileset dir="./src/main/resources/etc/jetty" />\r
- <mapper type="regexp"\r
- from="(^cdmlib\-remote\-webapp).*(\.war)" to="\1\2" />\r
- </move>\r
<echo>Update cdmlib jars to SNAPSHOT when build with\r
timestamp\r
</echo>\r
</repository>\r
</repositories>\r
<dependencies>\r
- <dependency>\r
- <groupId>eu.etaxonomy</groupId>\r
- <artifactId>cdmlib-remote-webapp</artifactId>\r
- <version>${cdmlib.version}</version>\r
- <type>war</type>\r
- </dependency>\r
<dependency>\r
<groupId>eu.etaxonomy</groupId>\r
<artifactId>cdmlib-commons</artifactId>\r
<artifactId>commons-beanutils</artifactId>\r
<version>1.9.4</version>\r
</dependency>\r
+ <dependency>\r
+ <groupId>org.apache.commons</groupId>\r
+ <artifactId>commons-imaging</artifactId>\r
+ <version>1.0-alpha2</version>\r
+ </dependency>\r
<dependency>\r
<groupId>au.com.bytecode</groupId>\r
<artifactId>opencsv</artifactId>\r
<artifactId>httpclient</artifactId>\r
</dependency>\r
\r
+ <dependency>\r
+ <groupId>org.apache.commons</groupId>\r
+ <artifactId>commons-lang3</artifactId>\r
+ <version>3.10</version>\r
+ </dependency>\r
+ <dependency>\r
+ <!-- used in AuthenticatingHttpInvokerRequestExecutor -->\r
+ <groupId>commons-codec</groupId>\r
+ <artifactId>commons-codec</artifactId>\r
+ <version>1.14</version>\r
+ </dependency>\r
+\r
+ <!-- only for supporting test button in datasource dialogue, dialogue should be moved to taxeditor.webapp -->\r
+ <dependency>\r
+ <groupId>com.h2database</groupId>\r
+ <artifactId>h2</artifactId>\r
+ <version>1.4.190</version>\r
+ </dependency>\r
+\r
<!-- For Unit Tests Start -->\r
<!-- still needed? -->\r
\r
}
public static void dispose() {
- getInstance().setCurrentDataChangeService(null);
+ setCurrentDataChangeService(null);
getInstance().setAppConfig(null);
getInstance().setSecurityContext(null);
cdmApplicationState = null;
*
* @author cmathew
*/
-@Component //FIXME This indicates that the CdmServiceCacher is initialized as Spring Component but it seems only to be instantiated directly
public class CdmServiceCacher extends CdmCacherBase implements ICdmEntitySessionManagerObserver {
private ICdmEntitySessionManager cdmEntitySessionManager;
Bundle-ManifestVersion: 2
Bundle-Name: Editor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.17.0
Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
Bundle-Vendor: %Bundle-Vendor.0
Bundle-Localization: OSGI-INF/l10n/plugin
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
public void setFocus() {
// make sure to bind again if maybe in another view the conversation was
// unbound
+ eventBroker.post(WorkbenchEventConstants.CURRENT_ACTIVE_EDITOR, this);
if (conversation != null && !conversation.isBound()) {
conversation.bind();
}
boolean doEnable = permissionsSatisfied();
managedForm.getForm().setEnabled(doEnable);
- eventBroker.post(WorkbenchEventConstants.CURRENT_ACTIVE_EDITOR, this);
+
}
@Override
// this.heterotypicSynonymGroups.clear();
// this.misappliedGroup = null;
}
+ eventBroker.post(WorkbenchEventConstants.CURRENT_ACTIVE_EDITOR, this);
if (!(input != null)) {
MessagingUtils.error(this.getClass(), new Exception(Messages.TaxonNameEditor_INVALID_INPUT));
return;
createDragSupport();
setPartName();
-
+// this.setFocus();
// set initial selection
TaxonBase<?> initiallySelectedTaxonBase = input.getInitiallySelectedTaxonBase();
if (initiallySelectedTaxonBase != null) {
@Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- System.err.println("Bla");
+
}
public AbstractGroupedContainerE4 getSelectedContainer() {
setEnabled(false, disabledColor);
}
+
+
protected void setEnabled(boolean enabled, Color background) {
for (AbstractGroupedContainerE4<?> groupedContainer : getGroupedContainers()) {
@Optional
private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAME_EDITOR) CdmBase cdmbase) {
- if ((EventUtility.getTaxonEditor() != null && EventUtility.getTaxonEditor().equals(this))
- || (this.taxon != null && (this.taxon.equals(cdmbase)
- || (this.taxon.getName() != null && this.taxon.getName().equals(cdmbase))))) {
+ if(this.taxon != null && (this.taxon.equals(cdmbase)
+ || (this.taxon.getName() != null && this.taxon.getName().equals(cdmbase)))) {
this.redraw(false, true, true, true);
this.setDirty();
if (cdmbase instanceof TaxonBase) {
for (CdmBase cdmBase: cdmBases){
if (cdmBase instanceof Taxon || cdmBase instanceof TaxonName){
- if ((EventUtility.getTaxonEditor() != null && EventUtility.getTaxonEditor().equals(this))
- || (this.taxon != null && (this.taxon.equals(cdmBase)
- || (this.taxon.getName() != null && this.taxon.getName().equals(cdmBase))))) {
- EPartService partService = TaxeditorEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getService(EPartService.class);
- EModelService modelService = TaxeditorEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getService(EModelService.class);
- EditorUtil.openTaxonBaseE4(this.getTaxon().getUuid(), modelService, partService, application);
-
+ if (this.taxon != null && (this.taxon.equals(cdmBase)
+ || (this.taxon.getName() != null && this.taxon.getName().equals(cdmBase)))) {
+ update();
}
}
}
@Inject
@Optional
private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAME_EDITOR) UUID cdmbaseUuid) {
-
if (this.taxon.getUuid().equals(cdmbaseUuid)) {
TaxonEditorInputE4 input = TaxonEditorInputE4.NewInstanceFromTaxonBase(cdmbaseUuid);
init(input);
backgroundColor = AbstractUtility.getColor(colorString);
setBackground(backgroundColor);
- }else{
- System.err.println("disposed");
}
}
} else {
AbstractUtility.executeOperation(operation, target.getContext().get(UISynchronize.class));
}
- target.getEditor().getConversationHolder().commit();
- if (!target.equals(EventUtility.getTaxonEditor())){
- ((TaxonNameEditorE4)EventUtility.getTaxonEditor()).redraw();
- ((TaxonNameEditorE4)EventUtility.getTaxonEditor()).getConversationHolder().commit();
-
- }
-// target.getEditor().redraw();
-
-// target.getEditor().getContainer(taxonBase).setFocus();
}
if(target instanceof AbstractHomotypicalGroupContainerE4){
HomotypicalGroup homotypicalGroup = ((AbstractHomotypicalGroupContainerE4) target).getGroup();
+ if (((AbstractHomotypicalGroupContainerE4) target).getEditor().getTaxon().equals(synonym.getAcceptedTaxon())){
+ //the actual accepted taxon is the same as the taxon of the target editor
+ try{
+ return new ChangeHomotypicGroupOperation(Messages.NameEditorDropTargetListener_CHANGE_HOMOTYPICAL_GROUP, getEditor().getUndoContext(),
+ ((AbstractHomotypicalGroupContainerE4) target).getEditor().getTaxon(), synonym, homotypicalGroup, target);
+ }catch (NullPointerException e){
+ return null;
+ }
+ } else{
+ getEditor().getConversationHolder().commit();
+ ((TaxonNameEditorE4) target).getConversationHolder().commit();
+
+ return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonNameEditorE4) target).getTaxon(), (TaxonNameEditorE4) target, (TaxonNameEditorE4) target);
+
+ }
- return new ChangeHomotypicGroupOperation(Messages.NameEditorDropTargetListener_CHANGE_HOMOTYPICAL_GROUP, getEditor().getUndoContext(),
- getEditor().getTaxon(), synonym, homotypicalGroup, target);
}
else if(target instanceof MisappliedGroupE4){
return new ChangeSynonymToMisapplicationOperation(Messages.NameEditorDropTargetListener_CHANGE_SYNONYM_TO_MISAPP, getEditor().getUndoContext(),
getEditor().getTaxon(), synonym, target);
}
else if(target instanceof TaxonNameEditorE4){
- if (target.equals(getEditor())){
+ if (((TaxonNameEditorE4) target).getTaxon().equals(synonym.getAcceptedTaxon())){
return new ChangeHomotypicGroupOperation(Messages.NameEditorDropTargetListener_CHANGE_HOMOTYPICAL_GROUP, getEditor().getUndoContext(),
- getEditor().getTaxon(), synonym, null, target);
+ ((TaxonNameEditorE4) target).getTaxon(), synonym, null, target);
} else{
getEditor().getConversationHolder().commit();
((TaxonNameEditorE4) target).getConversationHolder().commit();
package eu.etaxonomy.taxeditor.editor.name.e4.operation;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.UUID;
import org.eclipse.core.commands.ExecutionException;
import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
monitor.worked(20);
// Switch groups
-
- monitor.worked(40);
+ monitor.beginTask("Move synonym to another taxon", 40);
+ Taxon oldAccepted = synonym.getAcceptedTaxon();
conversationEnabled.getConversationHolder().commit();
-
+ UpdateResult result = null;
try {
- UpdateResult result = CdmStore.getService(ITaxonService.class).moveSynonymToAnotherTaxon(synonym,
+ result = CdmStore.getService(ITaxonService.class).moveSynonymToAnotherTaxon(synonym,
this.element.getUuid(),
true,
synonym.getType(),
// TODO Auto-generated catch block
e.printStackTrace();
}
- conversationEnabled.getConversationHolder().commit();
+// conversationEnabled.getConversationHolder().commit();
+ monitor.worked(40);
// Redraw editor if it exists
+ Set<Taxon> taxa = new HashSet<>();
+ taxa.add(synonym.getAcceptedTaxon());
+ taxa.add(oldAccepted);
+
+ EditorUtil.updateNameEditors(taxa);
+// ((TaxonNameEditorE4)EventUtility.getTaxonEditor()).getConversationHolder().commit();
+
+
return postExecute(null);
}
newHomotypicalGroup.addTypifiedName(synonymName);
Taxon acc = synonym.getAcceptedTaxon();
- if(acc == null || !acc.equals(element)){
- if(acc != null){
- acc.removeSynonym(synonym);
- }
- SynonymType type = SynonymType.HETEROTYPIC_SYNONYM_OF();
- if(newHomotypicalGroup.getTypifiedNames().contains(element.getName())){
- type = SynonymType.HOMOTYPIC_SYNONYM_OF();
- }
+ if(acc != null){
+ acc.removeSynonym(synonym);
+ }
- element.addSynonym(synonym, type);
+ SynonymType type = SynonymType.HETEROTYPIC_SYNONYM_OF();
+ if(newHomotypicalGroup.getTypifiedNames().contains(element.getName())){
+ type = SynonymType.HOMOTYPIC_SYNONYM_OF();
}
+ element.addSynonym(synonym, type);
+
// Redraw editor if it exists
return postExecute(synonym);
}
featureNodeContainerCache.put(description, containerTree);
}
return featureNodeContainerCache.get(description);
+// return
}
@Override
* @param description
* @return
*/
- private TermTree getFeatureTree(DescriptionBase description){
+ public TermTree getFeatureTree(DescriptionBase description){
TermTree<?> featureTree = null;
+ if (description instanceof TaxonNameDescription){
+
+ return PreferencesUtil.getPreferredFeatureTreeForNameDescription(false);
+ }
// TODO change this to the feature tree associated with this taxon
// description
if (description.hasStructuredData()) {
if (featureTree == null) {
featureTree = TermEditorInput.getDefaultFeatureTree();
- }
- if (description instanceof TaxonNameDescription){
-
- featureTree = TermEditorInput.getDefaultNameFeatureTree();
}
+
return featureTree;
}
Object partObject = createPartObject(activePart);
-
-
+
+
if ((partObject instanceof DetailsPartE4 && !(selection instanceof TaxonName))|| partObject instanceof SupplementalDataPartE4
|| partObject instanceof MediaViewPartE4 || partObject instanceof ConceptViewPartE4 || ((partObject instanceof AbstractCdmEditorPartE4) &&(((AbstractCdmEditorPartE4)partObject).getViewer().getInput() instanceof DescriptionElementBase))) {
((TreeViewer) viewer).setExpandedElements(expandedObjects);
if(object instanceof DescriptionElementBase){
DescriptionElementBase descriptionElement = (DescriptionElementBase) object;
- DescriptionBase description = descriptionElement.getInDescription();
+ DescriptionBase<?> description = descriptionElement.getInDescription();
FeatureNodeContainerTree containerTree = featureNodeContainerCache.get(description);
FeatureNodeContainer featureNodeContainer = containerTree.getFeatureNodeContainerForDescriptionElement(descriptionElement);
+ if (featureNodeContainer == null){
+ containerTree = new FeatureNodeContainerTree(description, provider.getFeatureTree(description));
+ featureNodeContainerCache.put(description, containerTree);
+ featureNodeContainer = containerTree.getFeatureNodeContainerForDescriptionElement(descriptionElement);
+ }
((AbstractTreeViewer) viewer).expandToLevel(featureNodeContainer, 2);
StructuredSelection selection = new StructuredSelection(object);
viewer.setSelection(selection, true);
// add possible children to the menu
for (TermNode<?> childNode : featureNode.getChildNodes()) {
- createMenuItem(menu, childNode.getTerm(), globalLanguage);
+ TermTree<?> featureTree = getFeatureTree(((FeatureNodeContainer) selectedElement).getDescription());
+ featureTree = PreferencesUtil.getPreferredFeatureTreeForNameDescription(false);
+
+ if (featureTree != null && featureTree.getRootChildren().contains(childNode.getTerm() )){
+ createMenuItem(menu, childNode.getTerm(), globalLanguage);
+ }
}
+
} else if (selectedElement instanceof DescriptionElementBase) {
Feature feature = ((DescriptionElementBase) selectedElement)
.getFeature();
element = QuantitativeData.NewInstance();
}
else if(feature.isSupportsTemporalData()){
- element = TemporalData.NewInstance(null);
+ element = TemporalData.NewInstance();
}
else {
element = TextData.NewInstance();
import eu.etaxonomy.cdm.model.description.IDescribable;
import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
import eu.etaxonomy.taxeditor.editor.view.concept.e4.ConceptViewPartE4;
return;
}
else if(firstElement!=null
- && firstElement instanceof IDescribable<?> && !(firstElement instanceof TaxonName)){
+ && firstElement instanceof IDescribable<?> && !(firstElement instanceof TaxonName) && !(firstElement instanceof SpecimenOrObservationBase && partObject instanceof BulkEditorE4 )){
showViewer(structuredSelection, activePart, viewer);
return;
}
<feature
id="eu.etaxonomy.taxeditor.feature.platform"
label="Taxeditor Dependencies"
- version="5.16.0"
+ version="5.17.0"
os="linux,macosx,win32"
ws="cocoa,gtk,win32"
arch="x86,x86_64">
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature.platform</artifactId>
<feature
id="eu.etaxonomy.taxeditor.feature"
label="Taxonomic Editor"
- version="5.16.0"
+ version="5.17.0"
provider-name="EDIT"
plugin="eu.etaxonomy.taxeditor.application"
os="linux,macosx,win32"
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature</artifactId>
Bundle-ManifestVersion: 2
Bundle-Name: Help
Bundle-SymbolicName: eu.etaxonomy.taxeditor.help; singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.17.0
Bundle-Activator: eu.etaxonomy.taxeditor.help.Activator
Bundle-Vendor: EDIT
Require-Bundle: org.eclipse.ui,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: eu.etaxonomy.taxeditor.molecular.lib
Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular.lib;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.17.0
Bundle-ClassPath: .,
lib/owlapi-xmlutils-4.1.4.jar,
lib/commons-collections4-4.1.jar,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<name>Molecular Library Dependencies Bundle</name>
Bundle-ManifestVersion: 2
Bundle-Name: Molecular Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.17.0
Bundle-Activator: eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: Navigation Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.navigation;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.17.0
Bundle-Activator: eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.cdm,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAVIGATOR)TaxonNodeDto dto){
if(dto!= null){
Object[] expandedElements = viewer.getExpandedElements();
+
refresh();
- viewer.reveal(dto);
viewer.setExpandedElements(expandedElements);
+ viewer.reveal(dto);
viewer.setSelection(new StructuredSelection(dto));
}
@Optional
private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAVIGATOR)boolean refresh){
if(refresh){
+ Object[] expandedElements = viewer.getExpandedElements();
refresh();
+ viewer.setExpandedElements(expandedElements);
+
}
}
}
import eu.etaxonomy.cdm.model.permission.CRUD;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.event.EventUtility;
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
private TaxonNavigatorE4 taxonNavigator;
UpdateResult result;
TaxonNodeDto targetITaxonTreeNode;
+ HashSet<TaxonNodeDto> taxonNodes;
public static final String ID = "eu.etaxonomy.taxeditor.navigation.navigator.dropassistant"; //$NON-NLS-1$
private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
}
private Set<TaxonNodeDto> getSelectedTaxa(){
- HashSet<TaxonNodeDto> taxonNodes = new HashSet();
+ taxonNodes = new HashSet();
ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();
if (selection instanceof TreeSelection) {
for (TaxonNode node: nodes){
hasPermission = hasPermission && CdmStore.currentAuthentiationHasPermission(node, UPDATE) && CdmStore.currentAuthentiationHasPermission(node.getTaxon(), UPDATE);
}
-// boolean hasTaxonPermission =
-// CdmStore.currentAuthentiationHasPermission(node.getTaxon(), UPDATE);
+
if (
!isNotSameTaxonNode
|| !isNotSameParent
}
logger.debug("OK_STATUS"); //$NON-NLS-1$
return true;
-// }
-// logger.debug("CANCEL_STATUS"); //$NON-NLS-1$
-// return false;
+
}
}
- //close possible open name editors for the moved taxon nodes
-
- taxonNodes.forEach(nodeDto->EditorUtil.closeObsoleteEditor(nodeDto, partService));
-
moveNodes(uuids, targetITaxonTreeNode.getUuid(), movingTypeInt);
return true;
}
@Override
public void postOperation(IRemotingProgressMonitor monitor) {
EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, targetITaxonTreeNode);
+ taxonNodes.forEach(nodeDto->EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, nodeDto.getTaxonUuid()));
+ EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, targetITaxonTreeNode.getTaxonUuid());
}
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.swt.widgets.Shell;
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
protected static final String DO_YOU_REALLY_WANT_TO_DELETE_THE_CLASSIFICATION = Messages.DeleteHandler_DELETE_CLASSIFICATION;
protected static final String CONFIRM_DELETION = Messages.DeleteHandler_CONFIRM_DELETE;
protected static final String DELETE = Messages.DeleteHandler_DELETE;
+ EPartService partService;
@Execute
public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection,
@Named(IServiceConstants.ACTIVE_SHELL)Shell shell,
@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
+ EPartService partService,
MHandledMenuItem menuItem, UISynchronize sync) {
-
+ this.partService = partService;
TaxonNavigatorE4 taxonNavigator = (TaxonNavigatorE4) activePart.getObject();
Iterator selectionIterator = selection.iterator();
protected boolean closeObsoleteEditor(TaxonNodeDto taxonNode){
//FIXME E4 migrate
boolean result = true;
-// for (IEditorReference ref : activePage.getEditorReferences()) {
-// try {
-// String treeIndex = ((ITreeNode)taxonNode).treeIndex();
-//
-//
-// IEditorInput input = ref.getEditorInput();
-// if (input instanceof TaxonEditorInput) {
-// TaxonNode node = ((TaxonEditorInput) input).getTaxonNode();
-// //if node is a child of taxonNode then close the editor
-// if( ((ITreeNode) node).treeIndex().startsWith(treeIndex)){
-// //if (taxonNode.equals(node)) {
-// result &= activePage.closeEditor(ref.getEditor(false), true);
-//
-// }
-// }
-// } catch (PartInitException e) {
-// continue;
-// }
-// }
+ EditorUtil.closeObsoleteEditor(taxonNode, partService);
+
return result;
}
}
Bundle-ManifestVersion: 2
Bundle-Name: Printpublisher Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.printpublisher;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.17.0
Require-Bundle: org.eclipse.osgi,
org.eclipse.ui,
eu.etaxonomy.taxeditor.cdmlib,
<parent>
<artifactId>taxeditor-parent</artifactId>
<groupId>eu.etaxonomy</groupId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: DataStore Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.store;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.17.0
Bundle-Activator: eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin
Bundle-Vendor: EDIT
Bundle-Localization: OSGI-INF/l10n/bundle
command.label.3 = Error Log\r
command.label.4 = Reporting\r
command.label.5 = Switch User\r
-command.label.6 = Create Data Model\r
command.label.7 = New\r
command.label.8 = Edit\r
command.label.9 = Delete\r
command.label.3 = Fehlermeldungen
command.label.4 = Berichte
command.label.5 = Benutzer wechseln
-command.label.6 = Datenmodell erstellen
command.label.7 = Neu
command.label.8 = Bearbeiten
command.label.9 = L\u00f6schen
<elements xsi:type="basic:PartDescriptor" xmi:id="_zTXhUGvBEeeNmdqhxF1CnA" elementId="eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4" label="%view.name.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/accessories-text-editor.png" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4"/>
<elements xsi:type="basic:PartDescriptor" xmi:id="_coTYkH3eEeeVL5aZ55YsWA" elementId="eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4" label="%view.name.3" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4"/>
<elements xsi:type="basic:PartDescriptor" xmi:id="_eKzREIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource" label="%view.name" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/system-file-manager.png" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.CdmDataSourceViewPartE4">
- <handlers xmi:id="_DINQoIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.ChangeConnectionHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.handler.ChangeConnectionHandlerE4" command="_efb88IcsEee-HITNnU9cVw"/>
<handlers xmi:id="_hAnq0IctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.EditDataSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.handler.EditDataSourceHandlerE4" command="_cs5L0IctEee-HITNnU9cVw"/>
<handlers xmi:id="_rsmsYIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.CloneDataSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.handler.CloneDataSourceHandlerE4" command="_o0HcUIctEee-HITNnU9cVw"/>
<handlers xmi:id="_6VVQUIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.CreateDataSourceHandlerE4.dataSourceView" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.handler.CreateDataSourceHandlerE4" command="_yJiTkIctEee-HITNnU9cVw"/>
<handlers xmi:id="_ASDGYIcuEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.DeleteDataSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.handler.DeleteDataSourceHandlerE4" command="_-g_YcIctEee-HITNnU9cVw"/>
- <handlers xmi:id="_T-pz4IcuEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.UpdateDataSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.handler.UpdateDataSourceHandlerE4" command="_ShWvcIcuEee-HITNnU9cVw"/>
<menus xsi:type="menu:PopupMenu" xmi:id="_3aJ1cIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.popupmenu.datasourceview">
<children xsi:type="menu:HandledMenuItem" xmi:id="_8D3ykIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.newDataSource" label="%command.label.7" command="_yJiTkIctEee-HITNnU9cVw"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_-ALHMIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.edit" label="%command.label.8" command="_cs5L0IctEee-HITNnU9cVw"/>
<children xsi:type="menu:MenuSeparator" xmi:id="_-6EjoIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.menuseparator.1"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="__u4EsIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.delete" label="%command.label.9" command="_-g_YcIctEee-HITNnU9cVw"/>
<children xsi:type="menu:MenuSeparator" xmi:id="_AfzyYIcqEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.menuseparator.2"/>
- <children xsi:type="menu:HandledMenuItem" xmi:id="_7lX4sIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.createModel" label="%command.label.6" command="_efb88IcsEee-HITNnU9cVw"/>
- <children xsi:type="menu:HandledMenuItem" xmi:id="_BE4OUIcqEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.refresh" label="%command.label.11" command="_ShWvcIcuEee-HITNnU9cVw"/>
</menus>
</elements>
<elements xsi:type="basic:PartDescriptor" xmi:id="_YZ2J0IdPEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.editor.definedTerm" label="%editor.name" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.editor.definedterm.e4.DefinedTermEditorE4">
<children xsi:type="menu:MenuSeparator" xmi:id="_whoc7vynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.presenceAbsence.7"/>
<children xsi:type="menu:Menu" xmi:id="_whoc7_ynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menu.presenceAbsence.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif">
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_whoc8PynEemPDYtIH5gauA" coreExpressionId="isFeatureTree"/>
- <children xsi:type="menu:HandledMenuItem" xmi:id="_whoc8fynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.presenceAbsence.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw">
- </children>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_whoc8fynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.presenceAbsence.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_whoc8_ynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.presenceAbsence.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ">
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_whoc9PynEemPDYtIH5gauA" coreExpressionId="isShowExperimentalFeatures"/>
</children>
<children xsi:type="menu:MenuSeparator" xmi:id="_jGX_bvysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.namedArea.7"/>
<children xsi:type="menu:Menu" xmi:id="_jGX_b_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menu.namedArea.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif">
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_jGX_cPysEemPDYtIH5gauA" coreExpressionId="isFeatureTree"/>
- <children xsi:type="menu:HandledMenuItem" xmi:id="_jGX_cfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.namedArea.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw">
- </children>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_jGX_cfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.namedArea.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_jGX_c_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.namedArea.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ">
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_jGX_dPysEemPDYtIH5gauA" coreExpressionId="isShowExperimentalFeatures"/>
</children>
<children xsi:type="menu:MenuSeparator" xmi:id="_jK89bvysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.rank.7"/>
<children xsi:type="menu:Menu" xmi:id="_jK89b_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menu.rank.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif">
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_jK89cPysEemPDYtIH5gauA" coreExpressionId="isFeatureTree"/>
- <children xsi:type="menu:HandledMenuItem" xmi:id="_jK89cfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.rank.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw">
- </children>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_jK89cfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.rank.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_jK89c_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.rank.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ">
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_jK89dPysEemPDYtIH5gauA" coreExpressionId="isShowExperimentalFeatures"/>
</children>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
import eu.etaxonomy.cdm.model.term.TermTree;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.cdm.model.term.TermVocabulary;
-import eu.etaxonomy.cdm.model.term.VocabularyEnum;
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
return defaultFeatureTree;
}
+ public static void resetDefaultFeatureTree(){
+ defaultFeatureTree = null;
+ }
public static TermTree getDefaultNameFeatureTree() {
if(defaultNameFeatureTree == null) {
- TermVocabulary voc = CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid());
- List<Feature> nameFeatures = new ArrayList(voc.getTerms());
- nameFeatures.remove(Feature.PROTOLOGUE());
+// List<TermVocabularyDto> vocs = new ArrayList<>();
+// Set<CdmClass> availableFor = new HashSet<>();
+// availableFor.add(CdmClass.TAXON_NAME);
+// vocs = CdmStore.getService(IVocabularyService.class).findFeatureVocabularyDtoByTermTypes(availableFor);
+// TermVocabulary voc = CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid());
+// List<Feature> nameFeatures = new ArrayList(voc.getTerms());
+// nameFeatures.remove(Feature.PROTOLOGUE());
+// PreferencesUtil.createPreferredFeatureTreeForNameDescription();
+ defaultNameFeatureTree = PreferencesUtil.getPreferredFeatureTreeForNameDescription(true);
//List<Feature> nameFeatures = CdmStore.getTermManager().getPreferredTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()), null);
- defaultNameFeatureTree = TermTree.NewInstance(nameFeatures);
+// defaultNameFeatureTree = TermTree.NewInstance(nameFeatures);
}
return defaultNameFeatureTree;
}
+ public static void resetDefaultNameFeatureTree(){
+ defaultNameFeatureTree = null;
+ }
+
/**
* @return
*/
*/
package eu.etaxonomy.taxeditor.handler.defaultHandler.e4;
+import java.util.Collection;
+
import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.widgets.Shell;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
import eu.etaxonomy.taxeditor.event.EventUtility;
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@Override
protected void open(TaxonNodeDto entity, Shell shell, EPartService partService) {
+ Collection<MPart> dirtyParts = partService.getDirtyParts();
+ if (!dirtyParts.isEmpty()){
+
+ for (MPart dirtyPart: dirtyParts){
+ if (dirtyPart.getElementId().equals("eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4") && ((ITaxonEditor)dirtyPart.getObject()).getTaxonNode().getUuid().equals(entity.getUuid())){
+ boolean doSave = MessageDialog
+ .openConfirm(shell, "The taxonnode is in an unsaved mode",
+ "Do you want to save?");
+
+ if (!doSave) {
+ return ;
+ }
+
+ partService.savePart(dirtyPart, false);
+ }
+
+ }
+ }
EditTaxonNodeWizard taxonNodeWizard = ContextInjectionFactory.make(EditTaxonNodeWizard.class, context);
taxonNodeWizard.init(null, null);
taxonNodeWizard.setEntity(CdmStore.getService(ITaxonNodeService.class).load(entity.getUuid()));
WizardDialog dialog = new WizardDialog(shell, taxonNodeWizard);
dialog.open();
EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, entity);
+ EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, entity.getTaxonUuid());
}
return false;
}
+
+
}
\ No newline at end of file
*/
public class P2Util {
- private static String EDIT_NIGHTLY_UPDATE_SITE = "http://cybertaxonomy.eu/download/taxeditor/update/nightly/";
+ private static String EDIT_NIGHTLY_UPDATE_SITE = "https://cybertaxonomy.eu/download/taxeditor/update/nightly/";
private static String EDIT_NIGHTLY_UPDATE_SITE_NAME = "Taxonomic Editor Nightly";
- private static String EDIT_STABLE_UPDATE_SITE = "http://cybertaxonomy.eu/download/taxeditor/update/stable/";
+ private static String EDIT_STABLE_UPDATE_SITE = "https://cybertaxonomy.eu/download/taxeditor/update/stable/";
private static String EDIT_STABLE_UPDATE_SITE_NAME = "Taxonomic Editor Stable";
/**
private CdmLightExportConfigurator configurator;
private ExportToFileDestinationWizardPage page;
+ private MetaDataConfigurationWizardPage metaDataPage;
@Inject
public CdmLightExportWizardE4(IEclipseContext context,
//+ page.getExportFileName();
final Combo combo = page.getCombo();
+ metaDataPage.fillConfig();
+ configurator = metaDataPage.configurator;
final List<Classification> listClassifications = CdmStore.getCurrentApplicationConfiguration().getClassificationService().listClassifications(null, null, null, null);
if(combo != null){
int selectionIndex = combo.getSelectionIndex();
addPage(page);
super.addPages();
+ metaDataPage = new MetaDataConfigurationWizardPage("Add Meta Data", configurator);
+ addPage(metaDataPage);
+
}
}
--- /dev/null
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.io.e4.out.cdmlight;
+
+import java.util.List;
+
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+import eu.etaxonomy.cdm.io.cdmLight.CdmLightExportConfigurator;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since Aug 5, 2020
+ */
+public class MetaDataConfigurationWizardPage extends WizardPage {
+
+ CdmLightExportConfigurator configurator;
+
+ private Text text_title;
+ private Text text_description;
+ private Text text_creator;
+ private Text text_contributor;
+ private Combo combo_language;
+ private Text text_dataset_landingPage;
+ private Text uri_datasetDownloadLink;
+ private Text base_url;
+ private Text text_recommendedCitation;
+ private Text text_location;
+ private Text text_keyWords;
+ private Text text_licence;
+
+ /**
+ * @param pageName
+ */
+ protected MetaDataConfigurationWizardPage(String pageName, CdmLightExportConfigurator config) {
+ super(pageName);
+ configurator = config;
+
+ }
+
+ public CdmLightExportConfigurator getConfigurator() {
+ return configurator;
+ }
+
+ public void setConfigurator(CdmLightExportConfigurator configurator) {
+ this.configurator = configurator;
+ }
+
+ @Override
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NULL);
+ composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 2;
+ composite.setLayout(gridLayout);
+ Label label_title = new Label(composite, SWT.NULL);
+ label_title.setText("Title");
+ text_title = new Text(composite, SWT.BORDER);
+ text_title.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+ Label label_description = new Label(composite, SWT.NULL);
+ label_description.setText("Description");
+ text_description = new Text(composite, SWT.BORDER);
+ text_description.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+ Label label_creator = new Label(composite, SWT.NULL);
+ label_creator.setText("Creator");
+ text_creator = new Text(composite, SWT.BORDER);
+ text_creator.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+ Label label_contributor = new Label(composite, SWT.NULL);
+ label_contributor.setText("Contributor");
+ text_contributor = new Text(composite, SWT.BORDER);
+ text_contributor.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+ Label label_language = new Label(composite, SWT.NULL);
+ label_language.setText("Language");
+ combo_language = new Combo(composite, SWT.BORDER);
+
+ List<Language> preferredLanguages = CdmStore.getTermManager().getPreferredTerms(Language.class);
+ int currentSelectionIndex = 0;
+ Language defaultLang = CdmStore.getDefaultLanguage();
+ for(int i = 0; i < preferredLanguages.size(); i++){
+ Language language = preferredLanguages.get(i);
+ combo_language.add(language.getLabel(), i);
+ combo_language.setData(language.getLabel(), language);
+ if (language.equals(defaultLang)){
+ currentSelectionIndex = i;
+ }
+ }
+
+ combo_language.select(currentSelectionIndex);
+
+
+
+ Label label_landingPage = new Label(composite, SWT.NULL);
+ label_landingPage.setText("Dataset landing page");
+ text_dataset_landingPage= new Text(composite, SWT.BORDER);
+ text_dataset_landingPage.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+ Label label_datasetDownloadLink = new Label(composite, SWT.NULL);
+ label_datasetDownloadLink.setText("Dataset download link");
+ uri_datasetDownloadLink= new Text(composite, SWT.BORDER);
+ uri_datasetDownloadLink.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+ Label label_base_url = new Label(composite, SWT.NULL);
+ label_base_url.setText("Base URL");
+ base_url= new Text(composite, SWT.BORDER);
+ base_url.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+ Label label_recommendedCitation = new Label(composite, SWT.NULL);
+ label_recommendedCitation.setText("Recommended citation");
+ text_recommendedCitation= new Text(composite, SWT.BORDER);
+ text_recommendedCitation.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+ Label label_location = new Label(composite, SWT.NULL);
+ label_location.setText("Location");
+ text_location= new Text(composite, SWT.BORDER);
+ text_location.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+ Label label_keyWords = new Label(composite, SWT.NULL);
+ label_keyWords.setText("Keywords");
+ text_keyWords= new Text(composite, SWT.BORDER);
+ text_keyWords.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+ Label label_licence = new Label(composite, SWT.NULL);
+ label_licence.setText("Licence");
+ text_licence= new Text(composite, SWT.BORDER);
+ text_licence.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+
+ setControl(composite);
+ }
+
+
+ public void fillConfig() {
+
+ configurator.setTitle(text_title.getText());
+
+ configurator.setDescription(text_description.getText());
+
+ configurator.setCreator(text_creator.getText());
+
+ configurator.setContributor(text_contributor.getText());
+
+ configurator.setLanguage((Language)combo_language.getData(combo_language.getText()));
+
+ configurator.setDataSet_landing_page(text_dataset_landingPage.getText());
+
+ configurator.setDataset_download_link(uri_datasetDownloadLink.getText());
+
+ configurator.setBase_url(base_url.getText());
+
+ configurator.setRecommended_citation(text_recommendedCitation.getText());
+
+ configurator.setLocation(text_location.getText());
+
+ configurator.setKeywords(text_keyWords.getText());
+
+ configurator.setLicence(text_licence.getText());
+ }
+
+
+
+}
public static String TaxonNodeWizardPage_SECUNDUM_REFERENCE;
public static String TaxonNodeWizardPage_STATUS_NOTES;
public static String TaxonNodeWizardPage_CLASSIFICATION;
+ public static String TaxonNodeWizardPage_TAXON_NODE;
+ public static String TaxonNodeWizardPage_TAXON_INFORMATION;
+ public static String TaxonNodeWizardPage_TAXON_IS_PUBLISH;
public static String TaxonomicEditorGeneralPreferences_background;
public static String TaxonomicEditorGeneralPreferences_connect;
public static String MediaDetailElement_NO_PREVIEW;
public static String MediaDetailElement_TOGGLE_NOT_POSSIBLE_MESSAGE;
public static String MediaDetailElement_TOGGLE_NOT_POSSIBLE_TITLE;
+ public static String MediaDetailElement_SHOW_IMAGE;
+ public static String MediaDetailElement_RELOAD_IMAGE;
+
public static String MediaPreferences_advanced;
public static String MediaPreferences_preview;
public static String DeleteConfiguration_descriptionFromDescriptiveDataSet_onlyRemove;
+ public static String EnumCombo_Placement_status;
+
+ public static String OriginalSourceAdvancedSection_advanced;
+
+
+
+
+
+
+
+
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
TaxonNodeWizardPage_TAXON=Taxon
TaxonNodeWizardPage_REUSE_EXISTING_TAXON=Reuse existing taxon
TaxonNodeWizardPage_REUSE_EXISTING_NAME=Reuse existing name
-TaxonNodeWizardPage_SECUNDUM_REFERENCE=Secundum Reference
+TaxonNodeWizardPage_SECUNDUM_REFERENCE=Secundum reference
TaxonNodeWizardPage_STATUS_NOTES=Status notes
TaxonNodeWizardPage_CLASSIFICATION=Classification
+TaxonNodeWizardPage_TAXON_NODE=Taxon node
+TaxonNodeWizardPage_TAXON_INFORMATION=Taxon information
+TaxonNodeWizardPage_TAXON_IS_PUBLISH=Taxon is publish
TaxonomicEditorGeneralPreferences_background=Run long running operations in background
TaxonomicEditorGeneralPreferences_connect=Connect to last used datasource when launching
TaxonRelationshipTypeMenuPreferences_configure=Configure taxon relationship types
MediaDetailElement_NO_PREVIEW=No preview available for this file type
MediaDetailElement_TOGGLE_NOT_POSSIBLE_MESSAGE=Media consists of multiple representations or representatio parts
MediaDetailElement_TOGGLE_NOT_POSSIBLE_TITLE=Toggling not possible
+MediaDetailElement_SHOW_IMAGE=Show Image
+MediaDetailElement_RELOAD_IMAGE=Reload Image
+
+
MediaPreferences_advanced=Show Advanced Media View in Details View
MediaPreferences_preview=Show Preview in Media View (Tree View)
StructuredDescriptionAggregationWizardPage_SELECT_SELECTED_TAXA_ONLY=Aggregate selected taxon/taxa only
CommonNameLanguages_Title=Common Name Languages
CommonNameVocabularyPreferencePage_description=Select the vocabularies for common name area selection.
-CommonNameLanguagePreferencePage_description=Choose the languages available for common names.
\ No newline at end of file
+CommonNameLanguagePreferencePage_description=Choose the languages available for common names.
+EnumCombo_Placement_status=Placement status
+OriginalSourceAdvancedSection_advanced=more
\ No newline at end of file
TaxonNodeWizardPage_SECUNDUM_REFERENCE=Secundum Referenz
TaxonNodeWizardPage_STATUS_NOTES=Status Annmerkungen
TaxonNodeWizardPage_CLASSIFICATION=Klassifikation
+TaxonNodeWizardPage_TAXON_NODE=Taxonknoten
+TaxonNodeWizardPage_TAXON_INFORMATION=Taxon Information
+TaxonNodeWizardPage_TAXON_IS_PUBLISH=Taxon ist öffentlich
+
TaxonomicEditorGeneralPreferences_background=Long Running Operations laufen im Hintergrund
TaxonomicEditorGeneralPreferences_connect=Beim Starten mit der zuletzt verwendeten Datenquelle verbinden
TaxonRelationshipTypeMenuPreferences_configure=Auswahl der zur Verf\u00FCgung stehenden Taxonrelationstypen
MediaDetailElement_NO_PREVIEW=Keine Vorschau für diesen Dateityp vorhanden
MediaDetailElement_TOGGLE_NOT_POSSIBLE_MESSAGE=Media besteht aus mehreren "representations" oder "representation parts"
MediaDetailElement_TOGGLE_NOT_POSSIBLE_TITLE=Umschalten nicht möglich
+MediaDetailElement_SHOW_IMAGE=Zeige Bild
+MediaDetailElement_RELOAD_IMAGE=Bild neu laden
+
MediaPreferences_advanced=Erweiterten Media Details View anzeigen
MediaPreferences_preview=Vorschau anzeigen
StructuredDescriptionAggregationWizardPage_SELECT_SELECTED_TAXA_ONLY=Aggregiere nur ausgewählte(s) Taxa/Taxon
CommonNameLanguages_Title=Sprachen für Trivialnamen
CommonNameVocabularyPreferencePage_description=Wählen Sie die Vokabulare, für die Area-Auswahl bei Trivialnamen.
-CommonNameLanguagePreferencePage_description=Wählen Sie die für Trivialnamen verfügbaren Sprachen.
\ No newline at end of file
+CommonNameLanguagePreferencePage_description=Wählen Sie die für Trivialnamen verfügbaren Sprachen.
+
+EnumCombo_Placement_status=Platzierungsstatus
+OriginalSourceAdvancedSection_advanced=mehr
\ No newline at end of file
}
}
public static void updateNameEditors(Set<Taxon> taxaToUpdate){
- EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, taxaToUpdate);
+ for (Taxon tax: taxaToUpdate){
+ if (tax != null){
+ EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, tax.getUuid());
+ }
+ }
}
text += source.getCitation().getTitleCache();
}
if(source.getNameUsedInSource() != null){
- text += " [ " + source.getNameUsedInSource().getTitleCache() + " ]";
+ text += " [" + source.getNameUsedInSource().getTitleCache() + "]";
}
}
if(isBlank(text)){
import eu.etaxonomy.cdm.api.service.dto.CreateTaxonDTO;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.LanguageString;
+import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNodeStatus;
TaxonNode parent = getParentEntity();
Map<Language, LanguageString> notes = ((TaxonNodeDetailElement)taxonNodePage.getDetailElement()).getMultiLanguageTextExcludedNotes();
- UUID refUuid = parent.getReference() != null? parent.getReference().getUuid(): null;
+ DescriptionElementSource source = parent.getSource().checkEmpty()? null: parent.getSource();
+
TaxonNodeStatus status = ((TaxonNodeDetailElement)taxonNodePage.getDetailElement()).getTaxonNodeStatus();
if (status == null){
notes = null;
}
- result = CdmStore.getService(ITaxonNodeService.class).createNewTaxonNode(parent.getUuid(), taxon, refUuid, parent.getMicroReference(),
+ result = CdmStore.getService(ITaxonNodeService.class).createNewTaxonNode(parent.getUuid(), taxon, source, parent.getMicroReference(),
status, notes);
if (result.isOk()){
/**
* @author k.luther
* @since 27.04.2018
- *
*/
public class CdmPreferenceCache {
- Map<String,List<CdmPreference>> preferenceCache = new HashMap();
+ Map<String,List<CdmPreference>> preferenceCache = new HashMap<>();
private static CdmPreferenceCache instance;
private final static Logger logger = Logger.getLogger(CdmPreferenceCache.class);
-
-
public static CdmPreferenceCache instance(){
if(instance == null){
instance = new CdmPreferenceCache();
cachedPreferences.remove(prefToRemove);
cachedPreferences.add(pref);
}else{
- List<CdmPreference> prefs = new ArrayList();
+ List<CdmPreference> prefs = new ArrayList<>();
prefs.add(pref);
preferenceCache.put(pref.getPredicate(), prefs);
}
-
-
}
public boolean remove(CdmPreference pref){
cachedPreferences.remove(prefToRemove);
}
return true;
-
}
public void getAllTaxEditorDBPreferences(){
if (!PreferencesUtil.getOverrideForPreference(PreferencePredicate.AvailableDistributionStatus.getKey()) || !get(key).isAllowOverride()){
//get terms for the uuids... and add them to the termManager as preferred terms
ITermService termService = CdmStore.getService(ITermService.class);
- List<UUID> uuidList = new ArrayList();
+ List<UUID> uuidList = new ArrayList<>();
if (get(key).getValue() != null){
String[] uuidArray =findBestMatching(key).getValue().split(";");
for (String uuidString:uuidArray){
List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
List<TermDto> dtos = new ArrayList<>();
- for (DefinedTermBase term: definedTermBases){
+ for (DefinedTermBase<?> term: definedTermBases){
dtos.add(TermDto.fromTerm(term));
}
CdmStore.getTermManager().setPreferredTermsByType(dtos, TermType.PresenceAbsenceTerm);
if (!PreferencesUtil.getOverrideForPreference(PreferencePredicate.AvailableRanks.getKey()) || !get(key).isAllowOverride()){
//get terms for the uuids... and add them to the termManager as preferred terms
ITermService termService = CdmStore.getService(ITermService.class);
- List<UUID> uuidList = new ArrayList();
+ List<UUID> uuidList = new ArrayList<>();
if (get(key).getValue() != null){
String[] uuidArray =findBestMatching(key).getValue().split(";");
for (String uuidString:uuidArray){
}
List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
- List<TermDto> dtos = new ArrayList();
- for (DefinedTermBase term: definedTermBases){
+ List<TermDto> dtos = new ArrayList<>();
+ for (DefinedTermBase<?> term: definedTermBases){
dtos.add(TermDto.fromTerm(term));
}
CdmStore.getTermManager().setPreferredTermsByType(dtos, TermType.Rank);
if (!PreferencesUtil.getOverrideForPreference(PreferencePredicate.AvailableNomenclaturalStatus.getKey()) || !get(key).isAllowOverride()){
//get terms for the uuids... and add them to the termManager as preferred terms
ITermService termService = CdmStore.getService(ITermService.class);
- List<UUID> uuidList = new ArrayList();
+ List<UUID> uuidList = new ArrayList<>();
if (get(key).getValue() != null){
String[] uuidArray =findBestMatching(key).getValue().split(";");
for (String uuidString:uuidArray){
}
List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
- List<TermDto> dtos = new ArrayList();
- for (DefinedTermBase term: definedTermBases){
+ List<TermDto> dtos = new ArrayList<>();
+ for (DefinedTermBase<?> term: definedTermBases){
dtos.add(TermDto.fromTerm(term));
}
CdmStore.getTermManager().setPreferredTermsByType(dtos, TermType.NomenclaturalStatusType);
}
}
-
-
public CdmPreference findBestMatching(PrefKey key) {
- List<CdmPreference> allPrefs = new ArrayList();
+ List<CdmPreference> allPrefs = new ArrayList<>();
for (String predicate: preferenceCache.keySet()){
allPrefs.addAll(preferenceCache.get(predicate));
}
- return PreferenceResolver.resolve(allPrefs, key);
-
+ return PreferenceResolver.resolve(allPrefs, key);
}
-
}
package eu.etaxonomy.taxeditor.preference.menu;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.UUID;
+import javax.inject.Inject;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.e4.core.services.events.IEventBroker;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.api.service.IVocabularyService;
import eu.etaxonomy.cdm.model.common.CdmClass;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
import eu.etaxonomy.taxeditor.editor.definedterm.FeatureDtoContentProvider;
/** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.feat"{trunked}</code> */
public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.nameFeature"; //$NON-NLS-1$
+ @Inject
+ private IEventBroker eventBroker;
/**
* <p>Constructor for NameFeatureMenuPreference.</p>
*/
if (isApply()){
boolean result = super.performOk();
if (result){
- PreferencesUtil.createPreferredFeatureTreeForNameDescription();
+ PreferencesUtil.getPreferredFeatureTreeForNameDescription(true);
}
}
return true;
setVocabularies(vocs);
}
+ @Override
+ protected List<TermDto> getTermsFromStringValues(List<String> listValue) {
+ Collection<TermDto> termlist = new ArrayList<>();
+ ITermService termService = CdmStore.getService(ITermService.class);
+ List<UUID> uuidList = new ArrayList();
+ for (String s : listValue) {
+ if (!StringUtils.isBlank(s)){
+ UUID uuid = UUID.fromString(s);
+ uuidList.add(uuid);
+ }
+ }
+ if (!uuidList.isEmpty()){
+ termlist = termService.findFeatureByUUIDsAsDto(uuidList);
+ }
+
+ if (listValue == null || listValue.isEmpty() ){
+ termlist = termService.findFeatureByTitleAsDto("");
+
+ }
+
+ return new ArrayList(termlist);
+ }
}
import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.model.term.init.TermLoader;
import eu.etaxonomy.taxeditor.event.EventUtility;
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
if (!monitor.isCanceled()) {
CdmStore.setInstance(applicationController, cdmSource);
+ CdmStore.getTermManager().reset();
monitor.subTask(Messages.CdmStoreConnector_AUTHENTICATING_USER);
display.syncExec(()-> {
try {
//loginDialog.onComplete();
CdmStore.getContextManager().notifyContextStart();
loginDialog.onComplete();
+ //TODO AM: is this necessary to be done on display thread?
new TermLoader().unloadAllTerms();
Rank.initDefaultTerms();
NomenclaturalStatusType.initDefaultTerms();
*/
public class TermManager {
- private static final String TERMS = "terms";
- private static final String TERM = "term";
- private static final String HIDE = "hide";
-
- private static final String CLASS = "class";
- private static final String UUID_STRING = "uuid";
-
-
private Map<Object, List> cachedTermMap = new HashMap<>();
-
//new cache for features!!
//dinstinguish preferences for both
//load at start
public TermManager(){
}
+
+ public void reset(){
+ cachedTermMap = new HashMap<>();
+ }
public <T extends DefinedTermBase> List<T> getPreferredTerms(TermType termType){
List<?> terms = cachedTermMap.get(termType);
@SuppressWarnings("unchecked")
List<T> terms = cachedTermMap.get(termVocabulary.getUuid());
if(terms==null){
- terms = getFilteredTerms(new ArrayList<T>(TermStore.getTerms(termVocabulary,null)));
+ terms = getFilteredTerms(new ArrayList<>(TermStore.getTerms(termVocabulary,null)));
cachedTermMap.put(termVocabulary.getUuid(), terms);
}
return terms;
return null;
}
- private TermVocabularyDto getTermVocabularyByDto(Collection<TermDto> initialTerms){
- if(!initialTerms.isEmpty()){
- TermDto entity = initialTerms.iterator().next();
- return entity.getVocabularyDto();
- }
- return null;
- }
-
-
/**
* Generic method to set term preferences
*
clearTermMapForTermVoc(voc.getUuid());
}
-
/**
* Generic method to set term preferences
*
public <T extends DefinedTermBase> List<T> getTerms(List<UUID> uuidList, Class clazz){
List<T> filteredTerms = new ArrayList<>();
- List<T> terms = TermStore.getTerms(clazz);
+ @SuppressWarnings("unchecked")
+ List<T> terms = TermStore.getTerms(clazz);
if (uuidList == null || uuidList.isEmpty()){
return terms;
}
* @return a sorted list of terms
*/
public static <TERM extends DefinedTermBase> List<TERM> getTerms(Class<TERM> clazz, Comparator<TERM> comparator, boolean filtered){
- List<TERM> terms = new ArrayList<TERM>();
+ List<TERM> terms = new ArrayList<>();
ITermStoreEdgeCase<TERM> edgeCase = getEdgeCase(clazz);
if(filtered && edgeCase != null){
}
return terms;
-
}
- /**
- *
- * @param termClass
- * @param comparator
- * @return
- */
private static <T extends DefinedTermBase> List<T> getTermsFromService(TermType termType, Comparator<T> comparator){
if (comparator == null){
comparator = new DefaultTermComparator<T>();
return terms;
}
- /**
- *
- * @param termClass
- * @param comparator
- * @return
- */
private static <T extends DefinedTermBase> List<T> getTermsFromService(Class<T> termClass, Comparator<T> comparator){
if (comparator == null){
comparator = new DefaultTermComparator<T>();
return terms;
}
- /**
- * @param term a {@link eu.etaxonomy.cdm.model.term.DefinedTermBase} object.
- */
public static void saveTerm(DefinedTermBase term){
CdmStore.getService(ITermService.class).saveOrUpdate(term);
}
/**
* Handingling of special cases
*/
-
- private static Set<ITermStoreEdgeCase<? extends DefinedTermBase>> termStoreEdgeCases = new HashSet<ITermStoreEdgeCase<? extends DefinedTermBase>>();
+ private static Set<ITermStoreEdgeCase<? extends DefinedTermBase>> termStoreEdgeCases = new HashSet<>();
static {
termStoreEdgeCases.add(new ITermStoreEdgeCase<Feature>() {
@Override
public List<MarkerType> getTerms() {
// filter out non technical markers
- List<MarkerType> nonTechnicalMarkerTypes = new ArrayList<MarkerType>();
+ List<MarkerType> nonTechnicalMarkerTypes = new ArrayList<>();
List<MarkerType> markerTypes = TermStore.getTermsFromService(MarkerType.class, null);
for (Object type : markerTypes) {
public List<Rank> getTerms() {
if(PreferencesUtil.getSortRanksHierarchichally()){
return TermStore.getTermsFromService(Rank.class, new Comparator<Rank>(){
-
- @Override
- public int compare(Rank o1, Rank o2) {
- return o1.compareTo(o2);
- }
-
- });
+ @Override
+ public int compare(Rank o1, Rank o2) {
+ return o1.compareTo(o2);
+ }
+ });
}else{
return TermStore.getTermsFromService(Rank.class, null);
}
}
-
});
termStoreEdgeCases.add(new ITermStoreEdgeCase<PresenceAbsenceTerm>() {
-
@Override
public Class<PresenceAbsenceTerm> getTermClass() {
return PresenceAbsenceTerm.class;
}
-
@Override
public List<PresenceAbsenceTerm> getTerms() {
List<PresenceAbsenceTerm> presenceAbsenceTerms = TermStore.getTermsFromService(PresenceAbsenceTerm.class, null);
}
});
termStoreEdgeCases.add(new ITermStoreEdgeCase<TaxonRelationshipTypeInverseContainer>() {
-
@Override
public Class<TaxonRelationshipTypeInverseContainer> getTermClass() {
return TaxonRelationshipTypeInverseContainer.class;
}
-
@Override
public List<TaxonRelationshipTypeInverseContainer> getTerms() {
List<TaxonRelationshipType> excludeTaxonRelationshipTypes = Arrays.asList(new TaxonRelationshipType[]{
TaxonRelationshipType.ALL_RELATIONSHIPS()
});
- List<TaxonRelationshipTypeInverseContainer> relationshipTypeInverseContainers = new ArrayList<TaxonRelationshipTypeInverseContainer>();
+ List<TaxonRelationshipTypeInverseContainer> relationshipTypeInverseContainers = new ArrayList<>();
List<TaxonRelationshipType> relationshipTypes = TermStore.getTerms(TaxonRelationshipType.class);
import eu.etaxonomy.cdm.model.reference.ReferenceType;
import eu.etaxonomy.cdm.model.taxon.TaxonNodeStatus;
import eu.etaxonomy.cdm.model.term.IEnumTerm;
+import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
} else if(enumType.equals(NomenclaturalCodeEdition.class)) {
return "Code Edition";
}else if(enumType.equals(TaxonNodeStatus.class)) {
- return "Placement status";
+ return Messages.EnumCombo_Placement_status;
}
return "No Label";
}
import eu.etaxonomy.cdm.api.service.config.SecundumForSubtreeConfigurator;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
gridLayoutRef.numColumns = 4;
compositeRef.setLayout(gridLayoutRef);
- compositeRef.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, true));
+ compositeRef.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, true));
Label label = new Label(compositeRef, SWT.WRAP);
label.setText(Messages.SetSecundumConfiguration_NewSecundum_Label);
- label.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+ label.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false));
textReference = new Text(compositeRef, SWT.BORDER);
textReference.setEditable(false);
- textReference.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- textReference.setTextLimit(Text.LIMIT);
+ textReference.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, true));
+// textReference.setTextLimit(Text.LIMIT);
+ textReference.setBackground(StoreUtil
+ .getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND));
+
btnBrowseReference = new Button(compositeRef, SWT.NONE);
btnBrowseReference.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/prj_obj.gif"));
btnBrowseReference.addListener(SWT.Selection, this);
+ btnBrowseReference.setFocus();
btnClear = new Button(compositeRef, SWT.NONE);
btnClear.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/trash.gif"));
protected void callService(String pattern) {
model = CdmStore.getService(IClassificationService.class)
.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(
- selectedClassification.getUuid(), limitOfInitialElements, pattern, allowClassificationSelection);
+ selectedClassification.getUuid(), limitOfInitialElements, pattern, allowClassificationSelection, true);
}
@Override
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitMediaSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationEventDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.media.MediaSpecimenGeneralDetailSection;
import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailElement;
import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.OriginalSourceAdvancedSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.OriginalSourceElement;
import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailElement;
import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.SingleSourceSection;
import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationElement;
import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationSection;
import eu.etaxonomy.taxeditor.ui.section.supplemental.CdmBaseElement;
}
+ public DerivedUnitMediaSection createDerivedUnitMediaSection(ConversationHolder conversation,
+ ICdmFormElement parentElement, int style) {
+ DerivedUnitMediaSection section = new DerivedUnitMediaSection(this, conversation, parentElement, style);
+ parentElement.addElement(section);
+ adapt(section);
+ return section;
+
+ }
+
/**
* @param definedTermClass
* @param formElement
return section;
}
+ public OriginalSourceAdvancedSection createOriginalSourceAdvancedSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+ OriginalSourceAdvancedSection section = new OriginalSourceAdvancedSection(this, conversation, parentElement, selectionProvider, style);
+ addAndAdaptSection(parentElement, section);
+ return section;
+ }
+
+ public SingleSourceSection createSingleSourceSection(ConversationHolder conversation, ICdmFormElement parentElement, CdmBase cdmEntity, ISelectionProvider selectionProvider, int style){
+ SingleSourceSection section = new SingleSourceSection(this, conversation, parentElement, cdmEntity, selectionProvider, style);
+ addAndAdaptSection(parentElement, section);
+ return section;
+ }
+
public TaxonBaseDetailSection createTaxonBaseDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
TaxonBaseDetailSection section = new TaxonBaseDetailSection(this, conversation, parentElement, selectionProvider, style);
addAndAdaptSection(parentElement, section);
addAndAdaptElement(parentElement, element);
return element;
}
+ public OriginalSourceElement createOriginalSourceElement(ICdmFormElement parentElement, CdmBase cdmEntity){
+ OriginalSourceElement element = new OriginalSourceElement(this, parentElement, cdmEntity);
+ addAndAdaptElement(parentElement, element);
+ return element;
+ }
public TaxonRelationshipDetailElement createTaxonRelationshipDetailElement(ICdmFormElement parentElement){
TaxonRelationshipDetailElement element = new TaxonRelationshipDetailElement(this, parentElement);
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.jface.operation.IRunnableWithProgress;
import eu.etaxonomy.cdm.common.UriUtils;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewerE4;
import eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4;
import eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4;
@Override
public void run() {
try{
- EPartService partService = getFormFactory().getContext().get(EPartService.class);
- DetailsPartE4 detailsView = AbstractUtility.getDetailsView(partService);
- if(detailsView!=null){
- AbstractCdmDataViewerE4 viewer = (AbstractCdmDataViewerE4) detailsView.getViewer();
- if(viewer!=null){
- viewer.reflow();
+ if (getFormFactory() != null && getFormFactory().getContext() != null){
+ EPartService partService = getFormFactory().getContext().get(EPartService.class);
+ IEclipseContext context = getFormFactory().getContext().getActiveChild();
+ DetailsPartE4 detailsView = AbstractUtility.getDetailsView(partService);
+ if(detailsView!=null){
+ AbstractCdmDataViewerE4 viewer = (AbstractCdmDataViewerE4) detailsView.getViewer();
+ if(viewer!=null){
+ viewer.reflow();
+ }
}
- }
- MPart mPartSupplemental = partService.findPart("eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4");
- if(mPartSupplemental!=null){
- SupplementalDataPartE4 supplementalPart = (SupplementalDataPartE4)mPartSupplemental.getObject();
- if(supplementalPart!=null){
- AbstractCdmDataViewerE4 viewer = (AbstractCdmDataViewerE4) (supplementalPart).getViewer();
- if(viewer!=null){
- viewer.refresh();
+ MPart mPartSupplemental = partService.findPart("eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4");
+ if(mPartSupplemental!=null){
+ SupplementalDataPartE4 supplementalPart = (SupplementalDataPartE4)mPartSupplemental.getObject();
+ if(supplementalPart!=null){
+ AbstractCdmDataViewerE4 viewer = (AbstractCdmDataViewerE4) (supplementalPart).getViewer();
+ if(viewer!=null){
+ viewer.refresh();
+ }
}
}
}
+ StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
}
catch(IllegalStateException e){
//when migrating to E4 this execption should not be thrown anymore
PaintEvent event = new PaintEvent(untypedEvent);
event.gc = new GC(container);
paintControl(event);
- getLayoutComposite().layout();
+
}
}
});
*/
package eu.etaxonomy.taxeditor.ui.element;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
import eu.etaxonomy.cdm.model.agent.ORCID;
import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
+import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
/**
* @author k.luther
*/
public class OrcidWithLabelElement extends AbstractUriWithExceptionLabelElement<ORCID> {
+ private Button btnOpenBrowser;
+
/**
* @param formFactory
* @param parentElement
//label
initLabel(formFactory, labelString, false, getLayoutComposite());
+ Composite textAndButton = formFactory.createComposite(getLayoutComposite(), style);
+ addControl(textAndButton);
+ textAndButton.setLayout(LayoutConstants.LAYOUT(2, false));
+ textAndButton.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
+
//uri text
- initText(formFactory, null, textHeight, null, false, style, getLayoutComposite());
+ initText(formFactory, null, textHeight, null, false, style, textAndButton);
+ //button
+ btnOpenBrowser = formFactory.createButton(textAndButton, "", SWT.NONE); //$NON-NLS-1$
+ btnOpenBrowser.setImage(ImageResources.getImage(ImageResources.WEB));
+ btnOpenBrowser.setToolTipText(Messages.UriWithLabelElement_OPEN_EXTERNAL_BROWSER);
+ btnOpenBrowser.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ String errorTitle = Messages.UriWithLabelElement_INVALID_URL;
+ String errorText = Messages.UriWithLabelElement_COULD_NOT_OPEN_BROWSER;
+
+ ORCID orcid = parseText();
+ if(orcid!=null){
+ try {
+ WorkbenchUtility.openWebpage(orcid.asURI());
+ } catch (IllegalArgumentException iae) {
+ MessagingUtils.informationDialog(errorTitle, new Status(IStatus.WARNING, TaxeditorStorePlugin.PLUGIN_ID, errorText, iae));
+ }
+ }
+ else{
+ MessagingUtils.informationDialog(errorTitle, new Status(IStatus.WARNING, TaxeditorStorePlugin.PLUGIN_ID, errorText, null));
+ }
+ }
+ });
+ btnOpenBrowser.setLayoutData(LayoutConstants.RIGHT());
initExceptionLabel(getLayoutComposite(), formFactory, initialObject);
}
@Override
public ORCID parseText(){
try {
+ labelException.setText("");
labelException.setFont(JFaceResources.getFontRegistry().get(JFaceResources.DEFAULT_FONT));
labelException.setForeground(getPersistentBackground());
return getParsedText();
text.setTextLimit(limit);
}
+ public void setIndent(int indent){
+ TableWrapData tableWrapData = (TableWrapData)label.getLayoutData();
+ tableWrapData.indent = indent;
+
+ label.setLayoutData(tableWrapData);
+ getLayoutComposite().layout();
+ }
+
}
except.add(formElement);
}
}
-
- enabled = getEntity() != null && CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), requiredCrud);
+ if (getEntity() != null){
+ enabled = CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), requiredCrud);
+ }else{
+ enabled = true;
+ }
setEnabled(enabled, except);
}
}
if (detailElement != null) {
detailElement.setEntity(entity);
+ formFactory.adapt(detailElement);
Collection<Object> except = new ArrayList<>();
for(ICdmFormElement formElement:detailElement.getElements()){
if(formElement instanceof IEnableableFormElement && !((IEnableableFormElement) formElement).isEnabled()){
except.add(formElement);
}
}
+ if (entity != null){
+ boolean hasPermission = CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(entity), requiredCrud);
+ detailElement.setEnabled(isEnabled() && hasPermission, except);
+ }else{
+ detailElement.setEnabled(isEnabled() && true, except);
+ }
- boolean hasPermission = CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(entity), requiredCrud);
- detailElement.setEnabled(isEnabled() && hasPermission, except);
}
super.setEntity(entity);
setSectionTitle();
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.persistence.dto.MergeResult;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
import eu.etaxonomy.taxeditor.newWizard.IWizardPageListener;
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
private ICdmEntitySession cdmEntitySession;
+// @Override
+// public void init(IWorkbench workbench, IStructuredSelection selection) {
+// formFactory = new CdmFormFactory(getContext().get(Shell.class).getDisplay());
+// conversation = CdmStore.createConversation();
+// }
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.ui.section.classification.AbstractEditWizard#getEntityName()
*/
protected void saveEntity() {
getConversationHolder().bind();
TaxonNode node = getEntity();
-
+ if (node.getSource().checkEmpty()){
+ node.setSource(null);
+ }
MergeResult result = CdmStore.getService(ITaxonNodeService.class).merge(node, true);
+ EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, node.getTaxon().getUuid());
}
@Override
+
}
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
-
package eu.etaxonomy.taxeditor.ui.section.classification;
import java.util.ArrayList;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
+import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import eu.etaxonomy.cdm.common.CdmUtils;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.LanguageString;
+import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.metadata.PublishEnum;
import eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.reference.OriginalSourceElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
import eu.etaxonomy.taxeditor.ui.selection.TaxonNodeSelectionElement;
private static final String REUSE_EXISTING_NAME = Messages.TaxonNodeWizardPage_REUSE_EXISTING_NAME;
private static final String SECUNDUM_REFERENCE = Messages.TaxonNodeWizardPage_SECUNDUM_REFERENCE;
+ private static final Font FONT_BOLD = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);
+
private boolean createNew = false;
private Classification classification;
private TaxonNode parentNode;
private EntitySelectionElement<Taxon> selection_reuseExistingTaxon;
private EntitySelectionElement<TaxonName> selection_reuseExistingName;
private EntitySelectionElement<Reference> selection_SecRef;
- private EntitySelectionElement<Reference> selection_Ref;
+
+ private OriginalSourceElement singleSourceSection;
+
private TextWithLabelElement textTaxonSec;
private TextWithLabelElement microReference;
private TextWithLabelElement textNewTaxonName;
}
public Reference getRef() {
- return selection_Ref.getEntity();
+ return singleSourceSection.getEntity().getCitation();
}
public TaxonName getExistingName() {
return selection_reuseExistingName.getEntity();
TaxonNode entity, int style) {
// taxon = entity.getTaxon();
+ Label taxonTitle = new Label(getLayoutComposite(), SWT.NULL);
+ taxonTitle.setText(Messages.TaxonNodeWizardPage_TAXON_INFORMATION);
+ taxonTitle.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ taxonTitle.setFont(FONT_BOLD);
+
+
+
if (isCreateNew()){
-// setParentTreeNode(entity);
- selection_parentTaxonNode = formFactory
- .createTaxonNodeSelectionElement(getConversationHolder(), formElement, Messages.TaxonNodeWizardPage_PARENT, parentNode,
- EntitySelectionElement.DELETABLE, style, 100);
-
- selection_Ref = formFactory
- .createSelectionElement(Reference.class,
- formElement, Messages.TaxonNodeWizardPage_PLACEMENT_SOURCE, null,
- EntitySelectionElement.DELETABLE, style, 100);
+ textNewTaxonName = formFactory.createTextWithLabelElement(formElement,
+ Messages.TaxonNodeWizardPage_NEW_TAXON, "", style);
+ textNewTaxonName.setFocus();
+
+ selection_reuseExistingTaxon = formFactory
+ .createSelectionElement(Taxon.class,//getConversationHolder(),
+ formElement,
+ REUSE_EXISTING_TAXON, null,
+ EntitySelectionElement.DELETABLE, style);
- microReference = formFactory.createTextWithLabelElement(formElement,
- Messages.TaxonNodeWizardPage_PLACEMENT_SOURCE_DETAIL, "", style);
- microReference.setText(parentNode.getMicroReference());
-
- selection_reuseExistingTaxon = formFactory
- .createSelectionElement(Taxon.class,//getConversationHolder(),
- formElement,
- REUSE_EXISTING_TAXON, null,
- EntitySelectionElement.DELETABLE, style);
-
- selection_reuseExistingName = formFactory
- .createSelectionElement(TaxonName.class,//getConversationHolder(),
- formElement,
- REUSE_EXISTING_NAME, taxon != null? taxon.getName(): null,
- EntitySelectionElement.DELETABLE, style);
- selection_SecRef = formFactory
+ selection_reuseExistingName = formFactory
+ .createSelectionElement(TaxonName.class,//getConversationHolder(),
+ formElement,
+ REUSE_EXISTING_NAME, taxon != null? taxon.getName(): null,
+ EntitySelectionElement.DELETABLE, style);
+ selection_SecRef = formFactory
.createSelectionElement(Reference.class,//getConversationHolder(),
formElement, SECUNDUM_REFERENCE, taxon != null? taxon.getSec(): null,
EntitySelectionElement.DELETABLE, style, 100);
- if (isCreateNew()){
- textNewTaxonName = formFactory.createTextWithLabelElement(formElement,
- Messages.TaxonNodeWizardPage_NEW_TAXON, "", style);
- textNewTaxonName.setFocus();
- } else{
- textNewTaxonName = formFactory.createTextWithLabelElement(formElement,
- Messages.TaxonNodeWizardPage_TAXON, "", style);
- }
- }else{
- taxon = getEntity().getTaxon();
- if (entity.getParent().getTaxon() == null){
- TextWithLabelElement textParent = formFactory.createTextWithLabelElement(
- formElement,CLASSIFICATION_STR, entity.getClassification().getTitleCache(), style);
- textParent.setEnabled(false);
- }else{
- TextWithLabelElement textParent = formFactory.createTextWithLabelElement(
- formElement, Messages.TaxonNodeWizardPage_PARENT, entity.getParent().getTaxon().getTitleCache(), style);
- textParent.setEnabled(false);
- }
+ microReference = formFactory.createTextWithLabelElement(formElement, "Secundum Details", "", style);
- selection_Ref = formFactory
- .createSelectionElement(Reference.class,
- formElement, Messages.TaxonNodeWizardPage_PLACEMENT_SOURCE, null,
- EntitySelectionElement.DELETABLE, style);
+ checkbox_publish = formFactory.createCheckbox(formElement,
+ Messages.TaxonNodeWizardPage_TAXON_IS_PUBLISH, true, style);
+
+ checkbox_publish.setEnabled(isCreateNew());
+ Label spacer = new Label(getLayoutComposite(), SWT.NULL);
+ spacer.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 2));
+ Label nodeTitle = new Label(getLayoutComposite(), SWT.NULL);
+ nodeTitle.setText("Taxon Node");
+ nodeTitle.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ nodeTitle.setFont(FONT_BOLD);
+// LabelElement nodeTitle = formFactory.createLabel(formElement, Messages.TaxonNodeWizardPage_TAXON_INFORMATION);
+// nodeTitle.setLayout(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+// nodeTitle.setBackground(getPersistentBackground());
+// nodeTitle.setBold();
+
+ selection_parentTaxonNode = formFactory
+ .createTaxonNodeSelectionElement(getConversationHolder(), formElement, Messages.TaxonNodeWizardPage_PARENT, parentNode,
+ EntitySelectionElement.DELETABLE, style, 100);
+
+
+
+ }else{
+ taxon = getEntity().getTaxon();
selection_reuseExistingTaxon = formFactory
.createSelectionElement(Taxon.class,//getConversationHolder(),
formElement,
Messages.TaxonNodeWizardPage_TAXON, taxon,
EntitySelectionElement.DELETABLE, style);
+
textTaxonSec = formFactory.createTextWithLabelElement(formElement,SECUNDUM_REFERENCE, "", style);
+ microReference = formFactory.createTextWithLabelElement(formElement, "Secundum Details", "", style);
if (entity.getTaxon().getSec() != null){
textTaxonSec.setText(taxon.getSec().getTitleCache());
}
textTaxonSec.setEnabled(false);
- }
+ microReference.setEnabled(false);
+ Label spacer = new Label(getLayoutComposite(), SWT.NULL);
+ spacer.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 2));
- if (!isCreateNew()){
- if (entity.getReference() != null){
- selection_Ref.setEntity(entity.getReference());
- }
- }
+ Label nodeTitle = new Label(getLayoutComposite(), SWT.NULL);
+ nodeTitle.setText("Taxon Node");
+ nodeTitle.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ nodeTitle.setFont(FONT_BOLD);
- Taxon tax = null;
- if (entity.getTaxon() != null){
- tax = entity.getTaxon();
- }
- checkbox_publish = formFactory.createCheckbox(formElement,
- "Taxon is published", tax != null? tax.isPublish(): true, style);
+// LabelElement nodeTitle = formFactory.createLabel(formElement, "Taxon Node");
+// nodeTitle.setLayout(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+// nodeTitle.setBackground(getPersistentBackground());
+// nodeTitle.setBold();
+
+
+ if (entity.getParent().getTaxon() == null){
+ TextWithLabelElement textParent = formFactory.createTextWithLabelElement(
+ formElement,CLASSIFICATION_STR, entity.getClassification().getTitleCache(), style);
+ textParent.setEnabled(false);
+ }else{
+ TextWithLabelElement textParent = formFactory.createTextWithLabelElement(
+ formElement, Messages.TaxonNodeWizardPage_PARENT, entity.getParent().getTaxon().getTitleCache(), style);
+ textParent.setEnabled(false);
+ }
+ }
- checkbox_publish.setEnabled(isCreateNew());
combo_status = formFactory.createEnumComboElement(TaxonNodeStatus.class, formElement, style, true);
if (!isCreateNew()){
multiLanguageTextStatusNotes.setEnabled(entity.getStatus() != null);
}
- if (!isCreateNew()){
- selectionNodeAgentRelation = formFactory.createTaxonNodeAgentRelationCollectionSection(formElement, getConversationHolder(), StoreUtil.getSectionStyle(TaxonNodeAgentRelationCollectionSection.class, entity.getClass().getCanonicalName()));
- selectionNodeAgentRelation.setEntity(entity);
- selectionNodeAgentRelation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+
+
+ singleSourceSection = formFactory.createOriginalSourceElement(formElement, entity);
+ if (isCreateNew() || entity.getSource() == null){
+ DescriptionElementSource source = DescriptionElementSource.NewPrimarySourceInstance(null, null);
+ entity.setSource(source);
+ singleSourceSection.setEntity(source);
+ }else{
+ singleSourceSection.setEntity(entity.getSource());
+
}
+
+ selectionNodeAgentRelation = formFactory.createTaxonNodeAgentRelationCollectionSection(formElement, getConversationHolder(), StoreUtil.getSectionStyle(TaxonNodeAgentRelationCollectionSection.class, entity.getClass().getCanonicalName()));
+ selectionNodeAgentRelation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ selectionNodeAgentRelation.setEntity(entity);
+ setBackground(getPersistentBackground());
+
}
private void preFillTaxonName() {
if (selection_reuseExistingTaxon.getEntity() != null){
setTaxon(selection_reuseExistingTaxon.getEntity());
if (getTaxon().getSec()!= null){
+ microReference.setText(getTaxon().getSecMicroReference());
if (isCreateNew()){
selection_SecRef.setEntity(getTaxon().getSec());
}else{
textTaxonSec.setText((getTaxon().getSec().getTitleCache()));
}
}else{
+ microReference.setText("");
if (isCreateNew()){
- selection_SecRef.setEntity(null);
+ selection_SecRef.setEntity(null);
}else{
textTaxonSec.setText("");
}
complete = !textNewTaxonName.getText().isEmpty();
}
- if (eventSource == selection_Ref) {
- if(!isCreateNew()){
- getEntity().setReference(selection_Ref.getEntity());
- }
+ if (eventSource == singleSourceSection) {
+// getEntity().setSource((DescriptionElementSource)sourceSection.getEntity());
+
}else if (eventSource == selection_SecRef) {
if (taxon != null){
taxon.setSec(selection_SecRef.getEntity());
}
}else if (eventSource == microReference) {
- if(!isCreateNew()){
- getEntity().setMicroReference(microReference.getText());
- }
+ getEntity().getTaxon().setSecMicroReference(microReference.getText());
+
} else if (eventSource == checkbox_publish) {
if (taxon != null){
taxon.setPublish(checkbox_publish.getSelection());
@Override
public TaxonNodeDetailElement createElement(ICdmFormElement rootElement) {
TaxonNodeDetailElement detailElement = formFactory.createTaxonNodeDetailElement(rootElement, this.isCreateNew);
- if (isCreateNew){
+
+ if (isCreateNew){
detailElement.setParentTreeNode(((NewTaxonNodeWizard)getWizard()).getParentEntity());
}else{
detailElement.setEntity(entity);
}
+// detailElement.setPersistentBackground(Abstrac);;
formFactory.addPropertyChangeListener(this);
// if (isCreateNew){
*/
public class ExternalLinksElement extends AbstractEntityCollectionElement<ExternalLink> implements ISelectableElement{
- private final SelectionArbitrator selectionArbitrator;
+ private SelectionArbitrator selectionArbitrator;
private UriWithLabelElement externalLinkUriText;
private EnumComboElement<ExternalLinkType> combo_linkType;
public ExternalLinksElement(CdmFormFactory formFactory, AbstractFormSection section, ExternalLink entity,
SelectionListener removeListener, int style) {
super(formFactory, section, entity, removeListener, null, style);
- selectionArbitrator = formFactory.createSelectionArbitrator(this);
+ if(formFactory.getSelectionProvider() != null){
+ selectionArbitrator = formFactory.createSelectionArbitrator(this);
+ }
+
}
@Override
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.swt.events.SelectionListener;
-import eu.etaxonomy.cdm.common.media.ImageInfo;
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;
import eu.etaxonomy.cdm.model.media.ImageFile;
import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
@Override
protected IStatus run(IProgressMonitor monitor) {
try{
- ImageInfo imageInfo = ImageInfo.NewInstanceWithMetaData(uri, 10000);
+ CdmImageInfo imageInfo = CdmImageInfo.NewInstanceWithMetaData(uri, 10000);
ImageFileElement.this.getLayoutComposite().getDisplay().asyncExec(()->{
element_keyValue.setInput(imageInfo.getMetaData());
try {
import java.util.List;
import java.util.Set;
+import org.apache.commons.imaging.ImageReadException;
import org.apache.http.HttpException;
-import org.apache.sanselan.ImageReadException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Label;
import eu.etaxonomy.cdm.common.UriUtils;
-import eu.etaxonomy.cdm.common.media.ImageInfo;
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.media.ImageFile;
import eu.etaxonomy.cdm.model.media.Media;
/**
* @author pplitzner
* @date 25.08.2014
- *
*/
public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
private static final String LOAD_IMAGE = Messages.MediaDetailElement_LOAD_IMAGE;
+ private boolean isShowImage = true;
+
/**
* @author pplitzner
* @since Jul 11, 2019
@Override
protected IStatus run(IProgressMonitor monitor) {
- ImageInfo imageInfo;
try {
//first check if uri refers to an actual (non-image) file
+
UriUtils.getInputStream(uri);// will fail with a FileNotFoundException if not
- imageInfo = ImageInfo.NewInstance(uri, 10000);//will fail when it is no image file
+
+ CdmImageInfo imageInfo = CdmImageInfo.NewInstance(uri, 10000);//will fail when it is no image file
MediaDetailElement.this.getLayoutComposite().getDisplay().asyncExec(()->{
singleMediaRepresentationPart.setSize((int) imageInfo.getLength());
if(singleMediaRepresentationPart.isInstanceOf(ImageFile.class)){
disposeImage();
if (!parentFormElement.getLayoutComposite().isDisposed()) {
element_image = formFactory.createImageElement(parentFormElement, uri, style);
- StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
+// StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
try {
element_image.initImageUri(uri);
} catch (IOException | HttpException e) {
exception(e);
}
element_image.loadImage();
+
disposeErrorLabel();
+ StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
+
+
}
});
} catch (Exception e){
showAdvancedView();
}
+ public boolean isShowImage() {
+ return isShowImage;
+ }
+
+ public void setShowImage(boolean isShowImage) {
+ this.isShowImage = isShowImage;
+ }
+
@Override
public void handleEvent(Object eventSource){
if(eventSource==textUri){
uriBuffer=textUri.getText();
}
else{
- new LoadImageJob(uri, LOAD_IMAGE).schedule();
+ if (isShowImage){
+ LoadImageJob job = new LoadImageJob(uri, LOAD_IMAGE);
+ job.schedule();
+ }
}
}
}
textUri.parseText();
}
textUri.getLayoutComposite().layout();
-
- new LoadImageJob(singleMediaRepresentationPart.getUri(), LOAD_IMAGE).schedule();
+ if (isShowImage){
+ LoadImageJob job = new LoadImageJob(singleMediaRepresentationPart.getUri(), LOAD_IMAGE);
+ job.schedule();
+ } else{
+ Button button_showImage = formFactory.createButton(getLayoutComposite(), Messages.MediaDetailElement_SHOW_IMAGE, SWT.PUSH);
+ button_showImage.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ button_showImage.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ LoadImageJob job = new LoadImageJob(singleMediaRepresentationPart.getUri(), Messages.MediaDetailElement_LOAD_IMAGE);
+ job.schedule();
+ button_showImage.setText(Messages.MediaDetailElement_RELOAD_IMAGE);
+ }
+ });
+ }
}
}
mediaDetailElement = formFactory.createMediaDetailElement(element);
+
+ ICdmFormElement grandGrandParent = getParentElement().getParentElement().getParentElement();
+ Class clazz = null;
+ if (grandGrandParent != null){
+ clazz = grandGrandParent.getClass();
+ }
+ //TODO: find a nicer solution
+ if (grandGrandParent != null && clazz != null && clazz.getName().equals("eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage$WizardPageRootElement")){
+ mediaDetailElement.setShowImage(false);
+ }
addElement(mediaDetailElement);
}
import org.eclipse.swt.events.SelectionListener;
import eu.etaxonomy.cdm.common.UriUtils;
-import eu.etaxonomy.cdm.common.media.ImageInfo;
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;
import eu.etaxonomy.cdm.model.media.ImageFile;
import eu.etaxonomy.cdm.model.media.MediaRepresentation;
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
*
* @author n.hoffmann
* @created Mar 24, 2010
- * @version 1.0
*/
public class MediaRepresentationElement extends AbstractEntityCollectionElement<MediaRepresentation> {
super(cdmFormFactory, section, element, removeListener, null, style);
}
- /** {@inheritDoc} */
@Override
public void createControls(ICdmFormElement element, int style) {
text_mimeType = formFactory.createTextWithLabelElement(element, "Mime Type", null, style);
section_mediaRepresentationPart.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
}
- /** {@inheritDoc} */
@Override
public void setEntity(MediaRepresentation element) {
this.entity = element;
text_suffix.setText(element.getSuffix());
}
- /** {@inheritDoc} */
@Override
public void handleEvent(Object eventSource) {
if(eventSource == text_mimeType){
return Status.CANCEL_STATUS;
}
try {
- ImageInfo imageInfo = ImageInfo.NewInstance(uri, 10000);
+ CdmImageInfo imageInfo = CdmImageInfo.NewInstance(uri, 10000);
String mimeType = imageInfo.getMimeType();
getEntity().setMimeType(mimeType);
getEntity().setSuffix(imageInfo.getSuffix());
import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
import eu.etaxonomy.cdm.model.term.DefinedTerm;
import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.StoreUtil;
public class DerivedUnitBaseDetailElement extends
AbstractSpecimenOrObservationDetailElement {
+ boolean showOnlyDerivedUnitData = true;
+
private TextWithLabelElement text_derivedUnitDefinitions;
private TextWithLabelElement text_barcode;
private OriginalLabelDataElement textOriginalLabel;
+ private DerivedUnitMediaSection mediaDetailElement;
+
/**
super(formFactory, formElement);
}
- /** {@inheritDoc} */
+ public boolean isShowOnlyDerivedUnitData() {
+ return showOnlyDerivedUnitData;
+ }
+
+ public void setShowOnlyDerivedUnitData(boolean showOnlyDerivedUnitData) {
+ this.showOnlyDerivedUnitData = showOnlyDerivedUnitData;
+ }
+
+ /** {@inheritDoc} */
@Override
protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
// Disable for now
textOriginalLabel = formFactory.createOriginalLabelDataElement(formElement);
textOriginalLabel.setEntity(getEntity());
+
+
super.createControls(formElement, entity, style);
section_source = formFactory.createSourceCollectionDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(SourceCollectionDetailSection.class, entity.getClass().getCanonicalName()));
section_source.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
section_source.setEntity(entity);
+ if(AbstractUtility.getActivePart() instanceof IDerivedUnitFacadePart || !showOnlyDerivedUnitData){
+ mediaDetailElement = formFactory.createDerivedUnitMediaSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(DerivedUnitMediaSection.class, entity.getClass().getCanonicalName()));
+ mediaDetailElement.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ mediaDetailElement.setEntity(getEntity());
+ }
+
+
}
@Override
public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
DerivedUnitBaseDetailElement detailElement = formFactory.createDerivedUnitBaseDetailElement(rootElement);
+ detailElement.setShowOnlyDerivedUnitData(false);
detailElement.setEntity(getEntity());
+
return detailElement;
}
public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
DerivedUnitGeneralDetailElement detailElement = formFactory.createDerivedUnitGeneralDetailElement(rootElement);
detailElement.setShowSpecimenType(false);
+ detailElement.setShowOnlyDerivedUnitData(false);
detailElement.setEntity(getEntity());
checkComplete();
return detailElement;
--- /dev/null
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.occurrence;
+
+import java.util.Collection;
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
+
+/**
+ * @author k.luther
+ * @since Aug 4, 2020
+ */
+public class DerivedUnitMediaSection extends AbstractEntityCollectionSection<DerivedUnitFacade, Media> {
+
+ public DerivedUnitMediaSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
+ super(cdmFormFactory, conversation, parentElement, "Media", style);
+ }
+
+ @Override
+ public Media createNewElement() {
+ return Media.NewInstance();
+ }
+
+ @Override
+ public Collection<Media> getCollection(DerivedUnitFacade entity) {
+ return entity.getDerivedUnitMedia();
+ }
+
+ @Override
+ public Comparator<Media> getComparator() {
+ return new DefaultCdmBaseComparator<>();
+ }
+
+ @Override
+ public String getEmptyString() {
+ return "No media yet.";
+ }
+
+ @Override
+ protected String getTooltipString() {
+ return "Create new media";
+ }
+
+ @Override
+ public void addElement(Media element) {
+ getEntity().addDerivedUnitMedia(element);
+ }
+
+ @Override
+ public void removeElement(Media element) {
+ getEntity().removeDerivedUnitMedia(element);
+ }
+
+ @Override
+ public Media addExisting() {
+ return MediaSelectionDialog.select(getShell(), null);
+ }
+
+ @Override
+ public boolean allowAddExisting() {
+ return true;
+ }
+
+}
--- /dev/null
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.reference;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Display;
+
+import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
+import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceBase;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.common.ExternalLinksSection;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+/**
+ * @author k.luther
+ * @since Jul 2, 2020
+ */
+public class AdvancedSourceElement extends AbstractCdmDetailElement<ReferencedEntityBase > {
+
+ protected TextWithLabelElement text_idInSource;
+ protected TextWithLabelElement text_idNamespace;
+ protected TextWithLabelElement text_originaleNameString;
+ protected TextWithLabelElement text_cdmsource;
+ protected EntitySelectionElement<TaxonName> select_nameUsedInSource;
+
+ protected ExternalLinksSection externalLinks;
+
+ public AdvancedSourceElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+ super(formFactory, formElement);
+
+ }
+
+
+
+ @Override
+ protected void createControls(ICdmFormElement formElement, ReferencedEntityBase entity, int style) {
+ Display display = Display.getCurrent();
+ Color background = display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
+
+
+ if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSource.getKey())){
+ text_idInSource = formFactory.createTextWithLabelElement(formElement, "ID in Source", entity != null?((OriginalSourceBase)entity).getIdInSource():null, style);
+ text_idInSource.setBackground(background);
+
+ }
+ if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey())){
+ text_idNamespace = formFactory.createTextWithLabelElement(formElement, "ID Namespace", entity != null?((OriginalSourceBase)entity).getIdNamespace():null, style);
+ text_idNamespace.setBackground(background);
+ }
+ text_originaleNameString = formFactory.createTextWithLabelElement(
+ formElement, "Original Information", entity != null?entity.getOriginalNameString():null, SWT.NULL);
+
+ text_originaleNameString.setBackground(background);
+
+ select_nameUsedInSource = formFactory.createSelectionElement(TaxonName.class, formElement, "Name in Source", entity != null? ((DescriptionElementSource)entity).getNameUsedInSource(): null, EntitySelectionElement.DELETABLE, style);
+ select_nameUsedInSource.setBackground(background);
+
+ externalLinks = formFactory.createExternalLinksSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(ExternalLinksSection.class, DescriptionElementSource.class.getCanonicalName()));
+ externalLinks.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 3));
+ externalLinks.setEntity( ((OriginalSourceBase)entity));
+ externalLinks.setBackground(background);
+ addControl(externalLinks);
+ addElement(externalLinks);
+
+
+ }
+
+ @Override
+ public void setEntity(ReferencedEntityBase entity) {
+ super.setEntity(entity);
+ externalLinks.setEntity((OriginalSourceBase)entity);
+ }
+
+ @Override
+ public void handleEvent(Object eventSource) {
+ if (eventSource.equals(text_idInSource)){
+ ((OriginalSourceBase)getEntity()).setIdInSource(text_idInSource.getText());
+ }else if (eventSource.equals(text_idNamespace)){
+ ((OriginalSourceBase)getEntity()).setIdNamespace(text_idNamespace.getText());
+ }else if (eventSource.equals(text_originaleNameString)){
+ ((OriginalSourceBase)getEntity()).setOriginalNameString(text_originaleNameString.getText());
+ }else if (eventSource.equals(select_nameUsedInSource)){
+ ((DescriptionElementSource)getEntity()).setNameUsedInSource(select_nameUsedInSource.getEntity());
+ }
+
+ }
+
+
+
+}
--- /dev/null
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.reference;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+
+/**
+ * @author k.luther
+ * @since Jul 1, 2020
+ */
+public class OriginalSourceAdvancedSection extends AbstractCdmDetailSection<ReferencedEntityBase > {
+
+ /**
+ * @param formFactory
+ * @param conversation
+ * @param parentElement
+ * @param selectionProvider
+ * @param style
+ */
+ public OriginalSourceAdvancedSection(CdmFormFactory formFactory, ConversationHolder conversation,
+ ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+ super(formFactory, conversation, parentElement, selectionProvider, style);
+
+
+ }
+
+ @Override
+ protected AbstractCdmDetailElement<ReferencedEntityBase > createCdmDetailElement(
+ AbstractCdmDetailSection<ReferencedEntityBase > parentElement, int style) {
+
+ return new AdvancedSourceElement(getFormFactory(), parentElement);
+ }
+
+ @Override
+ public String getHeading() {
+
+ return Messages.OriginalSourceAdvancedSection_advanced;
+ }
+ @Override
+ protected void createControlsByType(AbstractCdmDetailSection<ReferencedEntityBase> formElement, Class<ReferencedEntityBase> entityClass, int style) {
+ super.createControlsByType(formElement, entityClass, style);
+ int i = this.getTextClientHeightDifference();
+
+ TableWrapLayout layout = new TableWrapLayout();
+ layout.topMargin = 0;
+ layout.bottomMargin = 0;
+ layout.numColumns = DEFAULT_NUM_COLUMNS;
+ getLayoutComposite().setLayout(layout);
+// setLayout(layout);
+
+ }
+
+}
--- /dev/null
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.reference;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
+import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
+import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+/**
+ * @author k.luther
+ * @since Jul 1, 2020
+ */
+public class OriginalSourceElement extends AbstractCdmDetailElement<ReferencedEntityBase> implements IPropertyChangeListener{
+
+ private EntitySelectionElement<Reference> selection_Ref;
+ private TextWithLabelElement microReference;
+ private OriginalSourceAdvancedSection advancedSection;
+
+ private CdmBase cdmEntity;
+
+
+ public OriginalSourceElement(CdmFormFactory formFactory, ICdmFormElement formElement, CdmBase cdmEntity) {
+ super(formFactory, formElement);
+ this.cdmEntity = cdmEntity;
+// selectionArbitrator = formFactory.createSelectionArbitrator(this);
+ }
+
+ @Override
+ protected void createControls(ICdmFormElement formElement, ReferencedEntityBase entity, int style) {
+
+ selection_Ref = formFactory.createSelectionElement(Reference.class,
+ formElement, Messages.TaxonNodeWizardPage_PLACEMENT_SOURCE, null,
+ EntitySelectionElement.DELETABLE, style, 100);
+
+ if (entity != null){
+ selection_Ref.setEntity(entity.getCitation());
+ }
+ selection_Ref.setBackground(this.getPersistentBackground());
+ microReference = formFactory.createTextWithLabelElement(formElement, "Details", entity != null? entity.getCitationMicroReference(): "", style);
+ microReference.setIndent(10);
+ for (ICdmFormElement element: selection_Ref.getElements()){
+ element.setBackground(getPersistentBackground());
+ }
+
+ advancedSection = formFactory.createOriginalSourceAdvancedSection(getConversationHolder(), formElement, null, StoreUtil.getSectionStyle(OriginalSourceAdvancedSection.class, INomenclaturalReference.class.getCanonicalName()));
+ TableWrapData layoutData = LayoutConstants.FILL_HORIZONTALLY(2, 1);
+ layoutData.indent = 10;
+
+ advancedSection.setLayoutData(layoutData);
+
+ addControl(advancedSection);
+ addElement(advancedSection);
+ advancedSection.setBackground(this.getPersistentBackground());
+ advancedSection.setEntity(entity);
+ advancedSection.setExpanded(false);
+ if (StringUtils.isNotBlank(((DescriptionElementSource)entity).getIdInSource()) || StringUtils.isNotBlank(((DescriptionElementSource)entity).getIdNamespace()) || StringUtils.isNotBlank(((DescriptionElementSource)entity).getOriginalNameString()) || (((DescriptionElementSource)entity).getLinks() != null && !((DescriptionElementSource)entity).getLinks().isEmpty()) || (((DescriptionElementSource)entity).getNameUsedInSource() != null)){
+ advancedSection.setExpanded(true);
+ }
+
+ }
+
+ @Override
+ public void handleEvent(Object eventSource) {
+ if (eventSource.equals(selection_Ref)){
+ getEntity().setCitation(selection_Ref.getEntity());
+ }else if (eventSource.equals(microReference)){
+ getEntity().setCitationMicroReference(microReference.getText());
+
+ }
+
+ }
+
+ /**
+ * @param cdmEntity2
+ */
+ public void setCdmEntity(CdmBase cdmEntity) {
+ this.cdmEntity = cdmEntity;
+
+ }
+
+
+
+}
--- /dev/null
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.reference;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+
+/**
+ * @author k.luther
+ * @since Jul 2, 2020
+ */
+public class SingleSourceSection extends AbstractCdmDetailSection<ReferencedEntityBase> {
+
+ CdmBase cdmEntity;
+ /**
+ * @param formFactory
+ * @param conversation
+ * @param parentElement
+ * @param selectionProvider
+ * @param style
+ */
+ public SingleSourceSection(CdmFormFactory formFactory, ConversationHolder conversation,
+ ICdmFormElement parentElement, CdmBase cdmEntity, ISelectionProvider selectionProvider, int style) {
+ super(formFactory, conversation, parentElement, selectionProvider, style);
+ this.cdmEntity = cdmEntity;
+ ((OriginalSourceElement)this.detailElement).setCdmEntity(cdmEntity);
+
+ }
+
+ @Override
+ protected AbstractCdmDetailElement<ReferencedEntityBase> createCdmDetailElement(
+ AbstractCdmDetailSection<ReferencedEntityBase> parentElement, int style) {
+
+ return new OriginalSourceElement(getFormFactory(), parentElement, cdmEntity);
+ }
+
+ @Override
+ public String getHeading() {
+
+ return "";
+ }
+
+ public Reference getRef() {
+ return detailElement.getEntity().getCitation();
+ }
+}
}
if(element instanceof TaxonNodeDto){
if (((TaxonNodeDto) element).getParentUUID() != null){
- TaxonNode parent = taxonNodeService.load(((TaxonNodeDto) element).getParentUUID());
- if (parent != null){
- return new TaxonNodeDto(parent);
+ TaxonNodeDto parentDto = taxonNodeService.dto(((TaxonNodeDto) element).getParentUUID());
+// TaxonNode parent = taxonNodeService.load(((TaxonNodeDto) element).getParentUUID());
+ if (parentDto != null){
+// return new TaxonNodeDto(parent);
+ return parentDto;
}
}
}
import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
/**
- *
* @author pplitzner
* @date 22.08.2017
- *
*/
public class CdmDataSourceViewPartE4 {
private final List<ICdmSource> cdmSources;
- /**
- * @param name
- */
public DataSourceJob(String title, List<ICdmSource> cdmSources) {
super(title);
this.cdmSources = cdmSources;
public CdmDataSourceViewPartE4(){
}
-
private ISelectionChangedListener selectionChangedListener;
@Inject
comparator = new CdmDataSourceViewerComparator();
viewer.setComparator(comparator);
-
// Propagate selection from viewer
selectionChangedListener = (event -> selService.setSelection(event.getSelection()));
viewer.addSelectionChangedListener(selectionChangedListener);
table.setHeaderVisible(true);
table.setLinesVisible(true);
table.setSortDirection(SWT.UP);
-
}
@Inject
dataSourceJob.schedule();
}
- /** {@inheritDoc} */
@PreDestroy
public void dispose() {
CdmStore.getContextManager().removeContextListener(contextListener);
}
- /** {@inheritDoc} */
@Focus
public void setFocus() {
if (viewer.getControl() != null && !viewer.getControl().isDisposed()) {
}
//FIXME E4 migrate
-// /** {@inheritDoc} */
// @Override
// public void showBusy(boolean busy) {
// super.showBusy(busy);
+++ /dev/null
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.view.datasource.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-import eu.etaxonomy.cdm.model.metadata.CdmMetaDataPropertyName;
-import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
-import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
-import eu.etaxonomy.taxeditor.view.datasource.e4.CdmDataSourceViewPartE4;
-
-/**
- * @author pplitzner
- * @date 22.08.2017
- */
-public class ChangeConnectionHandlerE4 {
-
- @Execute
- public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection) {
-
- if(CdmStore.isConnecting()){
- MessagingUtils.warningDialog(Messages.ChangeConnectionHandler_ALREADY_CONNECTING, this, Messages.ChangeConnectionHandler_CURRENTLY_CONNECTING_ALREADY);
- return ;
- }
-
- try {
- CdmMetaDataAwareDataSourceContainer container = (CdmMetaDataAwareDataSourceContainer) selection.getFirstElement();
- container.getCdmSource().checkConnection();
- boolean confirmed = MessagingUtils.confirmDialog(Messages.ChangeConnectionHandler_CREATE_DATAMODEL, String.format(Messages.ChangeConnectionHandler_REALLY_CREATE_DATAMODEL, container.getCdmSource().getName()));
-
- if(confirmed){
- CdmDataSourceRepository.changeDataSource(container.getCdmSource());
- }
- } catch (Exception e) {
- MessagingUtils.warningDialog(Messages.ChangeConnectionHandler_DATASOURCE_NOT_AVAILABLE, this, Messages.ChangeConnectionHandler_NOT_AVAILABLE_REASONS);
- MessagingUtils.warn(getClass(), e);
- return ;
- }
-
- return ;
- }
-
- @CanExecute
- public boolean canExecute(
- @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
- @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
- MHandledMenuItem menuItem) {
- boolean canExecute = false;
- canExecute = thisPart.getObject() instanceof CdmDataSourceViewPartE4
- && selection!=null
- && selection.size()==1
- && selection.getFirstElement() instanceof CdmMetaDataAwareDataSourceContainer
- && ((CdmMetaDataAwareDataSourceContainer) selection.getFirstElement()).getMetaData(CdmMetaDataPropertyName.DB_SCHEMA_VERSION).equals(CdmMetaDataAwareDataSourceContainer.DEFAULT_ENTRY);
- menuItem.setVisible(canExecute);
- return canExecute;
- }
-}
+++ /dev/null
-/**
- * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy
- * http://www.e-taxonomy.eu
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * See LICENSE.TXT at the top of this package for the full license terms.
- */
-
-package eu.etaxonomy.taxeditor.view.datasource.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.progress.IProgressConstants;
-
-import eu.etaxonomy.cdm.config.ICdmSource;
-import eu.etaxonomy.cdm.database.ICdmDataSource;
-import eu.etaxonomy.cdm.database.update.CdmUpdater;
-import eu.etaxonomy.cdm.database.update.SchemaUpdateResult;
-import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
-import eu.etaxonomy.taxeditor.view.datasource.e4.CdmDataSourceViewPartE4;
-
-/**
- *
- * @author pplitzner
- * @date 22.08.2017
- *
- */
-public class UpdateDataSourceHandlerE4 extends AbstractDataSourceHandlerE4 {
-
- /** {@inheritDoc} */
- @Override
- public boolean specificExecute(CdmDataSourceViewPartE4 dataSourceViewPart,
- CdmMetaDataAwareDataSourceContainer container, Shell shell) {
- if(! MessageDialog.open(MessageDialog.CONFIRM, shell, "Update Datasource", "WARNING!\n\n" +
- "This will change your data base structure! Be sure you have an up-to-date backup of your data before running the update! \n\n " +
- "Are you sure you want to update the datasource?", SWT.NONE)){
- return false;
- }
- Job job = new Job("Updating datasource " + container.getCdmSource().getName()){
-
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- CdmUpdater updater = new CdmUpdater();
- IStatus status = null;
- ICdmSource cdmSource = container.getCdmSource();
- //FIXME:Remoting we need another updater for ICdmRemoteSource
- if(cdmSource instanceof ICdmDataSource) {
- try{
- SchemaUpdateResult result = updater.updateToCurrentVersion(
- (ICdmDataSource)cdmSource, CdmProgressMonitorAdapter.CreateMonitor(monitor));
- if(result.isSuccess()){
- sync.asyncExec(()->{
- if(dataSourceViewPart!= null){
- container.getMetaDataFromDataSource();
- dataSourceViewPart.getViewer().update(new CdmMetaDataAwareDataSourceContainer[]{container}, null);
- }
- }
- );
- status = Status.OK_STATUS;
- }else{
- throw new RuntimeException("An error occurred during the update.");
- }
- }catch(Exception e){
- status = new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, e.getMessage(), e);
- MessagingUtils.errorDialog("Could not complete updater", updater, status.getMessage(), status.getPlugin(), e, true);
- }
- }
-
- return status;
- }
-
- };
-
- job.setPriority(Job.BUILD);
- job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
- job.schedule();
-
- return true;
- }
-
-
- @Override
- @CanExecute
- public boolean canExecute(
- @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
- @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
- MHandledMenuItem menuItem) {
- boolean canExecute = false;
- canExecute = thisPart.getObject() instanceof CdmDataSourceViewPartE4
- && selection!=null
- && selection.size()==1
- && selection.getFirstElement() instanceof CdmMetaDataAwareDataSourceContainer
- && !((CdmMetaDataAwareDataSourceContainer) selection.getFirstElement()).isDataSourceCompatible();
- menuItem.setVisible(canExecute);
- return canExecute;
- }
-}
import org.junit.Test;
-import eu.etaxonomy.cdm.model.term.IEnumTerm;
-import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
-import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
import eu.etaxonomy.cdm.model.name.RankClass;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
import eu.etaxonomy.cdm.model.reference.ReferenceType;
+import eu.etaxonomy.cdm.model.term.IEnumTerm;
+import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
/**
* @author pplitzner
* @date 04.11.2013
- *
*/
public class AbstractUtilityTest {
Bundle-ManifestVersion: 2
Bundle-Name: eu.etaxonomy.taxeditor.test
Bundle-SymbolicName: eu.etaxonomy.taxeditor.test;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.17.0
Bundle-ActivationPolicy: lazy
Bundle-Vendor: EDIT
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Eclipse-RegisterBuddy: org.apache.log4j, org.eclipse.swtbot.swt.finder
Bundle-ClassPath: .,
lib/byte-buddy-0.5.1.jar,
- lib/org.springframework.context-3.2.2.RELEASE.jar,
lib/unitils-core-3.4.2.jar,
lib/unitils-database-3.4.2.jar,
lib/unitils-dbmaintainer-3.4.2.jar,
lib/unitils-dbunit-3.4.2.jar,
lib/unitils-spring-3.4.2.jar,
- lib/dbunit-2.4.9.jar
+ lib/dbunit-2.4.9.jar,
+ lib/h2-1.4.200.jar
bin.includes = META-INF/,\
.,\
lib/byte-buddy-0.5.1.jar,\
- lib/org.springframework.context-3.2.2.RELEASE.jar,\
lib/unitils-core-3.4.2.jar,\
lib/unitils-database-3.4.2.jar,\
lib/unitils-dbmaintainer-3.4.2.jar,\
lib/unitils-dbunit-3.4.2.jar,\
lib/unitils-spring-3.4.2.jar,\
lib/dbunit-2.4.9.jar,\
+ lib/h2-1.4.200.jar,\
src/test/resources/
output.. = target/classes
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<artifactId>eu.etaxonomy.taxeditor.test</artifactId>
<!-- for packaging=eclipse-test-plugin
as long as this is unfixed we replace it by
${basedir}/../
-->
- <war>${basedir}/../eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/cdmlib-remote-webapp.war</war>
+ <war>${basedir}/../eu.etaxonomy.taxeditor.webapp/lib/cdmlib-remote-webapp.war</war>
<daemon>true</daemon>
<supportedPackagings>
<!-- see https://github.com/eclipse/jetty.project/issues/2372 -->
*/
package eu.etaxonomy.taxeditor.ui.dialogs;
-import java.io.IOException;
import java.util.List;
import org.junit.Assert;
/**
* @author cmathew
* @date 26 Jan 2015
- *
*/
-
public class CdmServerInfoTest extends UnitilsJUnit4 {
@Test
- public void pingServersTest() throws CdmServerException, IOException {
+ public void pingServersTest() {
List<CdmServerInfo> servers = CdmServerInfo.getCdmServers();
for(CdmServerInfo server : servers) {
if(server.getServer().equals("localhost")){
//no need to test ping localhost
continue;
}
- server.pingServer();
+ try {
+ server.pingServer();
+ } catch (Exception e) {
+ System.out.println();
+ throw new RuntimeException("Pinging server " + server.getServer() + " was not successful.", e);
+ }
}
}
-
@Ignore // this should be targetting integration or production
@Test
public void pingInstancesTest() {
Bundle-ManifestVersion: 2
Bundle-Name: Webapp
Bundle-SymbolicName: eu.etaxonomy.taxeditor.webapp;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.17.0
Require-Bundle: org.eclipse.core.runtime
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
lib/mchange-commons-java-0.2.11.jar,
lib/postgresql-9.4-1206-jdbc4.jar,
lib/jdbc4-2.0.jar,
- lib/mysql-connector-java-8.0.15.jar,
+ lib/mysql-connector-java-8.0.20.jar,
lib/jetty-util-9.4.26.v20200117.jar,
lib/jetty-webapp-9.4.26.v20200117.jar,
lib/jetty-security-9.4.26.v20200117.jar,
lib/mchange-commons-java-0.2.11.jar,\
lib/postgresql-9.4-1206-jdbc4.jar,\
lib/jdbc4-2.0.jar,\
- lib/mysql-connector-java-8.0.15.jar,\
+ lib/mysql-connector-java-8.0.20.jar,\
lib/jetty-util-9.4.26.v20200117.jar,\
lib/jetty-webapp-9.4.26.v20200117.jar,\
lib/jetty-security-9.4.26.v20200117.jar,\
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.webapp</artifactId>
eu.etaxonomy.taxeditor.workbench,
eu.etaxonomy.taxeditor.workbench.part
Bundle-Name: Workbench Bundle
-Bundle-Version: 5.16.0
+Bundle-Version: 5.17.0
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.e4.ui.workbench,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
public static boolean openWebpage(URL url){
return Program.launch(url.toString());
}
+
+ public static boolean openWebpage(String urlString){
+ return Program.launch(urlString);
+ }
}
<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?><product application="eu.etaxonomy.taxeditor.application.application" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" includeLaunchers="true" name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" useFeatures="true" version="5.16.0">
+<?pde version="3.5"?><product application="eu.etaxonomy.taxeditor.application.application" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" includeLaunchers="true" name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" useFeatures="true" version="5.17.0">
<aboutInfo>
<image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
<text>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
</prerequisites>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.16.0</version>
+ <version>5.17.0</version>
<name>EDIT Taxonomic Editor</name>
<description>The Taxonomic Editor for EDIT's platform for
cybertaxonomy
<properties>
<java.codelevel>1.8</java.codelevel>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <cdmlib.version>5.16.0</cdmlib.version>
+ <cdmlib.version>5.17.0</cdmlib.version>
<!-- TODO can we use project.version ????? -->
<!-- Increasing tycho above 0.22.0 will fail for the macosx build because
for higher version numbers tycho needs to be build against Eclipse Mars or
higher -->
<tycho.version>1.0.0</tycho.version>
- <taxeditor.version>5.16.0</taxeditor.version>
+ <taxeditor.version>5.17.0</taxeditor.version>
<update.dir>snapshot</update.dir>
<unitils.version>3.4.2</unitils.version>
<log4j.version>1.2.17</log4j.version>
<javadoc.opts>-Xdoclint:none</javadoc.opts>
- <httpcomponents.version>4.5.11</httpcomponents.version>
+ <httpcomponents.version>4.5.12</httpcomponents.version>
<jetty-version>9.4.26.v20200117</jetty-version>
</properties>
<modules>