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());
}
}