001: /* TabDefaultV.java
002:
003: {{IS_NOTE
004: Purpose:
005:
006: Description:
007:
008: History:
009: Sep 6, 2007 3:59:51 PM , Created by robbiecheng
010: }}IS_NOTE
011:
012: Copyright (C) 2007 Potix Corporation. All Rights Reserved.
013:
014: {{IS_RIGHT
015: This program is distributed under GPL Version 2.0 in the hope that
016: it will be useful, but WITHOUT ANY WARRANTY.
017: }}IS_RIGHT
018: */
019: package org.zkoss.zkmax.zul.render;
020:
021: import java.io.IOException;
022: import java.io.Writer;
023:
024: import org.zkoss.zk.ui.Component;
025: import org.zkoss.zk.ui.Execution;
026: import org.zkoss.zk.ui.Executions;
027: import org.zkoss.zk.ui.render.ComponentRenderer;
028: import org.zkoss.zk.ui.render.SmartWriter;
029: import org.zkoss.zk.ui.render.Out;
030:
031: import org.zkoss.zul.Tab;
032: import org.zkoss.zul.Tabbox;
033: import org.zkoss.zul.Tabpanel;
034:
035: /**
036: * {@link Tab}'s default mold in vertical only.
037: *
038: * @author robbiecheng
039: *
040: * @since 3.0.0
041: *
042: */
043: public class TabDefaultV implements ComponentRenderer {
044: public void render(Component comp, Writer out) throws IOException {
045: final Tab self = (Tab) comp;
046: final Tabbox tabbox = self.getTabbox();
047: final SmartWriter wh = new SmartWriter(out);
048: final Execution exec = Executions.getCurrent();
049: final String look = tabbox.getTabLook() + '-';
050: final String suffix = self.isSelected() ? "-sel" : "-uns";
051: final Tabpanel panel = self.getLinkedPanel();
052:
053: wh.write("<tr id=\"").write(self.getUuid()).write(
054: "\" z.type=\"Tab\"").write(self.getOuterAttrs()).write(
055: " z.sel=\"").write(self.isSelected()).write(
056: "\" z.box=\"").write(tabbox.getUuid()).write(
057: "\" z.panel=\"").write(
058: panel == null ? "" : panel.getUuid()).write("\" ")
059: .write("z.disabled=\"").write(self.isDisabled())
060: .writeln("\">");
061:
062: wh
063: .write("<td align=\"right\"")
064: .writeAttr("width", self.getWidth())
065: .writeln(
066: "><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">")
067: .write("<tr><td class=\"").write(look).write("tl")
068: .write(suffix).writeln("\"></td>").write(
069: "<td colspan=\"3\" class=\"").write(look)
070: .write("tm").write(suffix).writeln("\"></td>").write(
071: "<td class=\"").write(look).write("tr").write(
072: suffix).writeln("\"></td>").write("</tr>");
073:
074: wh.write("<tr class=\"").write(look).write('m').write(
075: "\"><td class=\"").write(look).write("ml")
076: .write(suffix).writeln("\"></td>").write(
077: "<td width=\"3\" class=\"").write(look).write(
078: "mm").write(suffix).writeln("\"></td>").write(
079: "<td align=\"center\" class=\"").write(look)
080: .write("mm").write(suffix).write("\" id=\"").write(
081: self.getUuid()).write("!real\"").write(
082: self.getInnerAttrs()).write(
083: "><a href=\"javascript:;\" id=\"").write(
084: self.getUuid()).write("!a\">");
085: wh.write(self.getImgTag());
086: new Out(self.getLabel()).render(out);
087: wh.writeln("</a></td>");
088:
089: wh.write("<td width=\"3\" class=\"").write(look).write("mm")
090: .write(suffix).writeln("\"></td>")
091: .write("<td class=\"").write(look).write("mr").write(
092: suffix).writeln("\"></td></tr>");
093:
094: if (self.isClosable()) {
095: wh
096: .write("<tr height=\"8\"><td class=\"")
097: .write(look)
098: .write("ml")
099: .write(suffix)
100: .writeln("\"></td>")
101: .write("<td width=\"3\" class=\"")
102: .write(look)
103: .write("mm")
104: .write(suffix)
105: .writeln("\"></td>")
106: .write(
107: "<td align=\"center\" valign=\"buttom\" class=\"")
108: .write(look).write("mm").write(suffix).write(
109: "\"><img id=\"").write(self.getUuid())
110: .write("!close\" src=\"").write(
111: exec.encodeURL("~./zul/img/close-off.gif"))
112: .writeln("\"/></td>").write(
113: "<td width=\"3\" class=\"").write(look)
114: .write("mm").write(suffix).writeln("\"></td>")
115: .write("<td class=\"").write(look).write("mr")
116: .write(suffix).writeln("\"></td></tr>");
117: }
118:
119: wh.write("<tr><td class=\"").write(look).write("bl").write(
120: suffix).writeln("\"></td>").write(
121: "<td colspan=\"3\" class=\"").write(look).write("bm")
122: .write(suffix).writeln("\"></td>")
123: .write("<td class=\"").write(look).write("br").write(
124: suffix).writeln("\"></td>").writeln(
125: "</tr></table></td></tr>");
126: }
127: }
|