/** * Returns the index of the specified item, or -1 if not found. */ public int getIndexOfItem(Listitem item) { return item == null ? -1 : item.getIndex(); }
/** * Returns the listgroup that this item belongs to, or null. * @since 3.5.0 */ public Listgroup getListgroup() { final Listbox lb = getListbox(); if (lb != null) return lb.getListgroupAt(getIndex()); return null; }
/** Renders the given set of list items. */ public void renderItems(Set<? extends Listitem> items) { if (_model == null) return; if (items.isEmpty()) return; // nothing to do final Renderer renderer = new Renderer(); try { for (final Listitem item : items) renderer.render(item, item.getIndex()); } catch (Throwable ex) { renderer.doCatch(ex); } finally { renderer.doFinally(); } }
/** * Sets the active page in which the specified item is. The active page will * become the page that contains the specified item. * * @param item * the item to show. If the item is null or doesn't belong to * this listbox, nothing happens. * @since 3.0.4 * @see #setActivePage(int) */ public void setActivePage(Listitem item) { if (item != null && item.getParent() == this) { final int pg = item.getIndex() / getPageSize(); if (pg != getActivePage()) setActivePage(pg); } }
@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)); } }
/** * Re-renders a previously rendered list item. * * @param item List item to re-render. */ protected void rerender(Listitem item) { try { ZKUtil.detachChildren(item); listBox.getItemRenderer().render(item, item.getValue(), item.getIndex()); } catch (Exception e) { throw MiscUtil.toUnchecked(e); } }
int index = newItem.getIndex(); final int[] g = getGroupsInfoAt(index); if (g != null) {
/** * Checks whether to invalidate, when a child has been added or or will be * removed. * * @param bRemove * if child will be removed */ private void checkInvalidateForMoved(Listitem child, boolean bRemove) { // No need to invalidate if // 1) act == last and child in act // 2) act != last and child after act // Except removing last elem which in act and act has only one elem if (inPagingMold() && !isInvalidated()) { final int j = child.getIndex(), pgsz = getPageSize(), n = (getActivePage() + 1) * pgsz; if (j >= n) return; // case 2 final int cnt = getItems().size(), n2 = n - pgsz; if (j >= n2 && cnt <= n && (!bRemove || cnt > n2 + 1)) return; // case 1 invalidate(); } }
/** * Deselects all of the currently selected items and selects the given item. * <p> * It is the same as {@link #setSelectedItem}. * * @param item * the item to select. If null, all items are deselected. */ public void selectItem(Listitem item) { if (item == null) { setSelectedIndex(-1); } else { if (item.getParent() != this) throw new UiException("Not a child: " + item); if (_multiple || !item.isSelected()) setSelectedIndex(item.getIndex()); } }
@Override public void onEvent(Event event) throws Exception { DropEvent dropEvent = (DropEvent) ZKUtil.getEventOrigin(event); Listitem dragged = (Listitem) dropEvent.getDragged(); Listitem target = (Listitem) dropEvent.getTarget(); filterManager.moveFilter((AbstractPatientListFilter) dragged.getValue(), target.getIndex()); dragged.getListbox().insertBefore(dragged, target); } };
/** * Renders the specified {@link Listitem} if not loaded yet, with * {@link #getItemRenderer}. * * <p> * It does nothing if {@link #getModel} returns null. In other words, it is * meaningful only if live data model is used. * * @see #renderItems * @see #renderAll * @return the list item being passed to this method */ public Listitem renderItem(Listitem li) { if (_model != null && li != null && !li.isLoaded()) { final Renderer renderer = new Renderer(); try { renderer.render(li, li.getIndex()); } catch (Throwable ex) { renderer.doCatch(ex); } finally { renderer.doFinally(); } } return li; }
for (final Listitem item : _items) { if (item.isLoaded()) { //selected is meaningful only if loaded boolean sel = selObjs.contains(_model.getElementAt(item.getIndex())); if (sel) ++selCnt;
/** * 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(); } }
g[2] = getItems().get(getItems().size() - 1).getIndex(); } else if (refChild instanceof Listitem) { final int idx = ((Listitem) refChild).getIndex(); final int[] g = getGroupsInfoAt(idx); if (g == null) final Component preRefChild = refChild.getPreviousSibling(); if (preRefChild instanceof Listitem) { final int idx = ((Listitem) preRefChild).getIndex();
public boolean setVisible(boolean visible) { if (isVisible() == visible) return visible; final boolean result = super.setVisible(visible); final Listbox listbox = (Listbox) getParent(); if (listbox != null) { if (listbox.inSelectMold()) listbox.invalidate(); final Listgroup g = listbox.getListgroupAt(getIndex()); if (g == null || g.isOpen()) listbox.addVisibleItemCount(visible ? 1 : -1); } // Bug ZK-485, send after invoking listbox.addVisibleItemCount() smartUpdate("visible", visible); return result; }
public Object coerceToBean(Object val, Component comp) { //save final Listbox lbx = (Listbox) comp; if (Executions.getCurrent().getAttribute("zkoss.zkplus.databind.ON_SELECT" + lbx.getUuid()) != null) { //bug #2140491 //triggered by coerceToUi(), ignore this Executions.getCurrent().removeAttribute("zkoss.zkplus.databind.ON_SELECT" + lbx.getUuid()); return TypeConverter.IGNORE; } if (val != null) { final ListModel model = lbx.getModel(); //no model case, assume Listitem.value to be used with selectedItem return model != null ? model.getElementAt(((Listitem) val).getIndex()) : ((Listitem) val).getValue(); } return null; } }
final int index = item.getIndex(); item.setIndexDirectly(-1); // mark
int index = ((Listitem) item).getIndex();