eu.etaxonomy.taxeditor.cdmlib/lib/commons-logging-1.1.2.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/concurrent-1.3.4.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/dom4j-1.6.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/dozer-5.3.0.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/easymock-3.1.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/easymockclassextension-2.3.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/ezmorph-1.0.6.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-c3p0-4.1.10.Final.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-jpa-2.0-api-1.0.1.Final.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/icu4j-2.6.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0-SNAPSHOT-sources.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0-SNAPSHOT.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/itextpdf-5.4.0.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/jakarta-regexp-1.4.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-api-2.2.7.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-xjc-2.2-EA.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/json-lib-2.4-jdk15.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/jsr250-api-1.0.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/jtds-1.3.0.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/junit-4.11.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/log4j-1.2.17.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/mchange-commons-java-0.2.3.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/objenesis-1.2.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-0.8.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-java-0.8.7.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/opencsv-2.3.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/xmlParserAPIs-2.6.2.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/xmlgraphics-commons-1.5.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/xmlpull-1.1.3.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/xom-1.0.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/xpp3-1.1.4c.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/xpp3_min-1.1.4c.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/xstream-1.4.4.jar -text
eu.etaxonomy.taxeditor.cdmlib/lib/yjp-controller-api-redist-9.0.8.jar -text
eu.etaxonomy.taxeditor.cdmlib/pom.xml -text
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java -text
/runtime-taxeditor.product
/workspace
/*.patch
-/eu.etaxonomy.taxeditor.webapp/.settings/org.eclipse.core.resources.prefs
-/eu.etaxonomy.taxeditor.webapp/.settings/org.eclipse.m2e.core.prefs
-/eu.etaxonomy.taxeditor.webapp/lib/
/.ssh
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/cdm/database/schema/dataset.xsd
eu.etaxonomy.taxeditor.cdmlib/lib/postgresql-42.2.15.jar
eu.etaxonomy.taxeditor.cdmlib/lib/xml-apis-1.4.01.jar
eu.etaxonomy.taxeditor.cdmlib/lib/lsid-client-1.1.2.jar
-eu.etaxonomy.taxeditor.test/lib/unitils-core-3*.jar
-eu.etaxonomy.taxeditor.test/lib/unitils-database-3*.jar
-eu.etaxonomy.taxeditor.test/lib/unitils-dbmaintainer-3*.jar
-eu.etaxonomy.taxeditor.test/lib/unitils-dbunit-3*.jar
-eu.etaxonomy.taxeditor.test/lib/unitils-spring-3*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/commons-lang-2.*.jar
-eu.etaxonomy.taxeditor.test/lib/c3p0-0.*.jar
-eu.etaxonomy.taxeditor.test/lib/dbunit-2.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/c3p0-0.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/jdom-1.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/jdom2-2.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/poi-4.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-4.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-schemas-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-collections-3.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/commons-collections4-4.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/commons-math3-3.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-api-2.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/antlr-2.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/cglib-nodep-3.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/ehcache-2.*.jar
-eu.etaxonomy.taxeditor.printpublisher/lib/cdmlib-*.jar
-eu.etaxonomy.taxeditor.test/lib/commons-dbcp-1.*.jar
-eu.etaxonomy.taxeditor.test/lib/commons-pool-1.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/junit-4.*.jar
-eu.etaxonomy.taxeditor.test/lib/hamcrest-core-1.*.jar
-eu.etaxonomy.taxeditor.test/lib/junit-4.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/hamcrest-core-1.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/commons-pool-1.*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/commons-dbcp-1.*.jar
-eu.etaxonomy.taxeditor.printpublisher/lib/fop-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/postgresql-42.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/mchange-commons-java-*.jar
eu.etaxonomy.taxeditor.cdmlib/lib/jboss-transaction-api_1.2_spec-1.*.Final.jar
-eu.etaxonomy.taxeditor.local/lib/postgresql-42.2.15.jar
-eu.etaxonomy.taxeditor.local/lib/mysql-connector-java-8.0.21.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/objenesis-*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-io-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-logging-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/ezmorph-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-engine-5.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-orm-5.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/itextpdf-5.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/json-2*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/json-lib-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/log4j-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/lucene-*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/xalan-2.*.jar
+
+eu.etaxonomy.taxeditor.test/lib/unitils-core-3*.jar
+eu.etaxonomy.taxeditor.test/lib/unitils-database-3*.jar
+eu.etaxonomy.taxeditor.test/lib/unitils-dbmaintainer-3*.jar
+eu.etaxonomy.taxeditor.test/lib/unitils-dbunit-3*.jar
+eu.etaxonomy.taxeditor.test/lib/unitils-spring-3*.jar
+eu.etaxonomy.taxeditor.test/lib/c3p0-0.*.jar
+eu.etaxonomy.taxeditor.test/lib/dbunit-2.*.jar
+eu.etaxonomy.taxeditor.test/lib/commons-dbcp-1.*.jar
+eu.etaxonomy.taxeditor.test/lib/commons-pool-1.*.jar
+eu.etaxonomy.taxeditor.test/lib/hamcrest-core-1.*.jar
+eu.etaxonomy.taxeditor.test/lib/junit-4.*.jar
+eu.etaxonomy.taxeditor.local/lib/postgresql-*.jar
+eu.etaxonomy.taxeditor.local/lib/mysql-connector-java-*.jar
eu.etaxonomy.taxeditor.local/lib/cdmlib-remote-webapp.war
eu.etaxonomy.taxeditor.local/lib/jtds-1.3.1.jar
-eu.etaxonomy.taxeditor.local/lib/mssql-jdbc-8.4.1.jre8.jar
+eu.etaxonomy.taxeditor.local/lib/mssql-jdbc-*.jar
eu.etaxonomy.taxeditor.local/lib/cdmlib-remote-webapp.war
-eu.etaxonomy.taxeditor.cdmlib/lib/postgresql-42.*.jar
-eu.etaxonomy.taxeditor.cdmlib/lib/mchange-commons-java-*.jar
eu.etaxonomy.taxeditor.local/lib/cdmlib-remote-webapp.war
-eu.etaxonomy.taxeditor.local/lib/postgresql-42.*.jar
eu.etaxonomy.taxeditor.local/lib/cdmlib-remote-webapp-*.war
-eu.etaxonomy.taxeditor.cdmlib/lib/objenesis-*.jar
+eu.etaxonomy.taxeditor.printpublisher/lib/cdmlib-*.jar
+eu.etaxonomy.taxeditor.printpublisher/lib/fop-2.*.jar
Bundle-ManifestVersion: 2
Bundle-Name: Application
Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
-Bundle-Version: 5.28.1
+Bundle-Version: 5.29.0
Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
Bundle-Vendor: EDIT
Bundle-Localization: OSGI-INF/l10n/plugin
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
if (ui == null) {
ServiceReference<?> reference = bundleContext.getServiceReference(IProvisioningAgent.SERVICE_NAME);
IProvisioningAgent agent = (IProvisioningAgent) bundleContext.getService(reference);
+
session = new ProvisioningSession(agent);
+
Policy policy = null;// = (Policy) ServiceHelper.getService(ProvUIActivator.getContext(), Policy.class.getName());
if (policy == null) {
policy = new Policy();
+
}
ui = new ProvisioningUI(session, IProfileRegistry.SELF, policy);
}
Bundle-ManifestVersion: 2
Bundle-Name: Bulkeditor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.bulkeditor;singleton:=true
-Bundle-Version: 5.28.1
+Bundle-Version: 5.29.0
Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
org.eclipse.jface.text.reconciler,
org.eclipse.jface.text.rules,
org.eclipse.jface.text.source,
+ org.eclipse.ui.ide.undo,
org.eclipse.ui.views.properties,
org.osgi.framework
Bundle-ActivationPolicy: lazy
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
import java.io.FileOutputStream;
import java.io.IOException;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.inject.Inject;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IOperationHistory;
+import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
import org.eclipse.e4.core.contexts.ContextInjectionFactory;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.taxeditor.editor.IBulkEditor;
import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
/**
private BulkEditorQuery lastQuery = null;
private BulkEditorComposite bulkEditorComposite;
+
+ private Set<AbstractPostOperation> operations = new HashSet<>();
@Inject
public BulkEditor() {
}
public void save(IProgressMonitor monitor, boolean resetMerge) {
+ for(AbstractPostOperation<?> entry:operations){
+ IStatus status = Status.CANCEL_STATUS;
+ final IAdaptable uiInfoAdapter = WorkspaceUndoUtil
+ .getUIInfoAdapter(AbstractUtility.getShell());
+ String operationlabel = entry.getLabel();
+ try {
+ entry.addContext(IOperationHistory.GLOBAL_UNDO_CONTEXT);
+
+ status = entry.execute(new NullProgressMonitor(), uiInfoAdapter);
+ } catch (ExecutionException e) {
+ MessagingUtils.operationDialog(AbstractUtility.class, e, TaxeditorStorePlugin.PLUGIN_ID, operationlabel, null);
+ }
+
+ IPostOperationEnabled postOperationEnabled = entry
+ .getPostOperationEnabled();
+ if (postOperationEnabled != null) {
+ postOperationEnabled.onComplete();
+ }
+
+ //AbstractUtility.executeOperation(entry,sync);
+ }
+
+ operations.clear();
if (!input.getCdmEntitySession().isActive()){
input.getCdmEntitySession().bind();
}
@Override
public void addOperation(AbstractPostOperation operation) {
- // operations not yet used for bulk editor
+ operations.add(operation);
}
@Inject
}
public void refresh(){
+ IStructuredSelection sel = getSelection();
natTable.doCommand(new VisualRefreshCommand());
+ this.setSelection(sel);
}
public List<String> getColumnList() {
if(object instanceof CdmBase && bulkEditor.getEditorInput().getModel().contains(object)){
object = bulkEditor.getEditorInput().getModel().get(bulkEditor.getEditorInput().getModel().indexOf(object));
- bodyLayer.getSelectionLayer().selectRow(0, bodyDataProvider.indexOfRowObject((CdmBase) object), false, false);
+ bodyLayer.getSelectionLayer().selectRow(0, bodyDataProvider.indexOfRowObject((CdmBase) object), false, true);
}
}
}
}
int colIndex = this.natTable.getColumnIndexByPosition(col);
int rowIndex = this.natTable.getRowIndexByPosition(row);
- if(rowIndex==0){
+ if(row==0){
return colHeaderDataProvider.getDataValue(colIndex, rowIndex).toString();
}
- return ""; //$NON-NLS-1$
+ Object dataValue = null;
+ if (natTable != null && natTable.getCellByPosition(col, row) != null){
+ dataValue = natTable.getCellByPosition(col, row).getDataValue();
+ }
+ if (dataValue == null){
+ return null;
+ }
+ return natTable.getCellByPosition(col, row).getDataValue().toString();
}
@Override
}
int rowIndex = this.natTable.getRowIndexByPosition(row);
- if(rowIndex==0 && col>0){
- return true;
+ if(row ==0 || col == 0){
+ return false;
}
- return false;
+ return true;
}
}
return;
}
}
- bulkEditor.getSelService().setSelection(new StructuredSelection());
+// bulkEditor.getSelService().setSelection(new StructuredSelection());
}
}
import org.eclipse.swt.widgets.Table;
import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;
import eu.etaxonomy.cdm.api.service.IDescriptionService;
import eu.etaxonomy.cdm.api.service.IEventBaseService;
import eu.etaxonomy.cdm.api.service.IGroupService;
} else if (DescriptionBase.class.isAssignableFrom(objectClass)){
referencedObject = CdmStore.getService(IDescriptionService.class).load(entity);
} else if (DescriptionElementBase.class.isAssignableFrom(objectClass)){
- referencedObject = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(entity, null);
+ referencedObject = CdmStore.getService(IDescriptionElementService.class).load(entity, null);
} else if (objectClass.equals(Sequence.class)){
referencedObject = CdmStore.getService(ISequenceService.class).load(entity, null);
} else if (PolytomousKey.class.isAssignableFrom(objectClass)){
Bundle-ManifestVersion: 2
Bundle-Name: CDM Library Dependencies Plugin
Bundle-SymbolicName: eu.etaxonomy.taxeditor.cdmlib;singleton:=true
-Bundle-Version: 5.28.1
+Bundle-Version: 5.29.0
Eclipse-BundleShape: dir
Export-Package: com.sun.istack.internal.tools,
com.sun.istack.internal.ws,
eu.etaxonomy.cdm.io.jaxb,
eu.etaxonomy.cdm.io.markup,
eu.etaxonomy.cdm.io.markup.handler,
- eu.etaxonomy.cdm.io.operation.config,
eu.etaxonomy.cdm.io.pilotOutputHtml,
eu.etaxonomy.cdm.io.reference.endnote.in,
eu.etaxonomy.cdm.io.reference.ris.in,
org.apache.lucene.analysis.charfilter,
org.apache.lucene.analysis.cjk,
org.apache.lucene.analysis.ckb,
- org.apache.lucene.analysis.cn,
org.apache.lucene.analysis.commongrams,
org.apache.lucene.analysis.compound,
org.apache.lucene.analysis.compound.hyphenation,
org.apache.lucene.analysis.path,
org.apache.lucene.analysis.pattern,
org.apache.lucene.analysis.payloads,
- org.apache.lucene.analysis.position,
org.apache.lucene.analysis.pt,
org.apache.lucene.analysis.query,
org.apache.lucene.analysis.reverse,
org.eclipse.swt
Bundle-ClassPath: .,
lib/apache-log4j-extras-1.2.17.jar,
- lib/aspectjrt-1.9.6.jar,
- lib/cdmlib-commons-5.28.0.jar,
- lib/cdmlib-ext-5.28.0.jar,
- lib/cdmlib-io-5.28.0.jar,
- lib/cdmlib-model-5.28.0.jar,
- lib/cdmlib-persistence-5.28.0.jar,
- lib/cdmlib-cache-5.28.0.jar,
- lib/cdmlib-services-5.28.0.jar,
+ lib/aspectjrt-1.9.7.jar,
+ lib/cdmlib-commons-5.29.0.jar,
+ lib/cdmlib-ext-5.29.0.jar,
+ lib/cdmlib-io-5.29.0.jar,
+ lib/cdmlib-model-5.29.0.jar,
+ lib/cdmlib-api-5.29.0.jar,
+ lib/cdmlib-persistence-5.29.0.jar,
+ lib/cdmlib-cache-5.29.0.jar,
+ lib/cdmlib-services-5.29.0.jar,
lib/commons-beanutils-1.9.4.jar,
lib/commons-codec-1.15.jar,
lib/commons-collections-3.2.2.jar,
lib/commons-dbcp-1.4.jar,
lib/commons-imaging-1.0-alpha2.jar,
- lib/commons-io-2.4.jar,
- lib/commons-lang3-3.11.jar,
+ lib/commons-io-2.11.0.jar,
+ lib/commons-lang3-3.12.0.jar,
lib/commons-lang-2.6.jar,
lib/commons-logging-1.2.jar,
lib/commons-pool-1.6.jar,
lib/hibernate-search-engine-5.5.2.Final.jar,
lib/hibernate-search-orm-5.5.2.Final.jar,
lib/hibernate-validator-6.1.5.Final.jar,
- lib/identificationKeyAPI-1.0.jar,
- lib/itextpdf-5.5.8.jar,
- lib/jackson-annotations-2.11.2.jar,
- lib/jackson-core-2.11.2.jar,
- lib/jackson-databind-2.11.2.jar,
+ lib/itextpdf-5.5.13.2.jar,
+ lib/jackson-annotations-2.13.1.jar,
+ lib/jackson-core-2.13.1.jar,
+ lib/jackson-databind-2.13.1.jar,
lib/jboss-logging-3.4.1.Final.jar,
lib/jdom-1.1.3.jar,
lib/jdom2-2.0.6.jar,
- lib/joda-time-2.10.6.jar,
+ lib/joda-time-2.10.13.jar,
lib/log4j-1.2.17.jar,
lib/lsid-client-1.1.2.jar,
- lib/spring-aop-4.3.28.RELEASE.jar,
- lib/spring-aspects-4.3.28.RELEASE.jar,
- lib/spring-beans-4.3.28.RELEASE.jar,
- lib/spring-context-4.3.28.RELEASE.jar,
- lib/spring-context-support-4.3.28.RELEASE.jar,
- lib/spring-core-4.3.28.RELEASE.jar,
- lib/spring-expression-4.3.28.RELEASE.jar,
- lib/spring-jdbc-4.3.28.RELEASE.jar,
- lib/spring-orm-4.3.28.RELEASE.jar,
- lib/spring-oxm-4.3.28.RELEASE.jar,
- lib/spring-security-config-4.2.18.RELEASE.jar,
- lib/spring-security-core-4.2.18.RELEASE.jar,
- lib/spring-test-4.3.28.RELEASE.jar,
- lib/spring-tx-4.3.28.RELEASE.jar,
- lib/spring-web-4.3.28.RELEASE.jar,
+ lib/spring-aop-4.3.30.RELEASE.jar,
+ lib/spring-aspects-4.3.30.RELEASE.jar,
+ lib/spring-beans-4.3.30.RELEASE.jar,
+ lib/spring-context-4.3.30.RELEASE.jar,
+ lib/spring-context-support-4.3.30.RELEASE.jar,
+ lib/spring-core-4.3.30.RELEASE.jar,
+ lib/spring-expression-4.3.30.RELEASE.jar,
+ lib/spring-jdbc-4.3.30.RELEASE.jar,
+ lib/spring-orm-4.3.30.RELEASE.jar,
+ lib/spring-oxm-4.3.30.RELEASE.jar,
+ lib/spring-security-config-4.2.20.RELEASE.jar,
+ lib/spring-security-core-4.2.20.RELEASE.jar,
+ lib/spring-test-4.3.30.RELEASE.jar,
+ lib/spring-tx-4.3.30.RELEASE.jar,
+ lib/spring-web-4.3.30.RELEASE.jar,
lib/tools.jar,
lib/usertype.jodatime-2.0.1.jar,
lib/usertype.spi-2.0.1.jar,
lib/validation-api-2.0.1.Final.jar,
- lib/xalan-2.7.0.jar,
- lib/xercesImpl-2.12.0.jar,
+ lib/xalan-2.7.2.jar,
+ lib/xercesImpl-2.12.1.jar,
lib/xml-apis-1.4.01.jar,
lib/xmlbeans-3.1.0.jar,
lib/opencsv-2.3.jar,
- lib/junit-4.13.1.jar,
- lib/javassist-3.27.0-GA.jar,
+ lib/junit-4.13.2.jar,
+ lib/javassist-3.28.0-GA.jar,
lib/javax.el-api-3.0.0.jar,
- lib/json-20090211.jar,
+ lib/json-20211205.jar,
lib/json-lib-2.4-jdk15.jar,
lib/slf4j-api-1.7.30.jar,
lib/slf4j-log4j12-1.7.30.jar,
lib/poi-4.1.2.jar,
lib/poi-ooxml-4.1.2.jar,
lib/poi-ooxml-schemas-4.1.2.jar,
- lib/postgresql-42.2.18.jar,
+ lib/postgresql-42.3.1.jar,
lib/lucene-core-5.4.1.jar,
lib/lucene-queryparser-5.4.1.jar,
- lib/lucene-analyzers-3.6.2.jar,
lib/lucene-analyzers-common-5.4.1.jar,
lib/lucene-sandbox-5.4.1.jar,
lib/lucene-suggest-5.4.1.jar,
lib/org.swtchart_0.10.0.v20160212.jar,
lib/commons-collections4-4.4.jar,
lib/commons-math3-3.6.1.jar,
- lib/httpclient-4.5.12.jar,
- lib/httpclient-cache-4.2.6.jar,
- lib/httpcore-4.4.13.jar,
+ lib/httpclient-4.5.13.jar,
+ lib/httpclient-cache-4.5.13.jar,
+ lib/httpcore-4.4.15.jar,
lib/JavaAPIforKml-2.2.1.jar,
lib/c3p0-0.9.5.2.jar,
lib/mchange-commons-java-0.2.11.jar,
- lib/iiif-apis-0.3.7.jar,
+ lib/iiif-apis-0.3.9.jar,
lib/jboss-transaction-api_1.2_spec-1.1.1.Final.jar,
- lib/mysql-connector-java-8.0.21.jar
+ lib/mysql-connector-java-8.0.27.jar
Comment: currently excluded -
lib/activation-1.1.1.jar,
lib/avro-1.6.3.jar,
bin.includes = META-INF/,\
.,\
lib/apache-log4j-extras-1.2.17.jar,\
- lib/aspectjrt-1.9.6.jar,\
- lib/aspectjweaver-1.9.6.jar,\
- lib/cdmlib-commons-5.28.0.jar,\
- lib/cdmlib-ext-5.28.0.jar,\
- lib/cdmlib-io-5.28.0.jar,\
- lib/cdmlib-model-5.28.0.jar,\
- lib/cdmlib-persistence-5.28.0.jar,\
- lib/cdmlib-services-5.28.0.jar,\
+ lib/aspectjrt-1.9.7.jar,\
+ lib/aspectjweaver-1.9.7.jar,\
+ lib/cdmlib-commons-5.29.0.jar,\
+ lib/cdmlib-ext-5.29.0.jar,\
+ lib/cdmlib-io-5.29.0.jar,\
+ lib/cdmlib-model-5.29.0.jar,\
+ lib/cdmlib-api-5.29.0.jar,\
+ lib/cdmlib-persistence-5.29.0.jar,\
+ lib/cdmlib-services-5.29.0.jar,\
lib/commons-beanutils-1.9.4.jar,\
lib/commons-codec-1.15.jar,\
lib/commons-collections-3.2.2.jar,\
lib/commons-dbcp-1.4.jar,\
lib/commons-imaging-1.0-alpha2.jar,\
- lib/commons-io-2.4.jar,\
+ lib/commons-io-2.11.0.jar,\
lib/commons-lang-2.6.jar,\
- lib/commons-lang3-3.11.jar,\
+ lib/commons-lang3-3.12.0.jar,\
lib/commons-logging-1.2.jar,\
lib/commons-pool-1.6.jar,\
lib/ehcache-2.10.6.jar,\
lib/hibernate-search-engine-5.5.2.Final.jar,\
lib/hibernate-search-orm-5.5.2.Final.jar,\
lib/hibernate-validator-6.1.5.Final.jar,\
- lib/httpclient-4.5.12.jar,\
- lib/httpclient-cache-4.2.6.jar,\
- lib/httpcore-4.4.13.jar,\
- lib/identificationKeyAPI-1.0.jar,\
- lib/itextpdf-5.5.8.jar,\
- lib/jackson-annotations-2.11.2.jar,\
- lib/jackson-core-2.11.2.jar,\
- lib/jackson-databind-2.11.2.jar,\
+ lib/httpclient-4.5.13.jar,\
+ lib/httpclient-cache-4.5.13.jar,\
+ lib/httpcore-4.4.15.jar,\
+ lib/itextpdf-5.5.13.2.jar,\
+ lib/jackson-annotations-2.13.1.jar,\
+ lib/jackson-core-2.13.1.jar,\
+ lib/jackson-databind-2.13.1.jar,\
lib/jboss-logging-3.4.1.Final.jar,\
lib/jdom-1.1.3.jar,\
lib/jdom2-2.0.6.jar,\
- lib/joda-time-2.10.6.jar,\
+ lib/joda-time-2.10.13.jar,\
lib/log4j-1.2.17.jar,\
lib/lsid-client-1.1.2.jar,\
- lib/spring-aop-4.3.28.RELEASE.jar,\
- lib/spring-aspects-4.3.28.RELEASE.jar,\
- lib/spring-beans-4.3.28.RELEASE.jar,\
- lib/spring-context-4.3.28.RELEASE.jar,\
- lib/spring-context-support-4.3.28.RELEASE.jar,\
- lib/spring-core-4.3.28.RELEASE.jar,\
- lib/spring-expression-4.3.28.RELEASE.jar,\
- lib/spring-jdbc-4.3.28.RELEASE.jar,\
- lib/spring-orm-4.3.28.RELEASE.jar,\
- lib/spring-oxm-4.3.28.RELEASE.jar,\
- lib/spring-security-config-4.2.18.RELEASE.jar,\
- lib/spring-security-core-4.2.18.RELEASE.jar,\
- lib/spring-test-4.3.28.RELEASE.jar,\
- lib/spring-tx-4.3.28.RELEASE.jar,\
- lib/spring-web-4.3.28.RELEASE.jar,\
+ lib/spring-aop-4.3.30.RELEASE.jar,\
+ lib/spring-aspects-4.3.30.RELEASE.jar,\
+ lib/spring-beans-4.3.30.RELEASE.jar,\
+ lib/spring-context-4.3.30.RELEASE.jar,\
+ lib/spring-context-support-4.3.30.RELEASE.jar,\
+ lib/spring-core-4.3.30.RELEASE.jar,\
+ lib/spring-expression-4.3.30.RELEASE.jar,\
+ lib/spring-jdbc-4.3.30.RELEASE.jar,\
+ lib/spring-orm-4.3.30.RELEASE.jar,\
+ lib/spring-oxm-4.3.30.RELEASE.jar,\
+ lib/spring-security-config-4.2.20.RELEASE.jar,\
+ lib/spring-security-core-4.2.20.RELEASE.jar,\
+ lib/spring-test-4.3.30.RELEASE.jar,\
+ lib/spring-tx-4.3.30.RELEASE.jar,\
+ lib/spring-web-4.3.30.RELEASE.jar,\
lib/tools.jar,\
lib/usertype.jodatime-2.0.1.jar,\
lib/usertype.spi-2.0.1.jar,\
lib/validation-api-2.0.1.Final.jar,\
- lib/xalan-2.7.0.jar,\
- lib/xercesImpl-2.12.0.jar,\
+ lib/xalan-2.7.2.jar,\
+ lib/xercesImpl-2.12.1.jar,\
lib/xml-apis-1.4.01.jar,\
lib/xmlbeans-3.1.0.jar,\
lib/opencsv-2.3.jar,\
- lib/junit-4.13.1.jar,\
- lib/javassist-3.27.0-GA.jar,\
+ lib/junit-4.13.2.jar,\
+ lib/javassist-3.28.0-GA.jar,\
lib/javax.el-api-3.0.0.jar,\
- lib/json-20090211.jar,\
+ lib/json-20211205.jar,\
lib/json-lib-2.4-jdk15.jar,\
lib/slf4j-api-1.7.30.jar,\
lib/slf4j-log4j12-1.7.30.jar,\
lib/poi-4.1.2.jar,\
lib/poi-ooxml-4.1.2.jar,\
lib/poi-ooxml-schemas-4.1.2.jar,\
- lib/postgresql-42.2.18.jar,\
+ lib/postgresql-42.3.1.jar,\
lib/lucene-core-5.4.1.jar,\
lib/lucene-queryparser-5.4.1.jar,\
- lib/lucene-analyzers-3.6.2.jar,\
lib/lucene-analyzers-common-5.4.1.jar,\
lib/lucene-sandbox-5.4.1.jar,\
lib/lucene-suggest-5.4.1.jar,\
- lib/cdmlib-cache-5.28.0.jar,\
+ lib/cdmlib-cache-5.29.0.jar,\
lib/org.swtchart_0.10.0.v20160212.jar,\
lib/commons-collections4-4.4.jar,\
lib/commons-math3-3.6.1.jar,\
- lib/mysql-connector-java-8.0.21.jar,\
+ lib/mysql-connector-java-8.0.27.jar,\
lib/JavaAPIforKml-2.2.1.jar,\
- lib/iiif-apis-0.3.7.jar,\
+ lib/iiif-apis-0.3.9.jar,\
lib/c3p0-0.9.5.2.jar,\
lib/mchange-commons-java-0.2.11.jar,\
lib/jboss-transaction-api_1.2_spec-1.1.1.Final.jar
--- /dev/null
+This folder is needed for the `../../project-setup-wire-locally.sh` script which simplifies setting up
+a workspace, in which the `eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-*.jar` dependencies are replaced
+by the class folders of the corresponding cdmlib sub projects.
+
+++ /dev/null
-/home/andreas/workspaces/cdm/cdmlib/cdmlib-services/target/classes
\ No newline at end of file
<parent>\r
<groupId>eu.etaxonomy</groupId>\r
<artifactId>taxeditor-parent</artifactId>\r
- <version>5.28.1</version>\r
+ <version>5.29.0</version>\r
</parent>\r
<modelVersion>4.0.0</modelVersion>\r
<artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>\r
<packaging>eclipse-plugin</packaging>\r
<properties>\r
- <jackson.version>2.11.2</jackson.version>\r
+ <jackson.version>2.13.1</jackson.version>\r
<poi.version>4.1.2</poi.version>\r
<hibernate.version>5.1.17.Final</hibernate.version>\r
+ <lucene.version>5.4.1</lucene.version>\r
+ <spring.version>4.3.30.RELEASE</spring.version> <!-- checked 2021-12, further upgrade possible -->\r
+ <spring-security.version>4.2.20.RELEASE</spring-security.version> <!-- checked 2021-12, further upgrade possible -->\r
+ <aspectj.version>1.9.7</aspectj.version>\r
</properties>\r
<name>CDM Library Dependencies Plugin</name>\r
<description>CDM Library and dependencies as a plugin</description>\r
<plugin>\r
<groupId>org.apache.maven.plugins</groupId>\r
<artifactId>maven-surefire-plugin</artifactId>\r
- <version>2.22.2</version>\r
+ <version>3.0.0-M5</version>\r
</plugin>\r
</plugins>\r
</pluginManagement>\r
<plugin>\r
<groupId>org.apache.maven.plugins</groupId>\r
<artifactId>maven-dependency-plugin</artifactId>\r
- <version>2.4</version>\r
+ <version>3.2.0</version>\r
<executions>\r
<execution>\r
<id>copy-dependencies</id>\r
cdmlib-remote-webapp\r
</excludeArtifactIds>\r
<includeArtifactIds>\r
- cdmlib-commons,cdmlib-model,cdmlib-persistence,cdmlib-services,cdmlib-cache,cdmlib-ext,cdmlib-io\r
+ cdmlib-commons,cdmlib-model,cdmlib-api,cdmlib-persistence,cdmlib-services,cdmlib-cache,cdmlib-ext,cdmlib-io\r
</includeArtifactIds>\r
<outputDirectory>${basedir}/lib</outputDirectory>\r
<overWriteReleases>true</overWriteReleases>\r
<configuration>\r
<includeArtifactIds>\r
httpclient,JavaAPIforKml,iiif-apis,commons-beanutils,commons-lang3,commons-lang,commons-codec,\r
+ commons-collections,commons-io,commons-logging,ezmorph,\r
+ hibernate-search-engine,hibernate-search-orm,itextpdf,\r
+ json,json-lib,log4j,lucene-analyzers-common,lucene-core,lucene-queryparser,lucene-suggest,lucene-sandbox,\r
+ xalan,\r
commons-imaging,jackson-databind,jackson-annotations,jackson-core,jboss-logging,\r
validation-api,classmate,javax.el-api,slf4j-api,slf4j-log4j12,\r
ehcache,\r
<plugin>\r
<groupId>org.apache.maven.plugins</groupId>\r
<artifactId>maven-dependency-plugin</artifactId>\r
- <version>2.4</version>\r
+ <version>3.2.0</version>\r
<executions>\r
<execution>\r
<id>copy-all-dependencies</id>\r
<artifactId>cdmlib-model</artifactId>\r
<version>${cdmlib.version}</version>\r
</dependency>\r
+ <dependency>\r
+ <groupId>eu.etaxonomy</groupId>\r
+ <artifactId>cdmlib-api</artifactId>\r
+ <version>${cdmlib.version}</version>\r
+ </dependency>\r
<dependency>\r
<groupId>eu.etaxonomy</groupId>\r
<artifactId>cdmlib-persistence</artifactId>\r
<dependency>\r
<groupId>joda-time</groupId>\r
<artifactId>joda-time</artifactId>\r
- <version>2.10.6</version>\r
+ <version>2.10.13</version>\r
</dependency>\r
<dependency>\r
<groupId>org.jadira.usertype</groupId>\r
<dependency>\r
<groupId>org.springframework</groupId>\r
<artifactId>spring-context</artifactId>\r
- <version>4.3.28.RELEASE</version>\r
+ <version>${spring.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework</groupId>\r
<artifactId>spring-context-support</artifactId>\r
- <version>4.3.28.RELEASE</version>\r
+ <version>${spring.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework</groupId>\r
<artifactId>spring-aspects</artifactId>\r
- <version>4.3.28.RELEASE</version>\r
+ <version>${spring.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework</groupId>\r
<artifactId>spring-test</artifactId>\r
- <version>4.3.28.RELEASE</version>\r
+ <version>${spring.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework</groupId>\r
<artifactId>spring-beans</artifactId>\r
- <version>4.3.28.RELEASE</version>\r
+ <version>${spring.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework</groupId>\r
<artifactId>spring-tx</artifactId>\r
- <version>4.3.28.RELEASE</version>\r
+ <version>${spring.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework</groupId>\r
<artifactId>spring-web</artifactId>\r
- <version>4.3.28.RELEASE</version>\r
+ <version>${spring.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework</groupId>\r
<artifactId>spring-core</artifactId>\r
- <version>4.3.28.RELEASE</version>\r
+ <version>${spring.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework</groupId>\r
<artifactId>spring-aop</artifactId>\r
- <version>4.3.28.RELEASE</version>\r
+ <version>${spring.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework</groupId>\r
<artifactId>spring-expression</artifactId>\r
- <version>4.3.28.RELEASE</version>\r
+ <version>${spring.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework</groupId>\r
<artifactId>spring-orm</artifactId>\r
- <version>4.3.28.RELEASE</version>\r
+ <version>${spring.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework</groupId>\r
<artifactId>spring-oxm</artifactId>\r
- <version>4.3.28.RELEASE</version>\r
+ <version>${spring.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework</groupId>\r
<artifactId>spring-jdbc</artifactId>\r
- <version>4.3.28.RELEASE</version>\r
+ <version>${spring.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework.security</groupId>\r
<artifactId>spring-security-core</artifactId>\r
- <version>4.2.18.RELEASE</version>\r
+ <version>${spring-security.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework.security</groupId>\r
<artifactId>spring-security-config</artifactId>\r
- <version>4.2.18.RELEASE</version>\r
+ <version>${spring-security.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.springframework.security</groupId>\r
<artifactId>spring-security-remoting</artifactId>\r
- <version>4.2.18.RELEASE</version>\r
+ <version>${spring-security.version}</version>\r
</dependency>\r
<dependency>\r
<!-- dependency of spring security core, can be removed after\r
<dependency>\r
<groupId>org.apache.httpcomponents</groupId>\r
<artifactId>httpclient</artifactId>\r
+ <!-- version defined in parent pom -->\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.apache.httpcomponents</groupId>\r
+ <artifactId>httpclient-cache</artifactId>\r
+ <!-- version defined in parent pom -->\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.apache.httpcomponents</groupId>\r
+ <artifactId>httpcore</artifactId>\r
+ <version>4.4.15</version>\r
</dependency>\r
\r
<dependency>\r
<groupId>org.apache.commons</groupId>\r
<artifactId>commons-lang3</artifactId>\r
- <version>3.11</version>\r
+ <version>3.12.0</version>\r
</dependency>\r
<dependency>\r
<!-- needed at least in taxeditor.test by BundleLoader; try to move there but test carefully -->\r
<!-- needed? -->\r
<groupId>xerces</groupId>\r
<artifactId>xercesImpl</artifactId>\r
- <version>2.12.0</version>\r
+ <version>2.12.1</version>\r
</dependency>\r
\r
<dependency>\r
<groupId>org.aspectj</groupId>\r
<artifactId>aspectjweaver</artifactId>\r
- <version>1.9.6</version>\r
+ <version>${aspectj.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.aspectj</groupId>\r
<artifactId>aspectjrt</artifactId>\r
- <version>1.9.6</version>\r
+ <version>${aspectj.version}</version>\r
</dependency>\r
<dependency>\r
<groupId>org.hibernate.javax.persistence</groupId>\r
<dependency>\r
<groupId>org.javassist</groupId>\r
<artifactId>javassist</artifactId>\r
- <version>3.27.0-GA</version>\r
+ <version>3.28.0-GA</version>\r
</dependency>\r
<dependency>\r
<groupId>org.hibernate.common</groupId>\r
poi: com.zaxxer:SparseBitSet\r
poi-ooxml commons-compress,curvesapi\r
-->\r
+ \r
+ <!-- the following were all taken without check if needed -->\r
+ <dependency>\r
+ <groupId>commons-collections</groupId>\r
+ <artifactId>commons-collections</artifactId>\r
+ <version>3.2.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>commons-io</groupId>\r
+ <artifactId>commons-io</artifactId>\r
+ <version>2.11.0</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>commons-logging</groupId>\r
+ <artifactId>commons-logging</artifactId>\r
+ <version>1.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>net.sf.ezmorph</groupId>\r
+ <artifactId>ezmorph</artifactId>\r
+ <version>1.0.6</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.hibernate</groupId>\r
+ <artifactId>hibernate-search-engine</artifactId>\r
+ <version>5.5.2.Final</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.hibernate</groupId>\r
+ <artifactId>hibernate-search-orm</artifactId>\r
+ <version>5.5.2.Final</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>com.itextpdf</groupId>\r
+ <artifactId>itextpdf</artifactId> \r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.json</groupId>\r
+ <artifactId>json</artifactId>\r
+ <version>20211205</version>\r
+ </dependency> \r
+ <dependency>\r
+ <groupId>net.sf.json-lib</groupId>\r
+ <artifactId>json-lib</artifactId>\r
+ <version>2.4</version>\r
+ <!-- classifier required as json-lib exists on maven central as json-lib-2.4-jdk15.jar and xxx-jdk13.jar, see #9887 -->\r
+ <classifier>jdk15</classifier>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.apache.lucene</groupId>\r
+ <artifactId>lucene-core</artifactId>\r
+ <version>${lucene.version}</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.apache.lucene</groupId>\r
+ <artifactId>lucene-analyzers-common</artifactId>\r
+ <version>${lucene.version}</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.apache.lucene</groupId>\r
+ <artifactId>lucene-queryparser</artifactId>\r
+ <version>${lucene.version}</version>\r
+ </dependency> \r
+ <dependency>\r
+ <groupId>org.apache.lucene</groupId>\r
+ <artifactId>lucene-suggest</artifactId>\r
+ <version>${lucene.version}</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.apache.lucene</groupId>\r
+ <artifactId>lucene-sandbox</artifactId>\r
+ <version>${lucene.version}</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>xalan</groupId>\r
+ <artifactId>xalan</artifactId>\r
+ <version>2.7.2</version>\r
+ </dependency>\r
+ \r
+ <!-- end without check if needed --> \r
+ \r
+ \r
<!-- logging -->\r
<dependency>\r
<!-- needed? -->\r
<dependency>\r
<groupId>junit</groupId>\r
<artifactId>junit</artifactId>\r
- <version>4.13.1</version>\r
+ <version>4.13.2</version>\r
<scope>test</scope>\r
</dependency>\r
<dependency>\r
<dependency>\r
<groupId>de.digitalcollections.iiif</groupId>\r
<artifactId>iiif-apis</artifactId>\r
- <version>0.3.7</version>\r
+ <version>0.3.9</version>\r
</dependency>\r
\r
<!-- database related, should be moved to local/test when possible -->\r
<dependency>\r
<groupId>mysql</groupId>\r
<artifactId>mysql-connector-java</artifactId>\r
- <version>8.0.21</version>\r
+ <version>8.0.27</version>\r
</dependency>\r
<dependency>\r
<groupId>com.h2database</groupId>\r
<dependency>\r
<groupId>org.postgresql</groupId>\r
<artifactId>postgresql</artifactId>\r
- <version>42.2.18</version>\r
+ <version>42.3.1</version>\r
</dependency>\r
\r
<!-- mchange dependencies, needed in datasource view dialog for finish button (ClassName is needed for datasource.xml -->\r
import eu.etaxonomy.cdm.api.service.ICollectionService;\r
import eu.etaxonomy.cdm.api.service.ICommonService;\r
import eu.etaxonomy.cdm.api.service.IDatabaseService;\r
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;\r
import eu.etaxonomy.cdm.api.service.IDescriptionService;\r
import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;\r
import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;\r
import eu.etaxonomy.cdm.api.service.IEntityValidationService;\r
import eu.etaxonomy.cdm.api.service.IEventBaseService;\r
-import eu.etaxonomy.cdm.api.service.IFeatureNodeService;\r
-import eu.etaxonomy.cdm.api.service.IFeatureTreeService;\r
import eu.etaxonomy.cdm.api.service.IGrantedAuthorityService;\r
import eu.etaxonomy.cdm.api.service.IGroupService;\r
import eu.etaxonomy.cdm.api.service.IIdentificationKeyService;\r
import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;\r
import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;\r
import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;\r
+import eu.etaxonomy.cdm.api.service.security.IAccountRegistrationService;\r
+import eu.etaxonomy.cdm.api.service.security.IPasswordResetService;\r
import eu.etaxonomy.cdm.ext.geo.IEditGeoService;\r
import eu.etaxonomy.cdm.io.service.IIOService;\r
import eu.etaxonomy.cdm.persistence.permission.CdmPermissionEvaluator;\r
throw new UnsupportedOperationException("getBean is not implemented for CdmApplicationRemoteConfiguration");\r
}\r
\r
+ @Override\r
+ public IAccountRegistrationService getAccountRegistrationService() {\r
+ return (IAccountRegistrationService) getService(IAccountRegistrationService.class, "/remoting/accountregistrationservice.service", new AuthenticatingHttpInvokerRequestExecutor());\r
+ }\r
+\r
@Override\r
public IAgentService getAgentService(){\r
return (IAgentService) getService(IAgentService.class, "/remoting/agent.service", new AuthenticatingHttpInvokerRequestExecutor());\r
return (IDescriptionService) getService(IDescriptionService.class, "/remoting/description.service", new AuthenticatingHttpInvokerRequestExecutor());\r
}\r
\r
+ @Override\r
+ public IDescriptionElementService getDescriptionElementService(){\r
+ return (IDescriptionElementService) getService(IDescriptionElementService.class, "/remoting/descriptionelement.service", new AuthenticatingHttpInvokerRequestExecutor());\r
+ }\r
+\r
@Override\r
public IOccurrenceService getOccurrenceService(){\r
return (IOccurrenceService) getService(IOccurrenceService.class, "/remoting/occurrence.service", new AuthenticatingHttpInvokerRequestExecutor());\r
return (ICollectionService) getService(ICollectionService.class, "/remoting/collection.service", new AuthenticatingHttpInvokerRequestExecutor());\r
}\r
\r
- @Override\r
- public IFeatureTreeService getFeatureTreeService(){\r
- return (IFeatureTreeService) getService(IFeatureTreeService.class, "/remoting/featuretree.service", new AuthenticatingHttpInvokerRequestExecutor());\r
- }\r
@Override\r
public ITermTreeService getTermTreeService() {\r
return (ITermTreeService) getService(ITermTreeService.class, "/remoting/termtree.service", new AuthenticatingHttpInvokerRequestExecutor());\r
}\r
\r
- @Override\r
- public IFeatureNodeService getFeatureNodeService(){\r
- return (IFeatureNodeService) getService(IFeatureNodeService.class, "/remoting/featurenode.service", new AuthenticatingHttpInvokerRequestExecutor());\r
- }\r
-\r
@Override\r
public ITermNodeService getTermNodeService() {\r
return (ITermNodeService) getService(ITermNodeService.class, "/remoting/termnode.service", new AuthenticatingHttpInvokerRequestExecutor());\r
return (IPreferenceService) getService(IPreferenceService.class, "/remoting/preference.service", new AuthenticatingHttpInvokerRequestExecutor());\r
}\r
\r
+ @Override\r
+ public IPasswordResetService getPasswordResetService(){\r
+ return (IPasswordResetService) getService(IPasswordResetService.class, "/remoting/passwordreset.service", new AuthenticatingHttpInvokerRequestExecutor());\r
+ }\r
+\r
@Override\r
public IEntityValidationService getEntityValidationService(){\r
return (IEntityValidationService) getService(IEntityValidationService.class, "/remoting/entityvalidation.service", new AuthenticatingHttpInvokerRequestExecutor());\r
for(CdmBase updatedObject : updatedObjects) {
if(updatedObject != null) {
if (exists(new CdmEntityCacheKey<>(updatedObject))){
- CdmEntityIdentifier cdmEntityIdentifier = new CdmEntityIdentifier(updatedObject.getId(), updatedObject.getClass());
+ CdmEntityIdentifier cdmEntityIdentifier = CdmEntityIdentifier.NewInstance(updatedObject);
if(!updatedCdmIdsIsEmpty && updatedCdmIds.contains(cdmEntityIdentifier)) {
updatedCdmIds.remove(cdmEntityIdentifier);
}
<param name="acceptOnMatch" value="false" />
</filter>
</appender>
+ <appender name="A1" class="org.apache.log4j.FileAppender">
+ <param name="File" value="A1.log" />
+ <param name="Append" value="true" />
+ <layout class="org.apache.log4j.xml.XMLLayout" />
+ </appender>
<root>
<priority value="WARN" />
- <appender-ref ref="CONSOLE" />
+ <appender-ref ref="A1" />
</root>
-<!-- <logger name="org.hibernate.proxy.AbstractLazyInitializer"> -->
-<!-- <level value="info" /> -->
-<!-- </logger> -->
-<!-- <logger -->
+<!-- <logger name="org.hibernate.proxy.AbstractLazyInitializer"> -->
+<!-- <level value="info" /> -->
+<!-- </logger> -->
+<!-- <logger -->
<!-- name="org.hibernate.collection.internal.AbstractPersistentCollection"> -->
<!-- <level value="info" /> -->
<!-- </logger> -->
<!-- name="eu.etaxonomy.taxeditor.session.DefaultNewEntityListener"> -->
<!-- <level value="info" /> -->
<!-- </logger> -->
-<!-- <logger -->
-<!-- name="eu.etaxonomy.taxeditor.util.ProgressMonitorClientManager"> -->
-<!-- <level value="info" /> -->
-<!-- </logger> -->
+ <logger name="eu.etaxonomy.taxeditor.handler.update.UpdateHandler">
+ <level value="info" />
+ </logger>
+ <logger name="org.eclipse.equinox.p2.operations.ProvisioningSession">
+ <level value="info" />
+ </logger>
+ <logger name="org.eclipse.equinox.internal.p2.engine.ProvisioningPlan">
+ <level value="info" />
+ </logger>
</log4j:configuration>
\ No newline at end of file
Bundle-ManifestVersion: 2
Bundle-Name: Editor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
-Bundle-Version: 5.28.1
+Bundle-Version: 5.29.0
Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
Bundle-Vendor: %Bundle-Vendor.0
Bundle-Localization: OSGI-INF/l10n/plugin
</menus>
<menus xsi:type="menu:PopupMenu" xmi:id="__10yYLKREeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.charactermatrix">
<children xsi:type="menu:HandledMenuItem" xmi:id="_AyHbgLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createdefaultdescription" label="%handledmenuitem.label.19" command="_ZHC3oLKVEeikjKoOnLFm2w"/>
+ <children xsi:type="menu:DynamicMenuContribution" xmi:id="_zHbhUEB_EeySSdtyqU8-Hw" elementId="eu.etaxonomy.taxeditor.editor.dynamicmenucontribution.openInCdmViewer" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.CdmViewerContextMenuE4"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_MhHQYLIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.29"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_DYlHcLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createliteraturedescription" label="%handledmenuitem.label.20" command="_fkPkkLKVEeikjKoOnLFm2w"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_ARo78KSvEeq8Gc-K2nsNRg" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.adddescription" label="%command.commandname.25" command="_zCGQ8JN1EeqyUKRuXQ8miw"/>
- <children xsi:type="menu:MenuSeparator" xmi:id="_MhHQYLIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.29"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_Pu6CELIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.30"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_vBrWQKY-Eeq8Gc-K2nsNRg" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.aggregate" label="%command.commandname.26" command="_K2C_oKZAEeq8Gc-K2nsNRg"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_wkVAMKotEeqBXdGXVmg_xA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.create_key" label="%command.commandname.27" command="_vWxB4KoiEeqBXdGXVmg_xA"/>
- <children xsi:type="menu:MenuSeparator" xmi:id="_Pu6CELIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.30"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="__Ff10EB_EeySSdtyqU8-Hw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.2"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="__SlnwI97EeqyUKRuXQ8miw" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.deletedescription" label="%handledmenuitem.label.27" command="_MYd44I98EeqyUKRuXQ8miw"/>
</menus>
</elements>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
if (!inputNode.equals(editorNode)){
alreadyOpenInOtherClassification = part;
}else{
+ ((TaxonNameEditorE4) part.getObject()).init(input);
partService.activate(part, true);
return;
}
CharacterNodeDto nodeDto = new CharacterNodeDto(CharacterDto.fromCharacter(character), parentNode, 0, parent.getTree(), null, null, null);
nodesToSave.put(character, nodeDto);
setDirty();
- // result = CdmStore.getService(IFeatureNodeService.class).createChildFeatureNode(parent.getUuid(), character, vocabulary.getUuid());
+ // result = CdmStore.getService(ITermNodeService.class).createChildFeatureNode(parent.getUuid(), character, vocabulary.getUuid());
}
private HashMap<UUID, RowWrapperDTO<?>> rowsToMerge = new HashMap<>();
private Map<Integer, FeatureDto> indexToFeatureMap = new HashMap<>();
+ private Map<UUID, Integer> featureToIndexMap = new HashMap<>();
private Map<UUID, List<TermDto>> categoricalFeatureToStateMap = new HashMap<>();
}
return "Multiple data exist. Editing only possible in factual data view of " + object;
+ }
+ if (cell.getConfigLabels().getLabels().contains(CharacterMatrixConfigLabelAccumulator.NOT_APPLICABLE)){
+ return "This character is not applicable because of the state of a parent feature." ;
}
return null;
}
private void initLabels(int index, FeatureDto feature) {
indexToFeatureMap.put(index+LEADING_COLUMN_COUNT, feature);
-
+ featureToIndexMap.put(feature.getUuid(), index+LEADING_COLUMN_COUNT);
String label = feature.getTitleCache();
String property = feature.getUuid().toString();
//show unit for quantitative data
return indexToFeatureMap;
}
- public LinkedMap<String, String> getPropertyToLabelMap() {
+ public Map<UUID, Integer> getFeatureToIndexMap() {
+ return featureToIndexMap;
+ }
+
+ public void setFeatureToIndexMap(Map<UUID, Integer> featureToIndexMap) {
+ this.featureToIndexMap = featureToIndexMap;
+ }
+
+ public LinkedMap<String, String> getPropertyToLabelMap() {
return propertyToLabelMap;
}
}
}
+
+ @Inject
+ @Optional
+ private void updateMatrix(@UIEventTopic(WorkbenchEventConstants.REFRESH_MATRIX)UUID uuid){
+ if(uuid!= null && uuid.equals(part.getDescriptiveDataSet().getUuid())){
+ this.specimenCache = null;
+
+ }
+ }
public void addRowsToMatrix(Collection<SpecimenNodeWrapper> wrappers){
if (specimenToAdd == null || specimenToAdd.isEmpty()){
return new HashMap<>();
}
- UpdateResult result = CdmStore.getService(IDescriptiveDataSetService.class).addRowWrapperToDataset(specimenToAdd, getDescriptiveDataSet().getUuid());
+ UpdateResult result = CdmStore.getService(IDescriptiveDataSetService.class).addRowWrapperToDataset(specimenToAdd, getDescriptiveDataSet().getUuid(), true);
if(!result.getExceptions().isEmpty()){
MessagingUtils.warningDialog(Messages.CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_TITLE, this,
String.format(Messages.CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_MESSAGE, result.getExceptions()
}
-
- @Inject
- @Optional
- private void updateView(@UIEventTopic(WorkbenchEventConstants.ADD_TO_MERGE_ROWS) UUID uuid) {
-
- }
-
@Override
public void dispose () {
super.dispose();
*/
package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix;
+import java.util.Map.Entry;
import java.util.Optional;
import java.util.Set;
import eu.etaxonomy.cdm.api.service.dto.QuantitativeDataDto;
import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
import eu.etaxonomy.cdm.api.service.dto.SpecimenRowWrapperDTO;
+import eu.etaxonomy.cdm.api.service.dto.StateDataDto;
import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
/**
* @author pplitzner
public static final String CATEGORICAL_EDITABLE = CATEGORICAL+"_EDITABLE";
public static final String QUANTITATIVE_EDITABLE = QUANTITATIVE+"_EDITABLE";
public static final String NOT_EDITABLE = "NOT_EDITABLE";
+ public static final String NOT_APPLICABLE = "NOT APPLICABLE";
private CharacterMatrix matrix;
@Override
public void accumulateConfigLabels(LabelStack configLabels, int columnPosition, int rowPosition) {
boolean isEditable = true;
+ boolean isApplicable = true;
Object rowObject = matrix.getBodyDataProvider().getRowObject(rowPosition);
if(rowObject instanceof TaxonNodeDto){
if (hasMoreThanOneValue(feature, (RowWrapperDTO)rowObject)){
isEditable = false;
}
+ if (!isApplicableCheck(feature, (RowWrapperDTO)rowObject)){
+ isApplicable = false;
+ }
}
if(feature.isSupportsCategoricalData()){
+
configLabels.addLabel(CATEGORICAL);
- if(isEditable){
+ if(isEditable && isApplicable){
configLabels.addLabel(CATEGORICAL_EDITABLE);
- }else{
+ }else if (!isEditable && isApplicable){
configLabels.addLabel(NOT_EDITABLE);
}
+
}
else if(feature.isSupportsQuantitativeData()){
configLabels.addLabel(QUANTITATIVE);
- if(isEditable){
+ if(isEditable && isApplicable){
configLabels.addLabel(QUANTITATIVE_EDITABLE);
- }else{
+ }else if (!isEditable && isApplicable){
configLabels.addLabel(NOT_EDITABLE);
}
}
+ if (!isApplicable){
+ configLabels.addLabel(NOT_APPLICABLE);
+
+ }
}
}
}
+
+ private boolean isApplicableCheck(FeatureDto feature, RowWrapperDTO<?> rowWrapperDTO) {
+ TermTreeDto tree = matrix.getDescriptiveDataSet().getDescriptiveSystem();
+ boolean isApplicableCheck = true;
+ if (tree.getOnlyApplicable().containsKey(feature.getUuid())){
+
+ for (FeatureStateDto featureStateDto:tree.getOnlyApplicable().get(feature.getUuid())){
+ isApplicableCheck = false;
+ FeatureDto dto = featureStateDto.getFeature();
+ TermDto stateDto = featureStateDto.getState();
+ Set<DescriptionElementDto> descEls = rowWrapperDTO.getDataValueForFeature(dto.getUuid());
+ if (descEls != null){
+ for (DescriptionElementDto el:descEls){
+ if (el instanceof CategoricalDataDto){
+ for (StateDataDto stateData:((CategoricalDataDto) el).getStates()){
+ isApplicableCheck |= stateData.getState().getUuid().equals(stateDto.getUuid());
+ }
+ }
+ }
+ }
+ }
+ }
+ if (tree.getInapplicableMap().containsKey(feature.getUuid())){
+ for (FeatureStateDto featureStateDto:tree.getInapplicableMap().get(feature.getUuid())){
+ FeatureDto dto = featureStateDto.getFeature();
+ TermDto stateDto = featureStateDto.getState();
+ Set<DescriptionElementDto> descEls = rowWrapperDTO.getDataValueForFeature(dto.getUuid());
+ if (descEls != null){
+ for (DescriptionElementDto el:descEls){
+ if (el instanceof CategoricalDataDto){
+ for (StateDataDto stateData:((CategoricalDataDto) el).getStates()){
+ isApplicableCheck &= !stateData.getState().getUuid().equals(stateDto.getUuid());
+ }
+ }
+ }
+ }
+ }
+ }
+ if (!isApplicableCheck){
+
+ }
+ return isApplicableCheck;
+ }
private boolean hasDefaultValue(FeatureDto feature, DescriptionBaseDto defaultDescription) {
import org.eclipse.nebula.widgets.nattable.style.DisplayMode;
import org.eclipse.nebula.widgets.nattable.style.HorizontalAlignmentEnum;
import org.eclipse.nebula.widgets.nattable.style.Style;
+import org.eclipse.nebula.widgets.nattable.style.TextDecorationEnum;
import org.eclipse.nebula.widgets.nattable.ui.util.CellEdgeEnum;
import org.eclipse.nebula.widgets.nattable.util.GUIHelper;
notEditableValueStyle,
DisplayMode.NORMAL,
CharacterMatrixConfigLabelAccumulator.NOT_EDITABLE);
+
+ Style notApplicableValueStyle = new Style();
+ notApplicableValueStyle.setAttributeValue(
+ CellStyleAttributes.BACKGROUND_COLOR,
+ GUIHelper.COLOR_GRAY);
+ notApplicableValueStyle.setAttributeValue(
+ CellStyleAttributes.FOREGROUND_COLOR,
+ GUIHelper.COLOR_GRAY);
+ notApplicableValueStyle.setAttributeValue(
+ CellStyleAttributes.TEXT_DECORATION,
+ TextDecorationEnum.STRIKETHROUGH);
+ configRegistry.registerConfigAttribute(
+ CellConfigAttributes.CELL_STYLE,
+ notApplicableValueStyle,
+ DisplayMode.NORMAL,
+ CharacterMatrixConfigLabelAccumulator.NOT_APPLICABLE);
Style defaultOverriddenStyle = new Style();
defaultOverriddenStyle.setAttributeValue(
import org.eclipse.swt.graphics.Image;
+import eu.etaxonomy.cdm.api.service.dto.CategoricalDataDto;
+import eu.etaxonomy.cdm.api.service.dto.DescriptionElementDto;
+import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
+import eu.etaxonomy.cdm.api.service.dto.StateDataDto;
import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
import eu.etaxonomy.cdm.model.description.DescriptionType;
import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
import eu.etaxonomy.taxeditor.model.ImageResources;
/**
public static Image getDefaultDescriptionIcon() {
return ImageResources.getImage(ImageResources.VALIDATE_ICON);
}
+
+ private static boolean isApplicableCheck(FeatureDto feature, RowWrapperDTO<?> rowWrapperDTO, TermTreeDto tree) {
+// TermTreeDto tree = matrix.getDescriptiveDataSet().getDescriptiveSystem();
+ boolean isApplicableCheck = true;
+ if (tree.getOnlyApplicable().containsKey(feature.getUuid())){
+
+ for (FeatureStateDto featureStateDto:tree.getOnlyApplicable().get(feature.getUuid())){
+ isApplicableCheck = false;
+ FeatureDto dto = featureStateDto.getFeature();
+ TermDto stateDto = featureStateDto.getState();
+ Set<DescriptionElementDto> descEls = rowWrapperDTO.getDataValueForFeature(dto.getUuid());
+ if (descEls != null){
+ for (DescriptionElementDto el:descEls){
+ if (el instanceof CategoricalDataDto){
+ for (StateDataDto stateData:((CategoricalDataDto) el).getStates()){
+ isApplicableCheck |= stateData.getState().getUuid().equals(stateDto.getUuid());
+ }
+ }
+ }
+ }
+ }
+ }
+ if (tree.getInapplicableMap().containsKey(feature.getUuid())){
+ for (FeatureStateDto featureStateDto:tree.getInapplicableMap().get(feature.getUuid())){
+ FeatureDto dto = featureStateDto.getFeature();
+ TermDto stateDto = featureStateDto.getState();
+ Set<DescriptionElementDto> descEls = rowWrapperDTO.getDataValueForFeature(dto.getUuid());
+ if (descEls != null){
+ for (DescriptionElementDto el:descEls){
+ if (el instanceof CategoricalDataDto){
+ for (StateDataDto stateData:((CategoricalDataDto) el).getStates()){
+ isApplicableCheck &= !stateData.getState().getUuid().equals(stateDto.getUuid());
+ }
+ }
+ }
+ }
+ }
+ }
+ if (!isApplicableCheck){
+
+ }
+ return isApplicableCheck;
+ }
// private static boolean hasType(TaxonRowWrapperDTO taxonRowWrapperDTO, DescriptionType descriptionType){
// return taxonRowWrapperDTO.getDescription().getTypes().stream()
import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrix;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
/**
* Cell editor for CategoricalData
@Override
public void setCanonicalValue(Object canonicalValue) {
- if(canonicalValue==null){
- Object rowWrapper = matrix.getBodyDataProvider().getRowObject(this.getRowIndex());
- if(rowWrapper instanceof RowWrapperDTO){
- FeatureDto feature = matrix.getIndexToFeatureMap().get(getColumnIndex());
- // FIXME avoid creating empty CategoricalData
-// ((RowWrapperDTO) rowWrapper).addCategoricalData(feature);
- }
-
- }
List canonicalValueList = new ArrayList<>();
if (canonicalValue instanceof String[]){
@Override
protected Control activateCell(Composite parent, Object originalCanonicalValue) {
+
if(matrix.getBodyDataProvider().getRowObject(this.getRowIndex()) instanceof RowWrapperDTO){
NatCombo natCombo = (NatCombo) super.activateCell(parent, originalCanonicalValue);
natCombo.addSelectionListener(new SelectionListener() {
package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.categorical;
import java.util.Collection;
+import java.util.Iterator;
import org.eclipse.nebula.widgets.nattable.data.convert.DisplayConverter;
// the values in the Collection
// So by removing the leading and ending
// character, we remove the brackets
+
String result = canonicalValue.toString();
result = result.substring(1, result.length() - 1);
return result;
*/
package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.handler;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
import org.eclipse.jface.window.Window;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.nebula.widgets.nattable.data.IRowDataProvider;
+import org.eclipse.swt.widgets.Display;
import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.api.service.description.AggregationMode;
import eu.etaxonomy.cdm.api.service.description.StructuredDescriptionAggregationConfiguration;
+import eu.etaxonomy.cdm.api.service.dto.DescriptionBaseDto;
import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.persistence.dto.DescriptiveDataSetBaseDto;
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
import eu.etaxonomy.cdm.persistence.dto.TermDto;
import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrix;
import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrixPart;
import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.IFeedbackGenerator;
* @since Jun 4, 2020
*/
public class AggregationHandler {
+ UpdateResult result = null;
@Execute
public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart, UISynchronize sync) {
if (open != Window.OK){
return;
}
-
+
//job
String jobLabel = "Aggregate Descriptive Dataset";
UUID monitorUuid = CdmApplicationState.getLongRunningTasksService().invoke(config);
MessagingUtils.errorDialog("Aggregation failed", this, "Aggregation was not successfull", TaxeditorEditorPlugin.PLUGIN_ID, (Exception)resultObject, true, true);
}
else if(resultObject instanceof UpdateResult){
- UpdateResult result = ((UpdateResult) resultObject);
+ result = ((UpdateResult) resultObject);
if (result.isError()){
Exception e = result.getExceptions().isEmpty()? null : result.getExceptions().iterator().next();
MessagingUtils.errorDialog("Aggregation failed", this, "Aggregation was not successfull", TaxeditorEditorPlugin.PLUGIN_ID, e, true, true);
}
-
- DescriptiveDataSet dataSet = (DescriptiveDataSet) result.getCdmEntity();
+ Set<UUID> updatedObjects = result.getInsertedOrUpdatedUuids(TaxonDescription.class);
+ Set<TaxonRowWrapperDTO> dtos = new HashSet<>();
+ DescriptiveDataSet dataSet = (DescriptiveDataSet) result.getCdmEntity();
+ for (UUID updatedObj: updatedObjects){
+ TaxonRowWrapperDTO rowWrapper = CdmStore.getService(IDescriptiveDataSetService.class).createTaxonRowWrapper(updatedObj, matrix.getDescriptiveDataSet().getUuid());
+ boolean isRemoved = matrixPart.getMatrix().getDescriptions().remove(rowWrapper);
+ matrixPart.getMatrix().getDescriptions().add(rowWrapper);
+
+ }
+
- // update local dataset
-
- matrix.loadDescriptions(true, true);
-
-// matrix.setSelectedObject(sel);
}
} catch (InterruptedException e) {
return;
}
+
monitor.done();
});
job.schedule();
+
}
@CanExecute
import org.eclipse.jface.viewers.IStructuredSelection;
import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
+import eu.etaxonomy.cdm.api.service.dto.DescriptionBaseDto;
import eu.etaxonomy.cdm.model.description.DescriptionType;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.persistence.dto.DescriptiveDataSetBaseDto;
IStructuredSelection selection = ((CharacterMatrixPart)activePart.getObject()).getSelection();
TaxonNodeDto taxonNodeDto = (TaxonNodeDto) selection.getFirstElement();
- TaxonDescription defaultTaxonDescription = CdmStore.getService(IDescriptiveDataSetService.class)
- .findTaxonDescriptionByDescriptionType(descriptiveDataSet.getUuid(), taxonNodeDto.getUuid(), getDescriptionType());
+ DescriptionBaseDto defaultTaxonDescription = CdmStore.getService(IDescriptiveDataSetService.class)
+ .getTaxonDescriptionForDescriptiveDataSetAndType(descriptiveDataSet, taxonNodeDto.getUuid(), getDescriptionType());
canExecute = defaultTaxonDescription==null;
menuItem.setVisible(canExecute);
}
TaxonNodeDto node = (TaxonNodeDto) matrixPart.getSelection().getFirstElement();
TaxonRowWrapperDTO taxonRowWrapperDTO = CdmStore.getService(IDescriptiveDataSetService.class)
.createTaxonDescription(descriptiveDataSet.getUuid(), node.getUuid(), getDescriptionType());
- matrixPart.getMatrix().getCdmEntitySession().load(taxonRowWrapperDTO.getDescription(), true);
+// matrixPart.getMatrix().getCdmEntitySession().load(taxonRowWrapperDTO.getDescription(), true);
matrixPart.getMatrix().getDescriptions().add(taxonRowWrapperDTO);
matrixPart.getMatrix().layout();
}
import org.eclipse.core.runtime.ICoreRunnable;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.e4.core.di.annotations.CanExecute;
return;
}
Set<TaxonNodeDto> nodeDtos = matrix.getDescriptiveDataSet().getSubTreeFilter();
+
TaxonNodeDto parentDto = CdmStore.getService(ITaxonNodeService.class).findCommonParentDto(nodeDtos);
UUID taxonUuid = parentDto.getTaxonUuid();
- int response = MessagingUtils.confirmDialog(
+ int response = 0;
+ String titleCache = parentDto.getTaxonTitleCache();
+ if (parentDto.getTaxonTitleCache() == null){
+ titleCache = parentDto.getTitleCache();
+ }
+ response = MessagingUtils.confirmDialog(
"Choose taxonomic scope",
String.format("The common parent taxon of this dataset is :\n%s\n\n"
+ "Do you want to use this as the taxonomic scope for the polytomous key?"
- , parentDto.getTaxonTitleCache()), "Yes", "Choose different taxon", "Cancel");
+ , titleCache), "Yes", "Choose different taxon", "Cancel");
+
if(response==2){
return;
}
Object resultObject = remotingMonitor.getResult();
if(resultObject instanceof Exception){
MessagingUtils.errorDialog("Key generation failed", this, "Generating the polytomous key was not successfull", TaxeditorEditorPlugin.PLUGIN_ID, (Exception)resultObject, true, true);
+ }else{
+ MessagingUtils.informationDialog("Key generation successfull", "Generating the polytomous key was successfull");
}
} catch (InterruptedException e) {
return;
import java.math.BigDecimal;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.swt.widgets.Text;
import eu.etaxonomy.cdm.api.service.dto.QuantitativeDataDto;
+import eu.etaxonomy.cdm.api.service.dto.StatisticalMeasurementValueDto;
import eu.etaxonomy.cdm.common.CdmUtils;
import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
import eu.etaxonomy.cdm.persistence.dto.TermDto;
.filter(measure->measure.getType().getUuid().equals(StatisticalMeasure.EXACT_VALUE().getUuid()))
.forEach(exact->addText(valuesComposite, exact.getType(), exact.getValue().toString()));
+//
//add aggregation values
- editorValue.getFeatureDto().getRecommendedStatisticalMeasures()
- .stream()
- .filter(sm->!sm.equals(exactValueDto))
- .forEach(measure->{
- BigDecimal specificStatisticalValue = editorValue.getSpecificStatisticalValue(measure.getUuid());
- addText(valuesComposite, measure, specificStatisticalValue!=null?specificStatisticalValue.toString():null);
- });
+ if (editorValue.getFeatureDto().getRecommendedStatisticalMeasures() != null){
+ List<TermDto> orderedStatisticalMeasures = new ArrayList<>();
+ orderedStatisticalMeasures.addAll(editorValue.getFeatureDto().getRecommendedStatisticalMeasures());
+ Collections.sort(orderedStatisticalMeasures, new Comparator<TermDto>() {
+ @Override
+ public int compare(TermDto o1, TermDto o2) {
+ if (o1.getUuid().equals(o2.getUuid())){
+ return 0;
+ }
+ if (o1.getUuid().equals(StatisticalMeasure.MIN().getUuid())){
+ return -1;
+ }
+ if (o2.getUuid().equals(StatisticalMeasure.MIN().getUuid())){
+ return 1;
+ }
+ if (o1.getUuid().equals(StatisticalMeasure.MAX().getUuid())){
+ return 1;
+ }
+ if (o2.getUuid().equals(StatisticalMeasure.MAX().getUuid())){
+ return -1;
+ }
+ if (o1.getUuid().equals(StatisticalMeasure.TYPICAL_LOWER_BOUNDARY().getUuid()) && o2.getUuid().equals(StatisticalMeasure.TYPICAL_UPPER_BOUNDARY().getUuid())){
+ return -1;
+ }
+ if (o2.getUuid().equals(StatisticalMeasure.TYPICAL_LOWER_BOUNDARY().getUuid()) && o1.getUuid().equals(StatisticalMeasure.TYPICAL_UPPER_BOUNDARY().getUuid())){
+ return -1;
+ }
+ return o1.compareTo(o2);
+ }
+ });
+
+ orderedStatisticalMeasures
+ .stream()
+ .filter(sm->!sm.equals(exactValueDto))
+ .forEach(measure->{
+ BigDecimal specificStatisticalValue = editorValue.getSpecificStatisticalValue(measure.getUuid());
+ addText(valuesComposite, measure, specificStatisticalValue!=null?specificStatisticalValue.toString():null);
+ });
+ }
scrolledComposite_1.setContent(valuesComposite);
scrolledComposite_1.setMinSize(valuesComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
- if(initialInput!=null){
- enableAggregationFields(false);
- }
+// if(initialInput!=null){
+ boolean hasExactValues = textFieldMap.entrySet().stream()
+ .filter(entry->entry.getKey().equals(exactValueDto))
+ .anyMatch(exactEntry->exactEntry.getValue().stream().anyMatch(exactText->CdmUtils.isNotBlank(exactText.getText()))
+ );
+
+ boolean hasAggregatedValues = textFieldMap.entrySet().stream()
+ .filter(entry->!entry.getKey().equals(exactValueDto))
+ .anyMatch(exactEntry->exactEntry.getValue().stream().anyMatch(exactText->CdmUtils.isNotBlank(exactText.getText()))
+ );
+ enableAggregationFields(hasExactValues, hasAggregatedValues);
+// }
}
private Text addText(Composite valuesComposite, TermDto type, String value){
textFieldMap.put(type, list);
list.add(text);
- Button btnNewButton_2 = new Button(composite_2, SWT.NONE);
- btnNewButton_2.setImage(ImageResources.getImage(ImageResources.TRASH_ICON));
+ Button btnRemove = new Button(composite_2, SWT.NONE);
+ btnRemove.setImage(ImageResources.getImage(ImageResources.TRASH_ICON));
new Label(composite_2, SWT.NONE);
- btnNewButton_2.addSelectionListener(new SelectionAdapter() {
+ btnRemove.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
text.setText("");
+ boolean hasExactValues = textFieldMap.entrySet().stream()
+ .filter(entry->entry.getKey().equals(exactValueDto))
+ .anyMatch(exactEntry->exactEntry.getValue().stream().anyMatch(exactText->CdmUtils.isNotBlank(exactText.getText()))
+ );
+
+ boolean hasAggregatedValues = textFieldMap.entrySet().stream()
+ .filter(entry->!entry.getKey().equals(exactValueDto))
+ .anyMatch(exactEntry->exactEntry.getValue().stream().anyMatch(exactText->CdmUtils.isNotBlank(exactText.getText()))
+ );
+
+ enableAggregationFields(hasExactValues, hasAggregatedValues);
}
});
text.addModifyListener(e->{
.filter(entry->entry.getKey().equals(exactValueDto))
.anyMatch(exactEntry->exactEntry.getValue().stream().anyMatch(exactText->CdmUtils.isNotBlank(exactText.getText()))
);
+
+ boolean hasAggregatedValues = textFieldMap.entrySet().stream()
+ .filter(entry->!entry.getKey().equals(exactValueDto))
+ .anyMatch(exactEntry->exactEntry.getValue().stream().anyMatch(exactText->CdmUtils.isNotBlank(exactText.getText()))
+ );
- enableAggregationFields(!hasExactValues);
+ enableAggregationFields(hasExactValues, hasAggregatedValues);
// if(hasExactValues){
// enableAggregationFields(false);
// }
return text;
}
- private void enableAggregationFields(boolean enabled){
+ private void enableAggregationFields(boolean hasExactValues, boolean hasAggregatedValues){
+ boolean enableAggregatedValues = hasAggregatedValues ==( hasAggregatedValues != hasExactValues);
textFieldMap.entrySet().stream()
.filter(entry->!entry.getKey().equals(exactValueDto))
- .forEach(aggEntry->aggEntry.getValue().forEach(aggText->aggText.setEnabled(enabled)));
-
+ .forEach(aggEntry->aggEntry.getValue().forEach(aggText->aggText.setEnabled(enableAggregatedValues)));
+ boolean enableExactValues = hasExactValues ==( hasAggregatedValues != hasExactValues);
textFieldMap.entrySet().stream()
.filter(entry->entry.getKey().equals(exactValueDto))
- .forEach(aggEntry->aggEntry.getValue().forEach(aggText->aggText.setEnabled(!enabled)));
+ .forEach(aggEntry->aggEntry.getValue().forEach(aggText->aggText.setEnabled(enableExactValues)));
}
public Map<TermDto, List<Text>> getTextFields() {
}
if(dto instanceof QuantitativeDataDto){
quantitativeData = (QuantitativeDataDto) dto;
+ quantitativeData.setFeatureDto(feature);
}
//create new Quantitative Data
if (quantitativeData == null) {
newParentNode = TaxonNodeSelectionDialog.select(shell, Messages.MoveSynonymToAnotherAcceptedTaxonHandler_SELECT_ACC_TAXON, excludeTaxa, input.getTaxonNode(), input.getTaxonNode().getClassification().getUuid());
+ if (newParentNode == null){
+ return;
+ }
SecReferenceHandlingEnum secHandling = PreferencesUtil.getSecReferenceHandlingPreference();
UUID newSecUuid = null;
Reference synSecRef = synonym.getSec();
+
Reference parentSecRef = newParentNode.getTaxon() != null? newParentNode.getTaxon().getSec():null;
if ((synSecRef != parentSecRef && secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) )|| secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect)){
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import java.util.UUID;
-import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.taxeditor.model.CdmObjectTransfer;
import eu.etaxonomy.taxeditor.store.CdmStore;
private static DescriptionElementTransfer instance = new DescriptionElementTransfer();
private static final String TYPE_NAME = "descriptionElement-transfer-format"; //$NON-NLS-1$
private static final int TYPEID = registerType(TYPE_NAME);
-
+
public static synchronized DescriptionElementTransfer getInstance(){
return instance;
}
-
+
private DescriptionElementTransfer(){}
-
+
@Override
protected int[] getTypeIds() {
return new int[] { TYPEID };
@Override
public DescriptionElementBase loadElement(UUID uuid) {
- return CdmStore.getService(IDescriptionService.class).loadDescriptionElement(uuid, null);
+ return CdmStore.getService(IDescriptionElementService.class).load(uuid, null);
}
}
\ No newline at end of file
DescriptionElementBase descriptionElement = (DescriptionElementBase) object;
DescriptionBase<?> description = descriptionElement.getInDescription();
FeatureNodeContainerTree containerTree = featureNodeContainerCache.get(description);
- FeatureNodeContainer featureNodeContainer = containerTree.getFeatureNodeContainerForDescriptionElement(descriptionElement);
- if (featureNodeContainer == null){
- containerTree = new FeatureNodeContainerTree(description, provider.getFeatureTree(description));
- featureNodeContainerCache.put(description, containerTree);
- featureNodeContainer = containerTree.getFeatureNodeContainerForDescriptionElement(descriptionElement);
+ if (containerTree != null){
+ FeatureNodeContainer featureNodeContainer = containerTree.getFeatureNodeContainerForDescriptionElement(descriptionElement);
+ if (featureNodeContainer == null){
+ containerTree = new FeatureNodeContainerTree(description, provider.getFeatureTree(description));
+ featureNodeContainerCache.put(description, containerTree);
+ featureNodeContainer = containerTree.getFeatureNodeContainerForDescriptionElement(descriptionElement);
+ }
+ ((AbstractTreeViewer) viewer).expandToLevel(featureNodeContainer, 2);
+ }
+ if (object != null){
+ StructuredSelection selection = new StructuredSelection(object);
+ viewer.setSelection(selection, true);
}
- ((AbstractTreeViewer) viewer).expandToLevel(featureNodeContainer, 2);
- StructuredSelection selection = new StructuredSelection(object);
- viewer.setSelection(selection, true);
+
}
import eu.etaxonomy.cdm.api.service.DeleteResult;
import eu.etaxonomy.cdm.api.service.IDescriptionService;
import eu.etaxonomy.cdm.api.service.UpdateResult.Status;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
String label = menuItem.getLocalizedLabel();
IUndoContext undoContext = EditorUtil.getUndoContext();
+ CdmBase updateObject = null;
List<AbstractPostOperation> operations = new ArrayList();
AbstractPostOperation operation = null;
if(object instanceof TaxonDescription ){
operation = new DeleteTaxonDescriptionOperation(label, undoContext, (TaxonDescription) object, factualDataPart, cdmEntitySessionEnabled);
-
+ updateObject = ((TaxonDescription) object).getTaxon();
((TaxonDescription) object).getTaxon().removeDescription((TaxonDescription) object);
-
+
} else if(object instanceof TaxonNameDescription ){
operation = new DeleteTaxonNameDescriptionOperation(label, undoContext, (TaxonNameDescription) object, factualDataPart, cdmEntitySessionEnabled);
-
+ updateObject= ((TaxonNameDescription) object).getTaxonName();
((TaxonNameDescription) object).getTaxonName().removeDescription((TaxonNameDescription) object);
} else if(object instanceof SpecimenDescription){
operation = new DeleteSpecimenDescriptionOperation(label, undoContext, (SpecimenDescription) object, factualDataPart, cdmEntitySessionEnabled);
specimen = ((SpecimenDescription) object).getDescribedSpecimenOrObservation();
+ updateObject = specimen;
specimen.removeDescription((SpecimenDescription) object);
} else if(object instanceof DescriptionElementBase){
if (factualDataPart.getSelectionProvidingPart().getObject() instanceof BulkEditor){
((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).addOperation(operation);
((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).setDirty(true);
- if (object instanceof SpecimenDescription){
- ((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).changed(((SpecimenDescription)object).getDescribedSpecimenOrObservation());
- }else if (object instanceof TaxonDescription){
- ((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).changed(((TaxonDescription)object).getTaxon());
- }else if (object instanceof TaxonNameDescription){
- ((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).changed(((TaxonNameDescription)object).getTaxonName());
+ if (object instanceof DescriptionBase){
+ ((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).changed(updateObject);
}
}
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
-import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
-import eu.etaxonomy.cdm.model.metadata.EnabledComputedDescription;
import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
description = ((DescriptionElementBase) object).getInDescription();
DescriptionElementBase element ;
if (((DescriptionElementBase) object).getId() > 0){
- element = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(uuid, null);
+ element = CdmStore.getService(IDescriptionElementService.class).load(uuid, null);
}else{
element = ((DescriptionElementBase) object);
}
for (DescriptionElementBase de : ((FeatureNodeContainer) object).getDescriptionElements()) {
DescriptionElementBase element ;
if (de.getId() > 0){
- element = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(de.getUuid(), null);
+ element = CdmStore.getService(IDescriptionElementService.class).load(de.getUuid(), null);
}else{
element = (de);
}
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
-import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
description = ((DescriptionElementBase) object).getInDescription();
DescriptionElementBase element ;
if (((DescriptionElementBase) object).getId() > 0){
- element = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(uuid, null);
+ element = CdmStore.getService(IDescriptionElementService.class).load(uuid, null);
}else{
element = ((DescriptionElementBase) object);
}
for (DescriptionElementBase de : ((FeatureNodeContainer) object).getDescriptionElements()) {
DescriptionElementBase element ;
if (de.getId() > 0){
- element = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(de.getUuid(), null);
+ element = CdmStore.getService(IDescriptionElementService.class).load(de.getUuid(), null);
}else{
element = (de);
}
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;
+import eu.etaxonomy.cdm.api.service.IDescriptionService;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* <p>DeleteDescriptionElementOperation class.</p>
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
- description = element.getInDescription();
+ CdmStore.getService(IDescriptionElementService.class).delete(element.getUuid());
monitor.worked(20);
monitor.worked(40);
// Redraw editor if exists
- return postExecute(description);
+ return postExecute(element);
}
@Override
<feature\r
id="eu.etaxonomy.taxeditor.feature.platform"\r
label="Taxeditor Dependencies"\r
- version="5.28.1"\r
+ version="5.29.0"\r
os="linux,macosx,win32"\r
ws="cocoa,gtk,win32"\r
arch="x86,x86_64">\r
version="0.0.0"\r
unpack="false"/>\r
\r
- <plugin\r
- id="org.apache.commons.httpclient"\r
- download-size="0"\r
- install-size="0"\r
- version="0.0.0"\r
- unpack="false"/>\r
-\r
<plugin\r
id="org.hamcrest.core"\r
download-size="0"\r
version="0.0.0"\r
unpack="false"/>\r
\r
+ <plugin\r
+ id="org.apache.httpcomponents.httpclient"\r
+ download-size="0"\r
+ install-size="0"\r
+ version="0.0.0"\r
+ unpack="false"/>\r
+\r
</feature>\r
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature.platform</artifactId>
<feature\r
id="eu.etaxonomy.taxeditor.feature"\r
label="Taxonomic Editor"\r
- version="5.28.1"\r
+ version="5.29.0"\r
provider-name="EDIT"\r
plugin="eu.etaxonomy.taxeditor.application"\r
os="linux,macosx,win32"\r
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature</artifactId>
Bundle-ManifestVersion: 2
Bundle-Name: Help
Bundle-SymbolicName: eu.etaxonomy.taxeditor.help; singleton:=true
-Bundle-Version: 5.28.1
+Bundle-Version: 5.29.0
Bundle-Activator: eu.etaxonomy.taxeditor.help.Activator
Bundle-Vendor: EDIT
Require-Bundle: org.eclipse.ui,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: Local
Bundle-SymbolicName: eu.etaxonomy.taxeditor.local;singleton:=true
-Bundle-Version: 5.28.1
+Bundle-Version: 5.29.0
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.jface,
org.eclipse.ui.ide,
lib/c3p0-0.9.5.2.jar,
lib/h2-1.4.190.jar,
lib/mchange-commons-java-0.2.11.jar,
- lib/postgresql-42.2.18.jar,
- lib/mssql-jdbc-8.4.1.jre8.jar,
+ lib/postgresql-42.3.1.jar,
+ lib/mssql-jdbc-9.4.1.jre8.jar,
lib/jtds-1.3.1.jar,
- lib/mysql-connector-java-8.0.21.jar,
+ lib/mysql-connector-java-8.0.27.jar,
lib/jetty-webapp-9.4.26.v20200117.jar,
lib/jetty-xml-9.4.26.v20200117.jar,
lib/jetty-http-9.4.26.v20200117.jar,
lib/,\
lib/h2-1.4.190.jar,\
lib/mchange-commons-java-0.2.11.jar,\
- lib/postgresql-42.2.18.jar,\
- lib/mssql-jdbc-8.4.1.jre8.jar,\
+ lib/postgresql-42.3.1.jar,\
+ lib/mssql-jdbc-9.4.1.jre8.jar,\
lib/jtds-1.3.1.jar,\
- lib/mysql-connector-java-8.0.21.jar,\
+ lib/mysql-connector-java-8.0.27.jar,\
OSGI-INF/,\
OSGI-INF/l10n/bundle.properties,\
OSGI-INF/l10n/bundle_de.properties,\
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.local</artifactId>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.7</version>
+ <version>3.0.0-M5</version>
</plugin>
</plugins>
</pluginManagement>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
- <version>2.4</version>
+ <version>3.2.0</version>
<executions>
<execution>
<id>copy-dependency-war</id>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
- <!--<dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- <version>4.0.1</version>
- </dependency>-->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
Bundle-ManifestVersion: 2
Bundle-Name: eu.etaxonomy.taxeditor.molecular.lib
Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular.lib;singleton:=true
-Bundle-Version: 5.28.1
+Bundle-Version: 5.29.0
Bundle-ClassPath: .,
lib/owlapi-xmlutils-4.1.4.jar,
lib/commons-collections4-4.1.jar,
lib/core-1.9.2.jar,
lib/sequencing-1.9.2.jar,
- lib/commons-lang3-3.11.jar,
+ lib/commons-lang3-3.12.0.jar,
lib/commons-beanutils-1.9.4.jar,
lib/bioinfweb-commons-java-bio-2.0.0.jar,
lib/bioinfweb-commons-java-core-2.2.0.jar,
lib/commons-collections4-4.1.jar,\
lib/core-1.9.2.jar,\
lib/sequencing-1.9.2.jar,\
- lib/commons-lang3-3.11.jar,\
+ lib/commons-lang3-3.12.0.jar,\
lib/commons-beanutils-1.9.4.jar,\
lib/bioinfweb-commons-java-bio-2.0.0.jar,\
lib/bioinfweb-commons-java-core-2.2.0.jar,\
lib/info.bioinfweb.tic.core/bin/,\
lib/info.bioinfweb.tic.swt/bin/,\
lib/info.bioinfweb.libralign.biojava1/bin/,\
- lib/commons-lang3-3.11.jar,\
+ lib/commons-lang3-3.12.0.jar,\
lib/info.bioinfweb.jphyloio.core/bin/,\
lib/commons-beanutils-1.9.4.jar
lib/jphyloio-core-0-SNAPSHOT.jar,\
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<name>Molecular Library Dependencies Bundle</name>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
- <version>2.4</version>
+ <version>3.2.0</version>
<executions>
<execution>
<id>copy-dependencies</id>
<!-- </goals> -->
<!-- <configuration> -->
<!-- <classifier>sources</classifier> -->
- <!-- <includeArtifactIds>cdmlib-commons,cdmlib-model,cdmlib-persistence,cdmlib-remote,cdmlib-print,cdmlib-services,cdmlib-ext,cdmlib-io</includeArtifactIds> -->
+ <!-- <includeArtifactIds>cdmlib-commons,cdmlib-model,cdmlib-api,cdmlib-persistence,cdmlib-remote,cdmlib-print,cdmlib-services,cdmlib-ext,cdmlib-io</includeArtifactIds> -->
<!-- <outputDirectory>lib</outputDirectory> -->
<!-- <overWriteReleases>true</overWriteReleases> -->
<!-- <overWriteSnapshots>true</overWriteSnapshots> -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
- <version>1.7</version>
<executions>
<execution>
<id>remove-existing-jars</id>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
- <version>3.11</version>
+ <version>3.12.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
Bundle-ManifestVersion: 2
Bundle-Name: Molecular Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular;singleton:=true
-Bundle-Version: 5.28.1
+Bundle-Version: 5.29.0
Bundle-Activator: eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: Navigation Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.navigation;singleton:=true
-Bundle-Version: 5.28.1
+Bundle-Version: 5.29.0
Bundle-Activator: eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.taxeditor.navigation,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
-
package eu.etaxonomy.taxeditor.navigation;
import java.util.Collection;
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
/**
- *
* @author n.hoffmann
* @created 24.03.2009
- * @version 1.0
*/
public class NavigationUtil extends AbstractUtility{
e.getMessage(), TaxeditorStorePlugin.PLUGIN_ID,
e,
true);
-
}
}
- /**
- * <p>openEmpty</p>
- *
- * @param parentNodeUuid a {@link java.util.UUID} object.
- */
public static void openEmpty(UUID parentNodeUuid) {
EditorUtil.openEmptyE4(parentNodeUuid);
}
- /**
- * <p>getUndoContext</p>
- *
- * @return a {@link org.eclipse.core.commands.operations.IUndoContext} object.
- */
public static IUndoContext getUndoContext() {
// FIXME this has to be more specific. Every widget has to have its own undo context
// return IOperationHistory.GLOBAL_UNDO_CONTEXT;
return false;
}
- /**
- * <p>openSearch</p>
- *
- * @param selection a {@link java.lang.Object} object.
- */
public static void openSearch(Object selection) {
if(selection instanceof Taxon){
Taxon taxon = (Taxon) selection;
// }
}
- /**
- * <p>getPluginId</p>
- *
- * @return a {@link java.lang.String} object.
- */
public static String getPluginId(){
return TaxeditorNavigationPlugin.PLUGIN_ID;
}
-
-}
+}
\ No newline at end of file
EditorUtil.openEmptyE4(wizard.getParentTreeNode().getUuid());
}else if(wizard.getEntity() != null){
EditorUtil.openTaxonNodeE4(wizard.getEntity().getUuid(), modelService, partService, application);
- EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, new TaxonNodeDto(wizard.getEntity()));
}
}
}
Bundle-ManifestVersion: 2
Bundle-Name: Printpublisher Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.printpublisher;singleton:=true
-Bundle-Version: 5.28.1
+Bundle-Version: 5.29.0
Export-Package: eu.etaxonomy.cdm.print,
eu.etaxonomy.cdm.print.out,
eu.etaxonomy.cdm.print.out.odf,
eu.etaxonomy.taxeditor.editor,
eu.etaxonomy.taxeditor.store
Bundle-ClassPath: .,
- lib/cdmlib-print-5.28.0.jar,
- lib/cdmlib-remote-5.28.0.jar
+ lib/cdmlib-print-5.29.0.jar,
+ lib/cdmlib-remote-5.29.0.jar
Import-Package: org.apache.log4j,
org.eclipse.core.runtime,
org.eclipse.core.runtime.jobs,
bin.includes = META-INF/,\
.,\
plugin.xml,\
- lib/cdmlib-print-5.28.0.jar,\
- lib/cdmlib-remote-5.28.0.jar,\
+ lib/cdmlib-print-5.29.0.jar,\
+ lib/cdmlib-remote-5.29.0.jar,\
OSGI-INF/l10n/bundle.properties,\
OSGI-INF/l10n/bundle_de.properties,\
<parent>
<artifactId>taxeditor-parent</artifactId>
<groupId>eu.etaxonomy</groupId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
- <version>3.1.2</version>
+ <version>3.2.0</version>
<executions>
<execution>
<id>copy-dependencies</id>
</goals>
<configuration>
<excludeArtifactIds>
- cdmlib-commons,cdmlib-model,cdmlib-persistence,cdmlib-services,cdmlib-cache,cdmlib-ext,cdmlib-io,cdmlib-remote-webapp
+ cdmlib-commons,cdmlib-model,cdmlib-api,cdmlib-persistence,cdmlib-services,cdmlib-cache,cdmlib-ext,cdmlib-io,cdmlib-remote-webapp
</excludeArtifactIds>
<includeArtifactIds>
cdmlib-remote,cdmlib-print
<!-- maybe also dependencies are needed -->
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>fop</artifactId>
- <version>2.5</version>
+ <version>2.6</version>
</dependency>
</dependencies>
</project>
Bundle-ManifestVersion: 2
Bundle-Name: DataStore Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.store;singleton:=true
-Bundle-Version: 5.28.1
+Bundle-Version: 5.29.0
Bundle-Activator: eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin
Bundle-Vendor: EDIT
Bundle-Localization: OSGI-INF/l10n/bundle
org.eclipse.equinox.p2.metadata,
org.eclipse.equinox.p2.core,
org.eclipse.equinox.p2.engine,
- eu.etaxonomy.taxeditor.store
+ eu.etaxonomy.taxeditor.store,
+ org.eclipse.core.net
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Import-Package: javax.annotation;version="1.0.0";resolution:=optional,
id="eu.etaxonomy.taxeditor.preference.searchPreferences"
name="%page.name.56">
</page>
- <page
- category="eu.etaxonomy.taxeditor.preference.searchPreferences"
- class="eu.etaxonomy.taxeditor.preference.TaxonSearchPreferences"
- id="eu.etaxonomy.taxeditor.preference.taxonSearchPreferences"
- name="%page.name.57">
- </page>
- <page
+ <page
category="eu.etaxonomy.taxeditor.preference.languageEditorPreferencePage"
class="eu.etaxonomy.taxeditor.preference.menu.CommonNameLanguagePreferences"
id="eu.etaxonomy.taxeditor.preferences.commonnamelanguages"
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
*/
package eu.etaxonomy.taxeditor.editor;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
/**
* @author k.luther
* @since May 5, 2021
*/
public interface IBulkEditor {
+
+ public abstract void setFocus();
+ public abstract void setSelection(IStructuredSelection selection);
}
if(showIdInVoc && element instanceof TermDto && ((TermDto) termDto).getIdInVocabulary()!=null){
label = CdmUtils.concat(" : ", ((TermDto) termDto).getIdInVocabulary(), label);
}
+ if (label == null){
+ label = termDto.getTitleCache();
+ }
}
// TODO add fallback for label
if(label==null){
- label = element.toString();
+ label = element.toString();
}
return label;
}
public static final String ADD_TO_MERGE_ROWS = "ADD/TO/MERGE/ROWS";
public static final String UPDATE_LINK_WITH_TAXON = "UPDATE/LINK_WITH_TAXON";
+
+ public static final String REFRESH_MATRIX = "REFRESH/MATRIX";
}
import org.eclipse.e4.ui.di.UISynchronize;
import org.eclipse.e4.ui.workbench.IWorkbench;
import org.eclipse.equinox.p2.core.IProvisioningAgent;
+import org.eclipse.equinox.p2.engine.IProfile;
+import org.eclipse.equinox.p2.engine.IProfileRegistry;
import org.eclipse.equinox.p2.operations.ProvisioningJob;
import org.eclipse.equinox.p2.operations.ProvisioningSession;
import org.eclipse.equinox.p2.operations.UpdateOperation;
import org.eclipse.swt.widgets.Shell;
import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+
/**
* UpdateHandler invokes the check for updates UI
@Execute
public void execute(final IProvisioningAgent agent, final Shell shell, final UISynchronize sync,
final IWorkbench workbench) {
+
Job checkUpdateJob = new Job(Messages.UpdateHandler_CHECK_UPDATE_JOB) {
@Override
protected IStatus run(final IProgressMonitor monitor) {
+
return checkForUpdates(agent, shell, sync, monitor);
}
};
- checkUpdateJob.schedule();
+ checkUpdateJob.schedule();
checkUpdateJob.addJobChangeListener(new JobChangeAdapter() {
@Override
});
}
- private IStatus checkForUpdates(final IProvisioningAgent agent, final Shell shell, final UISynchronize sync,
+ private IStatus checkForUpdates(final IProvisioningAgent agent, final Shell shell, final UISynchronize sync,
IProgressMonitor monitor) {
// configure update operation
final ProvisioningSession session = new ProvisioningSession(agent);
- operation = new UpdateOperation(session);
- configureUpdate(operation);
-
- // check for updates, this causes I/O
- final IStatus status = operation.resolveModal(monitor);
-
- // failed to find updates (inform user and exit)
- if (status.getCode() == UpdateOperation.STATUS_NOTHING_TO_UPDATE) {
- showMessage(shell, sync);
- return Status.CANCEL_STATUS;
+ long startTime = System.currentTimeMillis();
+ logger.info("Try to get updates" + startTime);
+ try{
+ operation = new UpdateOperation(session);
+ IProfileRegistry registry = (IProfileRegistry) agent.getService(IProfileRegistry.SERVICE_NAME);
+
+ String profileID = operation.getProfileId();
+ IProfile profile = registry.getProfile(profileID);
+ if (profile == null){
+ logger.info("There is no profile for profileID: " + profileID);
+ }
+ configureUpdate(operation);
+ // check for updates, this causes I/O
+ final IStatus status = operation.resolveModal(monitor);
+ // failed to find updates (inform user and exit)
+ long actualTime = System.currentTimeMillis();
+ if (status.getCode() == UpdateOperation.STATUS_NOTHING_TO_UPDATE) {
+ showMessage(shell, sync);
+ logger.info("update resolved, but no updates available " + (actualTime - startTime) + "Status: " + status.toString());
+ return Status.CANCEL_STATUS;
+ }
+
+ logger.info("update resolved " + (actualTime - startTime) + "Status: " + status.toString());
+ }catch(Exception e){
+ logger.warn( e.getStackTrace().toString());
+ return Status.CANCEL_STATUS;
}
+
return Status.OK_STATUS;
}
// set location of artifact and metadata repo
operation.getProvisioningContext().setArtifactRepositories(new URI[] { uri });
operation.getProvisioningContext().setMetadataRepositories(new URI[] { uri });
+
//if local plugin is installed, then check for updates
//operation.getProvisioningContext().setExtraInstallableUnits(extraIUs);
return operation;
}
-
}
public static String getFeatureNodeContainerText(FeatureNodeContainer element) {
String result = null;
if(element.getFeatureNode() != null && element.getFeatureNode().getTerm() != null){
- result = element.getFeatureNode().getTerm().getLabel(CdmStore.getDefaultLanguage());
+
+ result = element.getFeatureNode().getTerm().getPreferredRepresentation(CdmStore.getDefaultLanguage()).getLabel();
+
} else{
return "No label set";
}
PresenceAbsenceTerm status = distribution.getStatus();
if (status != null) {
- text += ", " + status.getLabel();
+ text += ", " + status.getPreferredRepresentation(CdmStore.getDefaultLanguage()).getLabel();
}else{
text += ", NO STATUS";
}
if (language == null) {
name += " (No language provided)";
} else {
- name += " (" + language.getLabel(CdmStore.getDefaultLanguage()) + ")";
+
+ String languageLabel = language.getPreferredRepresentation(CdmStore.getDefaultLanguage()).getLabel();
+
+ name += " (" + languageLabel + ")";
}
return name;
}
public void addPages() {
// TODO disabling external service wizard page for now
// addPage(new ExternalReferenceServiceWizardPage(formFactory, getConversationHolder(), entity));
- referencePage = new ReferenceWizardPage(formFactory, getConversationHolder(), getEntity());
+ referencePage = new ReferenceWizardPage(formFactory, getConversationHolder(), getEntity(), false);
addPage(referencePage);
}
import eu.etaxonomy.cdm.api.service.IAgentService;
import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.section.agent.TeamWizardPage;
public class NewTeamWizard extends AbstractNewEntityWizard<Team> {
private boolean isNomenclaturalTeam = false;
+ private boolean isCollectorTeam = false;
public NewTeamWizard() {}
- public NewTeamWizard(boolean b) {
- setNomenclaturalTeam(b);
+ public NewTeamWizard(boolean isNomenclaturalTeam, boolean isCollectorTeam) {
+ setNomenclaturalTeam(isNomenclaturalTeam);
+ setCollectorTeam(isCollectorTeam);
}
/** {@inheritDoc} */
@Override
public void addPages() {
- addPage(new TeamWizardPage(formFactory, getConversationHolder(), getEntity(), isNomenclaturalTeam));
+ addPage(new TeamWizardPage(formFactory, getConversationHolder(), getEntity(), isNomenclaturalTeam, isCollectorTeam));
}
/* (non-Javadoc)
/** {@inheritDoc} */
@Override
protected void saveEntity() {
- CdmStore.getService(IAgentService.class).merge(getEntity(), true);
+ MergeResult result = CdmStore.getService(IAgentService.class).merge(getEntity(), true);
}
public void setNomenclaturalTeam(boolean isNomenclaturalTeam) {
this.isNomenclaturalTeam = isNomenclaturalTeam;
}
+
+ public boolean isCollectorTeam() {
+ return isCollectorTeam;
+ }
+
+ public void setCollectorTeam(boolean isCollectorTeam) {
+ this.isCollectorTeam = isCollectorTeam;
+ }
}
private TermTree defaultFeatureTreeForTextualDescription;
private TermTree defaultFeatureTreeForStructuredDescription;
+
+ private ListViewer viewerText;
+ private ListViewer viewerStructure;
/** {@inheritDoc} */
@Override
private void createTextTreeSelection(Composite parent){
final CLabel label = new CLabel(parent, SWT.NONE);
label.setText(Messages.DefaultFeatureTreePreferenecs_0);
+ viewerText = new ListViewer(parent, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
+
+ viewerText.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- final ListViewer viewer = new ListViewer(parent, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ viewerText.setContentProvider(new TermTreeContentProvider());
+ viewerText.setLabelProvider(new TermTreeLabelProvider());
- viewer.setContentProvider(new TermTreeContentProvider());
- viewer.setLabelProvider(new TermTreeLabelProvider());
-
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+ viewerText.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent arg0) {
setApply(true);
// viewer.setSelection(arg0.getSelection());
- IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+ IStructuredSelection selection = (IStructuredSelection) viewerText.getSelection();
defaultFeatureTreeForTextualDescription = (TermTree)selection.getFirstElement();
List<TermTree> input = CdmStore.getService(ITermTreeService.class).list(TermTree.class, null, null, null, null);
- viewer.setInput(input);
+ viewerText.setInput(input);
if(defaultFeatureTreeForTextualDescription != null){
IStructuredSelection selection = new StructuredSelection(defaultFeatureTreeForTextualDescription);
- viewer.setSelection(selection, true);
+ viewerText.setSelection(selection, true);
}
}
final CLabel label = new CLabel(parent, SWT.NONE);
label.setText(Messages.DefaultFeatureTreePreferenecs_1);
- final ListViewer viewer = new ListViewer(parent, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
+ viewerStructure = new ListViewer(parent, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ viewerStructure.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- viewer.setContentProvider(new TermTreeContentProvider());
- viewer.setLabelProvider(new TermTreeLabelProvider());
+ viewerStructure.setContentProvider(new TermTreeContentProvider());
+ viewerStructure.setLabelProvider(new TermTreeLabelProvider());
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+ viewerStructure.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent arg0) {
setApply(true);
// viewer.setSelection(arg0.getSelection());
- IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+ IStructuredSelection selection = (IStructuredSelection) viewerStructure.getSelection();
defaultFeatureTreeForStructuredDescription = (TermTree) selection.getFirstElement();
List<TermTree> input = CdmStore.getService(ITermTreeService.class).list(TermTree.class, null, null, null, null);
- viewer.setInput(input);
+ viewerStructure.setInput(input);
if(defaultFeatureTreeForStructuredDescription != null){
IStructuredSelection selection = new StructuredSelection(defaultFeatureTreeForStructuredDescription);
- viewer.setSelection(selection, true);
+ viewerStructure.setSelection(selection, true);
}
}
return super.performOk();
}
+ @Override
+ protected void performDefaults() {
+ defaultFeatureTreeForTextualDescription = null;
+ defaultFeatureTreeForTextualDescription = null;
+ viewerStructure.setSelection(null);
+ viewerText.setSelection(null);
+ setApply(true);
+ super.performDefaults();
+ }
+
}
+++ /dev/null
-/**
-* Copyright (C) 2019 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.preference;
-
-import org.eclipse.jface.preference.BooleanFieldEditor;
-
-import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
-import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
-
-/**
- * @author k.luther
- * @since 18.01.2019
- *
- */
-public class TaxonSearchPreferences extends FieldEditorPreferencePageE4{
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void createFieldEditors() {
- addField(new BooleanFieldEditor(IPreferenceKeys.SEARCH_OPEN_RESULTS_IN_SEPARATE_WINDOWS,
- Messages.TaxonSearchPreferences_0,
- getFieldEditorParent()));
- addField(new BooleanFieldEditor(PreferencesUtil.createPreferenceString(PreferencePredicate.SortTaxaByRankAndName.getKey()),
- Messages.SearchDialogPreferences_3,
- getFieldEditorParent()));
-
- }
-
-}
if (!checkNoneChecked()) {
Object[] checkedElements = aPage.getViewer().getCheckedElements();
Object[] grayedElements = aPage.getViewer().getGrayedElements();
- ArrayList checkedList = new ArrayList(Arrays.asList(checkedElements));
- ArrayList grayedList = new ArrayList(Arrays.asList(grayedElements));
+ ArrayList<Object> checkedList = new ArrayList<>(Arrays.asList(checkedElements));
+ ArrayList<Object> grayedList = new ArrayList<>(Arrays.asList(grayedElements));
checkedList = (ArrayList) CollectionUtils.subtract(checkedList, grayedList);
- ArrayList<UUID> listUIIDChecked = new ArrayList<UUID>();
- ArrayList<UUID> listUIIDGrayed = new ArrayList<UUID>();
+ ArrayList<UUID> listUIIDChecked = new ArrayList<>();
+ ArrayList<UUID> listUIIDGrayed = new ArrayList<>();
for (Object o : checkedList) {
if (o instanceof TermDto) {
listUIIDChecked.add(((TermDto) o).getUuid());
import org.eclipse.swt.dnd.ByteArrayTransfer;
import org.eclipse.swt.dnd.TransferData;
-import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
+import eu.etaxonomy.cdm.api.service.ITermNodeService;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.description.Character;
import eu.etaxonomy.cdm.model.term.DefinedTerm;
while(true){
String string = in.readUTF();
String[] split = string.split(",");
- IFeatureNodeService featureNodeService = CdmStore.getService(IFeatureNodeService.class);
- TermNode<DefinedTerm> structure = featureNodeService.load(UUID.fromString(split[0]));
- TermNode<DefinedTerm> property = featureNodeService.load(UUID.fromString(split[1]));
+ ITermNodeService termNodeService = CdmStore.getService(ITermNodeService.class);
+ TermNode<DefinedTerm> structure = termNodeService.load(UUID.fromString(split[0]));
+ TermNode<DefinedTerm> property = termNodeService.load(UUID.fromString(split[1]));
characters.add(createCharacter(structure, property));
}
}catch(EOFException e){
import org.eclipse.swt.dnd.ByteArrayTransfer;
import org.eclipse.swt.dnd.TransferData;
-import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
+import eu.etaxonomy.cdm.api.service.ITermNodeService;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.term.TermNode;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
}
public TermNode loadElement(UUID uuid){
- TermNode<Feature> node = CdmStore.getService(IFeatureNodeService.class).load(uuid);
+ TermNode<Feature> node = CdmStore.getService(ITermNodeService.class).load(uuid);
return node;
}
import org.eclipse.core.runtime.IStatus;
import eu.etaxonomy.cdm.api.service.DeleteResult;
-import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
+import eu.etaxonomy.cdm.api.service.ITermNodeService;
import eu.etaxonomy.cdm.api.service.config.TermNodeDeletionConfigurator;
import eu.etaxonomy.cdm.model.term.TermNode;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
/**
* @author pplitzner
* @since Apr 30, 2018
- *
*/
public class RemoveFeatureOperation extends AbstractPostOperation<TermNode>{
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
- DeleteResult result = CdmStore.getService(IFeatureNodeService.class).deleteFeatureNode(elementUuid, new TermNodeDeletionConfigurator());
+ DeleteResult result = CdmStore.getService(ITermNodeService.class).deleteNode(elementUuid, new TermNodeDeletionConfigurator());
return postExecute(null);
}
this.cdmBaseToBeFiltered = new HashSet<>();
objectsToBeFiltered.forEach(filter->this.cdmBaseToBeFiltered.add(filter.getUuid()));
}
- Cursor cursor = shell.getCursor();
- shell.setCursor(shell.getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
+ Cursor cursor = null;
+ if (shell != null){
+ cursor = shell.getCursor();
+ shell.setCursor(shell.getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
+ }
+
init();
- shell.setCursor(cursor);
+ if (shell != null){
+ shell.setCursor(cursor);
+ }
setListLabelProvider(createListLabelProvider());
}
protected void setPattern(T cdmObject) {
String pattern = getTitle(cdmObject);
getSearchField().setText(pattern);
+
}
@Override
protected static final String PERSON = "New Person";
protected static final String TEAM = "New Team";
- protected static boolean selectTeamMember;
+ protected boolean selectTeamMember;
/**
* select
@Override
protected String[] getNewWizardText() {
String[] result;
- if (AgentSelectionDialog.selectTeamMember){
+ if (selectTeamMember){
result = new String[1];
result[0] = PERSON;
}else{
*/
package eu.etaxonomy.taxeditor.ui.dialog.selection;
+import java.lang.reflect.Member;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.widgets.Shell;
import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.persistence.dto.TeamOrPersonUuidAndTitleCache;
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
+import eu.etaxonomy.taxeditor.newWizard.NewTeamWizard;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
* @since Jul 1, 2021
*/
public class CollectorSelectionDialog extends AgentSelectionDialog<AgentBase<?>> {
+ Team collectorTeam = null;
/**
* @param shell
protected CollectorSelectionDialog(Shell shell, String title, boolean multi, String settings,
AgentBase<?> agent, boolean selectTeamMember) {
super(shell, title, multi, settings, agent, selectTeamMember);
+ if (selectTeamMember && agent instanceof Team){
+ this.collectorTeam = (Team)agent;
+
+ }
}
public static <S extends AgentBase> S select(Shell shell,
S entity, boolean selectTeamMember) {
+
CollectorSelectionDialog dialog = new CollectorSelectionDialog(shell,
"Choose Collector", false, CollectorSelectionDialog.class.getCanonicalName(), entity, selectTeamMember);
return (S) getSelectionFromDialog(dialog);
protected ILabelProvider createListLabelProvider() {
return new CollectorLabelProvider();
}
+
+ @Override
+ protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
+ return new NewTeamWizard(false, true);
+ }
public class CollectorLabelProvider extends LabelProvider {
@Override
if (selectTeamMember){
clazz = Person.class;
}
-
+ Set<UUID> memberUuids = new HashSet<>();
+ if (collectorTeam != null && selectTeamMember){
+ List<Person> teamMembers = this.collectorTeam.getTeamMembers();
+
+ teamMembers.forEach(member -> memberUuids.add(member.getUuid()));
+ }
+
model = CdmStore.getService(IAgentService.class).getUuidAndTitleCacheWithCollectorTitleCache(clazz, limitOfInitialElements, pattern);
+ if (collectorTeam == null){
+ return;
+ }
+ //filter
+ Iterator<UuidAndTitleCache<AgentBase<?>>> modelIterator = model.iterator();
+ List<UuidAndTitleCache<AgentBase<?>>> tempModel = new ArrayList<>();
+ while(modelIterator.hasNext()){
+ UuidAndTitleCache<AgentBase<?>> person = modelIterator.next();
+ if (memberUuids.contains(person.getUuid())){
+ tempModel.add(person);
+ }
+ }
+ model.clear();
+ model.addAll(tempModel);
}
+ @Override
+ protected String getTitle(AgentBase<?> cdmObject) {
+ if(cdmObject == null){
+ return "";
+ }
+
+ if (cdmObject instanceof TeamOrPersonBase) {
+ return ((TeamOrPersonBase<?>) cdmObject).getCollectorTitleCache();
+ }
+ throw new IllegalArgumentException("Generic method only" +
+ " supports cdmObject of type TeamOrPersonBase." +
+ " Please implement specific method in subclass.");
+ }
}
@Override
protected AbstractNewEntityWizard<? extends TeamOrPersonBase<?>> getNewEntityWizard(String parameter) {
if(TEAM.equals(parameter)){
- return new NewTeamWizard(true);
+ return new NewTeamWizard(true, false);
}
else if(PERSON.equals(parameter)){
return new NewPersonWizard();
@Override
protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
- return new NewTeamWizard(true);
+ return new NewTeamWizard(true, false);
}
@Override
import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailElement;\r
import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailSection;\r
import eu.etaxonomy.taxeditor.ui.section.name.AuthorshipDetailElement;\r
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailElement;\r
import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeGeneralDetailElement;\r
-import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailElement;\r
+import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalSourceDetailElement;\r
import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailElement;\r
import eu.etaxonomy.taxeditor.ui.section.user.GroupsByUserDetailElement;\r
import eu.etaxonomy.taxeditor.ui.section.user.GroupsByUserDetailSection;\r
+import eu.etaxonomy.taxeditor.ui.selection.CollectorSelectionElement;\r
\r
/**\r
* @author n.hoffmann\r
return (T) TaxonNodeSelectionDialog.select(shell,\r
null, null, (TaxonNode) currentSelection, ((TaxonNode) currentSelection).getClassification().getUuid());\r
}\r
- if(clazz.equals(Reference.class) && parentElement != null && parentElement.getParentElement() instanceof NomenclaturalReferenceDetailElement){\r
+ if(clazz.equals(Reference.class) && parentElement != null && parentElement.getParentElement() instanceof NomenclaturalSourceDetailElement){\r
return (T) NomenclaturalReferenceSelectionDialog.select(shell,\r
- (Reference) currentSelection, ((NomenclaturalReferenceDetailElement)parentElement.getParentElement()).getEntity().getCombinationAuthorship());\r
+ (Reference) currentSelection, ((NomenclaturalSourceDetailElement)parentElement.getParentElement()).getEntity().getCombinationAuthorship());\r
}\r
if(clazz.equals(Reference.class) && parentElement instanceof CommonNameSourceElement && PreferencesUtil.getFilterCommonNameReferences()){\r
return (T) CommonNameReferenceSelectionDialog.select(shell,\r
if(clazz.equals(Team.class)){\r
return (T) TeamSelectionDialog.select(shell, (Team)currentSelection);\r
}\r
- if(clazz.equals(TeamOrPersonBase.class) && parentElement instanceof AuthorshipDetailElement){\r
+ if(clazz.equals(TeamOrPersonBase.class) && (parentElement instanceof AuthorshipDetailElement \r
+ || (parentElement instanceof ReferenceDetailElement && ((ReferenceDetailElement)parentElement).isNomenclaturalReference()))){\r
return (T) NomenclaturalAuthorSelectionDialog.select(shell,\r
(TeamOrPersonBase) currentSelection, false);\r
- }else if(clazz.equals(AgentBase.class) && parentElement instanceof FieldUnitFacadeGeneralDetailElement){\r
+ }else if(clazz.equals(AgentBase.class) && (parentElement instanceof FieldUnitFacadeGeneralDetailElement || parentElement instanceof DerivedUnitGeneralDetailElement)){\r
return (T) CollectorSelectionDialog.select(shell,\r
(TeamOrPersonBase) currentSelection, false);\r
+ }else if (clazz.equals(AgentBase.class) && parentElement instanceof CollectorSelectionElement){\r
+ return (T) CollectorSelectionDialog.select(shell,\r
+ (TeamOrPersonBase) ((CollectorSelectionElement)parentElement).getCollectorTeam(), true);\r
}else if(clazz.equals(TeamOrPersonBase.class)){\r
//TODO: add TeamOrPersonBaseSelectionDialog (see ticket #4545)\r
return (T) TeamOrPersonBaseSelectionDialog.select(shell,\r
@Override
protected void callService(String pattern) {
- model = (List)CdmStore.getService(IAgentService.class).getUuidAndTitleCache(Team.class, limitOfInitialElements, pattern);
- model.addAll((List)CdmStore.getService(IAgentService.class).getUuidAndTitleCache(Person.class,limitOfInitialElements, pattern));
+ model = (List)CdmStore.getService(IAgentService.class).getTeamOrPersonUuidAndTitleCache(null, limitOfInitialElements, pattern);
+// model = (List)CdmStore.getService(IAgentService.class).getUuidAndTitleCache(Team.class, limitOfInitialElements, pattern);
+// model.addAll((List)CdmStore.getService(IAgentService.class).getUuidAndTitleCache(Person.class,limitOfInitialElements, pattern));
}
@Override
import eu.etaxonomy.cdm.common.DOI;
import eu.etaxonomy.cdm.common.URI;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.agent.ORCID;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
import eu.etaxonomy.cdm.model.common.Annotation;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.Credit;
import eu.etaxonomy.cdm.model.term.TermTree;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
import eu.etaxonomy.cdm.persistence.dto.TermDto;
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
import eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement;
import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
import eu.etaxonomy.taxeditor.ui.dialog.CloneClassificationDetailElement;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CollectorSelectionDialog;
import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection.UnitType;
import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement;
import eu.etaxonomy.taxeditor.ui.openurl.IOpenUrlEnabled;
import eu.etaxonomy.taxeditor.ui.section.EmptyElement;
import eu.etaxonomy.taxeditor.ui.section.agent.InstitutionDetailElement;
import eu.etaxonomy.taxeditor.ui.section.agent.InstitutionDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.agent.NomenclaturalTeamMemberElement;
import eu.etaxonomy.taxeditor.ui.section.agent.PersonDetailElement;
import eu.etaxonomy.taxeditor.ui.section.agent.PersonDetailSection;
import eu.etaxonomy.taxeditor.ui.section.agent.TeamDetailElement;
import eu.etaxonomy.taxeditor.ui.section.feature.FeatureDistributionDetailElement;
import eu.etaxonomy.taxeditor.ui.section.feature.FeatureDistributionDetailSection;
import eu.etaxonomy.taxeditor.ui.section.feature.InapplicableIfCollectionElement;
+import eu.etaxonomy.taxeditor.ui.section.feature.InapplicableIfCollectionElementForDto;
import eu.etaxonomy.taxeditor.ui.section.feature.InapplicableIfEntityCollectionSection;
import eu.etaxonomy.taxeditor.ui.section.feature.InapplicableIfEntityCollectionSectionForNode;
import eu.etaxonomy.taxeditor.ui.section.feature.OnlyApplicableIfCollectionElement;
+import eu.etaxonomy.taxeditor.ui.section.feature.OnlyApplicableIfCollectionElementForDto;
import eu.etaxonomy.taxeditor.ui.section.feature.OnlyApplicableIfEntityCollectionSection;
import eu.etaxonomy.taxeditor.ui.section.feature.OnlyApplicableIfEntityCollectionSectionForNode;
import eu.etaxonomy.taxeditor.ui.section.feature.TermNodeDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.media.MediaSpecimenGeneralDetailSection;
import eu.etaxonomy.taxeditor.ui.section.reference.AdvancedNomenclaturalSourceElement;
import eu.etaxonomy.taxeditor.ui.section.reference.AdvancedSourceElement;
-import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalSourceDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalSourceDetailSection;
import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalSourceElement;
import eu.etaxonomy.taxeditor.ui.section.reference.OriginalSourceAdvancedSection;
import eu.etaxonomy.taxeditor.ui.section.reference.OriginalSourceElement;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermMediaSection;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermVocabularyDetailElement;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermVocabularyDetailSection;
+import eu.etaxonomy.taxeditor.ui.selection.CollectorSelectionElement;
import eu.etaxonomy.taxeditor.ui.selection.CommonNameReferenceSelectionElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElementWithAbbreviatedTitle;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElementWithIdInVocabulary;
-import eu.etaxonomy.taxeditor.ui.selection.NomenclaturalAuthorTeamSelectionElement;
import eu.etaxonomy.taxeditor.ui.selection.TaxonNodeSelectionElement;
import eu.etaxonomy.taxeditor.view.detail.CdmSectionPart;
return section;
}
- public NomenclaturalReferenceDetailSection createNomenclaturalReferenceDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
- NomenclaturalReferenceDetailSection section = new NomenclaturalReferenceDetailSection(this, conversation, parentElement, selectionProvider, style);
+ public NomenclaturalSourceDetailSection createNomenclaturalReferenceDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+ NomenclaturalSourceDetailSection section = new NomenclaturalSourceDetailSection(this, conversation, parentElement, selectionProvider, style);
addAndAdaptSection(parentElement, section);
return section;
}
return element;
}
- public TeamDetailElement createTeamDetailElement(ICdmFormElement parentElement, int style, boolean isNomenclatural){
- TeamDetailElement element = new TeamDetailElement(this, parentElement, style, isNomenclatural);
+ public TeamDetailElement createTeamDetailElement(ICdmFormElement parentElement, int style, boolean isNomenclatural, boolean isCollectorTeam){
+ TeamDetailElement element = new TeamDetailElement(this, parentElement, style, isNomenclatural, isCollectorTeam);
addAndAdaptElement(parentElement, element);
return element;
}
addAndAdaptElement(parentElement, element);
return element;
}
+ public ReferenceDetailElement createNomenclaturalReferenceDetailElement(ICdmFormElement parentElement, int style){
+ ReferenceDetailElement element = new ReferenceDetailElement(this, parentElement, true, style);
+ addAndAdaptElement(parentElement, element);
+ return element;
+ }
- public NomenclaturalReferenceDetailElement createNomenclaturalReferenceDetailElement(ICdmFormElement parentElement, int style){
- NomenclaturalReferenceDetailElement element = new NomenclaturalReferenceDetailElement(this, parentElement, style);
+ public NomenclaturalSourceDetailElement createNomenclaturalSourceDetailElement(ICdmFormElement parentElement, int style){
+ NomenclaturalSourceDetailElement element = new NomenclaturalSourceDetailElement(this, parentElement, style);
addAndAdaptElement(parentElement, element);
return element;
}
}
//--------EntityCollectionSection----------
- public TeamMemberSection createTeamMemberSection(ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural){
- TeamMemberSection section = new TeamMemberSection(this, conversation, parentElement, style, isNomenclatural);
+ public TeamMemberSection createTeamMemberSection(ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural, boolean isCollector){
+ TeamMemberSection section = new TeamMemberSection(this, conversation, parentElement, style, isNomenclatural, isCollector);
addAndAdaptSection(parentElement, section);
return section;
}
if (parentElement instanceof TeamMemberSection){
isNomenclatural = ((TeamMemberSection) parentElement).isNomenclaturalTeam();
}
- element = new TeamMemberElement(this, parentElement, (Person) entity, removeListener, style, isNomenclatural);
+ if (isNomenclatural){
+ element = new NomenclaturalTeamMemberElement(this, parentElement, (Person) entity, removeListener, style);
+ }else{
+ element = new TeamMemberElement(this, parentElement, (Person) entity, removeListener, style);
+ }
} else if (entity instanceof Credit) {
element = new CreditElement(this, parentElement, (Credit) entity, removeListener, style);
} else if (entity instanceof Extension) {
element = new InapplicableIfCollectionElement(this, parentElement, (FeatureState) entity, removeListener, backgroundColor, style);
} else if (entity instanceof FeatureState && parentElement instanceof OnlyApplicableIfEntityCollectionSectionForNode) {
element = new OnlyApplicableIfCollectionElement(this, parentElement, (FeatureState) entity, removeListener, backgroundColor, style);
- }
+ } else if (entity instanceof FeatureStateDto && parentElement instanceof InapplicableIfEntityCollectionSection) {
+ element = new InapplicableIfCollectionElementForDto(this, parentElement, (FeatureStateDto) entity, removeListener, backgroundColor, style);
+ } else if (entity instanceof FeatureStateDto && parentElement instanceof OnlyApplicableIfEntityCollectionSection) {
+ element = new OnlyApplicableIfCollectionElementForDto(this, parentElement, (FeatureStateDto) entity, removeListener, backgroundColor, style);
+ }
//check for parent section when entity is null
//this happens when AbstractUnboundEntityCollectionSection is used
parentElement.addElement(element);
return element;
}
+ public CollectorSelectionElement createCollectorSelectionElement(ICdmFormElement parentElement, String labelString, AgentBase selection, int mode,
+ int style) {
+ CollectorSelectionElement element = new CollectorSelectionElement(this, parentElement,
+ labelString, selection, mode, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
+ public CollectorSelectionElement createCollectorSelectionElement(ICdmFormElement parentElement, String labelString, AgentBase team, Person member, int mode,
+ int style) {
+ CollectorSelectionElement element = new CollectorSelectionElement(this, parentElement,
+ labelString, team, member, mode, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
public CommonNameReferenceSelectionElement createCommonNameReferenceSelectionElement(ICdmFormElement parentElement, String labelString, Reference selection, int mode,
int style) {
--- /dev/null
+package eu.etaxonomy.taxeditor.ui.section.agent;
+
+import org.eclipse.swt.events.SelectionListener;
+
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+public class NomenclaturalTeamMemberElement extends TeamMemberElement {
+
+ public NomenclaturalTeamMemberElement(CdmFormFactory cdmFormFactory, AbstractFormSection section, Person entity,
+ SelectionListener removeListener, int style) {
+ super(cdmFormFactory, section, entity, removeListener, style);
+
+ }
+
+ @Override
+ public void createControls(ICdmFormElement element, int style) {
+ selection_person = formFactory
+ .createSelectionElementWithAbbreviatedTitle(Person.class,getConversationHolder(),
+ this, "Person", null,
+ EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE,
+ style);
+ if (entity != null){
+ setEntity(entity);
+ }
+ }
+}
private TeamMemberSection section_teamMembers;
private boolean isNomenclaturalTeam;
-
+ private boolean isCollectorTeam;
+
/**
* Constructor for TeamDetailElement.
*/
public TeamDetailElement(CdmFormFactory cdmFormFactory,
- ICdmFormElement formElement, int style, boolean isNomenclatural) {
+ ICdmFormElement formElement, int style, boolean isNomenclatural, boolean isCollector) {
super(cdmFormFactory, formElement);
this.isNomenclaturalTeam = isNomenclatural;
+ this.isCollectorTeam = isCollector;
}
@Override
"Collector Title", entity.getCollectorTitleCache(), entity.isProtectedCollectorTitleCache(),
CacheRelevance.CACHE2, style);
hasAdditionalMembers = formFactory.createCheckbox(formElement, "Additional Members", entity.isHasMoreMembers(), style);
- section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(TeamMemberSection.class, entity.getClass().getCanonicalName(), true), isNomenclaturalTeam);
+ section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(TeamMemberSection.class, entity.getClass().getCanonicalName(), true), isNomenclaturalTeam, isCollectorTeam);
section_teamMembers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
//cache relevance
public class TeamDetailSection extends AbstractCdmDetailSection<Team>{
private boolean isNomenclaturalTeam;
+ private boolean isCollectorTeam;
+
+
/**
* <p>Constructor for TeamDetailSection.</p>
*/
@Override
protected AbstractCdmDetailElement<Team> createCdmDetailElement(AbstractCdmDetailSection<Team> parentElement, int style) {
- return formFactory.createTeamDetailElement(parentElement, style, isNomenclaturalTeam);
+ return formFactory.createTeamDetailElement(parentElement, style, isNomenclaturalTeam, isCollectorTeam);
}
public boolean isNomenclaturalTeam(){
public void setIsNomenclaturalTeam(boolean isNomenclaturalTeam){
this.isNomenclaturalTeam = isNomenclaturalTeam;
}
+
+ public boolean isCollectorTeam() {
+ return isCollectorTeam;
+ }
+
+ public void setCollectorTeam(boolean isCollectorTeam) {
+ this.isCollectorTeam = isCollectorTeam;
+ }
}
*/
public class TeamMemberElement extends AbstractEntityCollectionElement<Person> {
- private EntitySelectionElement<Person> selection_person;
+ protected EntitySelectionElement<Person> selection_person;
public TeamMemberElement(CdmFormFactory cdmFormFactory,
AbstractFormSection section, Person entity,
- SelectionListener removeListener, int style, boolean isNomenclatural) {
+ SelectionListener removeListener, int style) {
super(cdmFormFactory, section, entity, removeListener, null, style);
}
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CollectorSelectionDialog;
import eu.etaxonomy.taxeditor.ui.dialog.selection.NomenclaturalPersonAuthorSelectionDialog;
import eu.etaxonomy.taxeditor.ui.dialog.selection.PersonSelectionDialog;
import eu.etaxonomy.taxeditor.ui.element.CacheRelevance;
implements ICacheRelevantFormElement {
private boolean isNomenclaturalTeam = false;
+ private boolean isCollectorTeam = false;
private CacheRelevanceHelper cacheRelevanceHelper = new CacheRelevanceHelper();
* @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
* @param style a int.
*/
- public TeamMemberSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural) {
+ public TeamMemberSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural, boolean isCollectorTeam) {
super(cdmFormFactory, conversation, parentElement, null, style);
isNomenclaturalTeam = isNomenclatural;
+ this.isCollectorTeam = isCollectorTeam;
}
@Override
Person selection = null;
if (isNomenclaturalTeam){
selection = NomenclaturalPersonAuthorSelectionDialog.select(getShell(), null, true);
- }else{
+ }else if(isCollectorTeam){
+ selection = CollectorSelectionDialog.select(getShell(), null, true);
+ }else{
selection = PersonSelectionDialog.select(getShell(), null);
}
public class TeamWizardPage extends AbstractCdmEntityWizardPage<Team> {
private boolean isNomenclaturalTeam = false;
+ private boolean isCollectorTeam = false;
/**
* <p>
* a {@link eu.etaxonomy.cdm.model.agent.Team} object.
*/
public TeamWizardPage(CdmFormFactory formFactory,
- ConversationHolder conversation, Team entity, boolean isNomenclaturalTeam) {
+ ConversationHolder conversation, Team entity, boolean isNomenclaturalTeam, boolean isCollectorTeam) {
super(formFactory, conversation, entity);
setTitle("Team");
setIsNomenclaturalTeam(isNomenclaturalTeam);
+ setIsCollectorTeam(isCollectorTeam);
}
/** {@inheritDoc} */
@Override
public AbstractCdmDetailElement<Team> createElement(
ICdmFormElement rootElement) {
- TeamDetailElement teamElement = formFactory.createTeamDetailElement(rootElement, SWT.NULL, isNomenclaturalTeam);
+ TeamDetailElement teamElement = formFactory.createTeamDetailElement(rootElement, SWT.NULL, isNomenclaturalTeam, isCollectorTeam);
teamElement.setEntity(entity);
return teamElement;
}
public void setIsNomenclaturalTeam(boolean isNomenclaturalTeam){
this.isNomenclaturalTeam = isNomenclaturalTeam;
}
+
+ public boolean isCollectorTeam() {
+ return isCollectorTeam;
+ }
+
+ public void setIsCollectorTeam(boolean isCollectorTeam){
+ this.isCollectorTeam = isCollectorTeam;
+ }
}
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
-
package eu.etaxonomy.taxeditor.ui.section.description;
import org.eclipse.swt.SWT;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
import eu.etaxonomy.taxeditor.ui.section.common.ExternalLinksSection;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
/**
- *
* @author n.hoffmann
* @created Nov 16, 2009
- * @version 1.0
*/
public class DescriptionElementSourceElement extends
AbstractOriginalSourceElement<DescriptionElementSource> implements
cdmFormFactory.createSelectionArbitrator(this);
}
- /** {@inheritDoc} */
@Override
public void createControls(ICdmFormElement formElement, int style) {
super.createControls(formElement, style);
if (getEntity() != null){
setEntity(entity);
}
-
}
-
- /** {@inheritDoc} */
@Override
public void setEntity(DescriptionElementSource entity) {
super.setEntity(entity);
if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey())){
text_idNamespace.setText(entity.getIdNamespace());
}
-
+
selection_reference.setEntity(entity.getCitation());
text_referenceDetail.setText(entity.getCitationMicroReference());
text_originaleNameString.setText(entity.getOriginalNameString());
combo_origsourcetype.setSelection(entity.getType());
externalLinks.setEntity(entity);
}
-
}
- /** {@inheritDoc} */
@Override
- public void setSelected(boolean selected) {
-
- }
+ public void setSelected(boolean selected) {}
- /** {@inheritDoc} */
@Override
public void handleEvent(Object eventSource) {
if (eventSource == text_idInSource) {
else if(eventSource == combo_origsourcetype){
getEntity().setType(combo_origsourcetype.getSelection());
}
-
}
-
+
@Override
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
externalLinks.setEnabled(isEnabled);
-
}
-
-
-
-}
+}
\ No newline at end of file
--- /dev/null
+/**
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.UUID;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.description.FeatureState;
+import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.TermManager;
+import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+/**
+ * @author pplitzner
+ * @since Aug 16, 2019
+ *
+ */
+public abstract class AbstractApplicableElementForDto extends AbstractEntityCollectionElement<FeatureStateDto> {
+
+ protected TermComboElement<State> comboState;
+ protected EntitySelectionElement<Feature> selectFeature;
+
+
+ public AbstractApplicableElementForDto(CdmFormFactory formFactory, AbstractFormSection section, FeatureStateDto entity,
+ SelectionListener removeListener, Color backgroundColor, int style) {
+ super(formFactory, section, entity, removeListener, backgroundColor, style);
+
+ }
+
+ @Override
+ public void createControls(ICdmFormElement element, int style) {
+ selectFeature = formFactory.createSelectionElement(Feature.class, element, "Feature", null, EntitySelectionElement.DELETABLE, SWT.NONE);
+ comboState = formFactory.createDefinedTermComboElement(Collections.EMPTY_LIST, element, getComboLabel(), null, style);
+ setFeatureState();
+ }
+
+ private void setFeatureState() {
+ Feature feature = (Feature)CdmStore.getService(ITermService.class).load(entity.getFeature().getUuid());
+ selectFeature.setEntity(feature);
+ List<UUID> termList = new ArrayList<>();
+ termList.add(entity.getState().getUuid());
+ List<State> terms = CdmStore.getTermManager().getTerms(termList, TermType.State);
+ if (terms.size() == 1){
+ comboState.setSelection(terms.get(0));
+ }
+
+ }
+
+ protected abstract String getComboLabel();
+
+ @Override
+ public void setEntity(FeatureStateDto entity) {
+ this.entity = entity;
+ if (selectFeature != null){
+ setFeatureState();
+ }
+ }
+
+ @Override
+ public void handleEvent(Object eventSource) {
+ }
+
+ @Override
+ public void setEnabled(boolean enabled){
+ super.setEnabled(enabled);
+ this.comboState.setEnabled(false);
+ this.selectFeature.setEnabled(false);
+ }
+}
formElement, StoreUtil.getSectionStyle(OnlyApplicableIfEntityCollectionSection.class, entity.getTerm().getClass().getCanonicalName()));
sectionOnlyApplicableIf.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
sectionOnlyApplicableIf.setEntity(entity);
+
}
super.setEntity(entity);
characterDetails.setEntity(entity.getTerm());
setEnabled(TermBasePropertyTester.isModifiable(entity));
+
}
+
+
@Override
public void handleEvent(Object eventSource) {
private CharacterDtoDetailSection characterDetails;
private ICdmFormElement parentFormElement;
-//
-// protected RepresentationElement element_Representation;
-//
-// private TermComboElement<DefinedTerm> comboStructuralModifier;
-//
-// private CheckboxElement supportsQuantitativeData;
-//
-// private CheckboxElement supportsCategoricalData;
-//
-// private StateVocabularyCollectionSection sectionStateVocabularies;
-//
-// private MeasurementUnitCollectionSection sectionMeasurementUnits;
-//
-// private StatisticalMeasureCollectionSection sectionStatisticalMeasures;
-//
-// private RecommendedModifierVocabulariesCollectionSection sectionModifierVocabularies;
private InapplicableIfEntityCollectionSection sectionInapplicableIf;
private OnlyApplicableIfEntityCollectionSection sectionOnlyApplicableIf;
addElement(characterDetails);
addControl(characterDetails);
characterDetails.setEntity((CharacterDto)entity.getTerm());
-// element_Representation = formFactory.createTranslatableRepresentationElement(formElement, entity.getTerm().getPreferredRepresentation(CdmStore.getDefaultLanguage()),entity.getTerm(), 100, style, true);
-//
-// createText(formElement, "Structure", getStructureText(entity.getTerm()));
-// createText(formElement, "Property", getPropertyText(entity.getTerm()));
-//
-// comboStructuralModifier = formFactory.createDefinedTermComboElement(TermType.StructureModifier, formElement, "Structural Modifier", entity.getTerm().getStructureModifier(), style);
-//
-// supportsQuantitativeData = formFactory.createCheckbox(formElement, "Supports Quantitative Data", entity.getTerm().isSupportsQuantitativeData(), style);
-// supportsCategoricalData = formFactory.createCheckbox(formElement, "Supports Categorical Data", entity.getTerm().isSupportsCategoricalData(), style);
-//
-// if (supportsCategoricalData.getSelection()) {
-// sectionStateVocabularies = formFactory.createStateVocabulariesSection(getConversationHolder(),
-// parentFormElement, StoreUtil.getSectionStyle(StateVocabularyCollectionSection.class, entity.getClass().getCanonicalName(), true));
-// sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-// sectionStateVocabularies.setEntity(entity.getTerm());
-// }
-// if (supportsQuantitativeData.getSelection()) {
-// sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(),
-// parentFormElement, StoreUtil.getSectionStyle(MeasurementUnitCollectionSection.class, entity.getClass().getCanonicalName(), true));
-// sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-// sectionMeasurementUnits.setEntity(entity.getTerm());
-//
-// sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(getConversationHolder(),
-// parentFormElement, StoreUtil.getSectionStyle(StatisticalMeasureCollectionSection.class, entity.getClass().getCanonicalName(), true));
-// sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-// sectionStatisticalMeasures.setEntity(entity.getTerm());
-// }
-// if (supportsCategoricalData.getSelection() || supportsQuantitativeData.getSelection()) {
-// sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(
-// getConversationHolder(), parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierVocabulariesCollectionSection.class, entity.getClass().getCanonicalName(), true));
-// sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-// sectionModifierVocabularies.setEntity(entity.getTerm());
-// }
// applicability
sectionInapplicableIf = formFactory.createInapplicableIfEntityCollectionSection(getConversationHolder(),
import org.eclipse.jface.wizard.Wizard;
import eu.etaxonomy.cdm.model.description.FeatureState;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
FeatureState getFeatureState(){
return page.getFeatureState();
}
+
+ FeatureStateDto getFeatureStateDto(){
+ return page.getFeatureStateDto();
+ }
}
import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.model.term.TermNode;
import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
import eu.etaxonomy.taxeditor.model.ImageResources;
updateFeatureCombo();
}
+ FeatureStateDto getFeatureStateDto(){
+ return new FeatureStateDto(null, FeatureDto.fromFeature(comboFeature.getSelection()), TermDto.fromTerm(selectedState));
+ }
FeatureState getFeatureState(){
return FeatureState.NewInstance(comboFeature.getSelection(), selectedState);
}
-
private void updateFeatureCombo(){
List<Feature> features = new ArrayList<>();
UUID parentUuid = termNode.getParentUuid();
--- /dev/null
+/**
+* Copyright (C) 2015 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.cdm.model.description.FeatureState;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ *
+ */
+public class InapplicableIfCollectionElementForDto extends AbstractApplicableElementForDto {
+
+ public InapplicableIfCollectionElementForDto(CdmFormFactory formFactory, AbstractFormSection section, FeatureStateDto entity,
+ SelectionListener removeListener, Color backgroundColor, int style) {
+ super(formFactory, section, entity, removeListener, backgroundColor, style);
+
+ }
+
+ @Override
+ protected String getComboLabel() {
+ // TODO Auto-generated method stub
+ return "Inapplicable if";
+ }
+
+
+
+}
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.wizard.WizardDialog;
-
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.description.FeatureState;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDtoComparator;
import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
-import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
+
/**
* @author pplitzner
* @date 06.03.2018
*
*/
-public class InapplicableIfEntityCollectionSection extends AbstractEntityCollectionSection<TermNodeDto, FeatureState>{
+public class InapplicableIfEntityCollectionSection extends AbstractEntityCollectionSection<TermNodeDto, FeatureStateDto>{
public InapplicableIfEntityCollectionSection(CdmFormFactory formFactory, ConversationHolder conversation,
ICdmFormElement parentElement, int style) {
super(formFactory, conversation, parentElement, "Inapplicable If", style);
+
}
/**
* {@inheritDoc}
*/
@Override
- public Collection<FeatureState> getCollection(TermNodeDto entity) {
+ public Collection<FeatureStateDto> getCollection(TermNodeDto entity) {
return entity.getInapplicableIf();
}
* {@inheritDoc}
*/
@Override
- public Comparator<FeatureState> getComparator() {
- return new DefaultCdmBaseComparator<>();
+ public Comparator<FeatureStateDto> getComparator() {
+ return new FeatureStateDtoComparator();
}
* {@inheritDoc}
*/
@Override
- public FeatureState createNewElement() {
+ public FeatureStateDto createNewElement() {
FeatureStateWizard wizard = new FeatureStateWizard(getEntity(), formFactory);
WizardDialog dialog = new WizardDialog(getLayoutComposite().getShell(), wizard);
int status = dialog.open();
if(status == IStatus.OK) {
- return wizard.getFeatureState();
+ return wizard.getFeatureStateDto();
}
return null;
}
* {@inheritDoc}
*/
@Override
- public void addElement(FeatureState element) {
+ public void addElement(FeatureStateDto element) {
getEntity().getInapplicableIf().add(element);
}
* {@inheritDoc}
*/
@Override
- public FeatureState addExisting() {
+ public FeatureStateDto addExisting() {
return null;
}
* {@inheritDoc}
*/
@Override
- public void removeElement(FeatureState element) {
+ public void removeElement(FeatureStateDto element) {
getEntity().getInapplicableIf().remove(element);
}
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.description.FeatureState;
import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
--- /dev/null
+/**
+* Copyright (C) 2015 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.cdm.model.description.FeatureState;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ *
+ */
+public class OnlyApplicableIfCollectionElementForDto extends AbstractApplicableElementForDto {
+
+ public OnlyApplicableIfCollectionElementForDto(CdmFormFactory formFactory, AbstractFormSection section,
+ FeatureStateDto entity, SelectionListener removeListener, Color backgroundColor, int style) {
+ super(formFactory, section, entity, removeListener, backgroundColor, style);
+
+ }
+
+ @Override
+ protected String getComboLabel() {
+ return "Only applicable if";
+ }
+
+
+}
import org.eclipse.jface.wizard.WizardDialog;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.description.FeatureState;
+
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDtoComparator;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
-import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
+
/**
* @author pplitzner
* @date 06.03.2018
*
*/
-public class OnlyApplicableIfEntityCollectionSection extends AbstractEntityCollectionSection<TermNodeDto, FeatureState>{
+public class OnlyApplicableIfEntityCollectionSection extends AbstractEntityCollectionSection<TermNodeDto, FeatureStateDto>{
public OnlyApplicableIfEntityCollectionSection(CdmFormFactory formFactory, ConversationHolder conversation,
ICdmFormElement parentElement, int style) {
* {@inheritDoc}
*/
@Override
- public Collection<FeatureState> getCollection(TermNodeDto entity) {
+ public Collection<FeatureStateDto> getCollection(TermNodeDto entity) {
return entity.getOnlyApplicableIf();
}
* {@inheritDoc}
*/
@Override
- public Comparator<FeatureState> getComparator() {
- return new DefaultCdmBaseComparator<>();
+ public Comparator<FeatureStateDto> getComparator() {
+ return new FeatureStateDtoComparator();
+
}
/**
* {@inheritDoc}
*/
@Override
- public FeatureState createNewElement() {
+ public FeatureStateDto createNewElement() {
FeatureStateWizard wizard = new FeatureStateWizard(getEntity(), formFactory);
WizardDialog dialog = new WizardDialog(getLayoutComposite().getShell(), wizard);
int status = dialog.open();
if(status == IStatus.OK) {
- return wizard.getFeatureState();
+ return wizard.getFeatureStateDto();
}
return null;
}
* {@inheritDoc}
*/
@Override
- public void addElement(FeatureState element) {
+ public void addElement(FeatureStateDto element) {
getEntity().getOnlyApplicableIf().add(element);
}
* {@inheritDoc}
*/
@Override
- public FeatureState addExisting() {
+ public FeatureStateDto addExisting() {
return null;
}
* {@inheritDoc}
*/
@Override
- public void removeElement(FeatureState element) {
+ public void removeElement(FeatureStateDto element) {
getEntity().getOnlyApplicableIf().remove(element);
}
import eu.etaxonomy.cdm.api.service.IAgentService;
import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;
import eu.etaxonomy.cdm.api.service.IDescriptionService;
import eu.etaxonomy.cdm.api.service.INameService;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
targetText = CdmStore.getService(IDescriptionService.class).load(uuid).getTitleCache();
break;
case DESCRIPTIONELEMENTBASE:
- targetText = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(uuid, null).toString();
+ targetText = CdmStore.getService(IDescriptionElementService.class).load(uuid, null).toString();
break;
case TAXONBASE:
targetText = CdmStore.getService(ITaxonService.class).load(uuid).getTitleCache();
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.location.NamedArea;
import eu.etaxonomy.cdm.model.occurrence.Collection;
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.selection.CollectorSelectionElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
/**
private PointElement element_point;
private NumberWithLabelElement number_elevation;
private TimePeriodElement element_date;
- private EntitySelectionElement<AgentBase> selection_collector;
+ private CollectorSelectionElement selection_collector;
+ private CollectorSelectionElement selection_primary_collector;
private TextWithLabelElement text_collectingNumber;
private EntitySelectionElement<Collection> selection_collection;
private TextWithLabelElement text_accessionNumber;
element_date = formFactory.createTimePeriodElement(formElement, "Date",
entity.getGatheringPeriod(), style);
selection_collector = formFactory
- .createSelectionElement(AgentBase.class,//getConversationHolder(),
+ .createCollectorSelectionElement(
formElement, "Collector",
entity.getCollector(), EntitySelectionElement.ALL,
style);
+ selection_primary_collector = formFactory
+ .createCollectorSelectionElement(
+ formElement, "Primary collector",
+ entity.getCollector(), entity.getPrimaryCollector(), EntitySelectionElement.ALL,
+ style);
+ if (!(entity.getCollector() instanceof Team)){
+ selection_primary_collector.setEnabled(false);
+ }
text_collectingNumber = formFactory.createTextWithLabelElement(formElement,
"Collecting number", entity.getFieldNumber(), style);
}
getEntity().setGatheringPeriod(element_date.getTimePeriod());
} else if (eventSource == selection_collector) {
getEntity().setCollector(selection_collector.getSelection());
- } else if (eventSource == text_collectingNumber) {
+ getEntity().setCollector(selection_collector.getSelection());
+ if (getEntity().getCollector() instanceof Team){
+ selection_primary_collector.setCollectorTeam((Team)getEntity().getCollector());
+ }
+ selection_primary_collector.setEnabled(getEntity().getCollector() instanceof Team);
+ } else if (eventSource == selection_primary_collector) {
+ getEntity().setPrimaryCollector((Person)selection_primary_collector.getSelection());
+ }else if (eventSource == text_collectingNumber) {
getEntity().setFieldNumber(text_collectingNumber.getText());
}
else if (eventSource == selection_collection) {
*/
package eu.etaxonomy.taxeditor.ui.section.occurrence;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.location.NamedArea;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.selection.CollectorSelectionElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
/**
private PointElement element_point;
private NumberWithLabelElement number_elevation;
private TimePeriodElement element_date;
- private EntitySelectionElement<AgentBase> selection_collector;
+ private CollectorSelectionElement selection_collector;
+ private CollectorSelectionElement selection_primary_collector;
private TextWithLabelElement text_collectingNumber;
private GatheringEventUnitElement element_elevation;
private CheckboxElement checkIsPublish;
formElement, "Elevation : ", entity, MinMaxTextSection.UnitType.ELEVATION, style);
element_date = formFactory.createTimePeriodElement(formElement, "Date", entity.getGatheringPeriod(), style);
- selection_collector = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
- formElement, "Collector", entity.getCollector(), EntitySelectionElement.ALL, style);
+ selection_collector = formFactory.createCollectorSelectionElement(formElement, "Collector", entity.getCollector(), EntitySelectionElement.ALL, style);
+ selection_primary_collector = formFactory
+ .createCollectorSelectionElement(
+ formElement, "Primary collector",
+ entity.getCollector(), entity.getPrimaryCollector(), EntitySelectionElement.ALL,
+ style);
+ if (!(entity.getCollector() instanceof Team)){
+ selection_primary_collector.setEnabled(false);
+ }
text_collectingNumber = formFactory.createTextWithLabelElement(formElement, "Collecting number",
entity.getFieldNumber(), style);
checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.innerFieldUnit().isPublish(), style);
getEntity().setGatheringPeriod(element_date.getTimePeriod());
} else if (eventSource == selection_collector) {
getEntity().setCollector(selection_collector.getSelection());
+
+ if (getEntity().getCollector() instanceof Team){
+ selection_primary_collector.setCollectorTeam((Team)getEntity().getCollector());
+ }else{
+ selection_primary_collector.setEntity(null);
+ }
+ selection_primary_collector.setEnabled((getEntity().getCollector() instanceof Team));
+
+ } else if (eventSource == selection_primary_collector) {
+ getEntity().setPrimaryCollector((Person)selection_primary_collector.getSelection());
} else if (eventSource == text_collectingNumber) {
getEntity().setFieldNumber(text_collectingNumber.getText());
} else if (eventSource == combo_specorobstype) {
toggleableText_titleCache.setText(getEntity().getTitleCache());
}
+ protected void updateControlStates(){
+ if (getEntity() != null ){
+ enabled = enabled && CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), requiredCrud);
+ }else{
+ enabled = true;
+ }
+ Set<Object> except = new HashSet<>();
+ if (!selection_primary_collector.isEnabled() && enabled){
+ except.add(selection_primary_collector);
+ }
+ setEnabled(enabled, except);
+
+ }
+
}
\ No newline at end of file
* @author n.hoffmann
* @created Mar 12, 2010
*/
-public class NomenclaturalReferenceDetailElement extends
+public class NomenclaturalSourceDetailElement extends
AbstractCdmDetailElement<TaxonName> {
private OriginalSourceElement sourceElement;
* @param style
* a int.
*/
- public NomenclaturalReferenceDetailElement(CdmFormFactory cdmFormFactory,
+ public NomenclaturalSourceDetailElement(CdmFormFactory cdmFormFactory,
ICdmFormElement formElement, int style) {
super(cdmFormFactory, formElement);
}
* @author n.hoffmann
* @created Mar 12, 2010
*/
-public class NomenclaturalReferenceDetailSection extends
+public class NomenclaturalSourceDetailSection extends
AbstractCdmDetailSection<TaxonName> implements ITaxonBaseDetailSection{
private TaxonBase<?> taxonBase;
* @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
* @param style a int.
*/
- public NomenclaturalReferenceDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
+ public NomenclaturalSourceDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
}
@Override
protected AbstractCdmDetailElement<TaxonName> createCdmDetailElement(
AbstractCdmDetailSection<TaxonName> parentElement, int style) {
- return formFactory.createNomenclaturalReferenceDetailElement(parentElement, style);
+ return formFactory.createNomenclaturalSourceDetailElement(parentElement, style);
}
}
public class NomenclaturalSourceElement extends OriginalSourceElement<NomenclaturalSource> {
private EntitySelectionElementWithAbbreviatedTitle<Reference> selection_NomRef;
- protected String label = "Source";
- protected CdmBase cdmEntity;
-
protected EntitySelectionElement<TaxonName> select_nameUsedInSource;
- protected ExternalLinksSection externalLinks;
+
public NomenclaturalSourceElement(CdmFormFactory formFactory, ICdmFormElement formElement, CdmBase cdmEntity,
String label) {
public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElement<Reference>
implements IErrorIntolerableElement, IExceptionHandler {
- private ToggleableTextElement toggleableAbbrevCache;
+ boolean isNomenclaturalReference = false;
+
+
+
+ private ToggleableTextElement toggleableAbbrevCache;
private TextWithLabelElement text_edition;
private TextWithLabelElement text_editor;
ICdmFormElement formElement, int style) {
super(cdmFormFactory, formElement);
}
+
+ public ReferenceDetailElement(CdmFormFactory cdmFormFactory,
+ ICdmFormElement formElement, boolean isNomenclaturalReference, int style) {
+ this(cdmFormFactory, formElement, style);
+ this.isNomenclaturalReference = isNomenclaturalReference;
+
+ }
+ public boolean isNomenclaturalReference() {
+ return isNomenclaturalReference;
+ }
+
+ public void setNomenclaturalReference(boolean isNomenclaturalReference) {
+ this.isNomenclaturalReference = isNomenclaturalReference;
+ }
@Override
protected void createControls(ICdmFormElement formElement,
ReferenceType referenceType = entity.getType();
// author team
if(referenceType != null && !referenceType.equals(ReferenceType.Journal) && !referenceType.equals(ReferenceType.PrintSeries) ) {
- selection_authorTeam = formFactory
- .createSelectionElement(TeamOrPersonBase.class,
- formElement, "Author",
- entity.getAuthorship(),
- EntitySelectionElement.ALL, style);
+ if (isNomenclaturalReference){
+ selection_authorTeam = formFactory
+ .createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class,getConversationHolder(),
+ formElement, "Author",
+ entity.getAuthorship(),
+ EntitySelectionElement.ALL, style);
+ }else{
+ selection_authorTeam = formFactory
+ .createSelectionElement(TeamOrPersonBase.class,
+ formElement, "Author",
+ entity.getAuthorship(),
+ EntitySelectionElement.ALL, style);
+ }
}
if (referenceType != null) {
* @created Jun 1, 2010
*/
public class ReferenceWizardPage extends AbstractCdmEntityWizardPage<Reference> implements IExceptionHandler{
+ private boolean isNomenclaturalReference = false;
/**
* <p>Constructor for ReferenceBaseWizardPage.</p>
* @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
* @param entity a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
*/
- public ReferenceWizardPage(CdmFormFactory formFactory, ConversationHolder conversation, Reference entity) {
+ public ReferenceWizardPage(CdmFormFactory formFactory, ConversationHolder conversation, Reference entity, boolean isNomenclaturalReference) {
super(formFactory, conversation, entity);
setTitle("Reference");
+ this.isNomenclaturalReference = isNomenclaturalReference;
}
@Override
@Override
public AbstractCdmDetailElement<Reference> createElement(ICdmFormElement rootElement){
- ReferenceDetailElement referenceElement = formFactory.createReferenceDetailElement(rootElement, SWT.NULL);
+ ReferenceDetailElement referenceElement = formFactory.createNomenclaturalReferenceDetailElement(rootElement, SWT.NULL);
referenceElement.addExceptionHandler(this);
referenceElement.setEntity(entity);
referenceElement.setWarnForReferencingObjectsVisible(true);
--- /dev/null
+package eu.etaxonomy.taxeditor.ui.selection;
+
+import org.eclipse.swt.events.SelectionEvent;
+
+import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+
+public class CollectorSelectionElement extends EntitySelectionElement<AgentBase> {
+
+ Team collectorTeam;
+ /**
+ * @param formFactory
+ * @param conversation
+ * @param parentElement
+ * @param clazz
+ * @param labelString
+ * @param entity
+ * @param mode
+ * @param style
+ */
+ public CollectorSelectionElement(CdmFormFactory formFactory,// ConversationHolder conversation,
+ ICdmFormElement parentElement, String labelString, AgentBase entity, int mode, int style) {
+ super(formFactory, //conversation,
+ parentElement, AgentBase.class,
+ labelString, entity, mode, style);
+ }
+ public CollectorSelectionElement(CdmFormFactory formFactory,// ConversationHolder conversation,
+ ICdmFormElement parentElement, String labelString, AgentBase entity, Person primaryCollector, int mode, int style) {
+ super(formFactory, //conversation,
+ parentElement, AgentBase.class,
+ labelString, primaryCollector, mode, style);
+ if (entity instanceof Team){
+ collectorTeam = (Team)entity;
+ }
+ }
+
+ @Override
+ protected String getTitle() {
+ if (entity != null){
+ if (entity instanceof TeamOrPersonBase){
+ return ((TeamOrPersonBase)entity).getCollectorTitleCache();
+ }else{
+ return entity.getTitleCache();
+ }
+ }
+ return "";
+ }
+ public Team getCollectorTeam() {
+ return collectorTeam;
+ }
+ public void setCollectorTeam(Team collectorTeam) {
+ this.collectorTeam = collectorTeam;
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ if (e.getSource().equals(button_selection) ){
+ AgentBase selection = null;
+ if (this.collectorTeam != null){
+ selection = SelectionDialogFactory.getSelectionFromDialog(AgentBase.class, getShell(),
+ collectorTeam, this);
+ }else{
+ selection = SelectionDialogFactory.getSelectionFromDialog(AgentBase.class, getShell(),
+ getEntity(), getParentElement());
+ }
+ setSelectionInternal(selection);
+ if(!getLayoutComposite().isDisposed()){
+ StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
+ }
+ }
+ }
+}
IService<CdmBase> service = CdmStore.getService(entity);
rootElement = service.load(entity.getUuid());
}
- if (rootElement.isInstanceOf(Reference.class)) {
+ if (rootElement.isInstanceOf(Reference.class)&& selectionElement instanceof EntitySelectionElementWithAbbreviatedTitle<?>) {
addPage(new ReferenceWizardPage(formFactory,
selectionElement.getConversationHolder(),
- (HibernateProxyHelper.deproxy(rootElement, Reference.class))));
- } else if (rootElement.isInstanceOf(Team.class) && selectionElement instanceof EntitySelectionElementWithAbbreviatedTitle<?>) {
+ HibernateProxyHelper.deproxy(rootElement, Reference.class), true));
+ } else if (rootElement.isInstanceOf(Reference.class) ) {
+ addPage(new ReferenceWizardPage(formFactory,
+ selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Reference.class), false));
+ } else if (rootElement.isInstanceOf(Team.class) && (selectionElement instanceof EntitySelectionElementWithAbbreviatedTitle<?> )) {
+ addPage(new TeamWizardPage(formFactory,
+ selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), true, false));
+ } else if (rootElement.isInstanceOf(Team.class) && (selectionElement.getClass().equals(CollectorSelectionElement.class)) ){
addPage(new TeamWizardPage(formFactory,
- selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), true));
- } else if (rootElement.isInstanceOf(Team.class) && !(selectionElement instanceof EntitySelectionElementWithAbbreviatedTitle<?>)) {
+ selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), false, true));
+ } else if (rootElement.isInstanceOf(Team.class) && (selectionElement instanceof EntitySelectionElement<?>)) {
addPage(new TeamWizardPage(formFactory,
- selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), false));
+ selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), false, false));
} else if (rootElement.isInstanceOf(Person.class)) {
addPage(new PersonWizardPage(formFactory,
selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Person.class)));
+++ /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.ui.selection;
-
-import org.eclipse.swt.events.SelectionEvent;
-
-import eu.etaxonomy.cdm.model.agent.Team;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.NomenclaturalAuthorTeamSelectionDialog;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-
-/**
- * <p>
- * NomenclaturalAuthorTeamSelectionElement class.
- * </p>
- *
- * @author n.hoffmann
- * @created Jun 22, 2010
- * @version 1.0
- */
-public class NomenclaturalAuthorTeamSelectionElement extends
- EntitySelectionElement<Team> {
-
- public static final int DEFAULT = EDITABLE | SELECTABLE | DELETABLE;
-
- /**
- * <p>
- * Constructor for NomenclaturalAuthorTeamSelectionElement.
- * </p>
- *
- * @param formFactory
- * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
- * object.
- * @param conversation
- * a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
- * object.
- * @param parentElement
- * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
- * object.
- * @param labelString
- * a {@link java.lang.String} object.
- * @param entity
- * a {@link eu.etaxonomy.cdm.model.agent.Team} object.
- * @param style
- * a int.
- */
- public NomenclaturalAuthorTeamSelectionElement(CdmFormFactory formFactory,//ConversationHolder conversation,
- ICdmFormElement parentElement,
- String labelString, Team entity, int mode, int style) {
- super(formFactory,// conversation,
- parentElement, Team.class, labelString, entity,
- mode, style);
- }
-
- /** {@inheritDoc} */
- @Override
- protected String getTitle() {
- return (entity != null) ? entity.getNomenclaturalTitleCache() : "";
- }
-
- /** {@inheritDoc} */
- @Override
- public void widgetSelected(SelectionEvent e) {
- Team newSelection = NomenclaturalAuthorTeamSelectionDialog.select(
- getShell(), //getConversationHolder(),
- entity);
- setSelectionInternal(newSelection);
- }
-}
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.commands.ICommandService;
+import eu.etaxonomy.cdm.api.service.dto.DescriptionBaseDto;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.name.NomenclaturalSource;
+import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.persistence.dto.ReferencingObjectDto;
import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
uuidAndTitleCache = (UuidAndTitleCache<CdmBase>)o;
}else if (o instanceof TermNodeDto){
uuidAndTitleCache = new UuidAndTitleCache<>(DefinedTermBase.class, ((TermNodeDto)o).getTerm().getUuid(), null, ((TermNodeDto)o).getTerm().getTitleCache());
+ }else if (o instanceof DescriptionBaseDto){
+ if ( ((DescriptionBaseDto)o).getSpecimenDto() != null){
+ uuidAndTitleCache = new UuidAndTitleCache<>(SpecimenOrObservationBase.class, ((DescriptionBaseDto)o).getSpecimenDto().getUuid(), null, ((DescriptionBaseDto)o).getTitleCache());
+ }else if (((DescriptionBaseDto)o).getTaxonDto() != null){
+ uuidAndTitleCache = new UuidAndTitleCache<>(TaxonBase.class, ((DescriptionBaseDto)o).getTaxonDto().getUuid(), null, ((DescriptionBaseDto)o).getTitleCache());
+ }else {
+ uuidAndTitleCache = new UuidAndTitleCache<>(TaxonName.class, ((DescriptionBaseDto)o).getNameDto().getUuid(), null, ((DescriptionBaseDto)o).getTitleCache());
+ }
}else{
continue;
}
import eu.etaxonomy.taxeditor.ui.section.occurrence.GeoScopeDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalSourceDetailSection;
import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonDetailSection;
.setTaxonBase( ((TaxonRelationship)input).getFromTaxon());
return true;
}else if ((input instanceof TaxonRelationship)
- && (formSection instanceof NomenclaturalReferenceDetailSection)) {
- ((NomenclaturalReferenceDetailSection) formSection)
+ && (formSection instanceof NomenclaturalSourceDetailSection)) {
+ ((NomenclaturalSourceDetailSection) formSection)
.setTaxonBase( ((TaxonRelationship)input).getFromTaxon());
return true;
}else if ((input instanceof TaxonRelationship)
import javax.inject.Inject;
+import org.apache.lucene.search.BulkScorer;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.di.UIEventTopic;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeNode;
import org.eclipse.swt.SWT;
import org.springframework.security.core.GrantedAuthority;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.agent.Team;
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.Marker;
import eu.etaxonomy.cdm.model.description.CategoricalData;
import eu.etaxonomy.cdm.model.description.Character;
import eu.etaxonomy.cdm.model.permission.Group;
import eu.etaxonomy.cdm.model.permission.User;
import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.SecundumSource;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SingleReadPherogramCollectionDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.TissueSampleGeneralDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.media.MediaSpecimenGeneralDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalSourceDetailSection;
import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.SecundumSourceSection;
import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.DerivedUnitFacadeIdentifierSection;
import eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessagesSection;
input = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit) input);
}
super.setInput(input);
+
+
}
@Override
requiredCrud = EnumSet.of(CRUD.UPDATE);
}
boolean hasPermission = CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getInput()), requiredCrud);
+ TaxonBase<?> taxonBase = (TaxonBase<?>)getInput();
if (hasPermission){
// check for subtree permissions as well.
- TaxonBase<?> taxonBase = (TaxonBase<?>)getInput();
+
Taxon acceptedTaxon = null;
if (taxonBase instanceof Taxon){
acceptedTaxon = (Taxon)taxonBase;
addPart(taxonBaseDetailSection);
}
}
+ //TODO: test code for secundum source section
+// SecundumSourceSection sourceSection = formFactory.createSecundumDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(SecundumSourceSection.class, getInput().getClass().getCanonicalName(), true));
+// formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+// addPart(sourceSection);
+// if (taxonBase.getSecSource() == null){
+// SecundumSource source = SecundumSource.NewSecundumInstance(taxonBase);
+// taxonBase.setSecSource(source);
+// sourceSection.setEntity(taxonBase);
+// }else{
+// sourceSection.setEntity(taxonBase);
+// }
+//
+// if (config != null && !config.isSecEnabled()){
+// sourceSection.setEnabled(false);
+// }
NonViralNameDetailSection nonViralNameSection = formFactory
.createNonViralNameDetailSection(getConversationHolder(), parent, this, true,
StoreUtil.getSectionStyle(NonViralNameDetailSection.class, getInput().getClass().getCanonicalName(), true));
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
nonViralNameSection.setEnabled(detailsEnabled);
if (config == null || config.isNomenclaturalReferenceSectionActivated()){
- NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
- StoreUtil.getSectionStyle(NomenclaturalReferenceDetailSection.class, getInput().getClass().getCanonicalName(), true));
+ NomenclaturalSourceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
+ StoreUtil.getSectionStyle(NomenclaturalSourceDetailSection.class, getInput().getClass().getCanonicalName(), true));
referenceDetailSection.setEnabled(detailsEnabled);
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
addPart(referenceDetailSection);
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
- NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
- StoreUtil.getSectionStyle(NomenclaturalReferenceDetailSection.class, getInput().getClass().getCanonicalName(), true));
+ NomenclaturalSourceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
+ StoreUtil.getSectionStyle(NomenclaturalSourceDetailSection.class, getInput().getClass().getCanonicalName(), true));
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
- NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
- StoreUtil.getSectionStyle(NomenclaturalReferenceDetailSection.class, getInput().getClass().getCanonicalName(), true));
+ NomenclaturalSourceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
+ StoreUtil.getSectionStyle(NomenclaturalSourceDetailSection.class, getInput().getClass().getCanonicalName(), true));
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
addPart(referenceDetailSection);
Bundle-ManifestVersion: 2
Bundle-Name: eu.etaxonomy.taxeditor.test
Bundle-SymbolicName: eu.etaxonomy.taxeditor.test;singleton:=true
-Bundle-Version: 5.28.1
+Bundle-Version: 5.29.0
Bundle-ActivationPolicy: lazy
Bundle-Vendor: EDIT
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
lib/unitils-dbunit-3.4.2.jar,
lib/unitils-spring-3.4.2.jar,
lib/dbunit-2.4.9.jar,
- lib/junit-4.13.1.jar,
+ lib/junit-4.13.2.jar,
lib/h2-1.4.200.jar,
lib/c3p0-0.9.5.2.jar,
lib/commons-dbcp-1.4.jar,
src/test/resources/
bin.includes = META-INF/,\
.,\
- lib/junit-4.13.1.jar,\
+ lib/junit-4.13.2.jar,\
lib/byte-buddy-0.5.1.jar,\
lib/unitils-core-3.4.2.jar,\
lib/unitils-database-3.4.2.jar,\
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<artifactId>eu.etaxonomy.taxeditor.test</artifactId>
<!-- for packaging=eclipse-test-plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
- <version>2.4</version>
+ <version>3.2.0</version>
<executions>
<execution>
<id>copy-dependency-jars</id>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>4.13.1</version>
+ <version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
/**
* Class to test the HttpInvoker services exposed by the CDM Sever
- *
*/
public class HttpInvokerServicesTest extends BaseRemotingTest {
private static final Logger logger = Logger.getLogger(HttpInvokerServicesTest.class);
//getRemoteApplicationController().getDatabaseService();
String dbSchemaVersion = getRemoteApplicationController().getDatabaseService().getDbSchemaVersion();
logger.info("dbSchemaVersion is " + dbSchemaVersion);
-
-
} catch (CdmSourceException e) {
Assert.fail("pinging database service on active cdm server should not have thrown CdmSourceException");
}
getRemoteApplicationController().getPolytomousKeyService().list(PolytomousKey.class, null, null, null, null);
-
}
@Ignore
}
CdmApplicationState.setCurrentSecurityContext(context);
-
}
// should be kept at ignore and only used for manual testing
public void testDisableReadTimeout() throws InterruptedException {
testService.waitFor((long) 120000.0);
}
-
-
-
}
/**\r
- *\r
- */\r
+* Copyright (C) 2015 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
package eu.etaxonomy.taxeditor.newWizard;\r
\r
-import junit.framework.Assert;\r
-\r
-import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.eclipse.swtbot.swt.finder.waits.Conditions;\r
import org.eclipse.swtbot.swt.finder.widgets.SWTBotButton;\r
+import org.junit.Assert;\r
import org.junit.Ignore;\r
import org.junit.Test;\r
\r
\r
/**\r
* @author n.hoffmann\r
- *\r
*/\r
@Ignore\r
public class NewTaxonWizardTest extends AbstractEditorTest {\r
// bot.waitUntil(Conditions.waitForEditor(WithPartId.withPartId(MultiPageTaxonEditor.ID)));\r
// Assert.assertEquals(newTaxonName, bot.activeEditor().getTitle());\r
}\r
-\r
-\r
-\r
-\r
-}\r
+}
\ No newline at end of file
taxonNodes.add(taxonNode5);
ceis = new HashSet<>();
- ceis.add(new CdmEntityIdentifier(taxonNode3.getId(),TaxonNode.class));
- ceis.add(new CdmEntityIdentifier(taxonNode4.getId(),TaxonNode.class));
- ceis.add(new CdmEntityIdentifier(taxonNode5.getId(),TaxonNode.class));
+ ceis.add(CdmEntityIdentifier.NewInstance(taxonNode3));
+ ceis.add(CdmEntityIdentifier.NewInstance(taxonNode4));
+ ceis.add(CdmEntityIdentifier.NewInstance(taxonNode5));
UpdateResult result = new UpdateResult();
result.addUpdatedObject(taxonNode1);
taxonNodes.add(taxonNode5);
ceis = new HashSet<>();
- ceis.add(new CdmEntityIdentifier(taxonNode3.getId(),TaxonNode.class));
- ceis.add(new CdmEntityIdentifier(taxonNode4.getId(),TaxonNode.class));
- ceis.add(new CdmEntityIdentifier(taxonNode5.getId(),TaxonNode.class));
+ ceis.add(CdmEntityIdentifier.NewInstance(taxonNode3));
+ ceis.add(CdmEntityIdentifier.NewInstance(taxonNode4));
+ ceis.add(CdmEntityIdentifier.NewInstance(taxonNode5));
UpdateResult result = new UpdateResult();
result.addUpdatedObject(taxonNode1);
result.addUpdatedObject(taxonNode2);
result.addUpdatedCdmIds(ceis);
- result.addUpdatedCdmId(new CdmEntityIdentifier(46,TaxonNode.class));
+ result.addUpdatedCdmId(CdmEntityIdentifier.NewInstance(46, TaxonNode.class));
result.setStatus(Status.OK);
sessionOwner.setExpectedUpdatedObjects(taxonNodes);
@Test
public void testDataChange() throws ExecutionException {
TaxonNode taxonNode = ProxyUtils.deproxyIfInitialized(taxonNodeService.load(taxonNodeUuid1));
- CdmEntityIdentifier cei = new CdmEntityIdentifier(taxonNode.getId(), TaxonNode.class);
+ CdmEntityIdentifier cei = CdmEntityIdentifier.NewInstance(taxonNode);
taxonNodes = new HashSet<>();
taxonNodes.add(taxonNode);
/**\r
- * \r
- */\r
+* Copyright (C) 2015 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
package eu.etaxonomy.taxeditor.ui.selection;\r
\r
import org.junit.After;\r
import eu.etaxonomy.taxeditor.test.AbstractEditorTest;\r
\r
/**\r
- * This test will only test the selection element itself. The test may have to start other \r
- * dialogs open windows before to get at the selection element. Any errors on the way \r
+ * This test will only test the selection element itself. The test may have to start other\r
+ * dialogs open windows before to get at the selection element. Any errors on the way\r
* should be handled by different tests.\r
- * \r
+ *\r
* @author n.hoffmann\r
*\r
*/\r
public abstract class AbstractSelectionElementTest extends AbstractEditorTest{\r
\r
- \r
-\r
@After\r
public void tearDown() {\r
utils.cancel();\r
}\r
- \r
+\r
}\r
/**\r
- *\r
- */\r
+* Copyright (C) 2015 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
package eu.etaxonomy.taxeditor.ui.selection;\r
\r
import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
*/\r
@Ignore\r
public class ClassificationSelectionElementTest extends AbstractSelectionElementTest{\r
- @Override\r
+\r
+ @Override\r
public void setup() {\r
super.setup();\r
bot.menu("General").menu("New").menu("Taxon").click();\r
/**\r
- *\r
- */\r
+* Copyright (C) 2015 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
package eu.etaxonomy.taxeditor.ui.selection;\r
\r
-import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.eclipse.swtbot.swt.finder.waits.Conditions;\r
import org.junit.Ignore;\r
import org.junit.Test;\r
\r
*/\r
@Ignore\r
public class NameSelectionElementTest extends AbstractSelectionElementTest {\r
- @Override\r
+\r
+ @Override\r
public void setup() {\r
super.setup();\r
bot.menu("General").menu("New").menu("Taxon").click();\r
/**\r
- *\r
- */\r
+* Copyright (C) 2015 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
package eu.etaxonomy.taxeditor.ui.selection;\r
\r
import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
/**\r
- *\r
- */\r
+* Copyright (C) 2015 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
package eu.etaxonomy.taxeditor.ui.selection;\r
\r
import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+/**
+* Copyright (C) 2015 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
package eu.etaxonomy.taxeditor.util;
/**
* based on from http://code.google.com/p/java-tester/source/browse/trunk/src/main/java/org/jtester/unitils/database/H2DbSupport.java
*/
-
-
import java.util.Set;
import org.unitils.core.dbsupport.DbSupport;
public class H2DbSupport extends DbSupport {
/**
- * Creates support for HsqlDb databases.
+ * Creates support for H2 databases.
*/
public H2DbSupport() {
super("h2");
eu.etaxonomy.taxeditor.workbench.datasource,
eu.etaxonomy.taxeditor.workbench.part
Bundle-Name: Workbench Bundle
-Bundle-Version: 5.28.1
+Bundle-Version: 5.29.0
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.e4.ui.workbench,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?><product application="eu.etaxonomy.taxeditor.application.application" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" includeLaunchers="true" name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" useFeatures="true" version="5.28.1">
+<?pde version="3.5"?><product application="eu.etaxonomy.taxeditor.application.application" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" includeLaunchers="true" name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" useFeatures="true" version="5.29.0">
<aboutInfo>
<image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
<text>
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
-<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product.jre" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="5.1.0.SNAPSHOT" useFeatures="true" includeLaunchers="true">
+<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product.jre" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="5.29.0" useFeatures="true" includeLaunchers="true">
<aboutInfo>
<image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
</programArgsMac>
<programArgsSol>-vm jre/bin
</programArgsSol>
- <programArgsWin>-vm jre/bin
- </programArgsWin>
<vmArgs>-Xmx512M -XX:MaxPermSize=256M -Dorg.eclipse.update.reconcile=false -Declipse.p2.unsignedPolicy=allow
</vmArgs>
<vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
</launcher>
<vm>
- </vm>
+ </vm>
<plugins>
</plugins>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
- <version>1.0</version>
+ <version>2.0.2</version>
<!-- Problems with the wagon-maven-plugin have been encounterd
on Windows, it should work properly on linux though. -->
<executions>
<repository location="http://download.eclipse.org/releases/neon"/>\r
</location>\r
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">\r
-<unit id="org.eclipse.nebula.widgets.compositetable.feature.feature.group" version="1.0.0.202007241204"/>\r
+<unit id="org.eclipse.nebula.widgets.compositetable.feature.feature.group" version="1.0.0.202011020719"/>\r
<repository location="http://download.eclipse.org/nebula/releases/latest/"/>\r
</location>\r
</locations>\r
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<prerequisites>
- <maven>3.2.3</maven>
+ <maven>3.6.3</maven>
</prerequisites>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.28.1</version>
+ <version>5.29.0</version>
<name>EDIT Taxonomic Editor</name>
<description>The Taxonomic Editor for EDIT's platform for
cybertaxonomy
<properties>
<java.codelevel>1.8</java.codelevel>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <cdmlib.version>5.28.0</cdmlib.version>
+ <cdmlib.version>5.29.0</cdmlib.version>
<!-- TODO can we use project.version ????? -->
<!-- Increasing tycho above 0.22.0 will fail for the macosx build because
for higher version numbers tycho needs to be build against Eclipse Mars or
higher -->
- <tycho.version>1.0.0</tycho.version>
- <taxeditor.version>5.28.0</taxeditor.version>
+ <tycho.version>1.7.0</tycho.version>
+ <taxeditor.version>5.29.0</taxeditor.version>
<update.dir>snapshot</update.dir>
<log4j.version>1.2.17</log4j.version>
- <httpcomponents.version>4.5.12</httpcomponents.version>
+ <httpcomponents.version>4.5.13</httpcomponents.version>
<jetty-version>9.4.26.v20200117</jetty-version>
- <javadoc.opts>-Xdoclint:none</javadoc.opts>
+ <doclint>none</doclint>
+ <!-- see according comment in cdmlib for possible finetuning -->
</properties>
<modules>
<module>eu.etaxonomy.taxeditor.cdmlib</module>
<developer>
<!-- your SVN account id please! -->
<id>a.kohlbecker</id>
- <name>
- Andreas Kohlbecker
- </name>
+ <name>Andreas Kohlbecker</name>
<email>a.kohlbecker [at] bgbm.org</email>
- <organization>
- Botanical Garden Botanical Museum Berlin
- </organization>
- <organizationUrl>http://www.bgbm.org/BioDivInf/</organizationUrl>
+ <organization>Botanical Garden Botanical Museum Berlin</organization>
+ <organizationUrl>https://www.bgbm.org/en/biodiversity-informatics</organizationUrl>
<timezone>+1</timezone>
<roles>
<role>Architect</role>
<developer>
<!-- your SVN account id please! -->
<id>k.luther</id>
- <name>
- Katja Luther
- </name>
+ <name>Katja Luther</name>
<email>k.luther [at] bgbm.org</email>
- <organization>
- Botanical Garden Botanical Museum Berlin
- </organization>
- <organizationUrl>http://www.bgbm.org/BioDivInf/</organizationUrl>
+ <organization>Botanical Garden Botanical Museum Berlin</organization>
+ <organizationUrl>https://www.bgbm.org/en/biodiversity-informatics</organizationUrl>
<timezone>+1</timezone>
<roles>
<role>Java Developer</role>
<developer>
<!-- your SVN account id please! -->
<id>a.mueller</id>
- <name>
- Andreas Müller
- </name>
+ <name>Andreas Müller</name>
<email>a.mueller [at] bgbm.org</email>
- <organization>
- Botanical Garden Botanical Museum Berlin
- </organization>
- <organizationUrl>http://www.bgbm.org/BioDivInf/</organizationUrl>
+ <organization>Botanical Garden Botanical Museum Berlin</organization>
+ <organizationUrl>https://www.bgbm.org/en/biodiversity-informatics</organizationUrl>
<timezone>+1</timezone>
<roles>
<role>Architect</role>
</roles>
<url/>
</developer>
- <developer>
- <!-- your SVN account id please! -->
- <id>p.plitzner</id>
- <name>
- Patrick Plitzner
- </name>
- <email>p.plitzner [at] bgbm.org</email>
- <organization>
- Botanical Garden Botanical Museum Berlin
- </organization>
- <organizationUrl>http://www.bgbm.org/BioDivInf/</organizationUrl>
- <timezone>+1</timezone>
- <roles>
- <role>Java Developer</role>
- </roles>
- <url/>
- </developer>
</developers>
<issueManagement>
<system>Redmine</system>
</issueManagement>
<ciManagement>
<system>Jenkins</system>
- <url>http://int.e-taxonomy.eu/jenkins/view/EDIT%20Taxonomic%20Editor/
+ <url>https://int.e-taxonomy.eu/jenkins/view/EDIT%20Taxonomic%20Editor/
</url>
</ciManagement>
<!-- **** REPOSITORIES **** -->
<!-- the cdm internal repository -->
<repository>
<id>EditRepository</id>
- <url>http://cybertaxonomy.eu/mavenrepo/</url>
+ <url>https://cybertaxonomy.eu/mavenrepo/</url>
</repository>
<repository>
<id>eclipse-indigo</id>
<pluginRepository>
<!-- required for the plugin dependency cdmlib-db of the jetty-maven-plugin -->
<id>EditRepository</id>
- <url>http://cybertaxonomy.eu/mavenrepo/</url>
+ <url>https://cybertaxonomy.eu/mavenrepo/</url>
</pluginRepository>
</pluginRepositories>
<build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>3.6.1</version>
+ <version>3.9.0</version>
<configuration>
<source>${java.codelevel}</source>
<target>${java.codelevel}</target>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
- <version>1.0</version>
+ <version>2.0.2</version>
<configuration>
<url>scpexe://cybertaxonomy.eu</url>
<serverId>cybertaxonomy.eu</serverId>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.6</version>
+ <version>3.0.0-M5</version>
<configuration>
<includes>
<include>**/*Test.java</include>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
- <version>3.3</version>
+ <version>3.10.0</version>
<configuration>
<locales>en</locales>
<outputEncoding>UTF-8</outputEncoding>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
- <version>2.7</version>
+ <version>3.3.1</version>
<configuration>
<stylesheet>maven</stylesheet>
<quiet>true</quiet>
<detectLinks>true</detectLinks>
<failOnError>false</failOnError>
- <additionalparam>${javadoc.opts}</additionalparam>
+ <doclint>${doclint}</doclint>
</configuration>
<executions>
<execution>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
- <version>2.8</version>
+ <version>2.10</version>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
- <version>2.2.1</version>
+ <version>2.5.3</version>
<configuration>
<allowTimestampedSnapshots>true</allowTimestampedSnapshots>
<autoVersionSubmodules>false</autoVersionSubmodules>
</configuration>
</plugin>
<plugin>
- <groupId>external.atlassian.jgitflow</groupId>
+ <groupId>ch.dvbern.oss.maven.jgitflow</groupId>
<artifactId>jgitflow-maven-plugin</artifactId>
- <version>1.0-m6</version>
+ <version>1.0-m8</version>
<configuration>
<pushHotfixes>true</pushHotfixes>
<pushReleases>true</pushReleases>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
- <version>0.1.53</version>
+ <version>0.1.55</version>
</dependency>
</dependencies>
</plugin>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-scm</artifactId>
- <version>1.0-beta-6</version>
+ <version>3.5.1</version>
</extension>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
- <version>2.12</version>
+ <version>3.5.1</version>
</extension>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh-external</artifactId>
- <version>2.12</version>
+ <version>3.5.1</version>
</extension>
<extension>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-manager-plexus</artifactId>
- <version>1.0</version>
+ <version>1.12.2</version>
</extension>
<extension>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-svnexe</artifactId>
- <version>1.0</version>
+ <version>1.12.2</version>
</extension>
<!-- WebDAV plugin to upload snapshots -->
<extension>
<groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-webdav</artifactId>
- <version>1.0-beta-2</version>
+ <artifactId>wagon-webdav-jackrabbit</artifactId>
+ <version>3.5.1</version>
</extension>
</extensions>
<pluginManagement>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
- <version>1.7</version>
+ <version>3.0.0</version>
</plugin>
</plugins>
</pluginManagement>
<!-- you will want to start by publishing your classes' Javadocs -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
- <version>2.7</version>
+ <version>3.3.1</version>
<configuration>
<detectLinks>true</detectLinks>
- <additionalparam>${javadoc.opts}</additionalparam>
+ <doclint>${doclint}</doclint>
</configuration>
</plugin>
<plugin>
of your source code -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
- <version>2.2</version>
+ <version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
- <version>2.3</version>
+ <version>2.12.1</version>
<configuration>
<issueLinkTemplatePerSystem>
<default>%URL%/ticket/%ISSUE%</default>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
- <version>5.5.13.1</version>
+ <version>5.5.13.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpcomponents.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient-cache</artifactId>
+ <version>${httpcomponents.version}</version>
+ </dependency>
</dependencies>
</dependencyManagement>
</project>
#!/bin/bash
+#
+# TODO CDMLIB_ROOT is currently pinned to a
+# specific workspace setup and should be parametrized
+# or flexibilized an other way.
+#
CDMLIB_ROOT=~/workspaces/cdm/cdmlib
CDM_PROJETCS=("cdmlib-cache" "cdmlib-commons" "cdmlib-model" "cdmlib-ext" "cdmlib-io" "cdmlib-persistence" "cdmlib-services")
<faq id="ubuntu_gtk2_eclipse_rcp_crash">
<question>The Taxonomic Editor crashes or freezes in recent Ubuntu versions</question>
<answer>
- <p>In recent Ubuntu versions (13.04, 13.10) the Taxomomic Editor crashes frequently (KDE) or freezes for some time (GNOME). The crashes in KDE are due to a bug which affects all Eclipse indigo (3.7) RCP based applications. Even this bug is currently discussed in the affected developer communities: <a href="https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1241101">launchpad bug 1241101</a>, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=419729">eclipse bug 419729</a> the cause of this bug is still unclear.
+ <p>In recent Ubuntu versions (13.04, 13.10) the Taxonomic Editor crashes frequently (KDE) or freezes for some time (GNOME). The crashes in KDE are due to a bug which affects all Eclipse indigo (3.7) RCP based applications. Even this bug is currently discussed in the affected developer communities: <a href="https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1241101">launchpad bug 1241101</a>, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=419729">eclipse bug 419729</a> the cause of this bug is still unclear.
</p>
<p>In KDE the crash occurs when the oxygene_gtk is being used. Therefore switching to another GTK2 theme is known as a temporary solution. The GTK2 theme Raleigh has been sucessfully used as a replacement to the oxygen_gtk2. You can either configure it globally or set the environmanet variable GTK2_RC_FILES for the application to run.</p>
<p>