KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > lobobrowser > html > test > BarebonesTest


1 package org.lobobrowser.html.test;
2
3 import java.io.InputStream JavaDoc;
4 import java.io.InputStreamReader JavaDoc;
5 import java.io.Reader JavaDoc;
6 import java.net.URL JavaDoc;
7 import java.net.URLConnection JavaDoc;
8
9 import org.lobobrowser.html.*;
10 import org.lobobrowser.html.gui.*;
11 import org.lobobrowser.html.parser.*;
12 import org.w3c.dom.Document JavaDoc;
13 import org.xml.sax.InputSource JavaDoc;
14
15 import javax.swing.*;
16 import java.awt.*;
17
18 /**
19  * Minimal rendering example: google.com.
20  */

21 public class BarebonesTest {
22     public static void main(String JavaDoc[] args) throws Exception JavaDoc {
23         String JavaDoc uri = "http://google.com";
24         //String uri = "file:C:\\opt\\XAMJ_Project\\HTML_Renderer\\testing\\table2.html";
25
URL JavaDoc url = new URL JavaDoc(uri);
26         URLConnection JavaDoc connection = url.openConnection();
27         InputStream JavaDoc in = connection.getInputStream();
28
29         // A Reader should be created with the correct charset,
30
// which may be obtained from the Content-Type header
31
// of an HTTP response.
32
Reader JavaDoc reader = new InputStreamReader JavaDoc(in);
33
34         // InputSourceImpl constructor with URI recommended
35
// so the renderer can resolve page component URLs.
36
InputSource JavaDoc is = new InputSourceImpl(reader, uri);
37         HtmlPanel htmlPanel = new HtmlPanel();
38         HtmlRendererContext rendererContext = new LocalHtmlRendererContext(htmlPanel);
39         
40         // Set a preferred width for the HtmlPanel,
41
// which will allow getPreferredSize() to
42
// be calculated according to block content.
43
// We do this here to illustrate the
44
// feature, but is generally not
45
// recommended for performance reasons.
46
htmlPanel.setPreferredWidth(800);
47         
48         // This example does not perform incremental
49
// rendering.
50
DocumentBuilderImpl builder = new DocumentBuilderImpl(rendererContext.getUserAgentContext(), rendererContext);
51         Document JavaDoc document = builder.parse(is);
52         in.close();
53
54         // Set the document in the HtmlPanel. This
55
// is what lets the document render.
56
htmlPanel.setDocument(document, rendererContext);
57
58         // Create a JFrame and add the HtmlPanel to it.
59
final JFrame frame = new JFrame();
60         frame.getContentPane().add(htmlPanel);
61         
62         // We pack the JFrame to demonstrate the
63
// validity of HtmlPanel's preferred size.
64
// Normally you would want to set a specific
65
// JFrame size instead.
66

67         // This should be done in the GUI dispatch
68
// thread since the document is scheduled to
69
// be rendered in that thread.
70
EventQueue.invokeLater(new Runnable JavaDoc() {
71             public void run() {
72                 frame.pack();
73                 frame.setVisible(true);
74             }
75         });
76     }
77
78     private static class LocalHtmlRendererContext extends SimpleHtmlRendererContext {
79         // Override methods here to implement browser functionality
80
public LocalHtmlRendererContext(HtmlPanel contextComponent) {
81             super(contextComponent);
82         }
83     }
84 }
85
Popular Tags