merge-update from trunk
authorPatric Plitzner <p.plitzner@bgbm.org>
Mon, 23 Mar 2015 13:41:23 +0000 (13:41 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Mon, 23 Mar 2015 13:41:23 +0000 (13:41 +0000)
56 files changed:
.gitattributes
eu.etaxonomy.taxeditor.application/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.application/pom.xml
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/ApplicationWorkbenchAdvisor.java
eu.etaxonomy.taxeditor.bulkeditor/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.bulkeditor/pom.xml
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsView.java
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/localApplicationContext.xml
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remoting_persistence_security.xml
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remoting_services_security.xml
eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/pom.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/FixClassificationHierarchyHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/internal/TaxeditorEditorPlugin.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/validation/MarkerManager.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/validation/ValidationDaemon.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistLabelProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientCdmRepository.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java
eu.etaxonomy.taxeditor.feature.platform/feature.xml
eu.etaxonomy.taxeditor.feature.platform/pom.xml
eu.etaxonomy.taxeditor.feature/build.properties
eu.etaxonomy.taxeditor.feature/feature.xml
eu.etaxonomy.taxeditor.feature/pom.xml
eu.etaxonomy.taxeditor.help/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.help/pom.xml
eu.etaxonomy.taxeditor.navigation/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages.properties
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_de.properties
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_en.properties
eu.etaxonomy.taxeditor.navigation/plugin.xml
eu.etaxonomy.taxeditor.navigation/pom.xml
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/Messages.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchBar.java
eu.etaxonomy.taxeditor.navigation/src/test/resources/eu/etaxonomy/cdm/defaultApplicationContext.xml
eu.etaxonomy.taxeditor.printpublisher/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.printpublisher/pom.xml
eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.store/pom.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/ParseHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStoreConnector.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteSpecimenConfiguratorComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EntitySelectionElement.java
eu.etaxonomy.taxeditor/eu.etaxonomy.taxeditor.product
eu.etaxonomy.taxeditor/pom.xml
pom.xml

index f21637eb4c5d5d53060f3fe31833a7193d8d7e25..f1d27f0f893a5808727b1b961cd6117e71d4b4ea 100644 (file)
@@ -397,6 +397,7 @@ eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/authority/handler/EditCdmAuthoritiesHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/EditNewTaxonHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/EditSequenceHandler.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/FixClassificationHierarchyHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/LoadPherogramHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenAlignmentEditorHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenChecklistEditorHandler.java -text
index 99055f26e7ed42234ec716f3c3e5083444ae2fa8..1c4b3a1a0233b5cd5f138f62ad9889245a71e0ba 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Application
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
-Bundle-Version: 3.4.1.qualifier
+Bundle-Version: 3.5.0.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
 Bundle-Vendor: EDIT
 Bundle-Localization: OSGI-INF/l10n/plugin
index 435e7cd564d081c7cfcd170cd541597a845b5d44..68604725ff2d6d1603057814611258664d6e9a98 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>3.4.1-SNAPSHOT</version>
+    <version>3.5.0-SNAPSHOT</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index feff393fb86851a12a716c449be9b6e1a979f86c..cf565a622d91bb255e188cfed04337e2c97c11a3 100644 (file)
@@ -104,7 +104,7 @@ public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
                        //        leading to a recursive infinite loop of :
                        //        initial exception thrown -> status handling -> dialog opening + logging of status ->
                        //        status handling -> dialog opening + logging of status ... and so on
-                       if(t != null && t instanceof RuntimeException && !t.getMessage().equals("Widget is disposed")) {
+                       if(t != null && t instanceof RuntimeException) {
                                MessagingUtils.errorDialog("Unexpected error",
                                                null,
                                                MessagingUtils.UNEXPECTED_ERROR_MESSAGE,
index 0980a03864035ee9ae6e9b29dcc84274b1eb2f36..4a7e62f636ea979dfe32e90d85ee67002e8688f2 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Bulkeditor Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.bulkeditor;singleton:=true
-Bundle-Version: 3.4.1.qualifier
+Bundle-Version: 3.5.0.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
 Bundle-Vendor: EDIT
 Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
index 14d406739b8b61b7a38c310142d6db5142556daf..025bdf28f9a243071cb97574dd031b472da4ed9c 100644 (file)
@@ -4,7 +4,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>3.4.1-SNAPSHOT</version>
+               <version>3.5.0-SNAPSHOT</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 054392c4805b7bfc8fc4030bdb4ade2935fa1f05..5a7cccc119a7ae8ca03599d85595af7a614f2c8a 100644 (file)
@@ -20,15 +20,11 @@ import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IPersistableElement;
 
-import eu.etaxonomy.cdm.api.service.ICommonService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.strategy.merge.IMergable;
 import eu.etaxonomy.cdm.strategy.merge.MergeException;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
@@ -51,11 +47,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEditorInput, IEntityPersistenceService<T> {
 
-       /**
-        *
-        */
-       private static final long serialVersionUID = 416414530232743735L;
-
        private UUID entityUuid;
 
        private List<T> model;
@@ -235,7 +226,7 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
     public boolean merge(T entity, T mergeTarget) {
                if (entity instanceof IMergable) {
                        try {
-                               CdmStore.getService(ICommonService.class).merge((IMergable)mergeTarget, (IMergable)entity, null);                               
+                               CdmStore.getCommonService().merge((IMergable)mergeTarget, (IMergable)entity, null);                             
                        } catch (MergeException e) {
                                MessagingUtils.errorDialog("Bulk Editor Merge Error",
                                                this,
index fbd5000f4e715fd77206fe1a8a5dddeb2c0c8cd5..f96d4f7a665266490437c5e5fe9b03d45b0609b0 100644 (file)
@@ -186,7 +186,7 @@ public class ReferencingObjectsView extends AbstractCdmViewPart{
                
                if (referencedObject != null){
                        referencedObjectTitleCache = ((IdentifiableEntity)referencedObject).getTitleCache();
-                       setOfReferencingObjects = CdmStore.getService(ICommonService.class).getReferencingObjects(referencedObject);
+                       setOfReferencingObjects = CdmStore.getCommonService().getReferencingObjects(referencedObject);
                }
                if (setOfReferencingObjects != null){
                        List<CdmBase> referencingObjects = new ArrayList<CdmBase>(setOfReferencingObjects);                     
index 2cc9dede15dde187a6a1e10e15c6b450c1fc5311..41a7f1b3198fd75534a726f2f07c06b691d9056c 100644 (file)
        <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.4.1-SNAPSHOT-sources.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.4.1-SNAPSHOT.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.4.1-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.4.1-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.4.1-SNAPSHOT.jar" sourcepath="lib/cdmlib-model-3.4.1-SNAPSHOT-sources.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.4.1-SNAPSHOT-sources.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.4.1-SNAPSHOT.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.4.1-SNAPSHOT-sources.jar"/>
index 08ab4e5be42e7662e62ec5f201c5869a5ac86162..28339ae8516ca941cc24781ecd49b76c0049505e 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: CDM Library Dependencies Plugin
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.cdmlib;singleton:=true
-Bundle-Version: 3.4.1.qualifier
+Bundle-Version: 3.5.0.qualifier
 Eclipse-BundleShape: dir
 Export-Package: com.google.api,
  com.google.api.detect,
@@ -25,6 +25,8 @@ Export-Package: com.google.api,
  eu.etaxonomy.cdm.api.service.statistics,
  eu.etaxonomy.cdm.api.service.util,
  eu.etaxonomy.cdm.api.utility,
+ eu.etaxonomy.cdm.api.validation,
+ eu.etaxonomy.cdm.api.validation.batch,
  eu.etaxonomy.cdm.aspectj,
  eu.etaxonomy.cdm.common,
  eu.etaxonomy.cdm.common.media,
@@ -600,22 +602,22 @@ Bundle-ClassPath: .,
  lib/spring-security-remoting-3.1.3.RELEASE.jar,
  lib/jena-core-2.11.2.jar,
  lib/jena-iri-1.0.2.jar,
- lib/cdmlib-commons-3.4.1-SNAPSHOT-sources.jar,
- lib/cdmlib-commons-3.4.1-SNAPSHOT.jar,
- lib/cdmlib-ext-3.4.1-SNAPSHOT-sources.jar,
- lib/cdmlib-ext-3.4.1-SNAPSHOT.jar,
- lib/cdmlib-io-3.4.1-SNAPSHOT-sources.jar,
- lib/cdmlib-io-3.4.1-SNAPSHOT.jar,
- lib/cdmlib-model-3.4.1-SNAPSHOT-sources.jar,
- lib/cdmlib-model-3.4.1-SNAPSHOT.jar,
- lib/cdmlib-persistence-3.4.1-SNAPSHOT-sources.jar,
- lib/cdmlib-persistence-3.4.1-SNAPSHOT.jar,
- lib/cdmlib-print-3.4.1-SNAPSHOT-sources.jar,
- lib/cdmlib-print-3.4.1-SNAPSHOT.jar,
- lib/cdmlib-remote-3.4.1-SNAPSHOT-sources.jar,
- lib/cdmlib-remote-3.4.1-SNAPSHOT.jar,
- lib/cdmlib-services-3.4.1-SNAPSHOT-sources.jar,
- lib/cdmlib-services-3.4.1-SNAPSHOT.jar,
+ lib/cdmlib-commons-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-commons-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-ext-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-ext-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-io-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-io-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-model-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-model-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-persistence-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-persistence-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-print-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-print-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-remote-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-remote-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-services-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-services-3.5.0-SNAPSHOT.jar,
  lib/poi-3.10-FINAL.jar,
  lib/poi-ooxml-3.10-FINAL.jar,
  lib/xmlbeans-2.3.0.jar,
index 89809ef1e9db65bde04e5adc7f8d532a4365eb84..7b1879ff6bf0447ae6b3148fa7054ee938f2fa7a 100644 (file)
@@ -193,22 +193,22 @@ bin.includes = META-INF/,\
                lib/poi-ooxml-3.10-FINAL.jar,\\r
                lib/poi-ooxml-schemas-3.10-FINAL.jar,\\r
                lib/xmlbeans-2.3.0.jar,\\r
-               lib/cdmlib-commons-3.4.1-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-commons-3.4.1-SNAPSHOT.jar,\\r
-               lib/cdmlib-ext-3.4.1-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-ext-3.4.1-SNAPSHOT.jar,\\r
-               lib/cdmlib-io-3.4.1-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-io-3.4.1-SNAPSHOT.jar,\\r
-               lib/cdmlib-model-3.4.1-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-model-3.4.1-SNAPSHOT.jar,\\r
-               lib/cdmlib-persistence-3.4.1-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-persistence-3.4.1-SNAPSHOT.jar,\\r
-               lib/cdmlib-print-3.4.1-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-print-3.4.1-SNAPSHOT.jar,\\r
-               lib/cdmlib-remote-3.4.1-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-remote-3.4.1-SNAPSHOT.jar,\\r
-               lib/cdmlib-services-3.4.1-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-services-3.4.1-SNAPSHOT.jar,\\r
+               lib/cdmlib-commons-3.5.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-commons-3.5.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-ext-3.5.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-ext-3.5.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-io-3.5.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-io-3.5.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-model-3.5.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-model-3.5.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-persistence-3.5.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-persistence-3.5.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-print-3.5.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-print-3.5.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-remote-3.5.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-remote-3.5.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-services-3.5.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-services-3.5.0-SNAPSHOT.jar,\\r
                lib/swagger-annotations-1.3.5.jar\r
 \r
 jars.compile.order = .\r
index e988506cfd4cd17843c5acb0195660e8acdac268..4787a82cf32930fbfe195e7a42ce93f350034376 100644 (file)
@@ -3,7 +3,7 @@
   <parent>\r
     <groupId>eu.etaxonomy</groupId>\r
     <artifactId>taxeditor-parent</artifactId>\r
-    <version>3.4.1-SNAPSHOT</version>\r
+    <version>3.5.0-SNAPSHOT</version>\r
   </parent>\r
   <modelVersion>4.0.0</modelVersion>\r
   <artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>\r
index 11a206b7e9f2b4e5b007e1cbaf9edbf160805298..524d83c4ddd1ff18324aa3de9035021bdb620b29 100644 (file)
@@ -3,9 +3,9 @@
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:tx="http://www.springframework.org/schema/tx"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-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">
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
+    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
+    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
        
        
     <!-- Default application context and term initializer -->
index d1bb5ee32f8e836f684323ae5059ad38fd953b75..e67e9b4534c51d886c6815d8e473d40bdebce036 100644 (file)
@@ -3,9 +3,9 @@
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
        xmlns:context="http://www.springframework.org/schema/context"\r
        xmlns:tx="http://www.springframework.org/schema/tx"\r
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
-    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">\r
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
+    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
+    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">\r
        \r
        \r
     <!--  <bean id="remoteTermInitializer" class="eu.etaxonomy.cdm.remote.service.RemoteTermInitializer"/>-->\r
index 46916f58ed65217e7bf7a9979709b54b61c433ba..d70bca5ea5aef5b3b587c1cd147be67672b97bcf 100644 (file)
@@ -3,10 +3,10 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"\r
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"\r
   xsi:schemaLocation="http://www.springframework.org/schema/beans\r
-    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd\r
-    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd\r
-    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd\r
-    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd\r
+    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd\r
+    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd\r
+    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd\r
+    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd\r
     ">\r
 \r
 \r
index 4b5a565b90a2e57acaf402671e74cf8fc772733b..6a09db4224f26d578657cbd6149a63506102748b 100644 (file)
@@ -3,9 +3,9 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
   xmlns:context="http://www.springframework.org/schema/context"\r
   xmlns:security="http://www.springframework.org/schema/security"\r
-  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd\r
-    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd\r
-    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd\r
+  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd\r
+    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd\r
+    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd\r
     http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd"\r
     >\r
 \r
index b32930830c8c9837c487d698b54862ccfe89373b..1918eca032d18ca826791d9bb4d1adad4eff554c 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Editor Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
-Bundle-Version: 3.4.1.qualifier
+Bundle-Version: 3.5.0.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: OSGI-INF/l10n/plugin
index 109dbb972209b59c9031a89f246b21be307320a6..8a8db7b123c02af2a53921708cb07ad606358933 100644 (file)
             class="eu.etaxonomy.taxeditor.editor.view.descriptive.handler.ToggleShowOnlyIndividualAssociationsHandler"
             commandId="eu.etaxonomy.taxeditor.editor.handler.showOnlyIndividualAssociations">
       </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.editor.handler.FixClassificationHierarchyHandler"
+            commandId="eu.etaxonomy.taxeditor.editor.handler.FixClassificationHierarchyHandler">
+      </handler>
       <handler
             class="eu.etaxonomy.taxeditor.editor.handler.ToggleInsertOverwriteHandler"
             commandId="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.toggleInsertOverwrite">
             id="eu.etaxonomy.taxeditor.editor.derivate.deepDelete"
             name="Deep Delete">
       </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.handler.FixClassificationHierarchyHandler"
+            id="eu.etaxonomy.taxeditor.editor.handler.OpenFixClassificationHierarchyHandler"
+            name="Fix Classification Hierarchy">
+      </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.editor.handler.EditSequenceHandler"
             id="eu.etaxonomy.taxeditor.editor.editSequence"
index cd90412b9f3b16556df7afbdafeecd0d3cdcd37a..06949cfecadb6c64d5927a6b10d30eebcacef726 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
        <groupId>eu.etaxonomy</groupId>
        <artifactId>taxeditor-parent</artifactId>
-    <version>3.4.1-SNAPSHOT</version>
+    <version>3.5.0-SNAPSHOT</version>
   </parent>
   
   <modelVersion>4.0.0</modelVersion>
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/FixClassificationHierarchyHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/FixClassificationHierarchyHandler.java
new file mode 100644 (file)
index 0000000..aeff573
--- /dev/null
@@ -0,0 +1,60 @@
+package eu.etaxonomy.taxeditor.editor.handler;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class FixClassificationHierarchyHandler extends AbstractHandler {
+
+    private static final Logger logger = Logger.getLogger(FixClassificationHierarchyHandler.class);
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.
+     * ExecutionEvent)
+     */
+    @Override
+    public Object execute(ExecutionEvent event) throws ExecutionException {
+        boolean isChecklistEditorActivated = PreferencesUtil.getPreferenceStore().getBoolean(
+                IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE);
+        if (isChecklistEditorActivated) {
+            ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
+            if (currentSelection instanceof IStructuredSelection) {
+                Object selectedElement = ((IStructuredSelection) currentSelection).getFirstElement();
+                if (selectedElement instanceof Classification) {
+
+                    Classification classification = (Classification) selectedElement;
+                    try {
+                        IClassificationService service = CdmStore.getService(IClassificationService.class);
+
+                        // Map<String, List<TaxonNode>> sortedGenusList =
+                        // service.getSortedGenusList(classification.getAllNodes());
+
+                        Classification newClassification = service.createHierarchyInClassification(classification, null);
+
+                        MessagingUtils.messageDialog("Fix Hierarchy successful",
+                                FixClassificationHierarchyHandler.class, "Operation 'Fix Hierarchy' was successful. New classification is " + newClassification.getTitleCache());
+
+                    } catch (Exception e) {
+                        MessagingUtils.messageDialog("Failed to open Editor", FixClassificationHierarchyHandler.class,
+                                "Could not open ChecklistView. The hierarchy is corrupted!", e);
+                    }
+                }
+            }
+        }
+        return null;
+    }
+}
index dd87e5ba54b89f4be7e5547f621733200e88f075..ed72dd94f5451be31055a3121febc437f2001cdb 100644 (file)
@@ -45,7 +45,7 @@ public class TaxeditorEditorPlugin extends AbstractUIPlugin {
                CdmStore.getContextManager().addContextListener(stateManager);
                
                ValidationContextListener vcl = new ValidationContextListener();
-               CdmStore.getContextManager().addContextListener(vcl);
+//             CdmStore.getContextManager().addContextListener(vcl);
                
                plugin = this;
                logger.trace("Plugin started: " + this.getBundle().getSymbolicName());
index fa46f7094b36b7f5a545c4fb86f3f8dbcfc6d92e..4a5f2cdf9c418562126660f3694008e4ef91db16 100644 (file)
@@ -1,6 +1,6 @@
 package eu.etaxonomy.taxeditor.editor.validation;\r
 \r
-import java.util.HashMap;\r
+import java.util.ArrayList;\r
 import java.util.List;\r
 import java.util.Set;\r
 \r
@@ -13,16 +13,17 @@ import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;\r
 \r
 import eu.etaxonomy.cdm.model.validation.EntityConstraintViolation;\r
-import eu.etaxonomy.cdm.model.validation.EntityValidationResult;\r
+import eu.etaxonomy.cdm.model.validation.EntityValidation;\r
 import eu.etaxonomy.cdm.model.validation.Severity;\r
 \r
 /**\r
  * A class responsible for refreshing problem markers coming from the CVI\r
  * (Cdmlib Validation Infrastructure).\r
- * \r
+ *\r
  * @author ayco_holleman\r
- * \r
+ *\r
  */\r
+\r
 /*\r
  * See following for problems with icons in Problems view\r
  * http://stackoverflow.com\r
@@ -34,257 +35,183 @@ import eu.etaxonomy.cdm.model.validation.Severity;
  * http\r
  * ://cubussapiens.hu/2010/11/markers-and-annotations-in-eclipse-for-error-feedback\r
  * /\r
- * \r
+ *\r
  * See here for difficulty of attaching markers to non-resources (files,\r
  * folders):\r
  * http://stackoverflow.com/questions/12493179/eclipse-virtual-resources\r
  */\r
 public class MarkerManager {\r
 \r
-       public static final String MARKER_TYPE_ID = "eu.etaxonomy.taxeditor.markers.validationerror";\r
-\r
-       /**\r
-        * The primary key (id) of the EntityValidationResult record\r
-        */\r
-       public static final String ATTRIB_DATABASE_ID = "databaseId";\r
-\r
-       // The values of the following constants must correspond to the attributes\r
-       // defined for the org.eclipse.core.resources.markers extension point in\r
-       // plugin.xml\r
-\r
-       /**\r
-        * A user-friendly description of the type of the entity\r
-        */\r
-       public static final String ATTRIB_USER_FRIENDLY_TYPE_NAME = "userFriendlyTypeName";\r
-       /**\r
-        * A user-friendly description of the entity\r
-        */\r
-       public static final String ATTRIB_USER_FRIENDLY_DESCRIPTION = "userFriendlyDescription";\r
-       /**\r
-        * The field whose value violated a constraint\r
-        */\r
-       public static final String ATTRIB_USER_FRIENDLY_FIELD_NAME = "userFriendlyFieldName";\r
-       /**\r
-        * The value violating a constraint\r
-        */\r
-       public static final String ATTRIB_INVALID_VALUE = "invalidValue";\r
-       /**\r
-        * The message from the {@link Validator} about what was wrong.\r
-        */\r
-       public static final String ATTRIB_VALIDATOR_MESSAGE = "validatorMessage";\r
-       /**\r
-        * The class of the {@link Validator} coding for the constraint\r
-        */\r
-       public static final String ATTRIB_VALIDATOR_CLASS = "validatorClass";\r
-       /**\r
-        * The class of the validated entity\r
-        */\r
-       public static final String ATTRIB_ENTITY_CLASS = "entityClass";\r
-       /**\r
-        * The id of the validated entity\r
-        */\r
-       public static final String ATTRIB_ENTITY_ID = "entityId";\r
-\r
-       private final IWorkspaceRoot root;\r
-       private final IMarker[] markers;\r
-       private final List<EntityValidationResult> results;\r
-       private final HashMap<Integer, EntityValidationResult> resultMap;\r
-       private final HashMap<Integer, IMarker> markerMap;\r
-\r
-\r
-       MarkerManager(List<EntityValidationResult> results) throws CoreException\r
-       {\r
-               this.root = ResourcesPlugin.getWorkspace().getRoot();\r
-               this.markers = root.findMarkers(MARKER_TYPE_ID, true, IResource.DEPTH_INFINITE);\r
-               this.markerMap = new HashMap<Integer, IMarker>();\r
-               for (IMarker marker : markers) {\r
-                       markerMap.put(getDatabaseId(marker), marker);\r
-               }\r
-               this.results = results;\r
-               this.resultMap = new HashMap<Integer, EntityValidationResult>();\r
-               for (EntityValidationResult result : results) {\r
-                       resultMap.put(result.getId(), result);\r
-               }\r
-       }\r
-\r
-\r
-       /**\r
-        * Delete all markers that refer to errors that do not exist any longer\r
-        * (i.e. the corresponding database record has been deleted).\r
-        * \r
-        * @return The number of deleted markers\r
-        * \r
-        * @throws CoreException\r
-        */\r
-       int deleteObsoleteMarkers() throws CoreException\r
-       {\r
-               int i = 0;\r
-               IMarker[] markers = root.findMarkers(MARKER_TYPE_ID, true, IResource.DEPTH_INFINITE);\r
-               for (IMarker marker : markers) {\r
-                       if (isObsoleteMarker(marker)) {\r
-                               ++i;\r
-                               marker.delete();\r
-                       }\r
-               }\r
-               return i;\r
-       }\r
-\r
-\r
-       /**\r
-        * Create markers for new errors (i.e. no marker has been created for them\r
-        * yet).\r
-        * \r
-        * @return The number of new markers\r
-        * \r
-        * @throws CoreException\r
-        */\r
-       int createMarkers() throws CoreException\r
-       {\r
-               int i = 0;\r
-               IMarker[] markers = root.findMarkers(MARKER_TYPE_ID, true, IResource.DEPTH_INFINITE);\r
-               for (EntityValidationResult result : results) {\r
-                       if (!isNewResult(result)) {\r
-                               continue;\r
-                       }\r
-                       Set<EntityConstraintViolation> problems = result.getEntityConstraintViolations();\r
-                       for (EntityConstraintViolation problem : problems) {\r
-                               if (markerExistsForProblem(problem, markers)) {\r
-                                       continue;\r
-                               }\r
-                               IMarker marker = root.createMarker(MARKER_TYPE_ID);\r
-                               ++i;\r
-                               if (problem.getSeverity() == Severity.ERROR) {\r
-                                       marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);\r
-                               }\r
-                               else if (problem.getSeverity() == Severity.WARNING) {\r
-                                       marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);\r
-                               }\r
-                               else {\r
-                                       marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO);\r
-                               }\r
-                               marker.setAttribute(IMarker.MESSAGE, problem.getMessage());\r
-                               marker.setAttribute(ATTRIB_DATABASE_ID, result.getId());\r
-                               marker.setAttribute(ATTRIB_USER_FRIENDLY_TYPE_NAME, result.getUserFriendlyTypeName());\r
-                               marker.setAttribute(ATTRIB_USER_FRIENDLY_DESCRIPTION, result.getUserFriendlyDescription());\r
-                               marker.setAttribute(ATTRIB_USER_FRIENDLY_FIELD_NAME, problem.getUserFriendlyFieldName());\r
-                               marker.setAttribute(ATTRIB_VALIDATOR_MESSAGE, problem.getMessage());\r
-                               marker.setAttribute(ATTRIB_INVALID_VALUE, problem.getInvalidValue());\r
-                               marker.setAttribute(ATTRIB_VALIDATOR_CLASS, problem.getValidator());\r
-                               marker.setAttribute(ATTRIB_ENTITY_CLASS, result.getValidatedEntityClass());\r
-                               marker.setAttribute(ATTRIB_ENTITY_ID, result.getValidatedEntityId());\r
-                       }\r
-               }\r
-               return i;\r
-       }\r
-\r
-\r
-       /**\r
-        * Is there a problem marker that captures the specified\r
-        * {@link EntityConstraintViolation}? See\r
-        * {@link #markerCapturesProblem(IMarker, EntityConstraintViolation)}.\r
-        * \r
-        * @param problem\r
-        * @param markers\r
-        * @return\r
-        * @throws CoreException\r
-        */\r
-       private boolean markerExistsForProblem(EntityConstraintViolation problem, IMarker[] markers) throws CoreException\r
-       {\r
-               for (IMarker marker : markers) {\r
-                       if (markerCapturesProblem(marker, problem)) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       }\r
-\r
-\r
-       /**\r
-        * <p>\r
-        * This method determines whether the problem exposed by the specified\r
-        * marker is <b>de facto</b> equivalent to the specified\r
-        * {@code EntityConstraintViolation}. When the CVI validates an entity, it\r
-        * first deletes previous validation results for that entity and only then\r
-        * saves the new validation result. Thus you cannot rely on the database id\r
-        * of the {@code EntityConstraintViolation} to determine equivalence. Maybe\r
-        * later we can make the CVI more sophisticated in this respect. Or maybe\r
-        * see if solving it through the equals() method of\r
-        * {@code EntityValidationResult} and/or {@code EntityConstraintViolation}\r
-        * is possible. But for now this is the easiest solution.\r
-        * </p>\r
-        * <p>\r
-        * The reason we check for equivalence, is that we don't want to\r
-        * unnecessarily update the Problems view. If a marker is there, we don't\r
-        * want to replace it with an equivalent marker, because that might lead to\r
-        * strange click behaviour for end users (e.g. selected problems will\r
-        * disappear and re-appear unselected).\r
-        * </p>\r
-        * \r
-        * @param marker\r
-        * @param problem\r
-        * @return\r
-        * @throws CoreException\r
-        */\r
-       private static boolean markerCapturesProblem(IMarker marker, EntityConstraintViolation problem) throws CoreException\r
-       {\r
-               EntityValidationResult result = problem.getEntityValidationResult();\r
-               if (!marker.getAttribute(ATTRIB_ENTITY_CLASS).equals(result.getValidatedEntityClass())) {\r
-                       return false;\r
-               }\r
-               if (!marker.getAttribute(ATTRIB_ENTITY_ID).equals(result.getValidatedEntityId())) {\r
-                       return false;\r
-               }\r
-               if (!marker.getAttribute(ATTRIB_USER_FRIENDLY_FIELD_NAME).equals(problem.getPropertyPath())) {\r
-                       return false;\r
-               }\r
-               if (!marker.getAttribute(ATTRIB_INVALID_VALUE).equals(problem.getInvalidValue())) {\r
-                       return false;\r
-               }\r
-               if (!marker.getAttribute(ATTRIB_VALIDATOR_CLASS).equals(problem.getValidator())) {\r
-                       return false;\r
-               }\r
-               return true;\r
-       }\r
-\r
-\r
-       /**\r
-        * Is this a marker without a corresponding database record (\r
-        * {@link EntityValidationResult})?\r
-        * \r
-        * @param marker\r
-        * @return\r
-        * @throws CoreException\r
-        */\r
-       private boolean isObsoleteMarker(IMarker marker) throws CoreException\r
-       {\r
-               return resultMap.get(getDatabaseId(marker)) == null;\r
-       }\r
-\r
-\r
-       /**\r
-        * Is this an {@link EntityValidationResult} for which no marker has been\r
-        * created yet?\r
-        * \r
-        * @param result\r
-        * @return\r
-        */\r
-       private boolean isNewResult(EntityValidationResult result)\r
-       {\r
-               return markerMap.get(result.getId()) == null;\r
-       }\r
-\r
-\r
-       /**\r
-        * Get the id of the {@link EntityValidationResult} that was stored as one\r
-        * of the marker's attributes.\r
-        * \r
-        * @param marker\r
-        * @return\r
-        * @throws CoreException\r
-        */\r
-       private static Integer getDatabaseId(IMarker marker) throws CoreException\r
-       {\r
-               return (Integer) marker.getAttribute(ATTRIB_DATABASE_ID);\r
-       }\r
+    public static final String MARKER_TYPE_ID = "eu.etaxonomy.taxeditor.markers.validationerror";\r
+\r
+    /**\r
+     * The primary key (id) of the EntityConstraintViolation record\r
+     */\r
+    public static final String ATTRIB_DATABASE_ID = "databaseId";\r
+\r
+    // The values of the following constants must correspond to the attributes\r
+    // defined for the org.eclipse.core.resources.markers extension point in\r
+    // plugin.xml\r
+\r
+    /**\r
+     * A user-friendly description of the type of the entity\r
+     */\r
+    public static final String ATTRIB_USER_FRIENDLY_TYPE_NAME = "userFriendlyTypeName";\r
+    /**\r
+     * A user-friendly description of the entity\r
+     */\r
+    public static final String ATTRIB_USER_FRIENDLY_DESCRIPTION = "userFriendlyDescription";\r
+    /**\r
+     * The field whose value violated a constraint\r
+     */\r
+    public static final String ATTRIB_USER_FRIENDLY_FIELD_NAME = "userFriendlyFieldName";\r
+    /**\r
+     * The value violating a constraint\r
+     */\r
+    public static final String ATTRIB_INVALID_VALUE = "invalidValue";\r
+    /**\r
+     * The message from the {@link Validator} about what was wrong.\r
+     */\r
+    public static final String ATTRIB_VALIDATOR_MESSAGE = "validatorMessage";\r
+    /**\r
+     * The class of the {@link Validator} coding for the constraint\r
+     */\r
+    public static final String ATTRIB_VALIDATOR_CLASS = "validatorClass";\r
+    /**\r
+     * The class of the validated entity\r
+     */\r
+    public static final String ATTRIB_ENTITY_CLASS = "entityClass";\r
+    /**\r
+     * The id of the validated entity\r
+     */\r
+    public static final String ATTRIB_ENTITY_ID = "entityId";\r
+\r
+    private final List<EntityConstraintViolation> problems;\r
+\r
+    MarkerManager(List<EntityValidation> results) {\r
+        this.problems = new ArrayList<EntityConstraintViolation>();\r
+        for (EntityValidation result : results) {\r
+            Set<EntityConstraintViolation> problemsPerEntity = result.getEntityConstraintViolations();\r
+            for (EntityConstraintViolation problem : problemsPerEntity) {\r
+                problem.setEntityValidation(result);\r
+                problems.add(problem);\r
+            }\r
+        }\r
+        //MessagingUtils.info("Number of validation errors: " + problems.size());\r
+    }\r
+\r
+    /**\r
+     * Delete all markers that refer to errors that do not exist any longer\r
+     * (i.e. the corresponding database record has been deleted).\r
+     *\r
+     * @return The number of deleted markers\r
+     *\r
+     * @throws CoreException\r
+     */\r
+    int deleteObsoleteMarkers() throws CoreException {\r
+        int i = 0;\r
+        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();\r
+        IMarker[] markers = root.findMarkers(MARKER_TYPE_ID, true, IResource.DEPTH_INFINITE);\r
+        for (IMarker marker : markers) {\r
+            if (isObsoleteMarker(marker)) {\r
+                ++i;\r
+                marker.delete();\r
+            }\r
+        }\r
+        //MessagingUtils.info("Obsolete markers: " + i);\r
+        return i;\r
+    }\r
+\r
+    /**\r
+     * Create markers for new errors (i.e. no marker has been created for them\r
+     * yet).\r
+     *\r
+     * @return The number of new markers\r
+     *\r
+     * @throws CoreException\r
+     */\r
+    int createMarkers() throws CoreException {\r
+        int i = 0;\r
+        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();\r
+        IMarker[] markers = root.findMarkers(MARKER_TYPE_ID, true, IResource.DEPTH_INFINITE);\r
+        for (EntityConstraintViolation problem : problems) {\r
+            if (isNewProblem(problem, markers)) {\r
+                ++i;\r
+                IMarker marker = root.createMarker(MARKER_TYPE_ID);\r
+                if (problem.getSeverity() == Severity.ERROR) {\r
+                    marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);\r
+                } else if (problem.getSeverity() == Severity.WARNING) {\r
+                    marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);\r
+                } else {\r
+                    marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO);\r
+                }\r
+                EntityValidation result = problem.getEntityValidation();\r
+                marker.setAttribute(IMarker.MESSAGE, problem.getMessage());\r
+                marker.setAttribute(ATTRIB_DATABASE_ID, new Integer(problem.getId()));\r
+                marker.setAttribute(ATTRIB_USER_FRIENDLY_TYPE_NAME, result.getUserFriendlyTypeName());\r
+                marker.setAttribute(ATTRIB_USER_FRIENDLY_DESCRIPTION, result.getUserFriendlyDescription());\r
+                marker.setAttribute(ATTRIB_USER_FRIENDLY_FIELD_NAME, problem.getUserFriendlyFieldName());\r
+                marker.setAttribute(ATTRIB_VALIDATOR_MESSAGE, problem.getMessage());\r
+                marker.setAttribute(ATTRIB_INVALID_VALUE, problem.getInvalidValue());\r
+                marker.setAttribute(ATTRIB_VALIDATOR_CLASS, problem.getValidator());\r
+                marker.setAttribute(ATTRIB_ENTITY_CLASS, result.getValidatedEntityClass());\r
+                marker.setAttribute(ATTRIB_ENTITY_ID, result.getValidatedEntityId());\r
+            }\r
+        }\r
+        //MessagingUtils.info("New problems: " + i);\r
+        return i;\r
+    }\r
+\r
+    private boolean isObsoleteMarker(IMarker marker) throws CoreException {\r
+        for (EntityConstraintViolation problem : problems) {\r
+            if (isMarkerForProblem(marker, problem)) {\r
+                return false;\r
+            }\r
+        }\r
+        return true;\r
+    }\r
+\r
+    private static boolean isNewProblem(EntityConstraintViolation problem, IMarker[] markers) throws CoreException {\r
+        for (IMarker marker : markers) {\r
+            if (isMarkerForProblem(marker, problem)) {\r
+                return false;\r
+            }\r
+        }\r
+        return true;\r
+    }\r
+\r
+    private static boolean isMarkerForProblem(IMarker marker, EntityConstraintViolation problem) throws CoreException {\r
+        if (isEqual(marker, ATTRIB_DATABASE_ID, new Integer(problem.getId()))) {\r
+            return true;\r
+        }\r
+        EntityValidation result = problem.getEntityValidation();\r
+        if (!isEqual(marker, ATTRIB_ENTITY_ID, result.getValidatedEntityId())) {\r
+            return false;\r
+        }\r
+        if (!isEqual(marker, ATTRIB_INVALID_VALUE, problem.getInvalidValue())) {\r
+            return false;\r
+        }\r
+        if (!isEqual(marker, ATTRIB_ENTITY_CLASS, result.getValidatedEntityClass())) {\r
+            return false;\r
+        }\r
+        if (!isEqual(marker, ATTRIB_USER_FRIENDLY_FIELD_NAME, problem.getUserFriendlyFieldName())) {\r
+            return false;\r
+        }\r
+        if (!isEqual(marker, ATTRIB_VALIDATOR_CLASS, problem.getValidator())) {\r
+            return false;\r
+        }\r
+        return true;\r
+    }\r
+\r
+    private static boolean isEqual(IMarker marker, String attribute, Object value) throws CoreException {\r
+        Object val = marker.getAttribute(attribute);\r
+        boolean equal;\r
+        if (val == null) {\r
+            equal = value == null;\r
+        } else {\r
+            equal = value != null && val.equals(value);\r
+        }\r
+        return equal;\r
+    }\r
 \r
 }\r
index 466c2204199ffaf80fc026b30d7532ef54529f7f..0d0a52a3d15647837a1888d68b71f3a4058b6058 100644 (file)
@@ -8,41 +8,37 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;\r
 import org.eclipse.core.runtime.jobs.Job;\r
 \r
-import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;\r
-import eu.etaxonomy.cdm.api.service.IEntityValidationResultService;\r
-import eu.etaxonomy.cdm.model.validation.EntityValidationResult;\r
+import eu.etaxonomy.cdm.api.service.IEntityValidationService;\r
+import eu.etaxonomy.cdm.model.validation.EntityValidation;\r
 import eu.etaxonomy.taxeditor.model.MessagingUtils;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
 /**\r
  * A job that repeatedly checks the error tables and refreshes the problem\r
  * markers created from them.\r
- * \r
+ *\r
  * @author ayco_holleman\r
- * \r
+ *\r
  */\r
 public class ValidationDaemon extends Job {\r
-\r
        @SuppressWarnings("unused")\r
        private static final Logger logger = Logger.getLogger(ValidationDaemon.class);\r
 \r
-       private final IEntityValidationResultService validationResultService;\r
-       \r
-       @SuppressWarnings("unused")\r
-       /* Not currently needed but present for future use if/when required */\r
-       private final IEntityConstraintViolationService constraintViolationService;\r
+       private final IEntityValidationService entityValidationService;\r
 \r
+       // Might want to make this configurable:\r
+       private int SLEEP_TIME = 5000;\r
+       \r
        private boolean cancelRequested = false;\r
 \r
+\r
+\r
        public ValidationDaemon(){\r
-               super("Initializing validation module");\r
-//             StoreUtil.info("Initializing validation module");\r
-               MessagingUtils.info("Initializing validation module");\r
-               constraintViolationService = CdmStore.getService(IEntityConstraintViolationService.class);\r
-               validationResultService = CdmStore.getService(IEntityValidationResultService.class);\r
+               super("Running validation daemon");\r
+               entityValidationService = CdmStore.getService(IEntityValidationService.class);\r
        }\r
 \r
-       \r
+\r
        @Override\r
        protected void canceling(){\r
                cancelRequested = true;\r
@@ -62,22 +58,19 @@ public class ValidationDaemon extends Job {
        @Override\r
        protected IStatus run(IProgressMonitor monitor){\r
                MarkerManager markerManager;\r
-               List<EntityValidationResult> results;\r
+               List<EntityValidation> results;\r
                try {\r
                        while (!cancelRequested) {\r
-                               results = validationResultService.getValidationResults();\r
+                               results = entityValidationService.getValidationResults();\r
                                markerManager = new MarkerManager(results);\r
                                markerManager.deleteObsoleteMarkers();\r
                                markerManager.createMarkers();\r
-                               // Might want to make this configurable:\r
-                               Thread.sleep(5000);\r
+                               Thread.sleep(SLEEP_TIME);\r
                        }\r
-//                     StoreUtil.info("Validation module stopped");\r
                        MessagingUtils.info("Validation module stopped");\r
                        return Status.OK_STATUS;\r
                }\r
                catch (Throwable t) {\r
-//                     StoreUtil.info("Validation module terminated unexpectedly: " + t.getMessage());\r
                        MessagingUtils.info("Validation module terminated unexpectedly: " + t.getMessage());\r
                        return Status.CANCEL_STATUS;\r
                }\r
index 4b6afb1a12f7a7f8570e1890491b743d95551d3a..b3506ee1403f83e9fdde80ccc0f257f7ef9d05be 100644 (file)
@@ -314,9 +314,9 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
     private void createTable() {
         Table table = viewer.getTable();//new Table(parent, viewer.getTable().getStyle());
         List<String> titles = new ArrayList<String>();
-        Collections.addAll(titles, "Taxon", "Author", "Reference", "Rank");
+        Collections.addAll(titles, "Taxon", "Author", "Rank");
         List<Integer> bounds = new ArrayList<Integer>();
-        Collections.addAll(bounds, 300, 200, 200, 200);
+        Collections.addAll(bounds, 300, 200, 200);
         Map<Integer, Boolean> restoreValuesForColumnWidth = restoreValuesForColumnWidth(titles, bounds);
         createInitalDistributionColumns(table, titles, bounds, restoreValuesForColumnWidth);
         table.setSortDirection(SWT.DOWN);
@@ -325,7 +325,7 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
        }
     /**
      * This method creates initially the distribution columns for a table. It should only be called for creation.<br>
-     *<p> 
+     *<p>
      *
      *<b>Notice:</b> If you want to add additional columns later please use <b>addTableViewerColumn()</b>
      *
@@ -365,9 +365,9 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
 
     /**
      * This methods loads the last opened distribution columns for the table viewer from the prefrence store.<br>
-     *<p> 
+     *<p>
      * <b>Notice:</b> It adds also the TitleCache to the titles list for the header of each column.<p>
-     * 
+     *
      * @param titles
      * @param bounds
      * @return Map<Integer, Boolean>
@@ -390,8 +390,8 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
        }
 
     /**
-     * This method adds new DistributionColumns to an existing table. 
-     * 
+     * This method adds new DistributionColumns to an existing table.
+     *
      * @param title
      * @param bound
      * @param colNumber
@@ -407,9 +407,9 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
         column.setMoveable(true);
         return viewerColumn;
       }
-    
-    
-    
+
+
+
     /**
      *
      * pull data from database and set input for view
@@ -488,7 +488,7 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
      * It will hide the old distribution column and load the newly added columns.<br>
      * <p>
      * <b>Notice:</b> for data update please use <b>refresh()</b>
-     * 
+     *
      */
     @SuppressWarnings({ "unchecked", "rawtypes" })
        public void reload(){
@@ -541,7 +541,7 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
                }
        }
        }
-    
+
     /**
      * <p>
      * Getter for the field <code>service</code>.
index 56af4186aa5a57b11bbacc59372bb4763820188b..0ae5336b38e01875faa6eaa9678eb600bfc49587 100644 (file)
@@ -34,8 +34,6 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Distribution;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.name.NonViralName;
-import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;
-import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -64,7 +62,7 @@ public class ChecklistLabelProvider extends LabelProvider implements ITableLabel
         namedAreas = loadNamedAreas();
         this.viewer = viewer;
     }
-    
+
     /*
      * (non-Javadoc)
      *
@@ -106,15 +104,15 @@ public class ChecklistLabelProvider extends LabelProvider implements ITableLabel
             String authorship = null;
             authorship = (nonVirlaName != null) ? nonVirlaName.getAuthorshipCache() : null;
             return (authorship != null) ? authorship : DEFAULT_ENTRY;
+//        case 2:
+//            String ref = null;
+//            if (taxon.getName() != null) {
+//                INomenclaturalReference nomenclaturalReference = HibernateProxyHelper.deproxy(
+//                        nonVirlaName.getNomenclaturalReference(), Reference.class);
+//                ref = (nomenclaturalReference != null) ? nomenclaturalReference.getAbbrevTitleCache() : null;
+//            }
+//            return (ref != null) ? ref : DEFAULT_ENTRY;
         case 2:
-            String ref = null;
-            if (taxon.getName() != null) {
-                INomenclaturalReference nomenclaturalReference = HibernateProxyHelper.deproxy(
-                        nonVirlaName.getNomenclaturalReference(), Reference.class);
-                ref = (nomenclaturalReference != null) ? nomenclaturalReference.getAbbrevTitleCache() : null;
-            }
-            return (ref != null) ? ref : DEFAULT_ENTRY;
-        case 3:
             String rank = null;
             if (taxon.getName().getRank() != null) {
                 rank = taxon.getName().getRank().toString();
@@ -122,7 +120,7 @@ public class ChecklistLabelProvider extends LabelProvider implements ITableLabel
             return (rank != null) ? rank : DEFAULT_ENTRY;
         }
 
-        if(columnIndex >3){
+        if(columnIndex >2){
 
             for (TaxonDescription td : listTaxonDescriptions) {
                 for (DescriptionElementBase deb : td.getElements()) {
index 5a29a76f394ac831906c0af054c859a8a1ea92b6..caa6991897609acb5672a25d1935bddccf132a7b 100644 (file)
@@ -24,7 +24,7 @@ import eu.etaxonomy.cdm.api.service.ICommonService;
 import eu.etaxonomy.cdm.api.service.IDatabaseService;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;
-import eu.etaxonomy.cdm.api.service.IEntityValidationResultService;
+import eu.etaxonomy.cdm.api.service.IEntityValidationService;
 import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
 import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
 import eu.etaxonomy.cdm.api.service.IGrantedAuthorityService;
@@ -406,7 +406,7 @@ public class TransientCdmRepository implements ICdmApplicationConfiguration {
        }
 
        @Override
-       public IEntityValidationResultService getEntityValidationResultService() {
-               return defaultApplicationConfiguration.getEntityValidationResultService();
+       public IEntityValidationService getEntityValidationService() {
+               return defaultApplicationConfiguration.getEntityValidationService();
        }
 }
index 4a59f3d5bf1c253740568c89c37d6639d6a92914..7231136c0cc6d416f772ca4d007b5d0e8bb4e29f 100644 (file)
@@ -922,18 +922,12 @@ public class TransientOccurenceService implements IOccurrenceService {
                return defaultService.findWithoutFlush(uuid);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listFieldUnitsByAssociatedTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.List, java.util.List)
-        */
        @Override
        public Collection<SpecimenOrObservationBase> listFieldUnitsByAssociatedTaxon(Taxon associatedTaxon,
                List<OrderHint> orderHints, List<String> propertyPaths) {
            return defaultService.listFieldUnitsByAssociatedTaxon(associatedTaxon, orderHints, propertyPaths);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#pageFieldUnitsByAssociatedTaxon(java.util.Set, eu.etaxonomy.cdm.model.taxon.Taxon, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-        */
        @Override
        public Pager<SpecimenOrObservationBase> pageFieldUnitsByAssociatedTaxon(
                Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize,
@@ -942,17 +936,11 @@ public class TransientOccurenceService implements IOccurrenceService {
        }
 
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#assembleDerivateHierarchyDTO(eu.etaxonomy.cdm.model.occurrence.FieldUnit, java.util.UUID)
-     */
     @Override
     public DerivateHierarchyDTO assembleDerivateHierarchyDTO(FieldUnit fieldUnit, UUID associatedTaxonUuid) {
         return defaultService.assembleDerivateHierarchyDTO(fieldUnit, associatedTaxonUuid);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getNonCascadedAssociatedElements(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.api.conversation.ConversationHolder)
-     */
     @Override
     public Collection<ICdmBase> getNonCascadedAssociatedElements(SpecimenOrObservationBase<?> specimen) {
         return defaultService.getNonCascadedAssociatedElements(specimen);
index e5bdcc9dd51baec814674fa64f8129c2cc61e180..cd866583f768d11d9f10ae40fd7c417d349e904d 100644 (file)
@@ -2,7 +2,7 @@
 <feature
       id="eu.etaxonomy.taxeditor.feature.platform"
       label="Taxeditor Dependencies"
-      version="3.4.1.qualifier"
+      version="3.5.0.qualifier"
       os="linux,macosx,win32"
       ws="cocoa,gtk,win32"
       arch="x86,x86_64">
index 8cf8942ce2d5f65d025fd2fc6ef3134b9d579b8e..a5b724ae8bf815c9731cf2651c8b6c7e14975fe5 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>3.4.1-SNAPSHOT</version>
+               <version>3.5.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>eu.etaxonomy.taxeditor.feature.platform</artifactId>
index 30f68d152ce802dcfa0eb2399ee01c1a11018049..b63c593dd8453c755977b0afde3c4364e279b4cd 100644 (file)
@@ -3,3 +3,8 @@ bin.includes = feature.xml
 category.id.eu.etaxonomy=EDIT
 category.description.eu.etaxonomy=EDIT Taxonomic Editor
 category.members.eu.etaxonomy=eu.etaxonomy.taxeditor.feature
+#root.win32.win32.x86_64 = win-64-jre
+#root.win32.win32.x86 = win-32-jre
+#root.linux.gtk.x86=linux-32-jre
+#root.linux.gtk.x86_64=linux-64-jre
+#root.macosx.cocoa.x86_64=mac-64-jre
\ No newline at end of file
index fddde21d23f7e0b2d6fb8bd21d06b11af6309fcf..c190377cb013093795c499d79d0f683865992f16 100644 (file)
@@ -2,7 +2,7 @@
 <feature
       id="eu.etaxonomy.taxeditor.feature"
       label="Taxonomic Editor"
-      version="3.4.1.qualifier"
+      version="3.5.0.qualifier"
       provider-name="EDIT"
       plugin="eu.etaxonomy.taxeditor.application"
       os="linux,macosx,win32"
index ffa131cd2c1f67a7c42a6aa52d77bbcc749ed8b5..6f08204ab9a7fddd9114223505767a95b3d89ec2 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>3.4.1-SNAPSHOT</version>
+               <version>3.5.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>eu.etaxonomy.taxeditor.feature</artifactId>
index dd7490da21d54faad4a16fe651f1034f85f94dca..c1566bc3e354561136d662b70f9ded4d1ccd0034 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Help
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.help; singleton:=true
-Bundle-Version: 3.4.1.qualifier
+Bundle-Version: 3.5.0.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.help.Activator
 Bundle-Vendor: EDIT
 Require-Bundle: org.eclipse.ui,
index 9c535e4fc5f5d4311d197e53359ac5e4f7c006f1..9ab3156f1644d757fb50f24c42e0652fc54b17fb 100644 (file)
@@ -4,7 +4,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>3.4.1-SNAPSHOT</version>
+               <version>3.5.0-SNAPSHOT</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 7934335c5226f3f1bdafa97be2c51b9c8d1aaa35..005bc660a75b13889277a142a8cf7c8c0db680aa 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Navigation Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.navigation;singleton:=true
-Bundle-Version: 3.4.1.qualifier
+Bundle-Version: 3.5.0.qualifier
 Bundle-Vendor: EDIT
 Export-Package: eu.etaxonomy.cdm,
  eu.etaxonomy.taxeditor.navigation,
index 571b000e2e3f989bd510ee2a66a24ff7206362c8..acd510f0792316f66a6a68d3244295224f21cf44 100644 (file)
@@ -3,7 +3,6 @@ SearchBar_1=Search
 SearchBar_2=Could not execute search\r
 SearchBar_3=Please type at least one character when using the "*" wildcard.\r
 SearchBar_4=Error opening search result.\r
-SearchBar_5=configuration menu clicked\r
 SearchBar_6=Taxa\r
 SearchBar_7=Synonyms\r
 SearchBar_8=Names (without taxa)\r
index 314ea1be719cd44375089e885bea565ca1788a33..288a452df7b11c8daf7e70041f14516f147a9657 100644 (file)
@@ -3,7 +3,6 @@ SearchBar_1=Suche
 SearchBar_2=Suche konnte nicht ausgef\u00FChrt werden\r
 SearchBar_3=Bitte geben Sie mindestens ein Zeichen, wenn Sie die "*" Platzhalter benutzen wollen\r
 SearchBar_4=Fehler beim f\u00fcffnen des Suchergebnisses\r
-SearchBar_5=Konfigurationsmenü angeklickt\r
 SearchBar_6=Taxa\r
 SearchBar_7=Synonyme\r
 SearchBar_8=Namen (ohne Taxa)\r
index 571b000e2e3f989bd510ee2a66a24ff7206362c8..acd510f0792316f66a6a68d3244295224f21cf44 100644 (file)
@@ -3,7 +3,6 @@ SearchBar_1=Search
 SearchBar_2=Could not execute search\r
 SearchBar_3=Please type at least one character when using the "*" wildcard.\r
 SearchBar_4=Error opening search result.\r
-SearchBar_5=configuration menu clicked\r
 SearchBar_6=Taxa\r
 SearchBar_7=Synonyms\r
 SearchBar_8=Names (without taxa)\r
index 78ff843f3c5f4da5f134f8b7a0fad9adf118164c..74a06c5b4bebf9b977e4c3210a5ebb0f8e7f0c13 100644 (file)
               </and>
             </visibleWhen>
          </command>
+         <command
+               commandId="eu.etaxonomy.taxeditor.editor.handler.OpenFixClassificationHierarchyHandler"
+               label="Fix Classification Hierarchy"
+               style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <and>
+                  <reference
+                        definitionId="isShowExperimentalFeatures">
+                  </reference>
+                  <reference
+                        definitionId="isClassification">
+                  </reference>
+               </and>
+            </visibleWhen>
+         </command>
          <separator
                name="taxeditor-navigation.separator1"
                visible="true">
          properties="isCdmStoreConnected"
          type="org.eclipse.jface.viewers.IStructuredSelection">
    </propertyTester>
+   <propertyTester
+         class="eu.etaxonomy.taxeditor.preference.PreferencePropertyTester"
+         id="eu.etaxonomy.taxeditor.preferences.propertyTester"
+         namespace="eu.etaxonomy.taxeditor.preferences.propertyTester"
+         properties="isShowExperimentalFeatures"
+         type="org.eclipse.jface.viewers.IStructuredSelection">
+   </propertyTester>
    </extension>
    <extension
          point="org.eclipse.core.expressions.definitions">
             </test>
          </with>
       </definition>
+      <definition
+            id="isShowExperimentalFeatures">
+         <with
+               variable="selection">
+            <test
+                  property="eu.etaxonomy.taxeditor.preferences.propertyTester.isShowExperimentalFeatures">
+            </test>
+         </with>
+      </definition>
    </extension>
 </plugin>
index 1e08059be538b4190645add7d4b8bd0fc2109166..829abb1e53e7d86efe244c69194dfae2902869c8 100644 (file)
@@ -4,7 +4,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>3.4.1-SNAPSHOT</version>
+               <version>3.5.0-SNAPSHOT</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 5d3c21a3156753a35c1cb05a119c3a7c17c265a5..23932674ccb4f315f238ad30434c4102ecba8507 100644 (file)
@@ -23,7 +23,6 @@ public class Messages extends NLS {
     public static String SearchBar_2;\r
     public static String SearchBar_3;\r
     public static String SearchBar_4;\r
-    public static String SearchBar_5;\r
     public static String SearchBar_6;\r
     public static String SearchBar_7;\r
     public static String SearchBar_8;\r
index e27d247dd40c0cfef90dc3ce04919bea3fbcc0ff..bd04a0febe04f5be864afbb76ce684595bb4d0fe 100644 (file)
@@ -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.
  */
@@ -75,7 +75,7 @@ public class SearchBar extends WorkbenchWindowControlContribution{
         * Handles focus changes for the search textfield.
         */
        private void registerAtFocusService() {
-               IFocusService focusService = 
+               IFocusService focusService =
                        (IFocusService) PlatformUI.getWorkbench().getService(IFocusService.class);
                if (focusService != null) {
                        focusService.addFocusTracker(text_search, "navigation.textControlId");
@@ -124,14 +124,16 @@ public class SearchBar extends WorkbenchWindowControlContribution{
        private void addTextListeners() {
                text_search.addFocusListener(new FocusListener() {
 
-                       public void focusGained(FocusEvent e) {
+                       @Override
+            public void focusGained(FocusEvent e) {
                                text_search.setForeground(NavigationUtil.getColor(Resources.SEARCH_VIEW_FOCUS));
                                if (defaultText.equals(text_search.getText())) {
                                        text_search.setText("");
                                }
                        }
 
-                       public void focusLost(FocusEvent e) {
+                       @Override
+            public void focusLost(FocusEvent e) {
                                if (text_search.getText() == "") {
                                        text_search.setForeground(NavigationUtil.getColor(Resources.SEARCH_VIEW_FOREGROUND));
                                        text_search.setText(defaultText);
@@ -176,35 +178,36 @@ public class SearchBar extends WorkbenchWindowControlContribution{
                if(searchString == null){
                        return;
                }
-               
+
                if("*".equals(searchString.trim())){
                        MessagingUtils.warningDialog(Messages.SearchBar_2, this, Messages.SearchBar_3);
                        return;
                }
-               
-               
+
+
                IFindTaxaAndNamesConfigurator configurator = configurationListener.getConfigurator();
                configurator.setTitleSearchString(searchString);
                openSearchResultsView(configurator);
-               
+
        }
-       
+
        private String getSearchString(){
                String searchString = text_search.getText().trim();
-               if (searchString.equals(defaultText) || searchString.length() == 0)
-                       return null;
+               if (searchString.equals(defaultText) || searchString.length() == 0) {
+            return null;
+        }
                return searchString;
        }
-       
+
        /**
         * Opens a new instance of the search result view to display the result to the user.
-        * 
+        *
         * @param searchResult
         */
        private void openSearchResultsView(IFindTaxaAndNamesConfigurator configurator) {
                boolean openResultInSeparateWindows = PreferencesUtil.getPreferenceStore().getBoolean((IPreferenceKeys.SEARCH_OPEN_RESULTS_IN_SEPARATE_WINDOWS));
                if(openResultInSeparateWindows){
-                       //increment change secondary id so it is unique 
+                       //increment change secondary id so it is unique
                        secondaryId += "1";
                }
 
@@ -221,7 +224,7 @@ public class SearchBar extends WorkbenchWindowControlContribution{
 
        /**
         * Handles drop down menu selection. Available items are defined in the enumeration SearchOption.
-        * 
+        *
         * @author n.hoffmann
         * @created Feb 2, 2010
         * @version 1.0
@@ -258,7 +261,7 @@ public class SearchBar extends WorkbenchWindowControlContribution{
 
        /**
         * Handles search configuration selection.
-        * 
+        *
         * @author n.hoffmann
         * @created Feb 2, 2010
         * @version 1.0
@@ -266,17 +269,16 @@ public class SearchBar extends WorkbenchWindowControlContribution{
        class ConfigurationSelectionListener extends SelectionAdapter {
 
                private IFindTaxaAndNamesConfigurator configurator = PreferencesUtil.getSearchConfigurator();
-               
+
                /*
                 * (non-Javadoc)
-                * 
+                *
                 * @see
                 * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse
                 * .swt.events.SelectionEvent)
                 */
                @Override
                public void widgetSelected(SelectionEvent e) {
-                       MessagingUtils.info(Messages.SearchBar_5);
                        SearchOption option = (SearchOption) e.widget.getData();
 
                        switch (option){
@@ -291,9 +293,9 @@ public class SearchBar extends WorkbenchWindowControlContribution{
                                break;
                        case COMMON_NAME:
                                configurator.setDoTaxaByCommonNames(getConfigurator().isDoTaxaByCommonNames() ? false : true);
-                               break;                          
+                               break;
                        }
-                       
+
                        saveConfigurator();
                }
 
@@ -309,15 +311,15 @@ public class SearchBar extends WorkbenchWindowControlContribution{
 
        /**
         * Available search options.
-        * 
+        *
         * @author n.hoffmann
         * @created Feb 2, 2010
         * @version 1.0
         */
        enum SearchOption {
-               TAXON(Messages.SearchBar_6), 
-               SYNONYM(Messages.SearchBar_7), 
-               NAME(Messages.SearchBar_8), 
+               TAXON(Messages.SearchBar_6),
+               SYNONYM(Messages.SearchBar_7),
+               NAME(Messages.SearchBar_8),
                COMMON_NAME(Messages.SearchBar_9);
 
                private final String label;
index 42d100a8042f322d513966a3a2c705b4e82389ce..d699d09a6200a570b7bd9a25a68bb482ee0e489c 100644 (file)
 \r
     \r
     <!-- enable the configuration of transactional behavior based on annotations -->\r
-    <tx:annotation-driven transaction-manager="transactionManager"/>      \r
+    <tx:annotation-driven transaction-manager="transactionManager"/>\r
+    \r
+<!-- <bean id="validationManager" class="eu.etaxonomy.cdm.api.validation.ValidationManager" scope="prototype"/> -->\r
+        \r
   \r
 \r
     \r
index c21dab12c54b558d966349f476c5dcf3733af7c3..068521fbccfd12b47c855c938a0080ba2ddef445 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Printpublisher Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.printpublisher;singleton:=true
-Bundle-Version: 3.4.1.qualifier
+Bundle-Version: 3.5.0.qualifier
 Require-Bundle: org.eclipse.osgi,
  org.eclipse.ui,
  eu.etaxonomy.taxeditor.cdmlib,
index 4184183b4d720b347f504a85cd011b14dfec7498..6c88ef655ee8e38e960bb6eb950fd4c08df6f1c5 100644 (file)
@@ -4,7 +4,7 @@
        <parent>
                <artifactId>taxeditor-parent</artifactId>
                <groupId>eu.etaxonomy</groupId>
-               <version>3.4.1-SNAPSHOT</version>
+               <version>3.5.0-SNAPSHOT</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 52922d02554dfb7b746a57edb6edb62cd7261041..4ace663fb6290039d24f3dde9dba770b29256c1c 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: DataStore Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.store;singleton:=true
-Bundle-Version: 3.4.1.qualifier
+Bundle-Version: 3.5.0.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin
 Bundle-Vendor: EDIT
 Export-Package: eu.etaxonomy.cdm,
index b18da903ef0b6429ee1ef38aff53110fb27aaf60..7f7aced7223f536218f6b1f22e0f7884d1769a2b 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
        <groupId>eu.etaxonomy</groupId>
        <artifactId>taxeditor-parent</artifactId>
-       <version>3.4.1-SNAPSHOT</version>
+       <version>3.5.0-SNAPSHOT</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index 23e6825e38192a9c63de4dd6f5e2daa86db0c334..df90397af4c901336471623a5ae1f7ac5fc24536 100644 (file)
@@ -6,7 +6,6 @@ package eu.etaxonomy.taxeditor.parser;
 import java.util.ArrayList;
 import java.util.List;
 
-import eu.etaxonomy.cdm.api.service.ICommonService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.name.NonViralName;
@@ -302,7 +301,7 @@ public class ParseHandler{
             return new ArrayList<INomenclaturalReference>();
         }
                try{
-                       return CdmStore.getService(ICommonService.class).findMatching(nomenclaturalReference, MatchStrategyConfigurator.ReferenceMatchStrategy());
+                       return CdmStore.getCommonService().findMatching(nomenclaturalReference, MatchStrategyConfigurator.ReferenceMatchStrategy());
                }catch (MatchException e) {
                        MessagingUtils.error(this.getClass(), "Error finding matching references", e);
                }
@@ -320,7 +319,7 @@ public class ParseHandler{
                }
 
                try{
-                       return CdmStore.getService(ICommonService.class).findMatching(authorTeam, MatchStrategyConfigurator.TeamOrPersonMatchStrategy());
+                       return CdmStore.getCommonService().findMatching(authorTeam, MatchStrategyConfigurator.TeamOrPersonMatchStrategy());
                }catch (MatchException e) {
                        MessagingUtils.error(this.getClass(), "Error finding matching authors", e);
                }
@@ -334,7 +333,7 @@ public class ParseHandler{
        private List<TaxonNameBase> findMatchingLatinNames(TaxonNameBase taxonNameBase) {
 
                try {
-                       return CdmStore.getService(ICommonService.class).findMatching(taxonNameBase, MatchStrategyConfigurator.NonViralNameMatchStrategy());
+                       return CdmStore.getCommonService().findMatching(taxonNameBase, MatchStrategyConfigurator.NonViralNameMatchStrategy());
 
                } catch (MatchException e) {
                        MessagingUtils.error(this.getClass(), "Error finding matching names", e);
index f6b224dfcdd64a69149303684001fb1937b22f60..ae32adb527300737cc101b9902e874681455f28a 100644 (file)
@@ -27,6 +27,7 @@ import org.springframework.security.core.context.SecurityContextHolder;
 
 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;
@@ -285,6 +286,17 @@ public class CdmStore {
 
                return service;
        }
+       
+       /**
+        * @see #getService(Class)
+        * As ICommonService is not extending IService we need a specific request here
+        */
+       public static ICommonService getCommonService() {
+               ICdmApplicationConfiguration configuration = getCurrentApplicationConfiguration();
+
+               return configuration.getCommonService();
+
+       }
 
        /**
         * <p>
index 5387e723c860576136694cb0102361381a4a9044..e7c5aa0b74c608e7ec35e6b78ce4149637f486af 100644 (file)
@@ -18,21 +18,17 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.widgets.Display;
-import org.hibernate.collection.internal.AbstractPersistentCollection;
-import org.hibernate.proxy.AbstractLazyInitializer;
 import org.springframework.core.io.Resource;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationController;
 import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
 import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
-import eu.etaxonomy.cdm.config.ICdmSource;
-import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
 import eu.etaxonomy.cdm.config.CdmSourceException;
-import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
+import eu.etaxonomy.cdm.config.ICdmSource;
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
 import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
-import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
+import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
 import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.ui.dialog.LoginDialog;
@@ -68,7 +64,7 @@ class CdmStoreConnector extends Job {
        public IStatus run(final IProgressMonitor monitor) {
 
                monitor.beginTask(getConnectionMessage(), 10);
-
+               
                // check if database is up and running
                checkDatabaseReachable(monitor);
 
@@ -97,16 +93,17 @@ class CdmStoreConnector extends Job {
                        CdmProgressMonitorAdapter subprogressMonitor = CdmProgressMonitorAdapter
                                        .CreateSubMonitor(monitor, 7);
                        // This is where we instantiate the application controller
+                       int oldPriority = Thread.currentThread().getPriority();
                        try {
-                               
+                               Thread.currentThread().setPriority(10);
                                applicationController = getApplicationController(cdmSource,subprogressMonitor);
-                       
                        } catch (Exception e) {
                                if(! causeIsCancelationExceptionRecursive(e)){
                                        return new Status(IStatus.ERROR, "Could not connect to CDM Store", "An error occurred while trying to connect to datasource: " + cdmSource.getName(), e);
                                }
                        } finally {
                                monitor.done();
+                               Thread.currentThread().setPriority(oldPriority);
                        }
                }
                
index 720b4e865d48b0bf95ca38e57c076feb3a3eb999..2715c99878e530c69b0651d46f45424f2e44bdbb 100644 (file)
@@ -71,7 +71,6 @@ public class DeleteSpecimenConfiguratorComposite extends Composite {
         btnDeleteIndividualsassociationsfactual.setText("Delete from factual data");
 
         btnDeleteSpecimenDescription = new Button(this, SWT.CHECK);
-        toolkit.adapt(btnDeleteSpecimenDescription, true, true);
         btnDeleteSpecimenDescription.setText("Delete specimen description");
         m_bindingContext = initDataBindings();
 
index 5cc7743d878c0fefde03b0edff0217f862edf124..30c64bdaa2bfc9657628f4d51cee3c43d0d264d8 100644 (file)
@@ -73,7 +73,7 @@ public class TeamMemberSection extends AbstractEntityCollectionSection<Team, Per
        /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
-               return "Add a membmer to this team";
+               return "Add a member to this team";
        }
 
        /** {@inheritDoc} */
index 0283c721d418df04c8b08337c05b79d4190ff013..88e9bb723bf99e2b093478774a4c4a2ffb9409f0 100644 (file)
@@ -465,7 +465,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
                            service = (IService<T>) CdmStore.getService(IAmplificationService.class);
                        }
                        //check if original already exists in data base. If not then do not clone and all changes will be persisted directly -> Warning to user.
-                if(service !=null && service.find(originalEntity.getUuid())==null){
+                if(service !=null && service.find(originalEntity.getUuid())==null && originalEntity.getId() != 0){
                     if(MessagingUtils.confirmDialog(TRANSIENT_EDITING_WARNING_TITLE, "["+originalEntity.getClass().getSimpleName()+"]"+originalEntity + " has to be saved before it can be edited. Save now?")){
                         service.save(originalEntity);
                         AbstractUtility.getActiveEditor().doSave(new NullProgressMonitor());
@@ -508,6 +508,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
                        }
                        //be sure to reset to original in all cases
                        selectionElement.setEntity(originalEntity);
+                       selectionElement.refresh();
                }
        }
 
index ce9f26a8d0e79de99c3a4d453c1962b1182c3b7c..89380c11dcf0452b2f18c572d54244eb8940ccd4 100644 (file)
@@ -1,55 +1,55 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="3.4.1.qualifier" useFeatures="true" includeLaunchers="true">
-
-   <aboutInfo>
-      <image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
-      <text>
-         %productBlurb
-      </text>
-   </aboutInfo>
-
-   <configIni use="default">
-   </configIni>
-
-   <launcherArgs>
-      <programArgs>-data @user.home/.cdmLibrary -Dserver_port=58080</programArgs>
-      <vmArgs>-Xmx512M -XX:MaxPermSize=256M -Dorg.eclipse.update.reconcile=false -Declipse.p2.unsignedPolicy=allow</vmArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
-   </launcherArgs>
-
-   <windowImages i16="/eu.etaxonomy.taxeditor.application/icons/256color_16x16.gif" i32="/eu.etaxonomy.taxeditor.application/icons/256color_32x32.gif" i48="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
-
-   <splash
-      location="eu.etaxonomy.taxeditor.application"
-      startupProgressRect="5,447,366,15"
-      startupMessageRect="7,432,360,20"
-      startupForegroundColor="000000" />
-   <launcher name="TaxonomicEditor">
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <vm>
-   </vm>
-
-   <plugins>
-   </plugins>
-
-   <features>
-      <feature id="eu.etaxonomy.taxeditor.feature"/>
-   </features>
-
-   <configurations>
-      <plugin id="eu.etaxonomy.taxeditor.application" autoStart="true" startLevel="5" />
-      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="4" />
-      <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
-      <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
-      <plugin id="org.eclipse.equinox.p2.transport.ecf" autoStart="true" startLevel="4" />
-      <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
-   </configurations>
-
-</product>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<?pde version="3.5"?>\r
+\r
+<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="3.5.0.qualifier" useFeatures="true" includeLaunchers="true">\r
+\r
+   <aboutInfo>\r
+      <image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>\r
+      <text>\r
+         %productBlurb\r
+      </text>\r
+   </aboutInfo>\r
+\r
+   <configIni use="default">\r
+   </configIni>\r
+\r
+   <launcherArgs>\r
+      <programArgs>-data @user.home/.cdmLibrary -Dserver_port=58080 </programArgs>\r
+      <vmArgs>-Xmx512M -XX:MaxPermSize=256M -Dorg.eclipse.update.reconcile=false -Declipse.p2.unsignedPolicy=allow</vmArgs>\r
+      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>\r
+   </launcherArgs>\r
+\r
+   <windowImages i16="/eu.etaxonomy.taxeditor.application/icons/256color_16x16.gif" i32="/eu.etaxonomy.taxeditor.application/icons/256color_32x32.gif" i48="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>\r
+\r
+   <splash\r
+      location="eu.etaxonomy.taxeditor.application"\r
+      startupProgressRect="5,447,366,15"\r
+      startupMessageRect="7,432,360,20"\r
+      startupForegroundColor="000000" />\r
+   <launcher name="TaxonomicEditor">\r
+      <solaris/>\r
+      <win useIco="false">\r
+         <bmp/>\r
+      </win>\r
+   </launcher>\r
+\r
+   <vm>\r
+   </vm>\r
+\r
+   <plugins>\r
+   </plugins>\r
+\r
+   <features>\r
+      <feature id="eu.etaxonomy.taxeditor.feature"/>\r
+   </features>\r
+\r
+   <configurations>\r
+      <plugin id="eu.etaxonomy.taxeditor.application" autoStart="true" startLevel="5" />\r
+      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="4" />\r
+      <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />\r
+      <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />\r
+      <plugin id="org.eclipse.equinox.p2.transport.ecf" autoStart="true" startLevel="4" />\r
+      <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />\r
+   </configurations>\r
+\r
+</product>\r
index 8402df69e656f362a7bee6d5b613c9371169789d..6becdb900075f11c6a5419c53452748f027fcae1 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>3.4.1-SNAPSHOT</version>
+    <version>3.5.0-SNAPSHOT</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/pom.xml b/pom.xml
index 4f816be18018001a875e3f5d7093b5221b7d1fad..76301eaf952f7f5a26d309128820d88e4af4497b 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
   </prerequisites>
   <groupId>eu.etaxonomy</groupId>
   <artifactId>taxeditor-parent</artifactId>
-  <version>3.4.1-SNAPSHOT</version>
+  <version>3.5.0-SNAPSHOT</version>
   <name>EDIT Taxonomic Editor</name>
   <description>The Taxonomic Editor for EDIT's platform for
     cybertaxonomy</description>
   <properties>
     <java.codelevel>1.6</java.codelevel>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <cdmlib.version>3.4.1-SNAPSHOT</cdmlib.version>
+    <cdmlib.version>3.5.0-SNAPSHOT</cdmlib.version>
     <!-- TODO can we use project.version ????? -->
-    <tycho.version>0.14.0</tycho.version>
-    <taxeditor.version>3.4.1-SNAPSHOT</taxeditor.version>
+    <tycho.version>0.22.0</tycho.version>
+    <taxeditor.version>3.5.0-SNAPSHOT</taxeditor.version>
     <update.dir>snapshot</update.dir>
   </properties>
   <modules>