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 / text / html / HTMLEditorKit$NavigateLinkAction.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.6 KB  |  88 lines

  1. package javax.swing.text.html;
  2.  
  3. import java.awt.Color;
  4. import java.awt.event.ActionEvent;
  5. import javax.swing.text.AttributeSet;
  6. import javax.swing.text.BadLocationException;
  7. import javax.swing.text.Document;
  8. import javax.swing.text.Highlighter;
  9. import javax.swing.text.JTextComponent;
  10. import javax.swing.text.TextAction;
  11. import javax.swing.text.html.HTML.Attribute;
  12. import javax.swing.text.html.HTML.Tag;
  13.  
  14. class HTMLEditorKit$NavigateLinkAction extends TextAction {
  15.    HTMLEditorKit.NavigateLinkAction.FocusHighlightPainter focusPainter = new HTMLEditorKit.NavigateLinkAction.FocusHighlightPainter(this, (Color)null);
  16.    Object selectionTag;
  17.    boolean focusBack = false;
  18.  
  19.    public HTMLEditorKit$NavigateLinkAction(String var1) {
  20.       super(var1);
  21.       if ("previous-link-action".equals(var1)) {
  22.          this.focusBack = true;
  23.       }
  24.  
  25.    }
  26.  
  27.    public void actionPerformed(ActionEvent var1) {
  28.       JTextComponent var2 = ((TextAction)this).getTextComponent(var1);
  29.       if (!var2.isEditable()) {
  30.          if (var2 != null) {
  31.             Document var3 = var2.getDocument();
  32.             if (var3 != null) {
  33.                HTMLDocument var4 = (HTMLDocument)var3;
  34.                HTMLDocument.Iterator var5 = var4.getIterator(Tag.A);
  35.                int var6 = var2.getCaretPosition();
  36.                int var7 = 0;
  37.                int var8 = 0;
  38.  
  39.                while(var5.isValid()) {
  40.                   AttributeSet var9 = var5.getAttributes();
  41.                   if (var9 != null) {
  42.                      String var10 = (String)var9.getAttribute(Attribute.HREF);
  43.                      if (var10 != null) {
  44.                         int var11 = var5.getStartOffset();
  45.                         if (this.focusBack) {
  46.                            if (var11 >= var6) {
  47.                               var2.setCaretPosition(var7);
  48.                               this.moveCaretPosition(var2, var7, var8);
  49.                               return;
  50.                            }
  51.                         } else if (var11 > var6) {
  52.                            var2.setCaretPosition(var11);
  53.                            this.moveCaretPosition(var2, var11, var5.getEndOffset());
  54.                            return;
  55.                         }
  56.                      }
  57.                   }
  58.  
  59.                   var7 = var5.getStartOffset();
  60.                   var8 = var5.getEndOffset();
  61.                   var5.next();
  62.                }
  63.             }
  64.          }
  65.  
  66.       }
  67.    }
  68.  
  69.    private void moveCaretPosition(JTextComponent var1, int var2, int var3) {
  70.       Highlighter var4 = var1.getHighlighter();
  71.       if (var4 != null) {
  72.          int var5 = Math.min(var3, var2);
  73.          int var6 = Math.max(var3, var2);
  74.  
  75.          try {
  76.             if (this.selectionTag != null) {
  77.                var4.changeHighlight(this.selectionTag, var5, var6);
  78.             } else {
  79.                HTMLEditorKit.NavigateLinkAction.FocusHighlightPainter var7 = this.focusPainter;
  80.                this.selectionTag = var4.addHighlight(var5, var6, var7);
  81.             }
  82.          } catch (BadLocationException var8) {
  83.          }
  84.       }
  85.  
  86.    }
  87. }
  88.