01: /* ListboxPaging.java
02:
03: {{IS_NOTE
04: Purpose:
05:
06: Description:
07:
08: History:
09: Thu Sep 6 2007, Created by Jeff.Liu
10: }}IS_NOTE
11:
12: Copyright (C) 2007 Potix Corporation. All Rights Reserved.
13:
14: {{IS_RIGHT
15: This program is distributed under GPL Version 2.0 in the hope that
16: it will be useful, but WITHOUT ANY WARRANTY.
17: }}IS_RIGHT
18: */
19: package org.zkoss.zkmax.zul.render;
20:
21: import java.io.IOException;
22: import java.io.Writer;
23: import java.util.ListIterator;
24:
25: import org.zkoss.zk.ui.Component;
26: import org.zkoss.zk.ui.render.ComponentRenderer;
27: import org.zkoss.zk.ui.render.SmartWriter;
28: import org.zkoss.zul.Listbox;
29: import org.zkoss.zul.fn.ZulFns;
30:
31: /**
32: * {@link Listbox}'s paging mold.
33: * @author Jeff Liu
34: * @since 3.0.0
35: */
36: public class ListboxPaging implements ComponentRenderer {
37:
38: public void render(Component comp, Writer out) throws IOException {
39: final SmartWriter wh = new SmartWriter(out);
40: final Listbox self = (Listbox) comp;
41: final String uuid = self.getUuid();
42:
43: wh.write("<div id=\"").write(uuid).write(
44: "\" z.type=\"zul.sel.Libox\"");
45: wh.write(self.getOuterAttrs()).write(self.getInnerAttrs())
46: .write(">");
47:
48: wh
49: .write("<div id=\"")
50: .write(uuid)
51: .write("!paging\" class=\"listbox-paging\">")
52: .writeln(
53: "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"listbox-btable\">");
54:
55: //header
56: wh.writeln("<tbody class=\"listbox-head\">").writeComponents(
57: self.getHeads()).writeln("</tbody>");
58:
59: //body
60: wh.write("<tbody id=\"").write(uuid).writeln("!cave\">");
61: final int from = self.getVisibleBegin(), to = self
62: .getVisibleEnd();
63: if (from < self.getItems().size()) {
64: ListIterator it = self.getItems().listIterator(from);
65: ZulFns.resetStripeClass(self);
66: for (int cnt = to - from + 1; it.hasNext() && --cnt >= 0;) {
67: final Component child = (Component) it.next();
68: ZulFns.setStripeClass(child);
69: child.redraw(out);
70: }
71: }
72: wh.writeln("</tbody>");
73:
74: //Footer
75: wh.writeln("<tbody class=\"listbox-foot\">").write(
76: self.getListfoot()).write("</tbody>\n</table>");
77:
78: //Paging
79: wh.write("<div id=\"").write(uuid).write(
80: "!pgi\" class=\"listbox-pgi\">")
81: .write(self.getPaging()).write("</div></div></div>");
82: }
83: }
|