/** * Converts an AU request to a sort event. */ public static SortEvent getSortEvent(AuRequest request) { final Map<String, Object> data = request.getData(); return new SortEvent(request.getCommand(), request.getComponent(), AuRequests.getBoolean(data, "")); }
/** Processes an AU request. * <p>Default: in addition to what are handled by its superclass, it also * handles onSort. * @since 6.5.0 */ public void service(org.zkoss.zk.au.AuRequest request, boolean everError) { final String cmd = request.getCommand(); if (cmd.equals(Events.ON_SORT)) { SortEvent evt = SortEvent.getSortEvent(request); Events.postEvent(evt); } else if (cmd.equals(Events.ON_GROUP)) { final Map<String, Object> data = request.getData(); final boolean ascending = AuRequests.getBoolean(data, ""); Events.postEvent(new SortEvent(cmd, this, ascending)); // internal use, and it should be invoked after onGroup event. Events.postEvent(-1000, new SortEvent("onGroupLater", this, ascending)); } else if (cmd.equals(Events.ON_UNGROUP)) { final Map<String, Object> data = request.getData(); final boolean ascending = AuRequests.getBoolean(data, ""); ungroup(ascending); Events.postEvent(new SortEvent(cmd, request.getComponent(), ascending)); } else super.service(request, everError); }
/** Processes an AU request. * <p>Default: in addition to what are handled by its superclass, it also * handles onSort. * @since 5.0.8 */ public void service(org.zkoss.zk.au.AuRequest request, boolean everError) { final String cmd = request.getCommand(); if (cmd.equals(Events.ON_SORT)) { SortEvent evt = SortEvent.getSortEvent(request); Events.postEvent(evt); } else if (cmd.equals(Events.ON_GROUP)) { final Map<String, Object> data = request.getData(); final boolean ascending = AuRequests.getBoolean(data, ""); Events.postEvent(new SortEvent(cmd, this, ascending)); // internal use, and it should be invoked after onGroup event. Events.postEvent(-1000, new SortEvent("onGroupLater", this, ascending)); } else if (cmd.equals(Events.ON_UNGROUP)) { final Map<String, Object> data = request.getData(); final boolean ascending = AuRequests.getBoolean(data, ""); ungroup(ascending); Events.postEvent(new SortEvent(cmd, request.getComponent(), ascending)); } else super.service(request, everError); }
data = EventDataManager.getInstance().build(new SortEvent(cmd, header, false)); ((ClientCtrl)target.getClient()).postUpdate(desktopId, header.getUuid(), cmd, data, false); data = EventDataManager.getInstance().build(new SortEvent(cmd, header, true)); ((ClientCtrl)target.getClient()).postUpdate(desktopId, header.getUuid(), cmd, data, false); }else { //natural, not sorted yet if(ascending){ data = EventDataManager.getInstance().build(new SortEvent(cmd, header, ascending)); ((ClientCtrl)target.getClient()).postUpdate(desktopId, header.getUuid(), cmd, data, false); }else{ data = EventDataManager.getInstance().build(new SortEvent(cmd, header, true)); ((ClientCtrl)target.getClient()).postUpdate(desktopId, header.getUuid(), cmd, data, false); data = EventDataManager.getInstance().build(new SortEvent(cmd, header, ascending)); ((ClientCtrl)target.getClient()).postUpdate(desktopId, header.getUuid(), cmd, data, false);
/** * For Column, it always send AU in spite of current sorted order. */ public void sort(boolean ascending) { String desktopId = target.getDesktop().getId(); String cmd = Events.ON_SORT; Component header= ((Component)target.getDelegatee()); Map<String, Object> data = null; data = EventDataManager.getInstance().build(new SortEvent(cmd, header, ascending)); ((ClientCtrl) getClient()).postUpdate(desktopId, header.getUuid(), cmd, data, false); ((ClientCtrl) getClient()).flush(desktopId); } }