private int getRealIndex(int index) { final int offset = _model != null && !_renderAll ? getDataLoader().getOffset() : 0; return index - (offset < 0 ? 0 : offset); }
/* package */@SuppressWarnings("rawtypes") Renderer() { _renderer = (ListitemRenderer) getDataLoader().getRealRenderer(); }
public boolean isCropper() { return ((Cropper) getDataLoader()).isCropper(); }
private void onGroupsDataChange(GroupsDataEvent event) { getDataLoader().doGroupsDataChange(event); }
public Set<? extends Component> getAvailableAtClient() { return ((Cropper) getDataLoader()).getAvailableAtClient(); }
@SuppressWarnings("rawtypes") private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException { s.defaultReadObject(); _model = (ListModel) s.readObject(); didDeserialize(_model); _renderer = (ListitemRenderer) s.readObject(); didDeserialize(_renderer); init(); int offset = s.readInt(); afterUnmarshal(offset); int limit = s.readInt(); resetDataLoader(false); // no need to reset, it will reset the old reference. getDataLoader().init(this, offset, limit); if (_model != null) { initDataListener(); getDataLoader().setLoadAll(_renderAll); // Map#Entry cannot be serialized, we have to restore them if (_model instanceof ListModelMap) { for (Listitem item : getItems()) item.setValue(_model.getElementAt(item.getIndex())); } } int size = s.readInt(); if (size > 0) { List groupsInfo = (List) s.readObject(); for (int i = 0; i < size; i++) _groupsInfo.add((int[]) groupsInfo.get(i)); } }
final int offset = clone.getDataLoader().getOffset(); final int limit = clone.getDataLoader().getLimit(); clone.resetDataLoader(false); // no need to reset, it will reset the old reference. clone.getDataLoader().init(clone, offset, limit); clone.getDataLoader().setLoadAll(_renderAll);
/* package */void addVisibleItemCount(int count) { if (count != 0) { _visibleItemCount += count; if (inPagingMold()) { final Paginal pgi = getPaginal(); int totalSize = getDataLoader().getTotalSize(); if (count < 0 && _model instanceof Pageable) { Pageable p = (Pageable) _model; int actpg = p.getActivePage(); int maxPageIndex = p.getPageCount() - 1; if (actpg > maxPageIndex) { p.setActivePage(maxPageIndex); } } pgi.setTotalSize(totalSize); invalidate(); // the set of visible items might change } else if (((Cropper) getDataLoader()).isCropper()) { getDataLoader().updateModelInfo(); } else { smartUpdate("visibleItemCount", _visibleItemCount); } } }
getDataLoader().syncModel(-1, -1); // we have to recreate getDataLoader().syncModel(-1, -1); // have to recreate all } else { final boolean rod = evalRod(); if (!defer || !rod) getDataLoader().syncModel(-1, -1);
/** * Renders all {@link Listitem} if not loaded yet, with * {@link #getItemRenderer}. * * @see #renderItem * @see #renderItems */ public void renderAll() { if (_model == null) return; _renderAll = true; getDataLoader().setLoadAll(_renderAll); final Renderer renderer = new Renderer(); if (!getItems().isEmpty()) try { Listitem item = getItems().get(0); int index = item.getIndex(); for (Listitem nxt; item != null; item = nxt) { nxt = nextListitem(item); //retrieve first since it might be changed renderer.render(item, index++); } } catch (Throwable ex) { renderer.doCatch(ex); } finally { renderer.doFinally(); } }
ofs = _pgi.getActivePage() * pgsz; } else { pgsz = inSelectMold() ? getItemCount() : getDataLoader().getLimit(); ofs = inSelectMold() ? 0 : getDataLoader().getOffset(); final int cnt = getItemCount() + getDataLoader().getOffset(); if (ofs >= cnt) { // not possible; just in case ofs = cnt - pgsz; int realOfs = ofs - getDataLoader().getOffset(); if (realOfs < 0) realOfs = 0; getDataLoader().updateModelInfo(); } catch (Throwable ex) { renderer.doCatch(ex);
if (((Cropper) getDataLoader()).isCropper()) { getDataLoader().updateModelInfo();
final int offset = _jsel - _jsel % getPageSize(); final int limit = getPageSize(); getDataLoader().syncModel(offset, limit); // force reloading if (_jsel != jsel) //Bug ZK-1537: _jsel changed after syncModel if model is never synchronized _jsel = jsel; int size = getDataLoader().getOffset(); for (Iterator it = new VisibleChildrenIterator(true); it.hasNext(); size++) if (item.equals(it.next()))
final DataLoader loader = getDataLoader();
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 void onEvent(Event event) { if (_model != null && inPagingMold()) { 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(); } invalidate(); }
/** * 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(getDataLoader().getTotalSize()); //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); }
getDataLoader().syncModel(0, initRodSize()); // change offset back to 0 postOnInitRender();
if (_paging != null) _paging.detach(); _pgi.setTotalSize(getDataLoader().getTotalSize()); addPagingListener(_pgi); if (_pgi instanceof Component)
public void onPageAttached(Page newpage, Page oldpage) { super.onPageAttached(newpage, oldpage); if (oldpage == null) { // mark as a new attached Listbox final Execution exec = Executions.getCurrent(); exec.setAttribute("zkoss.Listbox.deferInitModel_" + getUuid(), Boolean.TRUE); exec.setAttribute("zkoss.Listbox.attached_" + getUuid(), Boolean.TRUE); // prepare a right moment to init Listbox (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); } }