ListPageElement fix for invertSelection
diff --git a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/pageelements/ListPageElement.java b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/pageelements/ListPageElement.java
index 87be305..8e1e50d 100644
--- a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/pageelements/ListPageElement.java
+++ b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/pageelements/ListPageElement.java
@@ -19,6 +19,7 @@
package org.apache.empire.jakarta.pageelements;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import java.util.Set;
@@ -95,11 +96,28 @@
@Override
public boolean add(Object[] e)
{
+ if (!singleSelection && isInvertSelection())
+ { // invert
+ if (this.contains(e))
+ put(e);
+ return true;
+ }
+ // normal
if (singleSelection)
return false;
return super.add(e);
}
+ public void put(Object[] key)
+ {
+ fastAdd(key);
+ }
+
+ public void putAll(Collection<Object[]> list)
+ {
+ addAll(list);
+ }
+
@Override
public boolean remove(Object o)
{
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 76ee7f8..3a2ea31 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
@@ -19,6 +19,7 @@
package org.apache.empire.jsf2.pageelements;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import java.util.Set;
@@ -95,11 +96,28 @@
@Override
public boolean add(Object[] e)
{
+ if (!singleSelection && isInvertSelection())
+ { // invert
+ if (this.contains(e))
+ put(e);
+ return true;
+ }
+ // normal
if (singleSelection)
return false;
return super.add(e);
}
+ public void put(Object[] key)
+ {
+ fastAdd(key);
+ }
+
+ public void putAll(Collection<Object[]> list)
+ {
+ addAll(list);
+ }
+
@Override
public boolean remove(Object o)
{