ref #4573: handle duplicate user and group name in editor
authorKatja Luther <k.luther@bgbm.org>
Tue, 21 Aug 2018 10:25:29 +0000 (12:25 +0200)
committerKatja Luther <k.luther@bgbm.org>
Tue, 21 Aug 2018 10:25:29 +0000 (12:25 +0200)
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/e4/handler/NewObjectHandlerE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/GroupCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties

index 613f849845a458edba0a56bbc876ecebdafa1388..6865241fe081fb92416ff3675a60dd5e72ebace3 100644 (file)
@@ -75,6 +75,9 @@ public class NewObjectHandlerE4 {
             if (dialog.open() != Window.CANCEL) {
                 IEntityCreator entityCreator = bulkEditor.getEditorInput().getEntityCreator();
                 Object createdEntity = entityCreator.createEntity(key, dialog.getValue());
+                if (createdEntity == null){
+                    return;
+                }
                 bulkEditor.getEditorInput().getModel().add(createdEntity);
                 if (createdEntity instanceof CdmBase){
                     bulkEditor.getEditorInput().addSaveCandidate((CdmBase)createdEntity);
index 1f18560bddbd054f3c0d20a56c63eee371c181eb..d8fd6259a6684fbed335934670fe131489940e76 100644 (file)
 package eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
+import eu.etaxonomy.cdm.api.service.IGroupService;
 import eu.etaxonomy.cdm.model.common.Group;
+import eu.etaxonomy.cdm.persistence.query.MatchMode;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author n.hoffmann
@@ -29,7 +36,8 @@ public class GroupCreator implements IEntityCreator<Group> {
         */
        @Override
        public Group createEntity(String text) {
-               return createEntity(null, text);
+               Group group = createEntity(null, text);
+               return group;
        }
 
        /* (non-Javadoc)
@@ -37,7 +45,19 @@ public class GroupCreator implements IEntityCreator<Group> {
         */
        @Override
        public Group createEntity(Object key, String text) {
-               return Group.NewInstance(text);
+           List<Group> groupList =CdmStore.getService(IGroupService.class).listByName(text, MatchMode.EXACT, null, 100, 0, null, null);
+
+        if (groupList.isEmpty()){
+            Group group = Group.NewInstance(text);
+            UUID groupUuid = CdmStore.getService(IGroupService.class).saveGroup(group);
+            group = CdmStore.getService(IGroupService.class).loadWithUpdate(groupUuid);
+            return group;
+        } else{
+            MessagingUtils.messageDialog(Messages.GROUP_CREATOR_group_exists_title, text, Messages.GROUP_CREATOR_group_exists);
+            return null;
+        }
+
+
        }
 
        /* (non-Javadoc)
index fa22ae4def3315c03923e580d85c164eb8b76b8a..cc7396370a6aa3fdbf6788d16f276c0027122849 100644 (file)
@@ -10,6 +10,8 @@ public class Messages extends NLS {
     public static String AbstractBulkEditorInput_MERGE_ERROR_TITLE;
     public static String USER_CREATOR_user_exists_title;
     public static String USER_CREATOR_user_exists;
+    public static String GROUP_CREATOR_group_exists_title;
+    public static String GROUP_CREATOR_group_exists;
     public static String BulkEditorE4_CANCEL;
     public static String BulkEditorE4_DONT_SAVE;
     public static String BulkEditorE4_SAVE_AND_SEARCH;
index 5fe8b73a3a87fa4148cdf67fcdd5e341544bc3a5..18e59325163775d513d49a81fe81f666532299ff 100644 (file)
@@ -25,6 +25,8 @@ BulkEditorTooltip_TARGET=Target for duplicate removal
 
 USER_CREATOR_user_exists_title=The user already exists
 USER_CREATOR_user_exists=The user already exists in database
+GROUP_CREATOR_group_exists_title=The group already exists
+GROUP_CREATOR_group_exists=The group already exists in database.
 ReferencingObjectsLabelProvider_No_description_available=No description available
 ConvertPerson2TeamHandler_warning=While reloading the data an exception occurred
 ConvertPerson2TeamHandler_lable=Convert Person to Team
index dad790d8347340f782a69361f496f4bde80e10a8..8dea600f5e5088c1b9c32e4591a245ad1cdaa187 100644 (file)
@@ -25,6 +25,9 @@ BulkEditorTooltip_TARGET=Ziel f
 
 USER_CREATOR_user_exists_title=Der Benutzer existiert bereits
 USER_CREATOR_user_exists=Der Benutzer existiert bereits in der Datenbank.
+GROUP_CREATOR_group_exists_title=Die Gruppe existiert bereits
+GROUP_CREATOR_group_exists=Die Gruppe existiert bereits in der Datenbank.
+
 ReferencingObjectsLabelProvider_No_description_available=Keine Beschreibung verfügbar
 ConvertPerson2TeamHandler_warning=Beim Neuladen der Daten ist ein Fehler aufgetreten
 ConvertPerson2TeamHandler_lable=Wandle Person in Team um