From: Cherian Mathew Date: Fri, 22 May 2015 08:54:21 +0000 (+0200) Subject: Merge branch 'move-to-luna' into remoting-4.0 X-Git-Tag: remoting-3.9.0~185 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/4b94c9cfe0df4ec8f83395b88d8420c5791a93b4 Merge branch 'move-to-luna' into remoting-4.0 Conflicts: eu.etaxonomy.taxeditor.cdmlib/.classpath eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF eu.etaxonomy.taxeditor.cdmlib/build.properties eu.etaxonomy.taxeditor.cdmlib/pom.xml eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientAgentService.java eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientDescriptionService.java eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientNameService.java eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteTaxonDescriptionOperation.java eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TreeNodeDropAdapterAssistant.java eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/MoveTaxonHandler.java eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/ChangeAcceptedTaxonToSynonymOperation.java eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/MatchStrategyConfigurator.java eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/ParseHandler.java eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStoreConnector.java eu.etaxonomy.taxeditor.test/.classpath eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF --- 4b94c9cfe0df4ec8f83395b88d8420c5791a93b4 diff --cc .gitattributes index dca319a50,31cdf5895..e9ce314b7 --- a/.gitattributes +++ b/.gitattributes @@@ -400,8 -374,8 +403,9 @@@ eu.etaxonomy.taxeditor.editor/p2.inf -t eu.etaxonomy.taxeditor.editor/plugin.xml -text eu.etaxonomy.taxeditor.editor/pom.xml -text eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/CdmDataTransfer.java -text +eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/CdmEntitySessionInput.java -text eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/ChooseFromMultipleTaxonNodesDialog.java -text + eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorCdmViewer.java -text eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorStateManager.java -text eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java -text eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/IDropTargetable.java -text @@@ -1376,8 -1358,10 +1390,9 @@@ eu.etaxonomy.taxeditor.store/src/main/j eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPostOperation.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPostTaxonOperation.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/IPostOperationEnabled.java -text -eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/MatchStrategyConfigurator.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/ParseHandler.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferences.java -text + eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmStorePropertyTester.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DefaultFeatureTreePreferenecs.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DescriptionPreferences.java -text @@@ -1440,13 -1427,14 +1458,15 @@@ eu.etaxonomy.taxeditor.store/src/main/j eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/bar/AuthenticatedUserBar.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/EnumComboElement.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java -text + eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/VocabularyComboElement.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DefaultLanguageDialog.java -text - eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteConfiguratorComposite.java -text - eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteConfiguratorDialog.java -text - eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteTaxonConfiguratorDialog.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/LoginDialog.java -text +eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/UriDialog.java -text + eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteConfiguratorComposite.java -text + eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteConfiguratorDialog.java -text + eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteSpecimenConfiguratorComposite.java -text + eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteTaxonConfiguratorComposite.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmEnumSelectionDialog.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AgentSelectionDialog.java -text diff --cc eu.etaxonomy.taxeditor.cdmlib/build.properties index a247e030c,d2c2e6952..1cad966b4 --- a/eu.etaxonomy.taxeditor.cdmlib/build.properties +++ b/eu.etaxonomy.taxeditor.cdmlib/build.properties @@@ -183,22 -192,24 +183,24 @@@ bin.includes = META-INF/, lib/poi-3.10-FINAL.jar,\ lib/poi-ooxml-3.10-FINAL.jar,\ lib/poi-ooxml-schemas-3.10-FINAL.jar,\ -- lib/xmlbeans-2.3.0.jar,\ - lib/cdmlib-commons-3.4.1-SNAPSHOT.jar,\ - lib/cdmlib-ext-3.4.1-SNAPSHOT.jar,\ - lib/cdmlib-io-3.4.1-SNAPSHOT.jar,\ - lib/cdmlib-model-3.4.1-SNAPSHOT.jar,\ - lib/cdmlib-persistence-3.4.1-SNAPSHOT.jar,\ - lib/cdmlib-print-3.4.1-SNAPSHOT.jar,\ - lib/cdmlib-remote-3.4.1-SNAPSHOT.jar,\ - lib/cdmlib-services-3.4.1-SNAPSHOT.jar,\ - lib/swagger-annotations-1.3.5.jar,\ - lib/unitils-core-3.4.2.jar,\ - lib/unitils-database-3.4.2.jar,\ - lib/unitils-dbmaintainer-3.4.2.jar,\ - lib/unitils-dbunit-3.4.2.jar,\ - lib/unitils-spring-3.4.2.jar,\ - lib/cdm-server-3.5.2-SNAPSHOT.jar ++ lib/xmlbeans-2.3.0.jar,\ + lib/cdmlib-commons-3.5.2-SNAPSHOT-sources.jar,\ + lib/cdmlib-commons-3.5.2-SNAPSHOT.jar,\ + lib/cdmlib-ext-3.5.2-SNAPSHOT-sources.jar,\ + lib/cdmlib-ext-3.5.2-SNAPSHOT.jar,\ + lib/cdmlib-io-3.5.2-SNAPSHOT-sources.jar,\ + lib/cdmlib-io-3.5.2-SNAPSHOT.jar,\ + lib/cdmlib-model-3.5.2-SNAPSHOT-sources.jar,\ + lib/cdmlib-model-3.5.2-SNAPSHOT.jar,\ + lib/cdmlib-persistence-3.5.2-SNAPSHOT-sources.jar,\ + lib/cdmlib-persistence-3.5.2-SNAPSHOT.jar,\ + lib/cdmlib-print-3.5.2-SNAPSHOT-sources.jar,\ + lib/cdmlib-print-3.5.2-SNAPSHOT.jar,\ + lib/cdmlib-remote-3.5.2-SNAPSHOT-sources.jar,\ + lib/cdmlib-remote-3.5.2-SNAPSHOT.jar,\ + lib/cdmlib-services-3.5.2-SNAPSHOT-sources.jar,\ + lib/cdmlib-services-3.5.2-SNAPSHOT.jar,\ - lib/swagger-annotations-1.3.5.jar ++ lib/swagger-annotations-1.3.5.jar jars.compile.order = . output.. = bin/ diff --cc eu.etaxonomy.taxeditor.cdmlib/pom.xml index a03430fd3,66aade0ae..d5534ed09 --- a/eu.etaxonomy.taxeditor.cdmlib/pom.xml +++ b/eu.etaxonomy.taxeditor.cdmlib/pom.xml @@@ -9,121 -8,90 +9,121 @@@ 4.0.0 eu.etaxonomy.taxeditor.cdmlib eclipse-plugin - CDM Library Dependencies Plugin - CDM Library and dependencies as a plugin + CDM Library Bundle + Cdm Library Plugin Taxonomic Editor + - - - org.apache.maven.plugins - maven-dependency-plugin - 2.4 - - - copy-dependencies - validate - - copy-dependencies - - - cdmlib-commons,cdmlib-model,cdmlib-persistence,cdmlib-remote,cdmlib-print,cdmlib-services,cdmlib-ext,cdmlib-io - lib - true - true - true - - - - copy-dependencies-sources - validate - - copy-dependencies - - - sources - cdmlib-commons,cdmlib-model,cdmlib-persistence,cdmlib-remote,cdmlib-print,cdmlib-services,cdmlib-ext,cdmlib-io - lib - true - true - true - false - - - + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.7 + + + + - ++ + org.apache.maven.plugins + maven-dependency-plugin + 2.4 + + + copy-dependencies + validate + + copy-dependencies + + + + cdmlib-remote-webapp + + + cdmlib-services,cdmlib-commons,cdmlib-persistence,cdmlib-ext,cdmlib-model,cdmlib-io,cdmlib-print,cdmlib-remote,cdm-server + + ${basedir}/lib + true + true + true + + + + copy-dependency-war + validate + + copy-dependencies + + + + cdmlib-remote-webapp + + + ${basedir}/src/main/resources/etc/jetty + + true + true + true + + - ++ - org.apache.maven.plugins - maven-antrun-plugin - 1.7 - - - remove-existing-jars - clean - - run - - - - Remove all cdmlib jars - - - - - - - - update-snapshot-jar-names - validate - - run - - - - Update cdmlib jars to SNAPSHOT when build with timestamp - - - - - - - - - - - - + org.apache.maven.plugins + maven-antrun-plugin + 1.7 + + + update-snapshot-jar-names + validate + + run + + + + Anonymizing war + + + + + + + + + Update cdmlib jars to SNAPSHOT when build with + timestamp + + + + + + + + + + + + + + + + + + + + + @@@ -279,337 -141,20 +279,337 @@@ cdmlib-ext ${cdmlib.version} - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + net.sf.ehcache + ehcache-core + 2.4.3 + + + org.hibernate + hibernate-core + 4.1.10.Final + + + org.hibernate.common + hibernate-commons-annotations + 4.0.1.Final + + + org.hibernate + hibernate-search-engine + 4.2.0.Final + + + org.hibernate.javax.persistence + hibernate-jpa-2.0-api + 1.0.1.Final + + + org.hibernate + hibernate-envers + 4.1.10.Final + + + org.hibernate + hibernate-entitymanager + 4.1.10.Final + + + dom4j + dom4j + 1.6 + + + org.jadira.usertype + usertype.jodatime + 2.0.1 + + + org.jadira.usertype + usertype.spi + 2.0.1 + + + + junit + junit + 4.11 + test + + + log4j + log4j + 1.2.17 + + + org.jdom + jdom + 1.1.3 + + + org.springframework + org.springframework.context + 3.2.2.RELEASE + + + org.springframework + org.springframework.context.support + 3.2.2.RELEASE + + + org.springframework + org.springframework.aspects + 3.2.2.RELEASE + + + org.springframework + org.springframework.test + 3.2.2.RELEASE + + + org.springframework + org.springframework.beans + 3.2.2.RELEASE + + + org.springframework + org.springframework.transaction + 3.2.2.RELEASE + + + org.springframework + org.springframework.web + 3.2.2.RELEASE + + + org.springframework + org.springframework.core + 3.2.2.RELEASE + + + org.springframework + org.springframework.aop + 3.2.2.RELEASE + + + org.springframework + org.springframework.expression + 3.2.2.RELEASE + + + org.springframework + org.springframework.orm + 3.2.2.RELEASE + + + org.springframework + org.springframework.jdbc + 3.2.2.RELEASE + + + org.springframework.security + spring-security-core + 3.1.3.RELEASE + + + org.springframework.security + spring-security-config + 3.1.3.RELEASE + + + org.springframework.security + spring-security-remoting + 3.1.3.RELEASE + + + org.jboss.logging + jboss-logging + 3.1.3.GA + + + org.hamcrest + hamcrest-core + 1.3 + + + com.mchange + c3p0 + 0.9.2 + + + org.jboss.spec.javax.transaction + jboss-transaction-api_1.1_spec + 1.0.0.Final + + org.aspectj aspectjrt - 1.7.1 - - - org.aspectj - aspectjweaver - 1.7.1 - - - + 1.7.1 + + + commons-logging + commons-logging + 1.1.1 + + + commons-lang + commons-lang + 2.6 + + + aopalliance + aopalliance + 1.0 + + + joda-time + joda-time + 2.1 + + + com.ibm.lsid + lsid-client + 1.1.2 + + + com.ibm.lsid + lsid-server + 1.1.2 + + + org.apache.lucene + lucene-core + 3.6.2 + + + org.slf4j + slf4j-api + 1.7.2 + + + org.javassist + javassist + 3.17.1-GA + + + au.com.bytecode + opencsv + 2.4 + + + + + + org.unitils + unitils-core + 3.4.2 + + + org.unitils + unitils-spring + 3.4.2 + + + org.unitils + unitils-database + 3.4.2 + + + commons-dbcp + commons-dbcp + 1.4 + + + commons-pool + commons-pool + 1.5.4 + + + org.unitils + unitils-dbmaintainer + 3.4.2 + + + com.h2database + h2 + 1.4.181 + + + org.unitils + unitils-dbunit + 3.4.2 + + + org.dbunit + dbunit + 2.4.9 + + + + + + wsdl4j + wsdl4j + 1.6.3 + + + javax.validation + validation-api + 1.1.0.Final + + - - ++ diff --cc eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml index e423b8bcf,e67e9b453..2556cbdc0 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml @@@ -1,47 -1,39 +1,47 @@@ - - - - - - - - - - - - - - ++ xmlns:tx="http://www.springframework.org/schema/tx" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd + http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> + + + + + + + + + + + + + + + + + + + + - ++ - + - + - + diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java index b9e334c45,b3cd23d0d..f86b14333 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java @@@ -9,49 -9,51 +9,16 @@@ package eu.etaxonomy.taxeditor.editor.name; ++import java.awt.Color; ++import java.awt.Composite; ++import java.awt.Menu; ++import java.awt.dnd.DropTarget; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; --import org.apache.commons.lang.StringUtils; --import org.eclipse.core.commands.operations.IUndoContext; --import org.eclipse.core.runtime.IProgressMonitor; --import org.eclipse.core.runtime.OperationCanceledException; --import org.eclipse.jface.action.MenuManager; --import org.eclipse.jface.viewers.ISelection; --import org.eclipse.jface.viewers.ISelectionProvider; --import org.eclipse.jface.viewers.StructuredSelection; --import org.eclipse.swt.dnd.DND; --import org.eclipse.swt.dnd.DropTarget; --import org.eclipse.swt.dnd.Transfer; --import org.eclipse.swt.graphics.Color; --import org.eclipse.swt.widgets.Composite; --import org.eclipse.swt.widgets.Menu; --import org.eclipse.ui.IEditorInput; --import org.eclipse.ui.IEditorSite; --import org.eclipse.ui.ISelectionListener; --import org.eclipse.ui.ISelectionService; --import org.eclipse.ui.IWorkbenchPart; --import org.eclipse.ui.IWorkbenchPartReference; --import org.eclipse.ui.PartInitException; --import org.eclipse.ui.PlatformUI; --import org.eclipse.ui.forms.ManagedForm; --import org.eclipse.ui.forms.widgets.FormToolkit; --import org.eclipse.ui.forms.widgets.ScrolledForm; --import org.eclipse.ui.forms.widgets.TableWrapLayout; --import org.eclipse.ui.part.EditorPart; -- --import eu.etaxonomy.cdm.api.conversation.ConversationHolder; --import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; -import eu.etaxonomy.cdm.api.service.ITaxonService; --import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; --import eu.etaxonomy.cdm.model.common.CdmBase; --import eu.etaxonomy.cdm.model.name.HomotypicalGroup; --import eu.etaxonomy.cdm.model.taxon.Taxon; --import eu.etaxonomy.cdm.model.taxon.TaxonBase; --import eu.etaxonomy.cdm.model.taxon.TaxonNode; --import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; import eu.etaxonomy.taxeditor.editor.CdmDataTransfer; -import eu.etaxonomy.taxeditor.editor.EditorUtil; import eu.etaxonomy.taxeditor.editor.IDropTargetable; import eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage; import eu.etaxonomy.taxeditor.editor.ISecuredEditor; @@@ -72,9 -74,8 +39,7 @@@ import eu.etaxonomy.taxeditor.model.IPa import eu.etaxonomy.taxeditor.model.TaxeditorPartService; import eu.etaxonomy.taxeditor.preference.Resources; import eu.etaxonomy.taxeditor.security.RequiredPermissions; - import eu.etaxonomy.taxeditor.session.ICdmEntitySession; - import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled; import eu.etaxonomy.taxeditor.store.CdmStore; -import eu.etaxonomy.taxeditor.store.StoreUtil; /** *

@@@ -236,7 -235,8 +201,9 @@@ public class TaxonNameEditor extends Ed *

*/ public void createOrUpdateNameComposites() { - // this.taxon = (Taxon)CdmStore.getService(ITaxonService.class).load(this.getTaxon().getUuid()); ++ + //this.taxon = (Taxon)CdmStore.getService(ITaxonService.class).load(this.getTaxon().getUuid()); + //this.taxon = HibernateProxyHelper.deproxy(this.taxon, Taxon.class); ContainerFactory.createOrUpdateAcceptedTaxonsHomotypicGroup(this); ContainerFactory.createOrUpdateHeterotypicSynonymyGroups(this); ContainerFactory.createOrUpdateMisapplicationsGroup(this); diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperation.java index c7660d5bc,fdef1cd35..b21efefce --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperation.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperation.java @@@ -78,10 -78,12 +78,12 @@@ public class DeleteSynonymOperation ext element.removeSynonym(synonym); } else { - - DeleteResult result = service.deleteSynonym(synonym, null); + + DeleteResult result = service.deleteSynonym(synonym.getUuid(), element.getUuid(), null); if (result.isError()){ - MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage()); + MessageDialog.openError(null, "Delete failed", result.toString()); + } else if (!result.getUpdatedObjects().isEmpty()){ + MessageDialog.openInformation(null, "Delete successfull", "The Synonym could be deleted, but there is an updated object: " + result.toString()); } } // taxon.removeSynonym(synonym); diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteTaxonOperation.java index b15e398e0,136dcf7f4..c86768ae6 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteTaxonOperation.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteTaxonOperation.java @@@ -19,8 -19,8 +19,9 @@@ import eu.etaxonomy.cdm.api.service.con import eu.etaxonomy.cdm.model.taxon.Classification; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonNode; + import eu.etaxonomy.taxeditor.model.MessagingUtils; import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; +import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled; import eu.etaxonomy.taxeditor.store.CdmStore; public class DeleteTaxonOperation extends DeleteTaxonBaseOperation{ @@@ -72,9 -65,11 +73,11 @@@ ITaxonService service = controller.getTaxonService(); - DeleteResult result = service.deleteTaxon(element, configurator, classification); + DeleteResult result = service.deleteTaxon(element.getUuid(), configurator, classification.getUuid()); if (result.isError()){ - MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage()); + MessageDialog.openError(null, "Delete failed", result.toString()); + } else if (!result.getUpdatedObjects().isEmpty()){ + MessagingUtils.informationDialog("Delete successfull", result.toString()); } monitor.worked(40); diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientDescriptionService.java index 3c38f7b8e,b418af0a2..9ea4d169e --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientDescriptionService.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientDescriptionService.java @@@ -15,52 -15,52 +15,7 @@@ import java.util.Map import java.util.Set; import java.util.UUID; --import org.hibernate.LockOptions; --import org.hibernate.Session; --import org.hibernate.criterion.Criterion; --import org.hibernate.envers.query.criteria.AuditCriterion; -- --import eu.etaxonomy.cdm.api.service.DeleteResult; --import eu.etaxonomy.cdm.api.service.DistributionTree; --import eu.etaxonomy.cdm.api.service.IDescriptionService; - import eu.etaxonomy.cdm.api.service.UpdateResult; --import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase; --import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator; --import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO; --import eu.etaxonomy.cdm.api.service.pager.Pager; --import eu.etaxonomy.cdm.common.monitor.IProgressMonitor; --import eu.etaxonomy.cdm.model.common.Annotation; --import eu.etaxonomy.cdm.model.common.DefinedTerm; --import eu.etaxonomy.cdm.model.common.ISourceable; --import eu.etaxonomy.cdm.model.common.IdentifiableSource; --import eu.etaxonomy.cdm.model.common.LSID; --import eu.etaxonomy.cdm.model.common.Language; --import eu.etaxonomy.cdm.model.common.Marker; --import eu.etaxonomy.cdm.model.common.MarkerType; --import eu.etaxonomy.cdm.model.common.TermVocabulary; --import eu.etaxonomy.cdm.model.common.UuidAndTitleCache; --import eu.etaxonomy.cdm.model.description.DescriptionBase; --import eu.etaxonomy.cdm.model.description.DescriptionElementBase; --import eu.etaxonomy.cdm.model.description.Feature; --import eu.etaxonomy.cdm.model.description.FeatureTree; --import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm; --import eu.etaxonomy.cdm.model.description.TaxonDescription; --import eu.etaxonomy.cdm.model.description.TaxonNameDescription; --import eu.etaxonomy.cdm.model.location.NamedArea; --import eu.etaxonomy.cdm.model.location.NamedAreaLevel; --import eu.etaxonomy.cdm.model.media.Media; --import eu.etaxonomy.cdm.model.media.Rights; --import eu.etaxonomy.cdm.model.name.TaxonNameBase; --import eu.etaxonomy.cdm.model.taxon.Taxon; --import eu.etaxonomy.cdm.model.view.AuditEvent; --import eu.etaxonomy.cdm.model.view.AuditEventRecord; --import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort; -import eu.etaxonomy.cdm.persistence.dto.TermDto; --import eu.etaxonomy.cdm.persistence.query.Grouping; --import eu.etaxonomy.cdm.persistence.query.MatchMode; --import eu.etaxonomy.cdm.persistence.query.OrderHint; --import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy; --import eu.etaxonomy.cdm.strategy.match.IMatchStrategy; --import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy; ++import javax.print.attribute.standard.Media; /** * @author pplitzner @@@ -1119,45 -1111,11 +1066,45 @@@ public class TransientDescriptionServic return defaultService.deleteDescription(description); } + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.IDescriptionService#moveTaxonDescriptions(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.Taxon) + */ + @Override + public UpdateResult moveTaxonDescriptions(Taxon sourceTaxon, Taxon targetTaxon) { + return defaultService.moveTaxonDescriptions(sourceTaxon, targetTaxon); + + } + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.IDescriptionService#moveTaxonDescriptions(java.util.UUID, java.util.UUID) + */ + @Override + public UpdateResult moveTaxonDescriptions(UUID sourceTaxonUuid, UUID targetTaxonUuid) { + return defaultService.moveTaxonDescriptions(sourceTaxonUuid, targetTaxonUuid); + + } + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.IDescriptionService#deleteDescriptionElement(java.util.UUID) + */ + @Override + public UUID deleteDescriptionElement(UUID descriptionElementUuid) { + return defaultService.deleteDescriptionElement(descriptionElementUuid); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.IDescriptionService#deleteDescription(java.util.UUID) + */ + @Override + public DeleteResult deleteDescription(UUID descriptionUuid) { + return defaultService.deleteDescription(descriptionUuid); + } + - /* (non-Javadoc) - * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID) - */ - @Override - public DeleteResult delete(UUID uuid) { - return defaultService.delete(uuid); - } + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.IDescriptionService#pageNamedAreasInUse(boolean, java.lang.Integer, java.lang.Integer) + */ + @Override + public Pager pageNamedAreasInUse(boolean includeAllParents, Integer pageSize, Integer pageNumber) { + return defaultService.pageNamedAreasInUse(includeAllParents, pageSize, pageNumber); + } } diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientNameService.java index bc36402c4,12d839156..ee0368a35 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientNameService.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientNameService.java @@@ -1154,21 -1157,17 +1155,22 @@@ public class TransientNameService imple return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths); } - /* (non-Javadoc) - * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID) - */ - @Override - public DeleteResult delete(UUID uuid) { - return defaultService.delete(uuid); - } - + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.INameService#setAsGroupsBasionym(java.util.UUID) + */ + @Override + public UpdateResult setAsGroupsBasionym(UUID nameUuid) { + return defaultService.delete(nameUuid); + } + + @Override + public List> getNameRecords() { - ++ + return defaultService.getNameRecords(); + } - - + - + + } diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java index 59ce09121,2509f7632..601d0313e --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java @@@ -1007,12 -1008,52 +1008,53 @@@ public class TransientOccurenceService return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths); } - /* (non-Javadoc) - * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID) - */ - @Override - public DeleteResult delete(UUID uuid) { - return defaultService.delete(uuid); - } + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCharacterDataForSpecimen(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase) + */ + @Override + public Collection getCharacterDataForSpecimen(SpecimenOrObservationBase arg0) { + return defaultService.getCharacterDataForSpecimen(arg0); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCharacterDataForSpecimen(java.util.UUID) + */ + @Override + public Collection getCharacterDataForSpecimen(UUID arg0) { + return getCharacterDataForSpecimen(arg0); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getMostSignificantIdentifier(eu.etaxonomy.cdm.model.occurrence.DerivedUnit) + */ + @Override + public String getMostSignificantIdentifier(DerivedUnit derivedUnit) { + return defaultService.getMostSignificantIdentifier(derivedUnit); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#countOccurrences(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator) + */ + @Override + public int countOccurrences(IIdentifiableEntityServiceConfigurator config) { + return defaultService.countOccurrences(config); + } + + /** + * {@inheritDoc} + */ + @Override + public List getAllChildDerivatives(SpecimenOrObservationBase specimen) { + return defaultService.getAllChildDerivatives(specimen); + } + + /** + * {@inheritDoc} + */ + @Override + public List> getAllHierarchyDerivatives(SpecimenOrObservationBase specimen) { + return defaultService.getAllHierarchyDerivatives(specimen); + } + + } diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java index 2a7a3d69e,bd3bd7114..a4ce21b0a --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java @@@ -1419,39 -1418,24 +1419,41 @@@ public class TransientTaxonService impl return defaultService.findByIdentifier(clazz, identifier, identifierType, subtreeFilter, matchmode, includeEntity, pageSize, pageNumber, propertyPaths); } - + - + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonym(java.util.UUID, java.util.UUID, eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator) + */ + @Override + public DeleteResult deleteSynonym(UUID synonymUuid, UUID taxonUuid, SynonymDeletionConfigurator config) { + return defaultService.deleteSynonym(synonymUuid, taxonUuid, config); + } - /* (non-Javadoc) - * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID) - */ - @Override - public DeleteResult delete(UUID uuid) { - return defaultService.delete(uuid); - } + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.ITaxonService#swapSynonymAndAcceptedTaxon(java.util.UUID, java.util.UUID) + */ + @Override + public UpdateResult swapSynonymAndAcceptedTaxon(UUID synonymUUid, UUID acceptedTaxonUuid) { + return defaultService.swapSynonymAndAcceptedTaxon(synonymUUid, acceptedTaxonUuid); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteTaxon(java.util.UUID, eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator, java.util.UUID) + */ + @Override + public DeleteResult deleteTaxon(UUID taxonUuid, TaxonDeletionConfigurator config, UUID classificationUuid) { + return defaultService.deleteTaxon(taxonUuid, config, classificationUuid); + } - - + @Override + public SynonymRelationship moveSynonymToAnotherTaxon( + SynonymRelationship oldSynonymRelation, UUID newTaxonUUID, + boolean moveHomotypicGroup, + SynonymRelationshipType newSynonymRelationshipType, + Reference reference, String referenceDetail, boolean keepReference) + throws HomotypicalGroupChangeException { - ++ + return defaultService.moveSynonymToAnotherTaxon(oldSynonymRelation, newTaxonUUID, moveHomotypicGroup, newSynonymRelationshipType, reference, referenceDetail, keepReference); + } - - - } diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java index 2e9ce9f3a,3913e0a29..092b49bc8 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java @@@ -31,16 -32,15 +32,18 @@@ import eu.etaxonomy.cdm.api.conversatio import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; import eu.etaxonomy.cdm.api.service.IClassificationService; import eu.etaxonomy.cdm.model.common.CdmBase; +import eu.etaxonomy.cdm.model.taxon.Classification; import eu.etaxonomy.cdm.model.taxon.TaxonComparatorSearch; + import eu.etaxonomy.cdm.model.taxon.TaxonNaturalComparator; import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; import eu.etaxonomy.taxeditor.model.DataChangeBridge; import eu.etaxonomy.taxeditor.model.IDataChangeBehavior; import eu.etaxonomy.taxeditor.model.MessagingUtils; import eu.etaxonomy.taxeditor.navigation.NavigationUtil; import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; + import eu.etaxonomy.taxeditor.preference.PreferencesUtil; +import eu.etaxonomy.taxeditor.session.ICdmEntitySession; +import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled; import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.store.LoginManager; diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TreeNodeDropAdapterAssistant.java index 7ef220593,86eb9506f..3883b5f17 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TreeNodeDropAdapterAssistant.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TreeNodeDropAdapterAssistant.java @@@ -62,14 -69,25 +65,25 @@@ public class TreeNodeDropAdapterAssista public IStatus handleDrop(CommonDropAdapter dropAdapter, DropTargetEvent dropTargetEvent, Object target) { - ++ if (target instanceof ITaxonTreeNode) { Set taxonNodes = getSelectedTaxa(); ITaxonTreeNode targetTreeNode = (ITaxonTreeNode) target; + if (targetTreeNode instanceof Classification){ + targetTreeNode = ((Classification)targetTreeNode).getRootNode(); + targetTreeNode = HibernateProxyHelper.deproxy(targetTreeNode, TaxonNode.class); + } if(taxonNodes != null) { - return moveTaxon(taxonNodes, targetTreeNode); + if (taxonNodes.size() == 1){ + return moveTaxon(taxonNodes.iterator().next(), targetTreeNode); + } else{ + if( MessageDialog.openConfirm(null, "Moving taxon", "The operation move accepted taxon to other parent is available only for a single taxon.")){ + return null; + } + } } } - + return Status.CANCEL_STATUS; } @@@ -172,38 -183,57 +179,58 @@@ return Status.CANCEL_STATUS; } + } + if (!PreferencesUtil.getSortNodesNaturally()){ + IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext(); + if (workspaceUndoContext == null) { + logger.error("Workspace undo context is null. DND operation cancelled"); + return Status.CANCEL_STATUS; + } - ++ + AbstractPostOperation operation = new MoveTaxonOperation + ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator, true); + NavigationUtil.executeOperation(operation); - + - // Make sure parentTaxon is not the drop target - // if (!childTaxonNode.isTopmostNode() && childTaxonNode.getParent().equals(targetTaxonNode)){ - // return Status.CANCEL_STATUS; - // } + logger.info("Moved taxa to new parent " + targetITaxonTreeNode); + return Status.OK_STATUS; + }else{ + String[] buttonLables = {"Parent", "Predecessor", "Cancel"}; + MessageDialog dialog = new MessageDialog(null, "Target node", null, "Do you want to use the target node as parent or do you want to move the taxon below the target.", MessageDialog.QUESTION_WITH_CANCEL, buttonLables, 0); + dialog.open(); + int returnCode = dialog.getReturnCode(); + if (returnCode == 0){ + IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext(); + if (workspaceUndoContext == null) { + logger.error("Workspace undo context is null. DND operation cancelled"); + return Status.CANCEL_STATUS; + } - + - // Make sure taxon is not being dropped onto itself - // if (childTaxonNode.equals(targetTaxonNode)) { - // return Status.CANCEL_STATUS; - // } + AbstractPostOperation operation = new MoveTaxonOperation + ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator, true); + NavigationUtil.executeOperation(operation); - + + logger.info("Moved taxa to new parent " + targetITaxonTreeNode); + return Status.OK_STATUS; + }else if (returnCode == 1){ + IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext(); + if (workspaceUndoContext == null) { + logger.error("Workspace undo context is null. DND operation cancelled"); + return Status.CANCEL_STATUS; + } - + + AbstractPostOperation operation = new MoveTaxonOperation + ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator, false); + NavigationUtil.executeOperation(operation); - ++ + logger.info("Moved taxa to new parent " + targetITaxonTreeNode); + return Status.OK_STATUS; + } else{ + return Status.CANCEL_STATUS; + } - - + - } + - IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext(); - if (workspaceUndoContext == null) { - logger.error("Workspace undo context is null. DND operation cancelled"); - return Status.CANCEL_STATUS; } + - AbstractPostOperation operation = new MoveTaxonOperation("Move Taxon", - workspaceUndoContext, - taxonNodes, - targetITaxonTreeNode, - this, - taxonNavigator, - taxonNavigator); - NavigationUtil.executeOperation(operation); - - logger.info("Moved taxa to new parent " + targetITaxonTreeNode); - return Status.OK_STATUS; } /* (non-Javadoc) diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/MoveTaxonHandler.java index 2119227c9,4c84b0197..d275e3c90 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/MoveTaxonHandler.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/MoveTaxonHandler.java @@@ -10,27 -10,41 +10,28 @@@ package eu.etaxonomy.taxeditor.navigation.navigator.handler; 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.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; -import org.eclipse.core.expressions.EvaluationContext; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.TreeSelection; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IEditorReference; + import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.PartInitException; import org.eclipse.ui.handlers.HandlerUtil; -import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration; -import eu.etaxonomy.cdm.api.service.ITaxonNodeService; + import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; import eu.etaxonomy.cdm.model.common.CdmBase; -import eu.etaxonomy.cdm.model.common.ITreeNode; -import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.TaxonNode; -import eu.etaxonomy.taxeditor.editor.TaxonEditorInput; import eu.etaxonomy.taxeditor.navigation.NavigationUtil; import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator; import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveTaxonOperation; import eu.etaxonomy.taxeditor.operation.AbstractPostOperation; import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; + import eu.etaxonomy.taxeditor.preference.PreferencesUtil; -import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog; -import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionNaturalOrderDialog; /** *

MoveTaxonHandler class.

@@@ -47,49 -61,58 +48,63 @@@ public class MoveTaxonHandler extends A * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent) */ /** {@inheritDoc} */ - public Object execute(ExecutionEvent event) throws ExecutionException { ++ + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { - TaxonNavigator taxonNavigator = NavigationUtil.showNavigator(); + activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage(); + TaxonNavigator taxonNavigator = (TaxonNavigator)NavigationUtil.showView(TaxonNavigator.ID); - + TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event); - + Iterator selectionIterator = selection.iterator(); - Set taxonNodes = new HashSet(); + TaxonNode taxonNode = null; + UUID taxonNodeUUID = null; // do not show the current selection List excludeTaxa = new ArrayList(); - + + - while (selectionIterator.hasNext()){ + if (selection.size() == 1){ Object object = selectionIterator.next(); if(object instanceof TaxonNode){ - TaxonNode taxonNode = (TaxonNode) object; - taxonNodes.add(taxonNode); + taxonNode = HibernateProxyHelper.deproxy(object,TaxonNode.class); + taxonNodeUUID = taxonNode.getUuid(); excludeTaxa.add(taxonNode.getTaxon().getUuid()); } + } else{ + if( MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Moving taxon", "The operation move accepted taxon to other parent is available only for a single taxon.")){ + return null; + } } - - + - // TaxonNode taxonNode = (TaxonNode) selection.getFirstElement(); + - parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), taxonNavigator.getConversationHolder(), "Choose new parent", excludeTaxa, null, null); + - if(parentTaxonNode != null){ - if(NavigationUtil.isDirty(parentTaxonNode)){ - MessageDialog.openWarning(HandlerUtil.getActiveShell(event), "Unsaved Parent Taxon", "There are unsaved " + - "changes in the parent taxon. Please save first."); - return null; + // TaxonNode taxonNode = (TaxonNode) selection.getFirstElement(); + if (taxonNode != null){ - boolean moveToNewParent = true; ++ boolean moveToNewParent = true; + if (PreferencesUtil.getSortNodesNaturally()){ + if(!MessageDialog.openQuestion(null, "Target node", "The choosen target node should be the parent?")){ + moveToNewParent = false; + } + parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), taxonNavigator.getConversationHolder(), "Choose the taxon above the moved taxon.", excludeTaxa, null, null); + }else{ + parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), taxonNavigator.getConversationHolder(), "Choose new parent", excludeTaxa, null, null); } + if(parentTaxonNode != null){ + if(NavigationUtil.isDirty(parentTaxonNode)){ + MessageDialog.openWarning(HandlerUtil.getActiveShell(event), "Unsaved Parent Taxon", "There are unsaved " + + "changes in the parent taxon. Please save first."); + return null; + } - ++ + AbstractPostOperation operation = new MoveTaxonOperation + ("Move taxon to new parent", NavigationUtil.getUndoContext(), + taxonNode, parentTaxonNode, taxonNavigator, taxonNavigator, moveToNewParent); //$NON-NLS-1$ + NavigationUtil.executeOperation(operation); + taxonNavigator.refresh(); - + - AbstractPostOperation operation = new MoveTaxonOperation("Move taxon to new parent", - NavigationUtil.getUndoContext(), - taxonNodes, - parentTaxonNode, - this, - taxonNavigator, - taxonNavigator); //$NON-NLS-1$ - NavigationUtil.executeOperation(operation); - + } } + return null; } diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/ChangeAcceptedTaxonToSynonymOperation.java index 101f4734a,4dd1c61db..609e0fba4 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/ChangeAcceptedTaxonToSynonymOperation.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/ChangeAcceptedTaxonToSynonymOperation.java @@@ -24,8 -24,9 +25,10 @@@ import eu.etaxonomy.cdm.hibernate.Hiber import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonNode; + import eu.etaxonomy.taxeditor.model.MessagingUtils; + import eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin; import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; +import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled; import eu.etaxonomy.taxeditor.store.CdmStore; /** @@@ -39,8 -40,7 +42,9 @@@ public class ChangeAcceptedTaxonToSynon DeleteOperation { private final TaxonNode newAcceptedTaxonNode; + private final ICdmEntitySessionEnabled cdmEntitySessionEnabled; + + //private TaxonNode oldTaxonNode; /** @@@ -76,12 -71,16 +80,17 @@@ monitor.worked(20); bind(); + Taxon oldTaxon = (Taxon) HibernateProxyHelper.deproxy(((TaxonNode) taxonNode).getTaxon()); - - UpdateResult result = CdmStore.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode(taxonNode.getUuid(), newAcceptedTaxonNode.getUuid(), null, null, null); + try { - CdmStore.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode((TaxonNode) taxonNode, newAcceptedTaxonNode, null, null, null); ++ UpdateResult result = CdmStore.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode(taxonNode.getUuid(), newAcceptedTaxonNode.getUuid(), null, null, null); + } catch (IllegalArgumentException e) { + MessagingUtils.errorDialog("Operation failed", this, e.getMessage(), TaxeditorNavigationPlugin.PLUGIN_ID, e, false); + return Status.CANCEL_STATUS; + } monitor.worked(40); + return postExecute(oldTaxon); } diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java index 14b19f62d,bd2b57db5..385a89297 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java @@@ -9,9 -9,11 +9,8 @@@ package eu.etaxonomy.taxeditor.navigation.navigator.operation; --import java.util.HashMap; -import java.util.HashSet; import java.util.Map; import java.util.Set; -import java.util.UUID; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.commands.operations.IUndoContext; @@@ -24,7 -27,7 +23,6 @@@ import eu.etaxonomy.cdm.api.conversatio import eu.etaxonomy.cdm.api.service.ITaxonNodeService; import eu.etaxonomy.cdm.api.service.UpdateResult; import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; --import eu.etaxonomy.cdm.model.taxon.IllegalAncestryException; import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.taxeditor.model.MessagingUtils; import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation; @@@ -48,11 -50,10 +46,14 @@@ public class MoveTaxonOperation extend /** * A reference to the former taxonomical parents */ - //private Map oldParentTreeNodes; + - private TaxonNode taxonNode; - private boolean moveToParentNode; + private final Map oldParentTreeNodes; + + private final Set taxonNodes; + + ++ private final TaxonNode taxonNode; ++ private final boolean moveToParentNode; /** *

Constructor for MoveTaxonOperation.

* @@@ -63,26 -64,20 +64,29 @@@ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object. * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object. */ - public MoveTaxonOperation(String label, IUndoContext undoContext, - TaxonNode taxonNodeToMove, ITaxonTreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled, boolean moveToParentNode) { - super(label, undoContext, postOperationEnabled, conversationEnabled); - ++ + public MoveTaxonOperation(String label, + IUndoContext undoContext, - Set taxonNodes, ++ TaxonNode taxonNodeToMove, + ITaxonTreeNode newParentTreeNode, + IPostOperationEnabled postOperationEnabled, + IConversationEnabled conversationEnabled, - ICdmEntitySessionEnabled cdmEntitySessionEnabled) { ++ ICdmEntitySessionEnabled cdmEntitySessionEnabled, ++ boolean moveToParentNode) { + super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled); + - this.taxonNodes = taxonNodes; + this.taxonNode = taxonNodeToMove; + /*for (TaxonNode node:taxonNodes){ + this.taxonNodes.add(service.load(node.getUuid())); + }*/ - + - this.newParentTreeNode = newParentTreeNode; + + this.newParentTreeNode = newParentTreeNode; + this.moveToParentNode = moveToParentNode; // Save old parent ITaxonTreeNodes for undo - oldParentTreeNodes = new HashMap(); - for(TaxonNode taxonNode : taxonNodes){ - this.oldParentTreeNodes.put(taxonNode, taxonNode.getParent()); - } - + + //this.parentNode = taxonNode.getParent(); + } /* (non-Javadoc) @@@ -95,18 -90,18 +99,18 @@@ bind(); monitor.worked(20); - - try { - for (TaxonNode taxonNode : taxonNodes){ - UpdateResult result = CdmStore.getService( ITaxonNodeService.class).moveTaxonNode(taxonNode.getUuid(), newParentTreeNode.getUuid()); - monitor.worked(2); - } - - - - } catch(IllegalAncestryException e) { - MessagingUtils.warningDialog("Illegal ancestry", this, e.getMessage()); - } + UpdateResult result = CdmStore.getService(ITaxonNodeService.class).moveTaxonNode(this.taxonNode.getUuid(),newParentTreeNode.getUuid(), moveToParentNode); + // try { + // for (TaxonNode taxonNode : taxonNodes){ + // TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode, + // newParentTreeNode.getReference(), newParentTreeNode.getMicroReference()); + // //taxonNodes.add(newTaxonNode); -// ++// + // monitor.worked(2); + // } + // } catch(IllegalAncestryException e) { + // MessagingUtils.warningDialog("Illegal ancestry", this, e.getMessage()); + // } monitor.worked(40); return postExecute(null); diff --cc eu.etaxonomy.taxeditor.store/plugin.xml index 68fced6cb,37c33cdfe..967bc4364 --- a/eu.etaxonomy.taxeditor.store/plugin.xml +++ b/eu.etaxonomy.taxeditor.store/plugin.xml @@@ -694,13 -690,13 +706,18 @@@ + name="%command.name.12"> + + + + diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/ParseHandler.java index 2059f5d7a,df90397af..d3370b560 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/ParseHandler.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/ParseHandler.java @@@ -303,7 -301,7 +302,9 @@@ public class ParseHandler return new ArrayList(); } try{ - return CdmStore.getService(ICommonService.class).findMatching(nomenclaturalReference, MatchStrategy.Reference); - return CdmStore.getCommonService().findMatching(nomenclaturalReference, MatchStrategyConfigurator.ReferenceMatchStrategy()); ++ ++ return CdmStore.getCommonService().findMatching(nomenclaturalReference, MatchStrategy.Reference); ++ }catch (MatchException e) { MessagingUtils.error(this.getClass(), "Error finding matching references", e); } @@@ -321,7 -319,7 +322,9 @@@ } try{ - return CdmStore.getService(ICommonService.class).findMatching(authorTeam, MatchStrategy.TeamOrPerson); - return CdmStore.getCommonService().findMatching(authorTeam, MatchStrategyConfigurator.TeamOrPersonMatchStrategy()); ++ ++ return CdmStore.getCommonService().findMatching(authorTeam, MatchStrategy.TeamOrPerson); ++ }catch (MatchException e) { MessagingUtils.error(this.getClass(), "Error finding matching authors", e); } @@@ -335,7 -333,7 +338,9 @@@ private List findMatchingLatinNames(TaxonNameBase taxonNameBase) { try { - return CdmStore.getService(ICommonService.class).findMatching(taxonNameBase, MatchStrategy.NonViralName); - return CdmStore.getCommonService().findMatching(taxonNameBase, MatchStrategyConfigurator.NonViralNameMatchStrategy()); ++ ++ return CdmStore.getCommonService().findMatching(taxonNameBase, MatchStrategy.NonViralName); ++ } catch (MatchException e) { MessagingUtils.error(this.getClass(), "Error finding matching names", e); diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java index e04649168,39e46a4fa..804ab0534 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java @@@ -25,9 -25,9 +25,10 @@@ import org.springframework.security.cor import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; +import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController; import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; + import eu.etaxonomy.cdm.api.service.ICommonService; import eu.etaxonomy.cdm.api.service.IService; import eu.etaxonomy.cdm.config.ICdmSource; import eu.etaxonomy.cdm.database.DbSchemaValidation; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStoreConnector.java index 1020242ae,e7c5aa0b7..f1b5e38ad --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStoreConnector.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStoreConnector.java @@@ -1,9 -1,9 +1,9 @@@ // $Id$ /** * 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. */ @@@ -103,10 -103,11 +103,11 @@@ class CdmStoreConnector extends Job } } finally { monitor.done(); + Thread.currentThread().setPriority(oldPriority); } } -- -- ++ ++ if (!monitor.isCanceled()) { CdmStore.setInstance(applicationController, cdmSource); @@@ -114,7 -115,7 +115,7 @@@ display.asyncExec(new Runnable() { /* * (non-Javadoc) -- * ++ * * @see java.lang.Runnable#run() */ @Override @@@ -132,7 -133,7 +133,7 @@@ display.asyncExec(new Runnable() { /* * (non-Javadoc) -- * ++ * * @see java.lang.Runnable#run() */ @Override @@@ -147,14 -148,14 +148,14 @@@ private ICdmApplicationConfiguration getApplicationController(ICdmSource cdmSource, CdmProgressMonitorAdapter subprogressMonitor) { if(cdmSource instanceof ICdmDataSource) { -- return CdmApplicationController.NewInstance(applicationContextBean, -- (ICdmDataSource)cdmSource, ++ return CdmApplicationController.NewInstance(applicationContextBean, ++ (ICdmDataSource)cdmSource, dbSchemaValidation, -- false, ++ false, subprogressMonitor); } else if(cdmSource instanceof ICdmRemoteSource) { -- return CdmApplicationRemoteController.NewInstance((ICdmRemoteSource)cdmSource, -- false, ++ return CdmApplicationRemoteController.NewInstance((ICdmRemoteSource)cdmSource, ++ false, subprogressMonitor, null); } else { @@@ -236,7 -237,7 +237,7 @@@ return causeIsCancelationExceptionRecursive(throwable.getCause()); } } -- ++ private void checkDatabaseReachable(IProgressMonitor monitor) { try { monitor.subTask("Checking if datasource is reachable."); @@@ -246,6 -247,6 +247,6 @@@ MessagingUtils.messageDialog("Could not connect to chosen datasource", this, "Reason: " + e.getMessage(), e); monitor.setCanceled(true); -- } ++ } } } diff --cc eu.etaxonomy.taxeditor.test/.classpath index b825db512,4deb39a8f..3f3206ecc --- a/eu.etaxonomy.taxeditor.test/.classpath +++ b/eu.etaxonomy.taxeditor.test/.classpath @@@ -1,9 -1,8 +1,10 @@@ - - - - - - - - + + + + + + + + + ++ diff --cc eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF index f8855335c,4444e369c..fb85112f5 --- a/eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF +++ b/eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF @@@ -6,7 -6,8 +6,9 @@@ Bundle-Version: 3.4.0.qualifie Bundle-ActivationPolicy: lazy Bundle-Vendor: EDIT Bundle-RequiredExecutionEnvironment: JavaSE-1.6 - Require-Bundle: org.eclipse.ui, ++ + Require-Bundle: org.apache.log4j, + org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.swtbot.eclipse.core, org.eclipse.swtbot.eclipse.finder,