/* Footer.java Purpose: Description: History: Fri Jan 19 12:27:04 2007, Created by tomyeh Copyright (C) 2007 Potix Corporation. All Rights Reserved. {{IS_RIGHT This program is distributed under LGPL Version 2.1 in the hope that it will be useful, but WITHOUT ANY WARRANTY. }}IS_RIGHT */ package org.zkoss.zul; import java.util.Iterator; import java.util.List; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.UiException; import org.zkoss.zul.impl.FooterElement; /** * A column of the footer of a grid ({@link Grid}). * Its parent must be {@link Foot}. * * <p>Unlike {@link Column}, you could place any child in a grid footer. * <p>Default {@link #getZclass}: z-footer.(since 3.5.0) * * @author tomyeh */ public class Footer extends FooterElement { public Footer() { } public Footer(String label) { super(label); } public Footer(String label, String src) { super(label, src); } /** Returns the grid that this belongs to. */ public Grid getGrid() { final Component comp = getParent(); return comp != null ? (Grid) comp.getParent() : null; } /** Returns the column index, starting from 0. */ public int getColumnIndex() { int j = 0; for (Iterator it = getParent().getChildren().iterator(); it.hasNext(); ++j) if (it.next() == this) break; return j; } /** Returns the column that is in the same column as * this footer, or null if not available. */ public Column getColumn() { final Grid grid = getGrid(); if (grid != null) { final Columns cs = grid.getColumns(); if (cs != null) { final int j = getColumnIndex(); final List<Column> cschs = cs.getChildren(); if (j < cschs.size()) return cschs.get(j); } } return null; } //-- super --// public String getZclass() { return _zclass == null ? "z-footer" : _zclass; } //-- Component --// protected void renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer) throws java.io.IOException { super.renderProperties(renderer); org.zkoss.zul.impl.Utils.renderCrawlableText(getLabel()); } public void beforeParentChanged(Component parent) { if (parent != null && !(parent instanceof Foot)) throw new UiException("Wrong parent: " + parent); super.beforeParentChanged(parent); } }