01: package com.xoetrope.export.html;
02:
03: import com.xoetrope.export.Block;
04:
05: /**
06: *
07: * <p> Copyright (c) Xoetrope Ltd., 2001-2006, This software is licensed under
08: * the GNU Public License (GPL), please see license.txt for more details. If
09: * you make commercial use of this software you must purchase a commercial
10: * license from Xoetrope.</p>
11: * <p> $Revision: 1.6 $</p>
12: */
13: public class HTMLBlockItem extends Block {
14: protected String tagAttribs;
15:
16: public void setTagAttribs(String attribs) {
17: tagAttribs = attribs;
18: }
19:
20: public String getTagAttribs() {
21: return tagAttribs;
22: }
23:
24: public String getStartText() {
25: String ret = "<" + tagName;
26: if (tagAttribs != null)
27: ret += " " + tagAttribs;
28: if (style != null)
29: ret += " class='" + style.replace('/', '_') + "'";
30: ret += " " + formatTagAttribs();
31: ret += " " + formatStyleInfo();
32: ret += ">";
33: if (value != null)
34: ret += value;
35: return ret;
36: }
37:
38: private String formatTagAttribs() {
39: StringBuffer attribInfo = null;
40: if (attribs.size() > 0) {
41: attribInfo = new StringBuffer();
42: String attrib = getAttrib(ATTRIB_SRC);
43: if (attrib != null)
44: attribInfo.append(" SRC='" + attrib + "'");
45: }
46: return attribInfo == null ? "" : attribInfo.toString();
47: }
48:
49: private String formatStyleInfo() {
50: StringBuffer styleInfo = null;
51: if (attribs.size() > 0) {
52: styleInfo = new StringBuffer();
53: styleInfo.append("style='");
54: styleInfo.append(getAttribText("text-align", ATTRIB_ALIGN));
55: styleInfo.append("'");
56: }
57: return styleInfo == null ? "" : styleInfo.toString();
58: }
59:
60: private String getAttribText(String attribName, String attribConst) {
61: String attrib = getAttrib(attribConst);
62: if (attrib != null)
63: return attribName + ":" + attrib + ";";
64: else
65: return "";
66: }
67:
68: public String getEndTag() {
69: return "</" + tagName + ">";
70: }
71:
72: public Block append(String tagName) {
73: HTMLBlockItem blockItem = new HTMLBlockItem();
74: blockItem.setTag(tagName);
75: blocks.add(blockItem);
76: return blockItem;
77: }
78:
79: }
|