/* Listfooter.java
Purpose:
Description:
History:
Fri Jan 13 12:42:38 2006, Created by tomyeh
Copyright (C) 2006 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 list box ({@link Listbox}).
* Its parent must be {@link Listfoot}.
*
* <p>Unlike {@link Listheader}, you could place any child in a list footer.
* <p>Note: {@link Listcell} also accepts children.
* <p>Default {@link #getZclass}: z-listfooter.(since 5.0.0)
*
* @author tomyeh
*/
public class Listfooter extends FooterElement {
public Listfooter() {
}
public Listfooter(String label) {
super(label);
}
public Listfooter(String label, String src) {
super(label, src);
}
/** Returns the listbox that this belongs to.
*/
public Listbox getListbox() {
final Component comp = getParent();
return comp != null ? (Listbox) 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 list header that is in the same column as
* this footer, or null if not available.
*/
public Listheader getListheader() {
final Listbox listbox = getListbox();
if (listbox != null) {
final Listhead lcs = listbox.getListhead();
if (lcs != null) {
final int j = getColumnIndex();
final List<Listheader> lcschs = lcs.getChildren();
if (j < lcschs.size())
return lcschs.get(j);
}
}
return null;
}
//-- 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 String getZclass() {
return _zclass == null ? "z-listfooter" : _zclass;
}
public void beforeParentChanged(Component parent) {
if (parent != null && !(parent instanceof Listfoot))
throw new UiException("Wrong parent: " + parent);
super.beforeParentChanged(parent);
}
}