/** Returns whether to sort all of item when model or sort direction be changed. * @since 5.0.7 */ private boolean isIgnoreSortWhenChanged() { String attr = "org.zkoss.zul.tree.autoSort"; Object val = getAttribute(attr, true); if (val == null) val = Library.getProperty(attr); return val == null ? true : "ignore.change".equals(val); }
/** Returns whether to sort all of item when model or sort direction be changed. * @since 5.0.7 */ /*package*/ boolean isAutosort() { String attr = "org.zkoss.zul.tree.autoSort"; Object val = getAttribute(attr, true); if (val == null) val = Library.getProperty(attr); return val instanceof Boolean ? ((Boolean) val).booleanValue() : val != null ? "true".equals(val) || "ignore.change".equals(val) : false; }
public boolean hasNext() { if (_tree == null || !_tree.inPagingMold()) return _it.hasNext(); Integer renderedCount = (Integer) _tree.getAttribute(Attributes.RENDERED_ITEM_COUNT); if (renderedCount == null || renderedCount.intValue() < _tree.getPaginal().getPageSize()) return _it.hasNext(); return false; }
private static boolean shallRenderTree(Tree tree) { Integer visited = (Integer) tree.getAttribute(Attributes.VISITED_ITEM_COUNT); final Paginal pgi = tree.getPaginal(); final int ofs = pgi.getActivePage() * pgi.getPageSize(); if (ofs < visited.intValue()) { // count the rendered item Integer renderedCount = (Integer) tree.getAttribute(Attributes.RENDERED_ITEM_COUNT); if (renderedCount == null) renderedCount = new Integer(1); else renderedCount = new Integer(renderedCount.intValue() + 1); tree.setAttribute(Attributes.RENDERED_ITEM_COUNT, renderedCount); return true; } return false; }
private void postOnInitRender() { //20080724, Henri Chen: optimize to avoid postOnInitRender twice if (getAttribute(ATTR_ON_INIT_RENDER_POSTED) == null) { setAttribute(ATTR_ON_INIT_RENDER_POSTED, Boolean.TRUE); Events.postEvent("onInitRender", this, null); } }
/** * Returns the number of rows to preload when receiving the rendering * request from the client. * <p> * Default: 50. (since 7.0.0) * <p> * It is used only if live data ({@link #setModel(ListModel)} and not paging * ({@link #getPagingChild}. */ private int preloadSize() { final String size = (String) getAttribute("pre-load-size"); int sz = size != null ? Integer.parseInt(size) : _preloadsz; if ((sz = Utils.getIntAttribute(this, "org.zkoss.zul.tree.preloadSize", sz, true)) < 0) throw new UiException("nonnegative is required: " + sz); return sz; }
public void onEvent(Event event) throws Exception { if (_modelInitListener != null) { Tree.this.removeEventListener("onInitModel", _modelInitListener); _modelInitListener = null; } if (_model != null) { //rows not created yet //ZK-1007 Left the job to onInitRenderer if exist if (getAttribute(ATTR_ON_INIT_RENDER_POSTED) == null) { if (_treechildren == null) { renderTree(); } else { setModel(_model); } } } }
private static boolean shallVisitTree(Tree tree, Component child) { final Treeitem item = (Treeitem) child; int count = item.isOpen() && item.getTreechildren() != null ? item.getTreechildren().getVisibleItemCount() : 0; Integer visited = (Integer) tree.getAttribute(Attributes.VISITED_ITEM_COUNT); final Paginal pgi = tree.getPaginal(); final int ofs = pgi.getActivePage() * pgi.getPageSize(); int visit = visited != null ? visited.intValue() + 1 : 1; boolean shoulbBeVisited = ofs < visit + count; if (visited == null) visited = new Integer(shoulbBeVisited ? 1 : count + 1); else visited = new Integer(visited.intValue() + (shoulbBeVisited ? 1 : count + 1)); Integer total = (Integer) tree.getAttribute(Attributes.VISITED_ITEM_TOTAL); if (total == null) total = new Integer(count + 1); else total = new Integer(total.intValue() + count + 1); tree.setAttribute(Attributes.VISITED_ITEM_COUNT, visited); tree.setAttribute(Attributes.VISITED_ITEM_TOTAL, total); return shoulbBeVisited; }