01: /* ListboxDefault.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.Iterator;
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 default mold.
33: * @author Jeff Liu
34: * @since 3.0.0
35: */
36: public class ListboxDefault 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\"").write(
45: self.getOuterAttrs()).write(self.getInnerAttrs())
46: .write(">");
47:
48: if (self.getListhead() != null) {
49: wh
50: .write("<div id=\"")
51: .write(uuid)
52: .write("!head\" class=\"listbox-head\">")
53: .write("<table width=\"")
54: .write(self.getInnerWidth())
55: .write(
56: "\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"table-layout:fixed\">")
57: .writeComponents(self.getHeads()).write(
58: "</table></div>");
59: }
60: wh.write("<div id=\"").write(uuid).write(
61: "!body\" class=\"listbox-body\"");
62: if (self.getHeight() != null)
63: wh.write(" style=\"overflow:hidden;height:").write(
64: self.getHeight()).write("\"");
65: else if (self.getRows() > 1)
66: wh.write(" style=\"overflow:hidden;height:").write(
67: self.getRows() * 15).write("px\"");
68:
69: wh
70: .write("><table width=\"")
71: .write(self.getInnerWidth())
72: .write(
73: "\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"")
74: .write(uuid).writeln(
75: "!cave\" class=\"listbox-btable\">");
76: ZulFns.resetStripeClass(self);
77: for (Iterator it = self.getItems().iterator(); it.hasNext();) {
78: final Component child = (Component) it.next();
79: ZulFns.setStripeClass(child);
80: child.redraw(out);
81: }
82: wh.write("\n</table></div>");
83:
84: if (self.getListfoot() != null) {
85: wh
86: .write("<div id=\"")
87: .write(uuid)
88: .write("!foot\" class=\"listbox-foot\">")
89: .write("<table width=\"")
90: .write(self.getInnerWidth())
91: .write(
92: "\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"table-layout:fixed\">")
93: .writeln(self.getListfoot())
94: .write("</table></div>");
95: }
96:
97: wh.write("</div>");
98: }
99: }
|