This is an automated email from the ASF dual-hosted git repository.

doebele pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git


The following commit(s) were added to refs/heads/master by this push:
     new 8240a625 EMPIREDB-426 SelectableItem optimization
8240a625 is described below

commit 8240a625552451c81c41ba5a05b2e93c769babbd
Author: Rainer Döbele <[email protected]>
AuthorDate: Thu May 23 15:44:40 2024 +0200

    EMPIREDB-426
    SelectableItem optimization
---
 .../jsf2/pageelements/BeanListPageElement.java     | 35 +----------
 .../empire/jsf2/pageelements/ListPageElement.java  | 71 ++++++++++++++--------
 2 files changed, 48 insertions(+), 58 deletions(-)

diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pageelements/BeanListPageElement.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pageelements/BeanListPageElement.java
index 6998c095..1941fb95 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pageelements/BeanListPageElement.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pageelements/BeanListPageElement.java
@@ -18,7 +18,6 @@
  */
 package org.apache.empire.jsf2.pageelements;
 
-import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -41,7 +40,6 @@ import org.apache.empire.dbms.DBMSHandler;
 import org.apache.empire.exceptions.InternalException;
 import org.apache.empire.exceptions.InvalidArgumentException;
 import org.apache.empire.exceptions.InvalidOperationException;
-import org.apache.empire.exceptions.NotSupportedException;
 import org.apache.empire.exceptions.ObjectNotValidException;
 import org.apache.empire.exceptions.UnexpectedReturnValueException;
 import org.apache.empire.jsf2.app.FacesUtils;
@@ -545,37 +543,6 @@ public class BeanListPageElement<T> extends 
ListPageElement<T> implements ListIt
         lti.setPosition((pos > 0 ? pos : 0));
     }
 
-    // @Override
-    public Set<Object[]> getSelectedItemKeys()
-    {
-        if (selectedItems == null)
-            return null;
-        // Get the set
-        Set<Object[]> items = new HashSet<Object[]>(selectedItems.size());
-        for (Object[] key : selectedItems)
-        {
-            items.add(key);
-        }
-        return items;
-    }
-
-    public void setSelectedItems(Set<Object[]> items)
-    {
-        if (selectedItems == null)
-            throw new NotSupportedException(this, "setSelectedItems");
-        // Get the set
-        selectedItems = new SelectionSet(items.size());
-        for (Object[] key : items)
-        {
-            if (key == null || key.length == 0)
-            {
-                log.warn("Cannot select Null-Object.");
-                continue;
-            }
-            selectedItems.add(key);
-        }
-    }
-
     protected void initListItems(List<?> items)
     {
         Column[] keyCols = rowset.getKeyColumns();
@@ -597,7 +564,7 @@ public class BeanListPageElement<T> extends 
ListPageElement<T> implements ListIt
         }
         if (item instanceof SelectableItem)
         {
-            ((SelectableItem) item).initSelect(key, this.selectedItems);
+            ((SelectableItem) item).initSelect(key, this.selectedItemKeys);
         }
     }
     
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pageelements/ListPageElement.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pageelements/ListPageElement.java
index cd429729..76ee7f89 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pageelements/ListPageElement.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pageelements/ListPageElement.java
@@ -20,6 +20,7 @@ package org.apache.empire.jsf2.pageelements;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 import javax.faces.event.ActionEvent;
 
@@ -46,7 +47,7 @@ public abstract class ListPageElement<T> extends PageElement
 
     protected List<T>           items            = null;
 
-    protected SelectionSet      selectedItems    = null;
+    protected SelectionSet      selectedItemKeys = null;
     
     /**
      * SelectionSet
@@ -510,7 +511,7 @@ public abstract class ListPageElement<T> extends PageElement
         // selectable
         if (ListPageElement.isSelectableItem(beanClass))
         {
-            this.selectedItems = new SelectionSet();
+            this.selectedItemKeys = new SelectionSet();
         }
     }
 
@@ -595,34 +596,34 @@ public abstract class ListPageElement<T> extends 
PageElement
 
     public void clearSelection()
     {
-        if (this.selectedItems != null)
+        if (this.selectedItemKeys != null)
         {
-            this.selectedItems.clear();
+            this.selectedItemKeys.clear();
         }
     }
 
     public boolean isHasSelection()
     {
-        if (this.selectedItems==null)
+        if (this.selectedItemKeys==null)
             return false;
         // Has selected Items
-        return (selectedItems.size()>0 || selectedItems.isInvertSelection());
+        return (selectedItemKeys.size()>0 || 
selectedItemKeys.isInvertSelection());
     }
 
     public int getSelectedItemCount()
     {
-        if (this.selectedItems==null)
+        if (this.selectedItemKeys==null)
             return 0;
         // Item count
-        return this.selectedItems.size();
+        return this.selectedItemKeys.size();
     }
 
     public List<T> getSelectedItems()
     {
-        if (this.selectedItems==null)
+        if (this.selectedItemKeys==null)
             throw new NotSupportedException(this, "getSelectedItems");
         // find all items
-        List<T> selection = new ArrayList<T>(this.selectedItems.size());
+        List<T> selection = new ArrayList<T>(this.selectedItemKeys.size());
         for (T item : getItems())
         {
             if (((SelectableItem)item).isSelected())
@@ -630,57 +631,79 @@ public abstract class ListPageElement<T> extends 
PageElement
         }
         return selection;
     }
+
+    public Set<Object[]> getSelectedItemKeys()
+    {
+        return selectedItemKeys;
+    }
+
+    public void setSelectedItems(Set<Object[]> items)
+    {
+        if (selectedItemKeys == null)
+            throw new NotSupportedException(this, "setSelectedItems");
+        // Get the set
+        selectedItemKeys = new SelectionSet(items.size());
+        for (Object[] key : items)
+        {
+            if (key == null || key.length == 0)
+            {
+                log.warn("Cannot select Null-Object.");
+                continue;
+            }
+            selectedItemKeys.add(key);
+        }
+    }
     
     public boolean isInvertSelection()
     {
-        if (this.selectedItems==null)
+        if (this.selectedItemKeys==null)
             return false;
         // Invert selection
-        return this.selectedItems.isInvertSelection();
+        return this.selectedItemKeys.isInvertSelection();
     }
 
     public void setInvertSelection(boolean invertSelection)
     {
-        if (this.selectedItems==null)
+        if (this.selectedItemKeys==null)
             throw new NotSupportedException(this, "setInvertSelection");
         // Invert
-        this.selectedItems.setInvertSelection(invertSelection);
+        this.selectedItemKeys.setInvertSelection(invertSelection);
     }
     
     public boolean isSingleSelection()
     {
-        if (this.selectedItems==null)
+        if (this.selectedItemKeys==null)
             return false;
         // Invert selection
-        return this.selectedItems.isSingleSelection();
+        return this.selectedItemKeys.isSingleSelection();
     }
 
     public void setSingleSelection(boolean singleSelection)
     {
-        if (this.selectedItems==null)
+        if (this.selectedItemKeys==null)
             throw new NotSupportedException(this, "setSingleSelection");
         // Invert
-        this.selectedItems.setSingleSelection(singleSelection);
+        this.selectedItemKeys.setSingleSelection(singleSelection);
     }
 
     public void setSelection(SelectableItem item)
     {
-        if (this.selectedItems==null)
+        if (this.selectedItemKeys==null)
             throw new NotSupportedException(this, "setInvertSelection");
         // Invert
         if (item!=null)
-            this.selectedItems.set(item.getKey());
+            this.selectedItemKeys.set(item.getKey());
         else
-            this.selectedItems.clear();
+            this.selectedItemKeys.clear();
     }
 
     public void setSelection(SelectableItem[] items)
     {
-        if (this.selectedItems==null)
+        if (this.selectedItemKeys==null)
             throw new NotSupportedException(this, "setInvertSelection");
         // Invert
-        this.selectedItems.clear();
+        this.selectedItemKeys.clear();
         for (SelectableItem item : items)
-            this.selectedItems.add(item.getKey());
+            this.selectedItemKeys.add(item.getKey());
     }
 }

Reply via email to