ref #8034: fix handling with recently selected references in s
authorKatja Luther <k.luther@bgbm.org>
Wed, 18 Sep 2019 15:41:59 +0000 (17:41 +0200)
committerKatja Luther <k.luther@bgbm.org>
Wed, 18 Sep 2019 15:42:30 +0000 (17:42 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ReferenceSelectionDialog.java

index e504c3213159d3db32d98c5a1603b6d447f8e6d2..e45ea387c6eed4d066b79b43a6189486ff7dbdaf 100644 (file)
@@ -153,7 +153,7 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
        @Override
        protected void callService(String pattern) {
 
-           if (StringUtils.isBlank(pattern) && lastSelectedReferences == null){
+           if (StringUtils.isBlank(pattern) ){
                lastSelectedReferences = PreferencesUtil.getLastSelectedReferences();
                Set<UUID> uuids = new HashSet<>();
                for (String uuidString: lastSelectedReferences){
@@ -161,7 +161,12 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
                }
                if (!uuids.isEmpty()){
                    if (currentReference != null){
-                       model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCacheForUUIDS(uuids, currentReference.getType());
+                       uuids.remove(currentReference.getUuid());
+                       if (isInReference){
+                           model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCacheForUUIDS(uuids, currentReference.getType());
+                       }else{
+                           model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCacheForUUIDS(uuids);
+                       }
                    }else{
                        model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCacheForUUIDS(uuids);
                    }
@@ -180,6 +185,7 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
                     model.add(dto.getCdmEntity());
                 }
             }else{
+
                 model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache(limitOfInitialElements,pattern, currentReference.getType());
             }