01: /* TabsDefault.java
02:
03: {{IS_NOTE
04: Purpose:
05:
06: Description:
07:
08: History:
09: Sep 6, 2007 6:21:35 PM , Created by robbiecheng
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:
24: import org.zkoss.zk.ui.Component;
25: import org.zkoss.zk.ui.render.ComponentRenderer;
26: import org.zkoss.zk.ui.render.SmartWriter;
27: import org.zkoss.zul.Tabbox;
28: import org.zkoss.zul.Tabs;
29:
30: /**
31: * {@link Tabs}'s default mold.
32: * It forwards to {@link TabsDefaultV} if the orient is vertical.
33: *
34: * @author robbiecheng
35: *
36: * @since 3.0.0
37: */
38: public class TabsDefault implements ComponentRenderer {
39: private final TabsDefaultV _vtabs = new TabsDefaultV();
40:
41: public void render(Component comp, Writer out) throws IOException {
42: final Tabs self = (Tabs) comp;
43: final Tabbox tabbox = self.getTabbox();
44:
45: if ("vertical".equals(tabbox.getOrient())) {
46: _vtabs.render(comp, out);
47: return;
48: }
49:
50: final SmartWriter wh = new SmartWriter(out);
51: final String look = tabbox.getTabLook() + '-';
52:
53: wh
54: .write("<div id=\"")
55: .write(self.getUuid())
56: .write("\" z.type=\"zul.tab.Tabs\"")
57: .write(self.getOuterAttrs())
58: .write(self.getInnerAttrs())
59: .writeln('>')
60: .writeln(
61: "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">")
62: .write("<tr valign=\"bottom\">");
63:
64: /* prefix column */
65: wh
66: .writeln("<td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
67: wh.write("<tr><td class=\"").write(look).writeln(
68: "first1\"></td>");
69: wh.write("<td class=\"").write(look).write("first2\" id=\"")
70: .write(self.getUuid()).write(
71: "!first\"></td></tr></table></td>");
72:
73: wh.writeChildren(self);
74:
75: wh.write("<td style=\"display:none\" id=\"").write(
76: self.getUuid()).writeln("!child\"></td>"); //bookmark for adding children
77:
78: /* postfix column */
79: wh
80: .writeln(
81: "<td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">")
82: .write("<tr><td class=\"").write(look).write(
83: "last1\" id=\"").write(self.getUuid()).writeln(
84: "!last\"></td>").write("<td class=\"").write(
85: look).writeln("last2\"></td>").writeln(
86: "</tr></table></td></tr></table></div>");
87: }
88: }
|