HtmlDemo.java |
1 /* 2 * @(#)HtmlDemo.java 1.11 04/07/26 3 * 4 * Copyright (c) 2004 Sun Microsystems, Inc. All Rights Reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are met: 8 * 9 * -Redistribution of source code must retain the above copyright notice, this 10 * list of conditions and the following disclaimer. 11 * 12 * -Redistribution in binary form must reproduce the above copyright notice, 13 * this list of conditions and the following disclaimer in the documentation 14 * and/or other materials provided with the distribution. 15 * 16 * Neither the name of Sun Microsystems, Inc. or the names of contributors may 17 * be used to endorse or promote products derived from this software without 18 * specific prior written permission. 19 * 20 * This software is provided "AS IS," without a warranty of any kind. ALL 21 * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING 22 * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE 23 * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") 24 * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE 25 * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS 26 * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST 27 * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, 28 * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY 29 * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, 30 * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 31 * 32 * You acknowledge that this software is not designed, licensed or intended 33 * for use in the design, construction, operation or maintenance of any 34 * nuclear facility. 35 */ 36 37 /* 38 * @(#)HtmlDemo.java 1.11 04/07/26 39 */ 40 41 42 import javax.swing.*; 43 import javax.swing.event.*; 44 import javax.swing.text.*; 45 import javax.swing.text.html.*; 46 import javax.swing.border.*; 47 import javax.swing.colorchooser.*; 48 import javax.swing.filechooser.*; 49 import javax.accessibility.*; 50 51 import java.awt.*; 52 import java.awt.event.*; 53 import java.beans.*; 54 import java.util.*; 55 import java.io.*; 56 import java.applet.*; 57 import java.net.*; 58 59 /** 60 * Html Demo 61 * 62 * @version 1.11 04/07/26 63 * @author Jeff Dinkins 64 */ 65 public class HtmlDemo extends DemoModule { 66 67 JEditorPane html; 68 69 /** 70 * main method allows us to run as a standalone demo. 71 */ 72 public static void main(String[] args) { 73 HtmlDemo demo = new HtmlDemo(null); 74 demo.mainImpl(); 75 } 76 77 /** 78 * HtmlDemo Constructor 79 */ 80 public HtmlDemo(SwingSet2 swingset) { 81 // Set the title for this demo, and an icon used to represent this 82 // demo inside the SwingSet2 app. 83 super(swingset, "HtmlDemo", "toolbar/JEditorPane.gif"); 84 85 try { 86 URL url = null; 87 // System.getProperty("user.dir") + 88 // System.getProperty("file.separator"); 89 String path = null; 90 try { 91 path = "/resources/index.html"; 92 url = getClass().getResource(path); 93 } catch (Exception e) { 94 System.err.println("Failed to open " + path); 95 url = null; 96 } 97 98 if(url != null) { 99 html = new JEditorPane(url); 100 html.setEditable(false); 101 html.addHyperlinkListener(createHyperLinkListener()); 102 103 JScrollPane scroller = new JScrollPane(); 104 JViewport vp = scroller.getViewport(); 105 vp.add(html); 106 getDemoPanel().add(scroller, BorderLayout.CENTER); 107 } 108 } catch (MalformedURLException e) { 109 System.out.println("Malformed URL: " + e); 110 } catch (IOException e) { 111 System.out.println("IOException: " + e); 112 } 113 } 114 115 public HyperlinkListener createHyperLinkListener() { 116 return new HyperlinkListener() { 117 public void hyperlinkUpdate(HyperlinkEvent e) { 118 if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { 119 if (e instanceof HTMLFrameHyperlinkEvent) { 120 ((HTMLDocument)html.getDocument()).processHTMLFrameHyperlinkEvent( 121 (HTMLFrameHyperlinkEvent)e); 122 } else { 123 try { 124 html.setPage(e.getURL()); 125 } catch (IOException ioe) { 126 System.out.println("IOE: " + ioe); 127 } 128 } 129 } 130 } 131 }; 132 } 133 134 void updateDragEnabled(boolean dragEnabled) { 135 html.setDragEnabled(dragEnabled); 136 } 137 138 } 139