home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / JLabel$AccessibleJLabel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  5.9 KB  |  343 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Graphics;
  5. import java.awt.Insets;
  6. import java.awt.Point;
  7. import java.awt.Rectangle;
  8. import java.awt.Shape;
  9. import java.awt.geom.Rectangle2D;
  10. import java.text.BreakIterator;
  11. import javax.accessibility.AccessibleIcon;
  12. import javax.accessibility.AccessibleRelation;
  13. import javax.accessibility.AccessibleRelationSet;
  14. import javax.accessibility.AccessibleRole;
  15. import javax.accessibility.AccessibleText;
  16. import javax.swing.text.AttributeSet;
  17. import javax.swing.text.BadLocationException;
  18. import javax.swing.text.Document;
  19. import javax.swing.text.Element;
  20. import javax.swing.text.Position;
  21. import javax.swing.text.StyledDocument;
  22. import javax.swing.text.View;
  23. import javax.swing.text.Position.Bias;
  24.  
  25. public class JLabel$AccessibleJLabel extends JComponent.AccessibleJComponent implements AccessibleText {
  26.    // $FF: synthetic field
  27.    private final JLabel this$0;
  28.  
  29.    protected JLabel$AccessibleJLabel(JLabel var1) {
  30.       super(var1);
  31.       this.this$0 = var1;
  32.    }
  33.  
  34.    public String getAccessibleName() {
  35.       if (super.accessibleName != null) {
  36.          return super.accessibleName;
  37.       } else {
  38.          return this.this$0.getText() == null ? super.getAccessibleName() : this.this$0.getText();
  39.       }
  40.    }
  41.  
  42.    public AccessibleRole getAccessibleRole() {
  43.       return AccessibleRole.LABEL;
  44.    }
  45.  
  46.    public AccessibleIcon[] getAccessibleIcon() {
  47.       if (JLabel.access$000(this.this$0) == null) {
  48.          return null;
  49.       } else {
  50.          AccessibleIcon[] var1 = new AccessibleIcon[]{JLabel.access$000(this.this$0)};
  51.          return var1;
  52.       }
  53.    }
  54.  
  55.    public AccessibleRelationSet getAccessibleRelationSet() {
  56.       AccessibleRelationSet var1 = super.getAccessibleRelationSet();
  57.       if (!var1.contains(AccessibleRelation.LABEL_FOR)) {
  58.          Component var2 = this.this$0.getLabelFor();
  59.          if (var2 != null) {
  60.             AccessibleRelation var3 = new AccessibleRelation(AccessibleRelation.LABEL_FOR);
  61.             var3.setTarget(var2);
  62.             var1.add(var3);
  63.          }
  64.       }
  65.  
  66.       return var1;
  67.    }
  68.  
  69.    public AccessibleText getAccessibleText() {
  70.       View var1 = (View)this.this$0.getClientProperty("html");
  71.       return var1 != null ? this : null;
  72.    }
  73.  
  74.    public int getIndexAtPoint(Point var1) {
  75.       View var2 = (View)this.this$0.getClientProperty("html");
  76.       if (var2 != null) {
  77.          Rectangle var3 = this.getTextRectangle();
  78.          if (var3 == null) {
  79.             return -1;
  80.          } else {
  81.             Rectangle2D.Float var4 = new Rectangle2D.Float((float)var3.x, (float)var3.y, (float)var3.width, (float)var3.height);
  82.             Position.Bias[] var5 = new Position.Bias[1];
  83.             return var2.viewToModel((float)var1.x, (float)var1.y, var4, var5);
  84.          }
  85.       } else {
  86.          return -1;
  87.       }
  88.    }
  89.  
  90.    public Rectangle getCharacterBounds(int var1) {
  91.       View var2 = (View)this.this$0.getClientProperty("html");
  92.       if (var2 != null) {
  93.          Rectangle var3 = this.getTextRectangle();
  94.          if (var3 == null) {
  95.             return null;
  96.          } else {
  97.             Rectangle2D.Float var4 = new Rectangle2D.Float((float)var3.x, (float)var3.y, (float)var3.width, (float)var3.height);
  98.  
  99.             try {
  100.                Shape var5 = var2.modelToView(var1, var4, Bias.Forward);
  101.                return var5.getBounds();
  102.             } catch (BadLocationException var6) {
  103.                return null;
  104.             }
  105.          }
  106.       } else {
  107.          return null;
  108.       }
  109.    }
  110.  
  111.    public int getCharCount() {
  112.       View var1 = (View)this.this$0.getClientProperty("html");
  113.       if (var1 != null) {
  114.          Document var2 = var1.getDocument();
  115.          if (var2 instanceof StyledDocument) {
  116.             StyledDocument var3 = (StyledDocument)var2;
  117.             return var3.getLength();
  118.          }
  119.       }
  120.  
  121.       return this.this$0.accessibleContext.getAccessibleName().length();
  122.    }
  123.  
  124.    public int getCaretPosition() {
  125.       return -1;
  126.    }
  127.  
  128.    public String getAtIndex(int var1, int var2) {
  129.       if (var2 >= 0 && var2 < this.getCharCount()) {
  130.          switch (var1) {
  131.             case 1:
  132.                try {
  133.                   return this.getText(var2, 1);
  134.                } catch (BadLocationException var8) {
  135.                   return null;
  136.                }
  137.             case 2:
  138.                try {
  139.                   String var9 = this.getText(0, this.getCharCount());
  140.                   BreakIterator var10 = BreakIterator.getWordInstance();
  141.                   var10.setText(var9);
  142.                   int var11 = var10.following(var2);
  143.                   return var9.substring(var10.previous(), var11);
  144.                } catch (BadLocationException var7) {
  145.                   return null;
  146.                }
  147.             case 3:
  148.                try {
  149.                   String var3 = this.getText(0, this.getCharCount());
  150.                   BreakIterator var4 = BreakIterator.getSentenceInstance();
  151.                   var4.setText(var3);
  152.                   int var5 = var4.following(var2);
  153.                   return var3.substring(var4.previous(), var5);
  154.                } catch (BadLocationException var6) {
  155.                   return null;
  156.                }
  157.             default:
  158.                return null;
  159.          }
  160.       } else {
  161.          return null;
  162.       }
  163.    }
  164.  
  165.    public String getAfterIndex(int var1, int var2) {
  166.       if (var2 >= 0 && var2 < this.getCharCount()) {
  167.          switch (var1) {
  168.             case 1:
  169.                if (var2 + 1 >= this.getCharCount()) {
  170.                   return null;
  171.                } else {
  172.                   try {
  173.                      return this.getText(var2 + 1, 1);
  174.                   } catch (BadLocationException var9) {
  175.                      return null;
  176.                   }
  177.                }
  178.             case 2:
  179.                try {
  180.                   String var10 = this.getText(0, this.getCharCount());
  181.                   BreakIterator var11 = BreakIterator.getWordInstance();
  182.                   var11.setText(var10);
  183.                   int var12 = var11.following(var2);
  184.                   if (var12 != -1 && var12 < var10.length()) {
  185.                      int var13 = var11.following(var12);
  186.                      if (var13 != -1 && var13 < var10.length()) {
  187.                         return var10.substring(var12, var13);
  188.                      }
  189.  
  190.                      return null;
  191.                   }
  192.  
  193.                   return null;
  194.                } catch (BadLocationException var8) {
  195.                   return null;
  196.                }
  197.             case 3:
  198.                try {
  199.                   String var3 = this.getText(0, this.getCharCount());
  200.                   BreakIterator var4 = BreakIterator.getSentenceInstance();
  201.                   var4.setText(var3);
  202.                   int var5 = var4.following(var2);
  203.                   if (var5 != -1 && var5 < var3.length()) {
  204.                      int var6 = var4.following(var5);
  205.                      if (var6 != -1 && var6 < var3.length()) {
  206.                         return var3.substring(var5, var6);
  207.                      }
  208.  
  209.                      return null;
  210.                   }
  211.  
  212.                   return null;
  213.                } catch (BadLocationException var7) {
  214.                   return null;
  215.                }
  216.             default:
  217.                return null;
  218.          }
  219.       } else {
  220.          return null;
  221.       }
  222.    }
  223.  
  224.    public String getBeforeIndex(int var1, int var2) {
  225.       if (var2 >= 0 && var2 <= this.getCharCount() - 1) {
  226.          switch (var1) {
  227.             case 1:
  228.                if (var2 == 0) {
  229.                   return null;
  230.                } else {
  231.                   try {
  232.                      return this.getText(var2 - 1, 1);
  233.                   } catch (BadLocationException var9) {
  234.                      return null;
  235.                   }
  236.                }
  237.             case 2:
  238.                try {
  239.                   String var10 = this.getText(0, this.getCharCount());
  240.                   BreakIterator var11 = BreakIterator.getWordInstance();
  241.                   var11.setText(var10);
  242.                   var11.following(var2);
  243.                   int var12 = var11.previous();
  244.                   int var13 = var11.previous();
  245.                   if (var13 == -1) {
  246.                      return null;
  247.                   }
  248.  
  249.                   return var10.substring(var13, var12);
  250.                } catch (BadLocationException var8) {
  251.                   return null;
  252.                }
  253.             case 3:
  254.                try {
  255.                   String var3 = this.getText(0, this.getCharCount());
  256.                   BreakIterator var4 = BreakIterator.getSentenceInstance();
  257.                   var4.setText(var3);
  258.                   var4.following(var2);
  259.                   int var5 = var4.previous();
  260.                   int var6 = var4.previous();
  261.                   if (var6 == -1) {
  262.                      return null;
  263.                   }
  264.  
  265.                   return var3.substring(var6, var5);
  266.                } catch (BadLocationException var7) {
  267.                   return null;
  268.                }
  269.             default:
  270.                return null;
  271.          }
  272.       } else {
  273.          return null;
  274.       }
  275.    }
  276.  
  277.    public AttributeSet getCharacterAttribute(int var1) {
  278.       View var2 = (View)this.this$0.getClientProperty("html");
  279.       if (var2 != null) {
  280.          Document var3 = var2.getDocument();
  281.          if (var3 instanceof StyledDocument) {
  282.             StyledDocument var4 = (StyledDocument)var3;
  283.             Element var5 = var4.getCharacterElement(var1);
  284.             if (var5 != null) {
  285.                return var5.getAttributes();
  286.             }
  287.          }
  288.       }
  289.  
  290.       return null;
  291.    }
  292.  
  293.    public int getSelectionStart() {
  294.       return -1;
  295.    }
  296.  
  297.    public int getSelectionEnd() {
  298.       return -1;
  299.    }
  300.  
  301.    public String getSelectedText() {
  302.       return null;
  303.    }
  304.  
  305.    private String getText(int var1, int var2) throws BadLocationException {
  306.       View var3 = (View)this.this$0.getClientProperty("html");
  307.       if (var3 != null) {
  308.          Document var4 = var3.getDocument();
  309.          if (var4 instanceof StyledDocument) {
  310.             StyledDocument var5 = (StyledDocument)var4;
  311.             return var5.getText(var1, var2);
  312.          }
  313.       }
  314.  
  315.       return null;
  316.    }
  317.  
  318.    private Rectangle getTextRectangle() {
  319.       String var1 = this.this$0.getText();
  320.       Icon var2 = this.this$0.isEnabled() ? this.this$0.getIcon() : this.this$0.getDisabledIcon();
  321.       if (var2 == null && var1 == null) {
  322.          return null;
  323.       } else {
  324.          Rectangle var3 = new Rectangle();
  325.          Rectangle var4 = new Rectangle();
  326.          Rectangle var5 = new Rectangle();
  327.          Insets var6 = new Insets(0, 0, 0, 0);
  328.          var6 = this.this$0.getInsets(var6);
  329.          var5.x = var6.left;
  330.          var5.y = var6.top;
  331.          var5.width = this.this$0.getWidth() - (var6.left + var6.right);
  332.          var5.height = this.this$0.getHeight() - (var6.top + var6.bottom);
  333.          Graphics var7 = this.this$0.getGraphics();
  334.          if (var7 == null) {
  335.             return null;
  336.          } else {
  337.             SwingUtilities.layoutCompoundLabel(this.this$0, var7.getFontMetrics(), var1, var2, this.this$0.getVerticalAlignment(), this.this$0.getHorizontalAlignment(), this.this$0.getVerticalTextPosition(), this.this$0.getHorizontalTextPosition(), var5, var3, var4, this.this$0.getIconTextGap());
  338.             return var4;
  339.          }
  340.       }
  341.    }
  342. }
  343.