KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > caucho > xtpdoc > Body


1 /*
2  * Copyright (c) 1998-2000 Caucho Technology -- all rights reserved
3  *
4  * This file is part of Resin(R) Open Source
5  *
6  * Each copy or derived work must preserve the copyright notice and this
7  * notice unmodified.
8  *
9  * Resin Open Source is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * Resin Open Source is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
17  * of NON-INFRINGEMENT. See the GNU General Public License for more
18  * details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with Resin Open Source; if not, write to the
22  *
23  * Free Software Foundation, Inc.
24  * 59 Temple Place, Suite 330
25  * Boston, MA 02111-1307 USA
26  *
27  * @author Emil Ong
28  */

29
30 package com.caucho.xtpdoc;
31
32 import javax.xml.stream.XMLStreamException;
33 import javax.xml.stream.XMLStreamWriter;
34 import java.io.IOException JavaDoc;
35 import java.io.PrintWriter JavaDoc;
36 import java.util.logging.Logger JavaDoc;
37
38 public class Body extends ContainerNode {
39   private static Logger JavaDoc log = Logger.getLogger(Body.class.getName());
40
41   private Summary _summary;
42   private Navigation _navigation;
43   private Index _index;
44
45   public Body(Document document)
46   {
47     super(document);
48   }
49
50   private void parseNavigation()
51   {
52     NavigationItem item = getDocument().getNavigation();
53
54     if (item != null)
55       _navigation = item.getNavigation();
56   }
57
58   /*
59   public void setLocalTOC(String text)
60   {
61   }
62   */

63
64   public Summary createSummary()
65   {
66     _summary = new Summary(getDocument());
67
68     addItem(_summary);
69     
70     return _summary;
71   }
72
73   public Localtoc createLocaltoc()
74   {
75     Localtoc toc = new Localtoc(getDocument());
76
77     addItem(toc);
78
79     return toc;
80   }
81
82   public Faq createFaq()
83   {
84     Faq faq = new Faq(getDocument());
85     addItem(faq);
86     return faq;
87   }
88
89   public S1 createS1()
90   {
91     S1 s1 = new S1(getDocument());
92     addItem(s1);
93     return s1;
94   }
95   
96   public Defun createDefun()
97   {
98     Defun defun = new Defun(getDocument());
99     addItem(defun);
100     return defun;
101   }
102
103   public Index createIxx()
104   {
105     _index = new Index(getDocument());
106     return _index;
107   }
108
109   public void writeHtml(XMLStreamWriter out)
110     throws XMLStreamException
111   {
112     out.writeStartElement("body");
113     out.writeAttribute("bgcolor", "white");
114     out.writeAttribute("leftmargin", "0");
115
116     out.writeStartElement("table");
117     out.writeAttribute("width", "100%");
118     out.writeAttribute("border", "0");
119     out.writeAttribute("cellspacing", "0");
120     out.writeAttribute("cellpadding", "0");
121     out.writeAttribute("summary", "");
122
123     // logo block
124
out.writeStartElement("tr");
125
126     // spacer
127
out.writeStartElement("td");
128     out.writeAttribute("width", "2");
129     out.writeStartElement("img");
130     out.writeAttribute("alt", "");
131     out.writeAttribute("width", "2");
132     out.writeAttribute("height", "1");
133     out.writeAttribute("src", getDocument().getContextPath() + "/images/pixel.gif");
134     out.writeEndElement(); // </img>
135
out.writeEndElement(); // </td>
136

137     // logo
138
out.writeStartElement("td");
139     out.writeAttribute("width", "150");
140     out.writeStartElement("img");
141     out.writeAttribute("alt", "");
142     out.writeAttribute("width", "150");
143     out.writeAttribute("height", "63");
144     out.writeAttribute("src", getDocument().getContextPath() + "/images/caucho-white.jpg");
145     out.writeEndElement(); // </img>
146
out.writeEndElement(); // </td>
147

148     // spacer
149
out.writeStartElement("td");
150     out.writeAttribute("width", "10");
151     out.writeStartElement("img");
152     out.writeAttribute("alt", "");
153     out.writeAttribute("width", "10");
154     out.writeAttribute("height", "1");
155     out.writeAttribute("src", getDocument().getContextPath() + "/images/pixel.gif");
156     out.writeEndElement(); // </img>
157
out.writeEndElement(); // </td>
158

159     // top label
160
out.writeStartElement("td");
161     out.writeStartElement("table");
162     out.writeAttribute("width", "100%");
163     out.writeAttribute("cellspacing", "0");
164     out.writeAttribute("cellpadding", "0");
165     out.writeAttribute("border", "0");
166     out.writeStartElement("tr");
167     out.writeAttribute("class", "toptitle");
168     out.writeStartElement("td");
169     //out.writeAttribute("rowspan", "2");
170
out.writeAttribute("width", "90%");
171     out.writeAttribute("background", getDocument().getContextPath() + "/images/hbleed.gif");
172     out.writeStartElement("font");
173     out.writeAttribute("class", "toptitle");
174     out.writeAttribute("size", "+3");
175     out.writeEntityRef("nbsp");
176     if (getDocument().getHeader() != null)
177       out.writeCharacters(getDocument().getHeader().getTitle());
178     out.writeEndElement(); // </font>
179
out.writeEndElement(); // </td>
180
out.writeEndElement(); // </tr>
181
out.writeEndElement(); // </table>
182
out.writeEndElement(); // </td>
183

184     out.writeEndElement(); // </tr>
185

186     // space
187
out.writeStartElement("tr");
188     out.writeStartElement("td");
189     out.writeAttribute("colspan", "4");
190     
191     out.writeStartElement("img");
192     out.writeAttribute("alt", "");
193     out.writeAttribute("width", "1");
194     out.writeAttribute("height", "5");
195     out.writeAttribute("src", getDocument().getContextPath() + "/images/pixel.jpg");
196     out.writeEndElement(); // </img>
197

198     out.writeEndElement(); // </td>
199
out.writeEndElement(); // </tr>
200

201     String JavaDoc cp = getDocument().getContextPath();
202
203     // left
204
out.writeStartElement("tr");
205     out.writeStartElement("td");
206     //out.writeAttribute("bgcolor", "#b9cef7");
207
//out.writeAttribute("class", "section");
208
out.writeAttribute("colspan", "2");
209     out.writeAttribute("background", cp + "/images/left_background.gif");
210     
211     out.writeStartElement("img");
212     out.writeAttribute("alt", "");
213     out.writeAttribute("width", "1");
214     out.writeAttribute("height", "20");
215     out.writeAttribute("src", cp + "/images/pixel.gif");
216     out.writeEndElement(); // </img>
217

218     out.writeEndElement(); // </td>
219

220     out.writeStartElement("td");
221     out.writeAttribute("colspan", "2");
222     out.writeStartElement("img");
223     out.writeAttribute("alt", "");
224     out.writeAttribute("width", "1");
225     out.writeAttribute("height", "20");
226     out.writeAttribute("src", cp + "/images/pixel.gif");
227     out.writeEndElement(); // </td>
228
out.writeEndElement(); // </tr>
229

230     // navigation
231
out.writeStartElement("tr");
232     out.writeAttribute("valign", "top");
233     out.writeStartElement("td");
234     //out.writeAttribute("bgcolor", "#b9cef7");
235
out.writeAttribute("class", "leftnav");
236     out.writeEndElement();
237     
238     out.writeStartElement("td");
239     // out.writeAttribute("bgcolor", "#b9cef7");
240
out.writeAttribute("class", "leftnav");
241     
242     parseNavigation();
243
244     getDocument().writeLeftNav(out);
245
246     out.writeEndElement(); // td
247

248     out.writeStartElement("td"); //spacer
249
out.writeEndElement();
250     
251     out.writeStartElement("td");
252     // actual body
253

254     NavigationItem item = getDocument().getNavigation();
255
256     if (item != null) {
257       writeThreadNavigation(out, item);
258       out.writeEmptyElement("hr");
259     }
260
261     Header header = getDocument().getHeader();
262       
263     if (header != null && header.getDescription() != null) {
264       header.getDescription().writeHtml(out);
265     }
266
267     if (header != null && header.getTutorialStartPage() != null) {
268       out.writeStartElement("p");
269       out.writeStartElement("a");
270       out.writeAttribute("href", header.getTutorialStartPage());
271       out.writeCharacters("Demo");
272       out.writeEndElement();
273       out.writeEndElement();
274     }
275
276     if (_index != null)
277       _index.writeHtml(out);
278
279     super.writeHtml(out);
280
281     if (header != null && header.getTutorialStartPage() != null) {
282       out.writeStartElement("p");
283       out.writeStartElement("a");
284       out.writeAttribute("href", header.getTutorialStartPage());
285       out.writeCharacters("Demo");
286       out.writeEndElement();
287       out.writeEndElement();
288     }
289
290     out.writeStartElement("hr");
291     out.writeEndElement();
292
293     if (item != null) {
294       writeThreadNavigation(out, item);
295     }
296     
297     // nav
298

299     out.writeStartElement("table");
300     out.writeAttribute("border", "0");
301     out.writeAttribute("cellspacing", "0");
302     out.writeAttribute("width", "100%");
303     out.writeStartElement("tr");
304     out.writeStartElement("td");
305     out.writeStartElement("em");
306     out.writeStartElement("small");
307     out.writeCharacters("Copyright ");
308     out.writeEntityRef("copy");
309     out.writeCharacters(" 1998-2006 Caucho Technology, Inc. All rights reserved.");
310     out.writeEmptyElement("br");
311     out.writeCharacters("Resin ");
312     out.writeStartElement("sup");
313     out.writeStartElement("font");
314     out.writeAttribute("size", "-1");
315     out.writeEntityRef("#174");
316     out.writeEndElement();
317     out.writeEndElement();
318     out.writeCharacters(" is a registered trademark, and Quercus");
319     out.writeStartElement("sup");
320     out.writeCharacters("tm");
321     out.writeEndElement();
322     out.writeCharacters(", Amber");
323     out.writeStartElement("sup");
324     out.writeCharacters("tm");
325     out.writeEndElement();
326     out.writeCharacters(", and Hessian");
327     out.writeStartElement("sup");
328     out.writeCharacters("tm");
329     out.writeEndElement();
330     out.writeCharacters(" are trademarks of Caucho Technology.");
331     out.writeEndElement(); // small
332
out.writeEndElement(); // em
333
out.writeEndElement(); // td
334
out.writeEndElement(); // tr
335
out.writeEndElement(); // table
336

337     out.writeEndElement(); // td
338
out.writeEndElement(); // tr
339
out.writeEndElement(); // table
340

341     out.writeEndElement(); //body
342
}
343   
344   public void writeThreadNavigation(XMLStreamWriter out, NavigationItem item)
345     throws XMLStreamException
346   {
347     out.writeStartElement("table");
348     out.writeAttribute("border", "0");
349     out.writeAttribute("cellspacing", "0");
350     out.writeAttribute("width", "100%");
351     out.writeStartElement("tr");
352       
353     out.writeStartElement("td");
354     out.writeAttribute("width", "30%");
355     out.writeAttribute("align", "left");
356     if (item.getPrevious() != null) {
357       item.getPrevious().writeLink(out);
358     }
359     out.writeEndElement();
360       
361     out.writeStartElement("td");
362     out.writeAttribute("width", "40%");
363     out.writeStartElement("center");
364     if (item.getParent() != null) {
365       item.getParent().writeLink(out);
366     }
367     out.writeEndElement();
368     out.writeEndElement();
369       
370     out.writeStartElement("td");
371     out.writeAttribute("width", "30%");
372     out.writeAttribute("align", "right");
373     if (item.getNext() != null) {
374       item.getNext().writeLink(out);
375     }
376     out.writeEndElement();
377       
378     out.writeEndElement();
379     out.writeEndElement();
380   }
381       
382
383   public void writeLaTeXTop(PrintWriter JavaDoc out)
384     throws IOException JavaDoc
385   {
386     out.println("\\begin{document}");
387
388     super.writeLaTeXTop(out);
389
390     out.println("\\end{document}");
391   }
392 }
393
Popular Tags