From 814c2cf722ec0e1ecda483c2cdea198be534e1da Mon Sep 17 00:00:00 2001 From: Sweidan Omar Date: Thu, 3 Mar 2022 14:50:23 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C33012 --- .../jobengine/zk/model/ListSearchModel.java | 81 ++++++++++--------- 1 file changed, 44 insertions(+), 37 deletions(-) diff --git a/server/user.mediacube.gui/src/user/jobengine/zk/model/ListSearchModel.java b/server/user.mediacube.gui/src/user/jobengine/zk/model/ListSearchModel.java index 806a3728..08384a34 100644 --- a/server/user.mediacube.gui/src/user/jobengine/zk/model/ListSearchModel.java +++ b/server/user.mediacube.gui/src/user/jobengine/zk/model/ListSearchModel.java @@ -16,6 +16,7 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.NoSuchElementException; import org.apache.commons.lang.StringUtils; import org.apache.logging.log4j.LogManager; @@ -42,7 +43,6 @@ import org.zkoss.zk.ui.select.annotation.Wire; import org.zkoss.zk.ui.util.Clients; import org.zkoss.zul.Button; import org.zkoss.zul.Checkbox; -import org.zkoss.zul.Column; import org.zkoss.zul.Combobox; import org.zkoss.zul.Div; import org.zkoss.zul.Hbox; @@ -254,6 +254,7 @@ public class ListSearchModel extends AsyncBaseModel { Listhead head = itemsListbox.getListhead(); head.addEventListener(ZulEvents.ON_COL_SIZE, new ColumnSizeListener(this)); } catch (Exception e) { + logger.error("error in afterCompose"); handleSearchError(e); } @@ -274,19 +275,20 @@ public class ListSearchModel extends AsyncBaseModel { private void configureSearchResultListbox() { logger.info("configureSearchResultListbox"); - if (itemsListbox != null) { - if (itemsListbox.getItemCount() > 0) { - Paging paging = itemsListbox.getPagingChild(); - paging.setAutohide(false); - - for (Component header : itemsListbox.getHeads()) { - Listhead column = (Listhead) header; - if (columnOrder != null) - if (column.getAttribute("label").equals(columnOrder.entrySet().iterator().next().getKey())) - column.setAttribute("label", columnOrder.entrySet().iterator().next().getValue()); - column.addEventListener("onSort", evt -> doSort(evt)); - } - } + if (itemsListbox != null && itemsListbox.getHeads().size() == 1) { +// if (itemsListbox.getItemCount() > 0) { + Paging paging = itemsListbox.getPagingChild(); + paging.setAutohide(false); +// Listhead listhead = (Listhead) itemsListbox.getHeads().iterator().next(); +// logger.info("next"); +// for (Component header : itemsListbox.getListhead(). getHeads()) { +// Listhead column = (Listhead) header; +// if (columnOrder != null) +// if (column.getAttribute("label").equals(columnOrder.entrySet().iterator().next().getKey())) +// column.setAttribute("label", columnOrder.entrySet().iterator().next().getValue()); +// column.addEventListener("onSort", evt -> doSort(evt)); +// } +// } } } @@ -389,26 +391,23 @@ public class ListSearchModel extends AsyncBaseModel { return searchFilters; } - public void doSort(Event event) throws Exception { - logger.info("doSort"); - if (itemsListbox.getItemCount() > 0) { - itemsListbox.getHeads().forEach(c -> ((Column) c).setSortDirection("natural")); - SortEvent evt = (SortEvent) event; - Column column = (Column) evt.getTarget(); - column.setSortDirection(evt.isAscending() ? "ascending" : "descending"); - logger.info("{} {}", column.getLabel(), evt.isAscending()); - - columnOrder = new HashMap(); - columnOrder.put(column.getLabel(), column.getSortDirection()); - SessionUtil.putUserColumnOrder(columnOrder); + @Command + public void doSort(@ContextParam(ContextType.BIND_CONTEXT) BindContext ctx) throws Exception { + itemsListbox.getListhead().getChildren().forEach(h -> ((Listheader) h).setSortDirection("natural")); + SortEvent evt = (SortEvent) ctx.getTriggerEvent(); + Listheader header = (Listheader) ctx.getComponent(); + header.setSortDirection(evt.isAscending() ? "ascending" : "descending"); + logger.info("header.getLabel(): {} {}", header.getLabel(), evt.isAscending() ? "ascending" : "descending"); - orderBy = columnHeaders.get(column.getLabel()); - isOrderAscending = evt.isAscending(); - doSearch(); + columnOrder = new HashMap<>(); + columnOrder.put(header.getLabel(), header.getSortDirection()); + SessionUtil.putUserColumnOrder(columnOrder); - notifyChange("searchResult", "selectedObject", "hasLowresMediaFile", "lowresMediaFilePath"); - evt.stopPropagation(); - } + orderBy = columnHeaders.get(header.getLabel()); + isOrderAscending = evt.isAscending(); + doSearch(); + notifyChange("searchResult", "selectedObject", "hasLowresMediaFile", "lowresMediaFilePath"); + evt.stopPropagation(); } @Command @@ -603,9 +602,17 @@ public class ListSearchModel extends AsyncBaseModel { private void handleSearchError(Exception e) { if (e instanceof NullPointerException) Clients.showNotification("Database query error!", "error", btnSearch, "start_center", 3000); - else + else if (e instanceof NoSuchElementException) { + Clients.showNotification("NoSuchElementException!", "error", btnSearch, "start_center", 3000); + } else { Clients.showNotification(e.getMessage(), "error", btnSearch, "start_center", 3000); - logger.error(e.getMessage()); + } + + if (e.getMessage() != null) { + logger.error(e.getMessage()); + } else { + logger.error("e.getMessage() == null"); + } } private void highlight(ArchivedMedia am, boolean highlight) { @@ -852,9 +859,9 @@ public class ListSearchModel extends AsyncBaseModel { @NotifyChange({ "selectedObject", "hasLowresMediaFile", "hasTSMMediaFile", "lowresMediaFilePath" }) public void select(@BindingParam("selectedObject") ArchivedMedia selectedObject, @ContextParam(ContextType.BIND_CONTEXT) BindContext ctx) { -// highlight(this.selectedObject, false); + highlight(this.selectedObject, false); setSelectedObject(selectedObject); -// highlight(this.selectedObject, true); + highlight(this.selectedObject, true); // scrolls the ancestor elements to make the specified element visible Clients.scrollIntoView(mediaDetails.getFirstChild()); @@ -949,7 +956,7 @@ public class ListSearchModel extends AsyncBaseModel { private void setColumnOrder() { columnOrder = new HashMap(); - if (SessionUtil.getUserColumnOrder() != null) { + if (SessionUtil.getUserColumnOrder() != null && !SessionUtil.getUserColumnOrder().isEmpty()) { columnOrder.put(SessionUtil.getUserColumnOrder().entrySet().iterator().next().getKey(), (String) SessionUtil.getUserColumnOrder().entrySet().iterator().next().getValue()); } else { -- 2.54.0