private void onGroupsDataChange(GroupsDataEvent event) { getDataLoader().doGroupsDataChange(event); }
/*package*/ Renderer() { _renderer = (RowRenderer) getDataLoader().getRealRenderer(); }
private synchronized void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { s.defaultWriteObject(); int size = _groupsInfo.size(); s.writeInt(size); if (size > 0) s.writeObject(_groupsInfo); Grid grid = getGrid(); DataLoader loader = grid != null ? grid.getDataLoader() : null; if (loader != null) { s.writeInt(loader.getOffset()); } else s.writeInt(0); }
public Set<? extends Component> getAvailableAtClient() { final Grid grid = getGrid(); return grid != null ? ((Cropper) grid.getDataLoader()).getAvailableAtClient() : null; } }
public boolean isCropper() { final Grid grid = getGrid(); return grid != null && ((Cropper) grid.getDataLoader()).isCropper(); }
private int getRealIndex(int index) { final Grid grid = getGrid(); final int offset = grid != null && grid.getModel() != null ? grid.getDataLoader().getOffset() : 0; return index - (offset < 0 ? 0 : offset); }
public Object clone() { final Rows clone = (Rows) super.clone(); clone.init(); clone._groupsInfo.addAll(_groupsInfo); Grid grid = getGrid(); final int offset = grid != null ? grid.getDataLoader().getOffset() : 0; clone.afterUnmarshal(offset); return clone; }
private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException { s.defaultReadObject(); _model = (ListModel) s.readObject(); didDeserialize(_model); _renderer = (RowRenderer) s.readObject(); didDeserialize(_renderer); init(); afterUnmarshal(-1); int offset = s.readInt(); int limit = s.readInt(); resetDataLoader(false); // no need to reset, it will reset the old reference. getDataLoader().init(this, offset, limit); //TODO: how to marshal _pgi if _pgi != _paging //TODO: re-register event listener for onPaging if (_model != null) { initDataListener(); getDataLoader().setLoadAll(_renderAll); // Map#Entry cannot be serialized, we have to restore them if (_model instanceof ListModelMap && _rows != null) { for (Component o : _rows.getChildren()) { Row item = (Row) o; item.setValue(_model.getElementAt(item.getIndex())); } } } }
getDataLoader().syncModel(-1, -1); //we have to recreate all } else if (getAttribute(ATTR_ON_INIT_RENDER_POSTED) == null) { getDataLoader().syncModel(-1, -1); //we have to recreate all } else { final boolean rod = evalRod(); if (!defer || !rod) getDataLoader().syncModel(-1, -1);
protected void renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer) throws java.io.IOException { super.renderProperties(renderer); final Grid grid = getGrid(); renderer.render("_offset", grid == null ? 0 : grid.getDataLoader().getOffset()); //go with each cropping renderer.render("visibleItemCount", _visibleItemCount); //go with each cropping }
if (grid.inPagingMold()) { final Paginal pgi = grid.getPaginal(); int newTotalSize = grid.getDataLoader().getTotalSize(); else { invalidate(); grid.getDataLoader().updateModelInfo(); } else if (((Cropper) grid.getDataLoader()).isCropper()) { invalidate(); grid.getDataLoader().updateModelInfo(); } else { smartUpdate("visibleItemCount", _visibleItemCount);
/** Renders all {@link Row} if not loaded yet, * with {@link #getRowRenderer}. */ public void renderAll() { if (_model == null) return; _renderAll = true; getDataLoader().setLoadAll(_renderAll); final Renderer renderer = new Renderer(); if (!_rows.getChildren().isEmpty()) try { Row row = (Row) _rows.getChildren().get(0); int index = row.getIndex(); for (Row nxt; row != null; row = nxt) { nxt = (Row) row.getNextSibling(); //retrieve first since it might be changed renderer.render(row, index++); } } catch (Throwable ex) { renderer.doCatch(ex); } finally { renderer.doFinally(); } }
protected void renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer) throws java.io.IOException { super.renderProperties(renderer); render(renderer, "oddRowSclass", _scOddRow); if (_model != null) render(renderer, "model", _model instanceof GroupsListModel || _model instanceof GroupsModel ? "group" : true); if (!"100%".equals(_innerWidth)) render(renderer, "innerWidth", _innerWidth); if (_currentTop != 0) renderer.render("_currentTop", _currentTop); if (_currentLeft != 0) renderer.render("_currentLeft", _currentLeft); renderer.render("_topPad", _topPad); renderer.render("emptyMessage", _emptyMessage); renderer.render("_totalSize", getDataLoader().getTotalSize()); renderer.render("_offset", getDataLoader().getOffset()); if (_visibleRows > 0) renderer.render("rows", _visibleRows); if (_rod && !_renderAll) { if (((Cropper) getDataLoader()).isCropper())//bug #2936064 renderer.render("_grid$rod", true); int sz = initRodSize(); if (sz != INIT_LIMIT) renderer.render("initRodSize", initRodSize()); } if (_pgi != null && _pgi instanceof Component) renderer.render("paginal", _pgi); }
public void onAfterRender() { if (inPagingMold() && _model instanceof Pageable) { Pageable m = (Pageable) _model; if (m.getPageSize() > 0) { //min page size is 1 _pgi.setPageSize(m.getPageSize()); } else { m.setPageSize(_pgi.getPageSize()); } _pgi.setTotalSize(getDataLoader().getTotalSize()); if (m.getActivePage() >= 0) { //min page index is 0 _pgi.setActivePage(m.getActivePage()); } else { m.setActivePage(_pgi.getActivePage()); } } }
public boolean insertBefore(Component child, Component refChild) { final Grid grid = getGrid(); final boolean isReorder = child.getParent() == this; //bug #3051305: Active Page not update when drag & drop item to the end if (isReorder) { checkInvalidateForMoved(child, true); } Row newItem = (Row) child; final int jfrom = hasGroup() && newItem.getParent() == this ? newItem.getIndex() : -1; fixGroupsInfoBeforeInsert(newItem, (Row) refChild, isReorder); if (super.insertBefore(child, refChild)) { final int jto = refChild instanceof Row ? ((Row) refChild).getIndex() : -1, fixFrom = jfrom < 0 || (jto >= 0 && jfrom > jto) ? jto : jfrom; if (fixFrom < 0) { newItem.setIndexDirectly( getChildren().size() - 1 + (grid != null ? grid.getDataLoader().getOffset() : 0)); } else { fixGroupIndex(fixFrom, jfrom >= 0 && jto >= 0 ? jfrom > jto ? jfrom : jto : -1, !isReorder); } fixGroupsInfoAfterInsert(newItem); //bug #3049167: Totalsize increase when drag & drop in paging Listbox/Grid if (!isReorder) { afterInsert(child); } return true; } return false; }
final DataLoader loader = getDataLoader();
/** Creates the internal paging component. */ private void newInternalPaging() { final Paging paging = new InternalPaging(); paging.setDetailed(true); paging.applyProperties(); //min page size is 1 if (_model instanceof Pageable && ((Pageable) _model).getPageSize() > 0) { paging.setPageSize(((Pageable) _model).getPageSize()); } paging.setTotalSize(_rows != null ? getDataLoader().getTotalSize() : 0); //min page index is 0 if (_model instanceof Pageable && ((Pageable) _model).getActivePage() >= 0) { paging.setActivePage(((Pageable) _model).getActivePage()); } paging.setParent(this); if (_pgi != null) addPagingListener(_pgi); }
public void onEvent(Event event) { if (_rows != null && _model != null && inPagingMold()) { //theoretically, _rows shall not be null if _model is not null when //this method is called. But, just in case -- if sent manually final Paginal pgi = getPaginal(); int pgsz = pgi.getPageSize(); int ofs = pgi.getActivePage() * pgsz; if (event instanceof PagingEvent) { // Bug ZK-1696: PagingEvent have the newest paging information pgsz = ((PagingEvent) event).getPageable().getPageSize(); ofs = ((PagingEvent) event).getActivePage() * pgsz; } if (_model instanceof Pageable) { ((Pageable) _model).setPageSize(pgsz); ((Pageable) _model).setActivePage(pgi.getActivePage()); } if (_rod) { getDataLoader().syncModel(ofs, pgsz); } postOnPagingInitRender(); } if (getModel() != null || getPagingPosition().equals("both")) invalidate(); // just in case. else if (_rows != null) { _rows.invalidate(); // Bug 3218078 if (_frozen != null) _frozen.invalidate(); } }
public void onPageAttached(Page newpage, Page oldpage) { super.onPageAttached(newpage, oldpage); if (oldpage == null) { Executions.getCurrent().setAttribute("zkoss.Grid.deferInitModel_" + getUuid(), Boolean.TRUE); //prepare a right moment to init Grid(must be as early as possible) this.addEventListener("onInitModel", _modelInitListener = new ModelInitListener()); Events.postEvent(20000, new Event("onInitModel", this)); //first event to be called } GroupsModel groupsModel = getGroupsModel(); if (_model != null || groupsModel != null) { getDataLoader().syncModel(-1, -1); postOnInitRender(); } if (_model != null && _dataListener != null) { _model.removeListDataListener(_dataListener); _model.addListDataListener(_dataListener); } if (groupsModel != null && _groupsDataListener != null) { groupsModel.removeGroupsDataListener(_groupsDataListener); groupsModel.addGroupsDataListener(_groupsDataListener); } }
if (_paging != null) _paging.detach(); _pgi.setTotalSize(_rows != null ? getDataLoader().getTotalSize() : 0); addPagingListener(_pgi); if (_pgi instanceof Component)