You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2024/04/26 13:31:11 UTC
(empire-db) branch master updated: EMPIREDB-422 ListPageElement sortColumn change action
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 2bafd59f EMPIREDB-422 ListPageElement sortColumn change action
2bafd59f is described below
commit 2bafd59fb034658907e334a6aad2a6220a054fea
Author: Rainer Döbele <do...@apache.org>
AuthorDate: Fri Apr 26 15:31:07 2024 +0200
EMPIREDB-422
ListPageElement sortColumn change action
---
.../jsf2/pageelements/BeanListPageElement.java | 4 +--
.../empire/jsf2/pageelements/ListPageElement.java | 29 +++++++++++++++++++++-
2 files changed, 30 insertions(+), 3 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 7581a88b..84bc49a1 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
@@ -36,8 +36,8 @@ import org.apache.empire.db.DBReader;
import org.apache.empire.db.DBRecordData;
import org.apache.empire.db.DBRowSet;
import org.apache.empire.db.expr.order.DBOrderByExpr;
-import org.apache.empire.dbms.DBMSHandler;
import org.apache.empire.dbms.DBMSFeature;
+import org.apache.empire.dbms.DBMSHandler;
import org.apache.empire.exceptions.InternalException;
import org.apache.empire.exceptions.InvalidArgumentException;
import org.apache.empire.exceptions.InvalidOperationException;
@@ -433,7 +433,7 @@ public class BeanListPageElement<T> extends ListPageElement<T> implements ListIt
{
cmd.clearOrderBy();
String sortColumnName = getTableInfo().getSortColumnName();
- boolean sortAscending = getTableInfo().getSortAscending();
+ boolean sortAscending = getTableInfo().isSortAscending();
// Find Column
DBColumnExpr sortColumn = rowset.getColumn(sortColumnName);
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 28505ed5..3cdc86d0 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
@@ -25,8 +25,11 @@ import java.util.List;
import javax.faces.event.ActionEvent;
import org.apache.empire.commons.ObjectUtils;
+import org.apache.empire.commons.StringUtils;
+import org.apache.empire.data.Column;
import org.apache.empire.exceptions.NotSupportedException;
import org.apache.empire.exceptions.ObjectNotValidException;
+import org.apache.empire.jsf2.app.FacesUtils;
import org.apache.empire.jsf2.pages.Page;
import org.apache.empire.jsf2.pages.PageElement;
import org.slf4j.Logger;
@@ -256,7 +259,7 @@ public abstract class ListPageElement<T> extends PageElement
this.sortOrderChanged = true;
}
- public boolean getSortAscending()
+ public boolean isSortAscending()
{
return this.sortAscending;
}
@@ -282,6 +285,30 @@ public abstract class ListPageElement<T> extends PageElement
{
this.sortOrderChanged = sortOrderChanged;
}
+
+ public void setSortColumn(ActionEvent ae)
+ {
+ // Get column
+ Object column = FacesUtils.getActionEventAttribute(ae, "item", Object.class);
+ if (column==null) {
+ log.warn("Unable to set sort column: Attribute \"item\" missing on command link component!");
+ return;
+ }
+ // Get columnName
+ String columnName;
+ if (column instanceof Column) {
+ columnName = ((Column)column).getName();
+ } else {
+ columnName = column.toString();
+ }
+ // Change Column or Sort Order
+ if (StringUtils.compareEqual(columnName, getSortColumnName(), true)) {
+ // change order only
+ setSortAscending(!isSortAscending());
+ } else {
+ setSortColumnName(columnName);
+ }
+ }
/* pagination */