From d3baede5fdccda8c5de46a4b2cdc4cefec4b2fdc Mon Sep 17 00:00:00 2001 From: Sweidan Omar Date: Mon, 6 Dec 2021 10:19:16 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C32415 --- .../user/jobengine/zk/model/SearchModel.java | 107 +++++++++--------- 1 file changed, 56 insertions(+), 51 deletions(-) diff --git a/server/user.mediacube.gui/src/user/jobengine/zk/model/SearchModel.java b/server/user.mediacube.gui/src/user/jobengine/zk/model/SearchModel.java index 7252beb2..79e61ff7 100644 --- a/server/user.mediacube.gui/src/user/jobengine/zk/model/SearchModel.java +++ b/server/user.mediacube.gui/src/user/jobengine/zk/model/SearchModel.java @@ -46,16 +46,16 @@ import org.zkoss.zul.Checkbox; import org.zkoss.zul.Column; import org.zkoss.zul.Combobox; import org.zkoss.zul.Detail; -import org.zkoss.zul.Grid; import org.zkoss.zul.Hbox; import org.zkoss.zul.Hlayout; import org.zkoss.zul.ListModelList; +import org.zkoss.zul.Listbox; +import org.zkoss.zul.Listitem; import org.zkoss.zul.Menuitem; import org.zkoss.zul.Menupopup; import org.zkoss.zul.Messagebox; import org.zkoss.zul.Paging; import org.zkoss.zul.Panel; -import org.zkoss.zul.Row; import org.zkoss.zul.Timer; import org.zkoss.zul.Toolbar; import org.zkoss.zul.Toolbarbutton; @@ -111,7 +111,7 @@ public class SearchModel extends AsyncBaseModel { @Wire Timer timer; @Wire - Grid itemsGrid; + Listbox itemsListbox; @Wire Button backToVideoButton; @Wire @@ -225,21 +225,22 @@ public class SearchModel extends AsyncBaseModel { search.setFocus(true); } - configureSearchResultGrid(); + configureSearchResultListbox(); showExternalMediaID(); searchHistory = new ListModelList<>(SessionUtil.getUserSearchHistory()); setColumnOrder(); setUserSelectedFilters(); - if (SessionUtil.getUserPageSize() != 0) - itemsGrid.setPageSize(SessionUtil.getUserPageSize()); - setSettingsPageSize(itemsGrid.getPageSize()); + if (SessionUtil.getUserPageSize() != 0) { + itemsListbox.setPageSize(SessionUtil.getUserPageSize()); + } + setSettingsPageSize(itemsListbox.getPageSize()); if (!allChecked) showSearchTypeWarning(); tags = itemManager.getAllTags(); - // lekerdezesi hiba + // lekérdezési hiba if (tags == null) Clients.showNotification("A cimkék inicializálása sikertelen!", "error", tagsToolbar, "start_center", 3000); @@ -265,16 +266,20 @@ public class SearchModel extends AsyncBaseModel { SessionUtil.putUserSearchHistory(searchHistory); } - private void configureSearchResultGrid() { - Paging paging = itemsGrid.getPagingChild(); - paging.setAutohide(false); + private void configureSearchResultListbox() { + if (itemsListbox != null) { + if (itemsListbox.getItemCount() > 0) { + Paging paging = itemsListbox.getPagingChild(); + paging.setAutohide(false); - for (Component child : itemsGrid.getColumns().getChildren()) { - Column column = (Column) child; - if (columnOrder != null) - if (column.getLabel().equals(columnOrder.entrySet().iterator().next().getKey())) - column.setSortDirection(columnOrder.entrySet().iterator().next().getValue()); - column.addEventListener("onSort", evt -> doSort(evt)); + for (Component header : itemsListbox.getHeads()) { + Column column = (Column) header; + if (columnOrder != null) + if (column.getLabel().equals(columnOrder.entrySet().iterator().next().getKey())) + column.setSortDirection(columnOrder.entrySet().iterator().next().getValue()); + column.addEventListener("onSort", evt -> doSort(evt)); + } + } } } @@ -321,7 +326,7 @@ public class SearchModel extends AsyncBaseModel { search.close(); search.select(); searchResult = null; - itemsGrid.setActivePage(0); + itemsListbox.setActivePage(0); setSelectedObject(null); String searchValue = search.getText(); @@ -367,21 +372,23 @@ public class SearchModel extends AsyncBaseModel { } public void doSort(Event event) throws Exception { - itemsGrid.getColumns().getChildren().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()); + 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); - - orderBy = columnHeaders.get(column.getLabel()); - orderAscending = evt.isAscending(); - doSearch(); - notifyChange("searchResult", "selectedObject", "hasLowresMediaFile", "lowresMediaFilePath"); - evt.stopPropagation(); + columnOrder = new HashMap<>(); + columnOrder.put(column.getLabel(), column.getSortDirection()); + SessionUtil.putUserColumnOrder(columnOrder); + + orderBy = columnHeaders.get(column.getLabel()); + orderAscending = evt.isAscending(); + doSearch(); + notifyChange("searchResult", "selectedObject", "hasLowresMediaFile", "lowresMediaFilePath"); + evt.stopPropagation(); + } } @Command @@ -403,7 +410,7 @@ public class SearchModel extends AsyncBaseModel { registerTask(() -> { logger.info("Scrolling to pos {} begin", pos); - List children = itemsGrid.getRows().getChildren(); + List children = itemsListbox.getItems(); if (children.size() > 0) { Component top = children.get(pos); Clients.scrollIntoView(top); @@ -584,19 +591,19 @@ public class SearchModel extends AsyncBaseModel { private void highlight(ArchivedMedia am, boolean highlight) { if (am == null) return; - List components = itemsGrid.getRows().getChildren(); + List components = itemsListbox.getItems(); for (int i = 0; i < components.size(); i++) { - Row row = (Row) components.get(i); - ArchivedMedia archivedMedia = (ArchivedMedia) row.getValue(); + Listitem listitem = components.get(i); + ArchivedMedia archivedMedia = (ArchivedMedia) listitem.getValue(); if (archivedMedia != null && am.getMedia().getId() == archivedMedia.getMedia().getId()) { - Detail detail = (Detail) row.getChildren().get(0); + Detail detail = (Detail) listitem.getChildren().get(0); Hlayout hlayout = (Hlayout) detail.getChildren().get(0); if (highlight) { selectedRowIndex = i; - row.setStyle("background: #F1F8E9;"); + listitem.setStyle("background: #F1F8E9;"); hlayout.setStyle("border-bottom: 1px solid #C5E1A5; background: #F1F8E9;"); } else { - row.setStyle("background: none;"); + listitem.setStyle("background: none;"); hlayout.setStyle("border-bottom: 1px solid #ebebeb; background: none;"); } break; @@ -864,11 +871,9 @@ public class SearchModel extends AsyncBaseModel { public void setAllSelected(boolean allSelected) { this.allSelected = allSelected; - // itemsGrid.renderAll(); - List components = itemsGrid.getRows().getChildren(); - for (Component obj : components) { - Row row = (Row) obj; - List children = row.getChildren(); + List listItems = itemsListbox.getItems(); + for (Listitem item : listItems) { + List children = item.getChildren(); if (children.size() < 2) continue; Component component = children.get(1); @@ -877,7 +882,7 @@ public class SearchModel extends AsyncBaseModel { Checkbox ck = (Checkbox) component; ck.setChecked(allSelected); MenuModel model = (MenuModel) SessionUtil.getAttribute(SessionUtil.MENUMODEL); - model.selectArchivedMedia(row.getValue(), allSelected); + model.selectArchivedMedia(item.getValue(), allSelected); } } @@ -992,8 +997,8 @@ public class SearchModel extends AsyncBaseModel { return; int pageSize = Integer.parseInt(source.getValue()); setSettingsPageSize(pageSize); - itemsGrid.setPageSize(pageSize); - itemsGrid.setActivePage(0); + itemsListbox.setPageSize(pageSize); + itemsListbox.setActivePage(0); SessionUtil.putUserPageSize(pageSize); } @@ -1127,11 +1132,11 @@ public class SearchModel extends AsyncBaseModel { public void showInResults() { if (selectedObject == null) return; - int activePageIndex = selectedRowIndex / itemsGrid.getPageSize(); - positionToScroll = selectedRowIndex - itemsGrid.getPageSize() * activePageIndex; + int activePageIndex = selectedRowIndex / itemsListbox.getPageSize(); + positionToScroll = selectedRowIndex - itemsListbox.getPageSize() * activePageIndex; // preventAfterRender = true; - if (activePageIndex != itemsGrid.getActivePage()) { - itemsGrid.setActivePage(activePageIndex); + if (activePageIndex != itemsListbox.getActivePage()) { + itemsListbox.setActivePage(activePageIndex); logger.info( "Selected media is shown in the results, which can be found on {} page and also it will be highlighted.", activePageIndex + 1); -- 2.54.0