home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / JEditorPane$JEditorPaneAccessibleHypertextSupport.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.3 KB  |  112 lines

  1. package javax.swing;
  2.  
  3. import javax.accessibility.AccessibleHyperlink;
  4. import javax.accessibility.AccessibleHypertext;
  5. import javax.swing.text.AttributeSet;
  6. import javax.swing.text.BadLocationException;
  7. import javax.swing.text.Document;
  8. import javax.swing.text.Element;
  9. import javax.swing.text.ElementIterator;
  10. import javax.swing.text.JTextComponent;
  11. import javax.swing.text.html.HTML.Attribute;
  12. import javax.swing.text.html.HTML.Tag;
  13.  
  14. public class JEditorPane$JEditorPaneAccessibleHypertextSupport extends JEditorPane.AccessibleJEditorPane implements AccessibleHypertext {
  15.    JEditorPane.JEditorPaneAccessibleHypertextSupport.LinkVector hyperlinks;
  16.    boolean linksValid;
  17.    // $FF: synthetic field
  18.    private final JEditorPane this$0;
  19.  
  20.    private void buildLinkTable() {
  21.       this.hyperlinks.removeAllElements();
  22.       Document var1 = this.this$0.getDocument();
  23.       if (var1 != null) {
  24.          ElementIterator var2 = new ElementIterator(var1);
  25.  
  26.          Element var3;
  27.          while((var3 = var2.next()) != null) {
  28.             if (var3.isLeaf()) {
  29.                AttributeSet var4 = var3.getAttributes();
  30.                AttributeSet var5 = (AttributeSet)var4.getAttribute(Tag.A);
  31.                String var6 = var5 != null ? (String)var5.getAttribute(Attribute.HREF) : null;
  32.                if (var6 != null) {
  33.                   this.hyperlinks.addElement(new JEditorPane.JEditorPaneAccessibleHypertextSupport.HTMLLink(this, var3));
  34.                }
  35.             }
  36.          }
  37.       }
  38.  
  39.       this.linksValid = true;
  40.    }
  41.  
  42.    public JEditorPane$JEditorPaneAccessibleHypertextSupport(JEditorPane var1) {
  43.       super(var1);
  44.       this.this$0 = var1;
  45.       this.linksValid = false;
  46.       this.hyperlinks = new JEditorPane.JEditorPaneAccessibleHypertextSupport.LinkVector(this, (JEditorPane.1)null);
  47.       Document var2 = ((JTextComponent)var1).getDocument();
  48.       if (var2 != null) {
  49.          var2.addDocumentListener(new JEditorPane.3(this));
  50.       }
  51.  
  52.    }
  53.  
  54.    public int getLinkCount() {
  55.       if (!this.linksValid) {
  56.          this.buildLinkTable();
  57.       }
  58.  
  59.       return this.hyperlinks.size();
  60.    }
  61.  
  62.    public int getLinkIndex(int var1) {
  63.       if (!this.linksValid) {
  64.          this.buildLinkTable();
  65.       }
  66.  
  67.       Element var2 = null;
  68.       Document var3 = this.this$0.getDocument();
  69.       int var4;
  70.       if (var3 != null) {
  71.          for(var2 = var3.getDefaultRootElement(); !var2.isLeaf(); var2 = var2.getElement(var4)) {
  72.             var4 = var2.getElementIndex(var1);
  73.          }
  74.       }
  75.  
  76.       return this.hyperlinks.baseElementIndex(var2);
  77.    }
  78.  
  79.    public AccessibleHyperlink getLink(int var1) {
  80.       if (!this.linksValid) {
  81.          this.buildLinkTable();
  82.       }
  83.  
  84.       return var1 >= 0 && var1 < this.hyperlinks.size() ? (AccessibleHyperlink)this.hyperlinks.elementAt(var1) : null;
  85.    }
  86.  
  87.    public String getLinkText(int var1) {
  88.       if (!this.linksValid) {
  89.          this.buildLinkTable();
  90.       }
  91.  
  92.       Element var2 = (Element)this.hyperlinks.elementAt(var1);
  93.       if (var2 != null) {
  94.          Document var3 = this.this$0.getDocument();
  95.          if (var3 != null) {
  96.             try {
  97.                return var3.getText(var2.getStartOffset(), var2.getEndOffset() - var2.getStartOffset());
  98.             } catch (BadLocationException var5) {
  99.                return null;
  100.             }
  101.          }
  102.       }
  103.  
  104.       return null;
  105.    }
  106.  
  107.    // $FF: synthetic method
  108.    static JEditorPane access$100(JEditorPane$JEditorPaneAccessibleHypertextSupport var0) {
  109.       return var0.this$0;
  110.    }
  111. }
  112.