home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / JEditorPane.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  6.0 KB  |  225 lines

  1. package com.sun.java.swing;
  2.  
  3. import com.sun.java.accessibility.AccessibleContext;
  4. import com.sun.java.swing.event.HyperlinkEvent;
  5. import com.sun.java.swing.event.HyperlinkListener;
  6. import com.sun.java.swing.text.BadLocationException;
  7. import com.sun.java.swing.text.DefaultEditorKit;
  8. import com.sun.java.swing.text.Document;
  9. import com.sun.java.swing.text.EditorKit;
  10. import com.sun.java.swing.text.JTextComponent;
  11. import java.io.IOException;
  12. import java.io.InputStream;
  13. import java.net.URL;
  14. import java.net.URLConnection;
  15. import java.util.Hashtable;
  16.  
  17. public class JEditorPane extends JTextComponent {
  18.    private EditorKit kit;
  19.    private Hashtable typeHandlers;
  20.    private static final Object kitRegistryKey = new StringBuffer("JEditorPane.kitRegistry");
  21.    private static final Object kitTypeRegistryKey = new StringBuffer("JEditorPane.kitTypeRegistry");
  22.    // $FF: synthetic field
  23.    static Class class$com$sun$java$swing$event$HyperlinkListener;
  24.  
  25.    public JEditorPane() {
  26.       registerEditorKitForContentType("text/plain", "com.sun.java.swing.text.DefaultEditorKit");
  27.       registerEditorKitForContentType("text/html", "com.sun.java.swing.text.html.HTMLEditorKit");
  28.       registerEditorKitForContentType("text/rtf", "com.sun.java.swing.text.rtf.RTFEditorKit");
  29.       registerEditorKitForContentType("application/rtf", "com.sun.java.swing.text.rtf.RTFEditorKit");
  30.    }
  31.  
  32.    public JEditorPane(URL var1) throws IOException {
  33.       this();
  34.       this.setPage(var1);
  35.    }
  36.  
  37.    public JEditorPane(String var1) throws IOException {
  38.       this();
  39.       this.setPage(var1);
  40.    }
  41.  
  42.    public synchronized void addHyperlinkListener(HyperlinkListener var1) {
  43.       super.listenerList.add(class$com$sun$java$swing$event$HyperlinkListener != null ? class$com$sun$java$swing$event$HyperlinkListener : (class$com$sun$java$swing$event$HyperlinkListener = JComponent.class$("com.sun.java.swing.event.HyperlinkListener")), var1);
  44.    }
  45.  
  46.    public synchronized void removeHyperlinkListener(HyperlinkListener var1) {
  47.       super.listenerList.remove(class$com$sun$java$swing$event$HyperlinkListener != null ? class$com$sun$java$swing$event$HyperlinkListener : (class$com$sun$java$swing$event$HyperlinkListener = JComponent.class$("com.sun.java.swing.event.HyperlinkListener")), var1);
  48.    }
  49.  
  50.    public void fireHyperlinkUpdate(HyperlinkEvent var1) {
  51.       Object[] var2 = super.listenerList.getListenerList();
  52.  
  53.       for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) {
  54.          if (var2[var3] == (class$com$sun$java$swing$event$HyperlinkListener != null ? class$com$sun$java$swing$event$HyperlinkListener : (class$com$sun$java$swing$event$HyperlinkListener = JComponent.class$("com.sun.java.swing.event.HyperlinkListener")))) {
  55.             ((HyperlinkListener)var2[var3 + 1]).hyperlinkUpdate(var1);
  56.          }
  57.       }
  58.  
  59.    }
  60.  
  61.    public void setPage(URL var1) throws IOException {
  62.       if (var1 == null) {
  63.          throw new IOException("invalid url");
  64.       } else {
  65.          InputStream var2 = var1.openStream();
  66.          URLConnection var3 = var1.openConnection();
  67.          String var4 = var3.getContentType();
  68.          this.setContentType(var4);
  69.          if (this.kit != null) {
  70.             Document var5 = this.kit.createDefaultDocument();
  71.             var5.putProperty("stream", var1);
  72.  
  73.             try {
  74.                this.kit.read(var2, var5, 0);
  75.                ((JTextComponent)this).setDocument(var5);
  76.             } catch (BadLocationException var7) {
  77.                throw new IOException(((Throwable)var7).getMessage());
  78.             }
  79.          }
  80.       }
  81.    }
  82.  
  83.    public URL getPage() {
  84.       return (URL)((JTextComponent)this).getDocument().getProperty("stream");
  85.    }
  86.  
  87.    public void setPage(String var1) throws IOException {
  88.       if (var1 == null) {
  89.          throw new IOException("invalid url");
  90.       } else {
  91.          URL var2 = new URL(var1);
  92.          this.setPage(var2);
  93.       }
  94.    }
  95.  
  96.    public String getUIClassID() {
  97.       return "EditorPaneUI";
  98.    }
  99.  
  100.    protected EditorKit createDefaultEditorKit() {
  101.       return new DefaultEditorKit();
  102.    }
  103.  
  104.    public final EditorKit getEditorKit() {
  105.       if (this.kit == null) {
  106.          this.kit = this.createDefaultEditorKit();
  107.       }
  108.  
  109.       return this.kit;
  110.    }
  111.  
  112.    public final String getContentType() {
  113.       return this.kit != null ? this.kit.getContentType() : null;
  114.    }
  115.  
  116.    public final void setContentType(String var1) {
  117.       if (this.kit == null || !var1.equals(this.kit.getContentType())) {
  118.          EditorKit var2 = this.getEditorKitForContentType(var1);
  119.          if (var2 != null) {
  120.             this.setEditorKit(var2);
  121.          }
  122.       }
  123.  
  124.    }
  125.  
  126.    public void setEditorKit(EditorKit var1) {
  127.       EditorKit var2 = this.kit;
  128.       if (var2 != null) {
  129.          var2.deinstall(this);
  130.       }
  131.  
  132.       this.kit = var1;
  133.       if (this.kit != null) {
  134.          this.kit.install(this);
  135.          ((JTextComponent)this).setDocument(this.kit.createDefaultDocument());
  136.       }
  137.  
  138.       ((JComponent)this).firePropertyChange("editorKit", var2, var1);
  139.    }
  140.  
  141.    public EditorKit getEditorKitForContentType(String var1) {
  142.       if (this.typeHandlers == null) {
  143.          this.typeHandlers = new Hashtable(3);
  144.       }
  145.  
  146.       Object var2 = (EditorKit)this.typeHandlers.get(var1);
  147.       if (var2 == null) {
  148.          var2 = createEditorKitForContentType(var1);
  149.          if (var2 != null) {
  150.             this.setEditorKitForContentType(var1, (EditorKit)var2);
  151.          }
  152.       }
  153.  
  154.       if (var2 == null) {
  155.          var2 = new DefaultEditorKit();
  156.       }
  157.  
  158.       return (EditorKit)var2;
  159.    }
  160.  
  161.    public void setEditorKitForContentType(String var1, EditorKit var2) {
  162.       if (this.typeHandlers == null) {
  163.          this.typeHandlers = new Hashtable(3);
  164.       }
  165.  
  166.       this.typeHandlers.put(var1, var2);
  167.    }
  168.  
  169.    public static EditorKit createEditorKitForContentType(String var0) {
  170.       EditorKit var1 = null;
  171.       Hashtable var2 = (Hashtable)SwingUtilities.appContextGet(kitRegistryKey);
  172.       if (var2 == null) {
  173.          var2 = new Hashtable();
  174.          SwingUtilities.appContextPut(kitRegistryKey, var2);
  175.       } else {
  176.          var1 = (EditorKit)var2.get(var0);
  177.       }
  178.  
  179.       if (var1 == null) {
  180.          String var3 = (String)getKitTypeRegistry().get(var0);
  181.  
  182.          try {
  183.             Class var4 = Class.forName(var3);
  184.             var1 = (EditorKit)var4.newInstance();
  185.             var2.put(var0, var1);
  186.          } catch (Throwable var5) {
  187.             var5.printStackTrace();
  188.             var1 = null;
  189.          }
  190.       }
  191.  
  192.       return var1 != null ? (EditorKit)var1.clone() : null;
  193.    }
  194.  
  195.    public static void registerEditorKitForContentType(String var0, String var1) {
  196.       getKitTypeRegistry().put(var0, var1);
  197.    }
  198.  
  199.    public boolean isManagingFocus() {
  200.       return true;
  201.    }
  202.  
  203.    public boolean getScrollableTracksViewportWidth() {
  204.       return true;
  205.    }
  206.  
  207.    public AccessibleContext getAccessibleContext() {
  208.       if (super.accessibleContext == null) {
  209.          super.accessibleContext = new AccessibleJEditorPane(this);
  210.       }
  211.  
  212.       return super.accessibleContext;
  213.    }
  214.  
  215.    private static Hashtable getKitTypeRegistry() {
  216.       Hashtable var0 = (Hashtable)SwingUtilities.appContextGet(kitTypeRegistryKey);
  217.       if (var0 == null) {
  218.          var0 = new Hashtable();
  219.          SwingUtilities.appContextPut(kitTypeRegistryKey, var0);
  220.       }
  221.  
  222.       return var0;
  223.    }
  224. }
  225.