ref #7439 Move event list to editor input
authorPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 30 May 2018 08:38:57 +0000 (10:38 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 30 May 2018 08:38:57 +0000 (10:38 +0200)
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java

index 8dbd494f0fccd98cc3bbb46b9d2e255b75239a78..17c177d2acb70df3dbdfed0424f8fca6a3a7f71b 100644 (file)
@@ -124,8 +124,6 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
 
     private BulkEditorQuery lastQuery = null;
 
-    private BasicEventList<CdmBase> list;
-
     private Composite bottomComposite;
 
     @Inject
@@ -236,12 +234,11 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
         }
 
         //++++NatTable++++
-        list = new BasicEventList<>();
         Map<String, String> propertyToLabels = new HashMap<>();
         propertyToLabels.put(getEditorInput().getName(), getEditorInput().getName());
         propertyToLabels.put(TYPE_PROPERTY, TYPE_PROPERTY);
         String[] propertyNames = new String[] { getEditorInput().getName(), TYPE_PROPERTY };
-        bodyDataProvider = new ListDataProvider<CdmBase>(list,
+        bodyDataProvider = new ListDataProvider<CdmBase>(getEditorInput().getModel(),
                 new BulkEditorPropertyAccessor(getEditorInput()));
 
 
@@ -251,7 +248,7 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
                 bodyDataProvider);
 
         DataLayer dataLayer = new DataLayer(bodyDataProvider);
-        GlazedListsEventLayer<CdmBase> eventLayer = new GlazedListsEventLayer<>(dataLayer, list);
+        GlazedListsEventLayer<CdmBase> eventLayer = new GlazedListsEventLayer<>(dataLayer, getEditorInput().getModel());
         DefaultBodyLayerStack bodyLayer = new DefaultBodyLayerStack(eventLayer);
         selectionLayer = bodyLayer.getSelectionLayer();
 
@@ -312,7 +309,7 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
 
             @Override
             public Serializable getRowId(CdmBase rowObject) {
-                return list.indexOf(rowObject);
+                return getEditorInput().getModel().indexOf(rowObject);
             }
 
         }));
@@ -417,10 +414,7 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
 //            getEditorInput().bind();
             getEditorInput().performSearch(query);
             lastQuery = query;
-            List model = getEditorInput().getModel();
 //            viewer.setInput(model);
-            list.clear();
-            list.addAll(model);
 
             refresh();
         }
index c90abbf6fd75133c98cc00f4db03ead1cb0928d4..75711453d799f94267377a09b4f7fd1657a171f1 100644 (file)
@@ -19,6 +19,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.UUID;
 
+import ca.odell.glazedlists.BasicEventList;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
@@ -51,7 +52,7 @@ public abstract class AbstractBulkEditorInput<T extends CdmBase> extends CdmEnti
 
        private UUID entityUuid;
 
-       private List<T> model = new ArrayList<>();
+       private BasicEventList<T> model = new BasicEventList<>();
 
        private Map<T, DeleteConfiguratorBase> toDelete = new HashMap<>();
        private List<T> saveCandidates = new ArrayList<>();
@@ -135,28 +136,25 @@ public abstract class AbstractBulkEditorInput<T extends CdmBase> extends CdmEnti
        }
 
        public void performSearch(final BulkEditorQuery bulkEditorQuery) {
-
-               List<T> entityList = new ArrayList<T>();
+           model.clear();
+           BasicEventList<T> entityList = new BasicEventList<>();
 
                if(getEntityUuid() != null){
 
                        T entity = loadEntity(getEntityUuid());
                        entityList.add(entity);
-                       model = entityList;
+                       model.addAll(entityList);
                }
                else if(bulkEditorQuery != null){
 
                        IIdentifiableEntityServiceConfigurator configurator = bulkEditorQuery.getSearchConfigurator();
                        Comparator queryComparator = (bulkEditorQuery.getComparator() != null) ? bulkEditorQuery.getComparator() : new TitleCacheComparator();
 
-                       entityList = listEntities(configurator);
+                       entityList.addAll(listEntities(configurator));
 
                        Collections.sort(entityList, queryComparator);
-
-
                }
-
-               model = entityList;
+               model.addAll(entityList);
        }
 
        public boolean isMergingEnabled() {
@@ -269,7 +267,7 @@ public abstract class AbstractBulkEditorInput<T extends CdmBase> extends CdmEnti
                return "No text. Implement in subclass";
        }
 
-       public List<T> getModel() {
+       public BasicEventList<T> getModel() {
                return model;
        }