import java.util.LinkedHashMap;\r
import java.util.List;\r
import java.util.Map;\r
+import java.util.NoSuchElementException;\r
\r
import org.apache.commons.lang.StringUtils;\r
import org.apache.logging.log4j.LogManager;\r
import org.zkoss.zk.ui.util.Clients;\r
import org.zkoss.zul.Button;\r
import org.zkoss.zul.Checkbox;\r
-import org.zkoss.zul.Column;\r
import org.zkoss.zul.Combobox;\r
import org.zkoss.zul.Div;\r
import org.zkoss.zul.Hbox;\r
Listhead head = itemsListbox.getListhead();\r
head.addEventListener(ZulEvents.ON_COL_SIZE, new ColumnSizeListener(this));\r
} catch (Exception e) {\r
+ logger.error("error in afterCompose");\r
handleSearchError(e);\r
}\r
\r
\r
private void configureSearchResultListbox() {\r
logger.info("configureSearchResultListbox");\r
- if (itemsListbox != null) {\r
- if (itemsListbox.getItemCount() > 0) {\r
- Paging paging = itemsListbox.getPagingChild();\r
- paging.setAutohide(false);\r
-\r
- for (Component header : itemsListbox.getHeads()) {\r
- Listhead column = (Listhead) header;\r
- if (columnOrder != null)\r
- if (column.getAttribute("label").equals(columnOrder.entrySet().iterator().next().getKey()))\r
- column.setAttribute("label", columnOrder.entrySet().iterator().next().getValue());\r
- column.addEventListener("onSort", evt -> doSort(evt));\r
- }\r
- }\r
+ if (itemsListbox != null && itemsListbox.getHeads().size() == 1) {\r
+// if (itemsListbox.getItemCount() > 0) {\r
+ Paging paging = itemsListbox.getPagingChild();\r
+ paging.setAutohide(false);\r
+// Listhead listhead = (Listhead) itemsListbox.getHeads().iterator().next();\r
+// logger.info("next");\r
+// for (Component header : itemsListbox.getListhead(). getHeads()) {\r
+// Listhead column = (Listhead) header;\r
+// if (columnOrder != null)\r
+// if (column.getAttribute("label").equals(columnOrder.entrySet().iterator().next().getKey()))\r
+// column.setAttribute("label", columnOrder.entrySet().iterator().next().getValue());\r
+// column.addEventListener("onSort", evt -> doSort(evt));\r
+// }\r
+// }\r
}\r
}\r
\r
return searchFilters;\r
}\r
\r
- public void doSort(Event event) throws Exception {\r
- logger.info("doSort");\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<String, String>();\r
- columnOrder.put(column.getLabel(), column.getSortDirection());\r
- SessionUtil.putUserColumnOrder(columnOrder);\r
+ @Command\r
+ public void doSort(@ContextParam(ContextType.BIND_CONTEXT) BindContext ctx) throws Exception {\r
+ itemsListbox.getListhead().getChildren().forEach(h -> ((Listheader) h).setSortDirection("natural"));\r
+ SortEvent evt = (SortEvent) ctx.getTriggerEvent();\r
+ Listheader header = (Listheader) ctx.getComponent();\r
+ header.setSortDirection(evt.isAscending() ? "ascending" : "descending");\r
+ logger.info("header.getLabel(): {} {}", header.getLabel(), evt.isAscending() ? "ascending" : "descending");\r
\r
- orderBy = columnHeaders.get(column.getLabel());\r
- isOrderAscending = evt.isAscending();\r
- doSearch();\r
+ columnOrder = new HashMap<>();\r
+ columnOrder.put(header.getLabel(), header.getSortDirection());\r
+ SessionUtil.putUserColumnOrder(columnOrder);\r
\r
- notifyChange("searchResult", "selectedObject", "hasLowresMediaFile", "lowresMediaFilePath");\r
- evt.stopPropagation();\r
- }\r
+ orderBy = columnHeaders.get(header.getLabel());\r
+ isOrderAscending = evt.isAscending();\r
+ doSearch();\r
+ notifyChange("searchResult", "selectedObject", "hasLowresMediaFile", "lowresMediaFilePath");\r
+ evt.stopPropagation();\r
}\r
\r
@Command\r
private void handleSearchError(Exception e) {\r
if (e instanceof NullPointerException)\r
Clients.showNotification("Database query error!", "error", btnSearch, "start_center", 3000);\r
- else\r
+ else if (e instanceof NoSuchElementException) {\r
+ Clients.showNotification("NoSuchElementException!", "error", btnSearch, "start_center", 3000);\r
+ } else {\r
Clients.showNotification(e.getMessage(), "error", btnSearch, "start_center", 3000);\r
- logger.error(e.getMessage());\r
+ }\r
+\r
+ if (e.getMessage() != null) {\r
+ logger.error(e.getMessage());\r
+ } else {\r
+ logger.error("e.getMessage() == null");\r
+ }\r
}\r
\r
private void highlight(ArchivedMedia am, boolean highlight) {\r
@NotifyChange({ "selectedObject", "hasLowresMediaFile", "hasTSMMediaFile", "lowresMediaFilePath" })\r
public void select(@BindingParam("selectedObject") ArchivedMedia selectedObject,\r
@ContextParam(ContextType.BIND_CONTEXT) BindContext ctx) {\r
-// highlight(this.selectedObject, false);\r
+ highlight(this.selectedObject, false);\r
setSelectedObject(selectedObject);\r
-// highlight(this.selectedObject, true);\r
+ highlight(this.selectedObject, true);\r
\r
// scrolls the ancestor elements to make the specified element visible\r
Clients.scrollIntoView(mediaDetails.getFirstChild());\r
\r
private void setColumnOrder() {\r
columnOrder = new HashMap<String, String>();\r
- if (SessionUtil.getUserColumnOrder() != null) {\r
+ if (SessionUtil.getUserColumnOrder() != null && !SessionUtil.getUserColumnOrder().isEmpty()) {\r
columnOrder.put(SessionUtil.getUserColumnOrder().entrySet().iterator().next().getKey(),\r
(String) SessionUtil.getUserColumnOrder().entrySet().iterator().next().getValue());\r
} else {\r