1 29 30 package com.caucho.xtpdoc; 31 32 import javax.xml.stream.XMLStreamException; 33 import javax.xml.stream.XMLStreamWriter; 34 import java.io.IOException ; 35 import java.io.PrintWriter ; 36 import java.util.logging.Logger ; 37 38 public class Body extends ContainerNode { 39 private static Logger 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 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 out.writeStartElement("tr"); 125 126 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(); out.writeEndElement(); 137 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(); out.writeEndElement(); 148 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(); out.writeEndElement(); 159 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("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(); out.writeEndElement(); out.writeEndElement(); out.writeEndElement(); out.writeEndElement(); 184 out.writeEndElement(); 186 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(); 198 out.writeEndElement(); out.writeEndElement(); 201 String cp = getDocument().getContextPath(); 202 203 out.writeStartElement("tr"); 205 out.writeStartElement("td"); 206 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(); 218 out.writeEndElement(); 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(); out.writeEndElement(); 230 out.writeStartElement("tr"); 232 out.writeAttribute("valign", "top"); 233 out.writeStartElement("td"); 234 out.writeAttribute("class", "leftnav"); 236 out.writeEndElement(); 237 238 out.writeStartElement("td"); 239 out.writeAttribute("class", "leftnav"); 241 242 parseNavigation(); 243 244 getDocument().writeLeftNav(out); 245 246 out.writeEndElement(); 248 out.writeStartElement("td"); out.writeEndElement(); 250 251 out.writeStartElement("td"); 252 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 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(); out.writeEndElement(); out.writeEndElement(); out.writeEndElement(); out.writeEndElement(); 337 out.writeEndElement(); out.writeEndElement(); out.writeEndElement(); 341 out.writeEndElement(); } 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 out) 384 throws IOException 385 { 386 out.println("\\begin{document}"); 387 388 super.writeLaTeXTop(out); 389 390 out.println("\\end{document}"); 391 } 392 } 393 | Popular Tags |