git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorSweidan Omar <TFS\sweidan.omar>
Mon, 6 Dec 2021 10:19:16 +0000 (10:19 +0000)
committerSweidan Omar <TFS\sweidan.omar>
Mon, 6 Dec 2021 10:19:16 +0000 (10:19 +0000)
server/user.mediacube.gui/src/user/jobengine/zk/model/SearchModel.java

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