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 / JTextComponent$AccessibleJTextComponent.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  6.5 KB  |  364 lines

  1. package javax.swing.text;
  2.  
  3. import java.awt.Insets;
  4. import java.awt.Point;
  5. import java.awt.Rectangle;
  6. import java.awt.Shape;
  7. import java.text.BreakIterator;
  8. import javax.accessibility.AccessibleContext;
  9. import javax.accessibility.AccessibleRole;
  10. import javax.accessibility.AccessibleState;
  11. import javax.accessibility.AccessibleStateSet;
  12. import javax.accessibility.AccessibleText;
  13. import javax.swing.JComponent;
  14. import javax.swing.SwingUtilities;
  15. import javax.swing.event.CaretEvent;
  16. import javax.swing.event.CaretListener;
  17. import javax.swing.event.DocumentEvent;
  18. import javax.swing.event.DocumentListener;
  19. import javax.swing.plaf.TextUI;
  20. import javax.swing.text.Position.Bias;
  21.  
  22. public class JTextComponent$AccessibleJTextComponent extends JComponent.AccessibleJComponent implements AccessibleText, CaretListener, DocumentListener {
  23.    int caretPos;
  24.    // $FF: synthetic field
  25.    private final JTextComponent this$0;
  26.  
  27.    public JTextComponent$AccessibleJTextComponent(JTextComponent var1) {
  28.       super(var1);
  29.       this.this$0 = var1;
  30.       Document var2 = var1.getDocument();
  31.       if (var2 != null) {
  32.          var2.addDocumentListener(this);
  33.       }
  34.  
  35.       var1.addCaretListener(this);
  36.       this.caretPos = this.getCaretPosition();
  37.    }
  38.  
  39.    public void caretUpdate(CaretEvent var1) {
  40.       int var2 = var1.getDot();
  41.       int var3 = var1.getMark();
  42.       if (this.caretPos != var2) {
  43.          ((AccessibleContext)this).firePropertyChange("AccessibleCaret", new Integer(this.caretPos), new Integer(var2));
  44.          this.caretPos = var2;
  45.       }
  46.  
  47.       if (var3 != var2) {
  48.          ((AccessibleContext)this).firePropertyChange("AccessibleSelection", (Object)null, this.getSelectedText());
  49.       }
  50.  
  51.    }
  52.  
  53.    public void insertUpdate(DocumentEvent var1) {
  54.       Integer var2 = new Integer(var1.getOffset());
  55.       if (SwingUtilities.isEventDispatchThread()) {
  56.          ((AccessibleContext)this).firePropertyChange("AccessibleText", (Object)null, var2);
  57.       } else {
  58.          JTextComponent.1 var3 = new JTextComponent.1(this, var2);
  59.          SwingUtilities.invokeLater(var3);
  60.       }
  61.  
  62.    }
  63.  
  64.    public void removeUpdate(DocumentEvent var1) {
  65.       Integer var2 = new Integer(var1.getOffset());
  66.       if (SwingUtilities.isEventDispatchThread()) {
  67.          ((AccessibleContext)this).firePropertyChange("AccessibleText", (Object)null, var2);
  68.       } else {
  69.          JTextComponent.2 var3 = new JTextComponent.2(this, var2);
  70.          SwingUtilities.invokeLater(var3);
  71.       }
  72.  
  73.    }
  74.  
  75.    public void changedUpdate(DocumentEvent var1) {
  76.       Integer var2 = new Integer(var1.getOffset());
  77.       if (SwingUtilities.isEventDispatchThread()) {
  78.          ((AccessibleContext)this).firePropertyChange("AccessibleText", (Object)null, var2);
  79.       } else {
  80.          JTextComponent.3 var3 = new JTextComponent.3(this, var2);
  81.          SwingUtilities.invokeLater(var3);
  82.       }
  83.  
  84.    }
  85.  
  86.    public AccessibleStateSet getAccessibleStateSet() {
  87.       AccessibleStateSet var1 = super.getAccessibleStateSet();
  88.       if (this.this$0.isEditable()) {
  89.          var1.add(AccessibleState.EDITABLE);
  90.       }
  91.  
  92.       return var1;
  93.    }
  94.  
  95.    public AccessibleRole getAccessibleRole() {
  96.       return AccessibleRole.TEXT;
  97.    }
  98.  
  99.    public AccessibleText getAccessibleText() {
  100.       return this;
  101.    }
  102.  
  103.    public int getIndexAtPoint(Point var1) {
  104.       return var1 == null ? -1 : this.this$0.viewToModel(var1);
  105.    }
  106.  
  107.    Rectangle getRootEditorRect() {
  108.       Rectangle var1 = this.this$0.getBounds();
  109.       if (var1.width > 0 && var1.height > 0) {
  110.          var1.x = var1.y = 0;
  111.          Insets var2 = this.this$0.getInsets();
  112.          var1.x += var2.left;
  113.          var1.y += var2.top;
  114.          var1.width -= var2.left + var2.right;
  115.          var1.height -= var2.top + var2.bottom;
  116.          return var1;
  117.       } else {
  118.          return null;
  119.       }
  120.    }
  121.  
  122.    public Rectangle getCharacterBounds(int var1) {
  123.       if (var1 >= 0 && var1 <= JTextComponent.access$000(this.this$0).getLength() - 1) {
  124.          TextUI var2 = this.this$0.getUI();
  125.          if (var2 == null) {
  126.             return null;
  127.          } else {
  128.             Rectangle var3 = null;
  129.             Rectangle var4 = this.getRootEditorRect();
  130.             if (var4 == null) {
  131.                return null;
  132.             } else {
  133.                if (JTextComponent.access$000(this.this$0) instanceof AbstractDocument) {
  134.                   ((AbstractDocument)JTextComponent.access$000(this.this$0)).readLock();
  135.                }
  136.  
  137.                try {
  138.                   View var5 = var2.getRootView(this.this$0);
  139.                   if (var5 != null) {
  140.                      var5.setSize((float)var4.width, (float)var4.height);
  141.                      Shape var6 = var5.modelToView(var1, Bias.Forward, var1 + 1, Bias.Backward, var4);
  142.                      var3 = var6 instanceof Rectangle ? (Rectangle)var6 : var6.getBounds();
  143.                   }
  144.                } catch (BadLocationException var11) {
  145.                } finally {
  146.                   if (JTextComponent.access$000(this.this$0) instanceof AbstractDocument) {
  147.                      ((AbstractDocument)JTextComponent.access$000(this.this$0)).readUnlock();
  148.                   }
  149.  
  150.                }
  151.  
  152.                return var3;
  153.             }
  154.          }
  155.       } else {
  156.          return null;
  157.       }
  158.    }
  159.  
  160.    public int getCharCount() {
  161.       return JTextComponent.access$000(this.this$0).getLength();
  162.    }
  163.  
  164.    public int getCaretPosition() {
  165.       return this.this$0.getCaretPosition();
  166.    }
  167.  
  168.    public AttributeSet getCharacterAttribute(int var1) {
  169.       Object var2 = null;
  170.       if (JTextComponent.access$000(this.this$0) instanceof AbstractDocument) {
  171.          ((AbstractDocument)JTextComponent.access$000(this.this$0)).readLock();
  172.       }
  173.  
  174.       int var3;
  175.       try {
  176.          for(var8 = JTextComponent.access$000(this.this$0).getDefaultRootElement(); !var8.isLeaf(); var8 = var8.getElement(var3)) {
  177.             var3 = var8.getElementIndex(var1);
  178.          }
  179.       } finally {
  180.          if (JTextComponent.access$000(this.this$0) instanceof AbstractDocument) {
  181.             ((AbstractDocument)JTextComponent.access$000(this.this$0)).readUnlock();
  182.          }
  183.  
  184.       }
  185.  
  186.       return var8.getAttributes();
  187.    }
  188.  
  189.    public int getSelectionStart() {
  190.       return this.this$0.getSelectionStart();
  191.    }
  192.  
  193.    public int getSelectionEnd() {
  194.       return this.this$0.getSelectionEnd();
  195.    }
  196.  
  197.    public String getSelectedText() {
  198.       return this.this$0.getSelectedText();
  199.    }
  200.  
  201.    public String getAtIndex(int var1, int var2) {
  202.       if (var2 >= 0 && var2 < JTextComponent.access$000(this.this$0).getLength()) {
  203.          String var3 = null;
  204.          Object var4 = null;
  205.          if (JTextComponent.access$000(this.this$0) instanceof AbstractDocument) {
  206.             ((AbstractDocument)JTextComponent.access$000(this.this$0)).readLock();
  207.          }
  208.  
  209.          try {
  210.             switch (var1) {
  211.                case 1:
  212.                   var3 = JTextComponent.access$000(this.this$0).getText(var2, 1);
  213.                   break;
  214.                case 2:
  215.                   String var15 = JTextComponent.access$000(this.this$0).getText(0, JTextComponent.access$000(this.this$0).getLength());
  216.                   BreakIterator var6 = BreakIterator.getWordInstance();
  217.                   var6.setText(var15);
  218.                   int var16 = var6.following(var2);
  219.                   var3 = var15.substring(var6.previous(), var16);
  220.                   break;
  221.                case 3:
  222.                   String var14 = JTextComponent.access$000(this.this$0).getText(0, JTextComponent.access$000(this.this$0).getLength());
  223.                   BreakIterator var7 = BreakIterator.getSentenceInstance();
  224.                   var7.setText(var14);
  225.                   int var5 = var7.following(var2);
  226.                   var3 = var14.substring(var7.previous(), var5);
  227.             }
  228.          } catch (BadLocationException var12) {
  229.          } finally {
  230.             if (JTextComponent.access$000(this.this$0) instanceof AbstractDocument) {
  231.                ((AbstractDocument)JTextComponent.access$000(this.this$0)).readUnlock();
  232.             }
  233.  
  234.          }
  235.  
  236.          return var3;
  237.       } else {
  238.          return null;
  239.       }
  240.    }
  241.  
  242.    public String getAfterIndex(int var1, int var2) {
  243.       if (var2 >= 0 && var2 < JTextComponent.access$000(this.this$0).getLength()) {
  244.          String var3 = null;
  245.          Object var4 = null;
  246.          if (JTextComponent.access$000(this.this$0) instanceof AbstractDocument) {
  247.             ((AbstractDocument)JTextComponent.access$000(this.this$0)).readLock();
  248.          }
  249.  
  250.          Object var9;
  251.          try {
  252.             switch (var1) {
  253.                case 1:
  254.                   if (var2 + 1 < JTextComponent.access$000(this.this$0).getLength()) {
  255.                      var3 = JTextComponent.access$000(this.this$0).getText(var2 + 1, 1);
  256.                   }
  257.  
  258.                   return var3;
  259.                case 2:
  260.                   String var17 = JTextComponent.access$000(this.this$0).getText(0, JTextComponent.access$000(this.this$0).getLength());
  261.                   BreakIterator var7 = BreakIterator.getWordInstance();
  262.                   var7.setText(var17);
  263.                   int var18 = var7.following(var2);
  264.                   if (var18 != -1 && var18 < var17.length()) {
  265.                      int var19 = var7.following(var18);
  266.                      if (var19 != -1 && var19 < var17.length()) {
  267.                         var3 = var17.substring(var18, var19);
  268.                         return var3;
  269.                      }
  270.                   }
  271.  
  272.                   return var3;
  273.                case 3:
  274.                   String var16 = JTextComponent.access$000(this.this$0).getText(0, JTextComponent.access$000(this.this$0).getLength());
  275.                   BreakIterator var8 = BreakIterator.getSentenceInstance();
  276.                   var8.setText(var16);
  277.                   int var5 = var8.following(var2);
  278.                   if (var5 != -1 && var5 < var16.length()) {
  279.                      int var6 = var8.following(var5);
  280.                      if (var6 != -1 && var6 < var16.length()) {
  281.                         var3 = var16.substring(var5, var6);
  282.                         return var3;
  283.                      }
  284.                   }
  285.  
  286.                   return var3;
  287.                default:
  288.                   var9 = null;
  289.             }
  290.          } catch (BadLocationException var14) {
  291.             return var3;
  292.          } finally {
  293.             if (JTextComponent.access$000(this.this$0) instanceof AbstractDocument) {
  294.                ((AbstractDocument)JTextComponent.access$000(this.this$0)).readUnlock();
  295.             }
  296.  
  297.          }
  298.  
  299.          return (String)var9;
  300.       } else {
  301.          return null;
  302.       }
  303.    }
  304.  
  305.    public String getBeforeIndex(int var1, int var2) {
  306.       if (var2 >= 0 && var2 <= JTextComponent.access$000(this.this$0).getLength() - 1) {
  307.          String var3 = null;
  308.          Object var4 = null;
  309.          if (JTextComponent.access$000(this.this$0) instanceof AbstractDocument) {
  310.             ((AbstractDocument)JTextComponent.access$000(this.this$0)).readLock();
  311.          }
  312.  
  313.          Object var9;
  314.          try {
  315.             switch (var1) {
  316.                case 1:
  317.                   if (var2 != 0) {
  318.                      var3 = JTextComponent.access$000(this.this$0).getText(var2 - 1, 1);
  319.                   }
  320.  
  321.                   return var3;
  322.                case 2:
  323.                   String var17 = JTextComponent.access$000(this.this$0).getText(0, JTextComponent.access$000(this.this$0).getLength());
  324.                   BreakIterator var7 = BreakIterator.getWordInstance();
  325.                   var7.setText(var17);
  326.                   var7.following(var2);
  327.                   int var19 = var7.previous();
  328.                   int var18 = var7.previous();
  329.                   if (var18 != -1) {
  330.                      var3 = var17.substring(var18, var19);
  331.                   }
  332.  
  333.                   return var3;
  334.                case 3:
  335.                   String var16 = JTextComponent.access$000(this.this$0).getText(0, JTextComponent.access$000(this.this$0).getLength());
  336.                   BreakIterator var8 = BreakIterator.getSentenceInstance();
  337.                   var8.setText(var16);
  338.                   var8.following(var2);
  339.                   int var6 = var8.previous();
  340.                   int var5 = var8.previous();
  341.                   if (var5 != -1) {
  342.                      var3 = var16.substring(var5, var6);
  343.                   }
  344.  
  345.                   return var3;
  346.                default:
  347.                   var9 = null;
  348.             }
  349.          } catch (BadLocationException var14) {
  350.             return var3;
  351.          } finally {
  352.             if (JTextComponent.access$000(this.this$0) instanceof AbstractDocument) {
  353.                ((AbstractDocument)JTextComponent.access$000(this.this$0)).readUnlock();
  354.             }
  355.  
  356.          }
  357.  
  358.          return (String)var9;
  359.       } else {
  360.          return null;
  361.       }
  362.    }
  363. }
  364.