home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / swing / JTextArea.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  6.5 KB  |  334 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Dimension;
  4. import java.awt.Font;
  5. import java.awt.FontMetrics;
  6. import java.awt.Insets;
  7. import java.awt.Rectangle;
  8. import java.io.IOException;
  9. import java.io.ObjectOutputStream;
  10. import javax.accessibility.AccessibleContext;
  11. import javax.swing.text.AbstractDocument;
  12. import javax.swing.text.AttributeSet;
  13. import javax.swing.text.BadLocationException;
  14. import javax.swing.text.Document;
  15. import javax.swing.text.Element;
  16. import javax.swing.text.JTextComponent;
  17. import javax.swing.text.PlainDocument;
  18.  
  19. public class JTextArea extends JTextComponent {
  20.    private static final String uiClassID = "TextAreaUI";
  21.    private int rows;
  22.    private int columns;
  23.    private int columnWidth;
  24.    private int rowHeight;
  25.    private boolean wrap;
  26.    private boolean word;
  27.  
  28.    public JTextArea() {
  29.       this((Document)null, (String)null, 0, 0);
  30.    }
  31.  
  32.    public JTextArea(String var1) {
  33.       this((Document)null, var1, 0, 0);
  34.    }
  35.  
  36.    public JTextArea(int var1, int var2) {
  37.       this((Document)null, (String)null, var1, var2);
  38.    }
  39.  
  40.    public JTextArea(String var1, int var2, int var3) {
  41.       this((Document)null, var1, var2, var3);
  42.    }
  43.  
  44.    public JTextArea(Document var1) {
  45.       this(var1, (String)null, 0, 0);
  46.    }
  47.  
  48.    public JTextArea(Document var1, String var2, int var3, int var4) {
  49.       this.rows = var3;
  50.       this.columns = var4;
  51.       if (var1 == null) {
  52.          var1 = this.createDefaultModel();
  53.       }
  54.  
  55.       this.setDocument(var1);
  56.       if (var2 != null) {
  57.          this.setText(var2);
  58.          this.select(0, 0);
  59.       }
  60.  
  61.       if (var3 < 0) {
  62.          throw new IllegalArgumentException("rows: " + var3);
  63.       } else if (var4 < 0) {
  64.          throw new IllegalArgumentException("columns: " + var4);
  65.       } else {
  66.          LookAndFeel.installProperty(this, "focusTraversalKeysForward", JComponent.getManagingFocusForwardTraversalKeys());
  67.          LookAndFeel.installProperty(this, "focusTraversalKeysBackward", JComponent.getManagingFocusBackwardTraversalKeys());
  68.       }
  69.    }
  70.  
  71.    public String getUIClassID() {
  72.       return "TextAreaUI";
  73.    }
  74.  
  75.    protected Document createDefaultModel() {
  76.       return new PlainDocument();
  77.    }
  78.  
  79.    public void setTabSize(int var1) {
  80.       Document var2 = this.getDocument();
  81.       if (var2 != null) {
  82.          int var3 = this.getTabSize();
  83.          var2.putProperty("tabSize", new Integer(var1));
  84.          this.firePropertyChange("tabSize", var3, var1);
  85.       }
  86.  
  87.    }
  88.  
  89.    public int getTabSize() {
  90.       int var1 = 8;
  91.       Document var2 = this.getDocument();
  92.       if (var2 != null) {
  93.          Integer var3 = (Integer)var2.getProperty("tabSize");
  94.          if (var3 != null) {
  95.             var1 = var3;
  96.          }
  97.       }
  98.  
  99.       return var1;
  100.    }
  101.  
  102.    public void setLineWrap(boolean var1) {
  103.       boolean var2 = this.wrap;
  104.       this.wrap = var1;
  105.       this.firePropertyChange("lineWrap", var2, var1);
  106.    }
  107.  
  108.    public boolean getLineWrap() {
  109.       return this.wrap;
  110.    }
  111.  
  112.    public void setWrapStyleWord(boolean var1) {
  113.       boolean var2 = this.word;
  114.       this.word = var1;
  115.       this.firePropertyChange("wrapStyleWord", var2, var1);
  116.    }
  117.  
  118.    public boolean getWrapStyleWord() {
  119.       return this.word;
  120.    }
  121.  
  122.    public int getLineOfOffset(int var1) throws BadLocationException {
  123.       Document var2 = this.getDocument();
  124.       if (var1 < 0) {
  125.          throw new BadLocationException("Can't translate offset to line", -1);
  126.       } else if (var1 > var2.getLength()) {
  127.          throw new BadLocationException("Can't translate offset to line", var2.getLength() + 1);
  128.       } else {
  129.          Element var3 = this.getDocument().getDefaultRootElement();
  130.          return var3.getElementIndex(var1);
  131.       }
  132.    }
  133.  
  134.    public int getLineCount() {
  135.       Element var1 = this.getDocument().getDefaultRootElement();
  136.       return var1.getElementCount();
  137.    }
  138.  
  139.    public int getLineStartOffset(int var1) throws BadLocationException {
  140.       int var2 = this.getLineCount();
  141.       if (var1 < 0) {
  142.          throw new BadLocationException("Negative line", -1);
  143.       } else if (var1 >= var2) {
  144.          throw new BadLocationException("No such line", this.getDocument().getLength() + 1);
  145.       } else {
  146.          Element var3 = this.getDocument().getDefaultRootElement();
  147.          Element var4 = var3.getElement(var1);
  148.          return var4.getStartOffset();
  149.       }
  150.    }
  151.  
  152.    public int getLineEndOffset(int var1) throws BadLocationException {
  153.       int var2 = this.getLineCount();
  154.       if (var1 < 0) {
  155.          throw new BadLocationException("Negative line", -1);
  156.       } else if (var1 >= var2) {
  157.          throw new BadLocationException("No such line", this.getDocument().getLength() + 1);
  158.       } else {
  159.          Element var3 = this.getDocument().getDefaultRootElement();
  160.          Element var4 = var3.getElement(var1);
  161.          int var5 = var4.getEndOffset();
  162.          return var1 == var2 - 1 ? var5 - 1 : var5;
  163.       }
  164.    }
  165.  
  166.    public void insert(String var1, int var2) {
  167.       Document var3 = this.getDocument();
  168.       if (var3 != null) {
  169.          try {
  170.             var3.insertString(var2, var1, (AttributeSet)null);
  171.          } catch (BadLocationException var5) {
  172.             throw new IllegalArgumentException(var5.getMessage());
  173.          }
  174.       }
  175.  
  176.    }
  177.  
  178.    public void append(String var1) {
  179.       Document var2 = this.getDocument();
  180.       if (var2 != null) {
  181.          try {
  182.             var2.insertString(var2.getLength(), var1, (AttributeSet)null);
  183.          } catch (BadLocationException var4) {
  184.          }
  185.       }
  186.  
  187.    }
  188.  
  189.    public void replaceRange(String var1, int var2, int var3) {
  190.       if (var3 < var2) {
  191.          throw new IllegalArgumentException("end before start");
  192.       } else {
  193.          Document var4 = this.getDocument();
  194.          if (var4 != null) {
  195.             try {
  196.                if (var4 instanceof AbstractDocument) {
  197.                   ((AbstractDocument)var4).replace(var2, var3 - var2, var1, (AttributeSet)null);
  198.                } else {
  199.                   var4.remove(var2, var3 - var2);
  200.                   var4.insertString(var2, var1, (AttributeSet)null);
  201.                }
  202.             } catch (BadLocationException var6) {
  203.                throw new IllegalArgumentException(var6.getMessage());
  204.             }
  205.          }
  206.  
  207.       }
  208.    }
  209.  
  210.    public int getRows() {
  211.       return this.rows;
  212.    }
  213.  
  214.    public void setRows(int var1) {
  215.       int var2 = this.rows;
  216.       if (var1 < 0) {
  217.          throw new IllegalArgumentException("rows less than zero.");
  218.       } else {
  219.          if (var1 != var2) {
  220.             this.rows = var1;
  221.             this.invalidate();
  222.          }
  223.  
  224.       }
  225.    }
  226.  
  227.    protected int getRowHeight() {
  228.       if (this.rowHeight == 0) {
  229.          FontMetrics var1 = this.getFontMetrics(this.getFont());
  230.          this.rowHeight = var1.getHeight();
  231.       }
  232.  
  233.       return this.rowHeight;
  234.    }
  235.  
  236.    public int getColumns() {
  237.       return this.columns;
  238.    }
  239.  
  240.    public void setColumns(int var1) {
  241.       int var2 = this.columns;
  242.       if (var1 < 0) {
  243.          throw new IllegalArgumentException("columns less than zero.");
  244.       } else {
  245.          if (var1 != var2) {
  246.             this.columns = var1;
  247.             this.invalidate();
  248.          }
  249.  
  250.       }
  251.    }
  252.  
  253.    protected int getColumnWidth() {
  254.       if (this.columnWidth == 0) {
  255.          FontMetrics var1 = this.getFontMetrics(this.getFont());
  256.          this.columnWidth = var1.charWidth('m');
  257.       }
  258.  
  259.       return this.columnWidth;
  260.    }
  261.  
  262.    public Dimension getPreferredSize() {
  263.       Dimension var1 = super.getPreferredSize();
  264.       var1 = var1 == null ? new Dimension(400, 400) : var1;
  265.       Insets var2 = this.getInsets();
  266.       if (this.columns != 0) {
  267.          var1.width = Math.max(var1.width, this.columns * this.getColumnWidth() + var2.left + var2.right);
  268.       }
  269.  
  270.       if (this.rows != 0) {
  271.          var1.height = Math.max(var1.height, this.rows * this.getRowHeight() + var2.top + var2.bottom);
  272.       }
  273.  
  274.       return var1;
  275.    }
  276.  
  277.    public void setFont(Font var1) {
  278.       super.setFont(var1);
  279.       this.rowHeight = 0;
  280.       this.columnWidth = 0;
  281.    }
  282.  
  283.    protected String paramString() {
  284.       String var1 = this.wrap ? "true" : "false";
  285.       String var2 = this.word ? "true" : "false";
  286.       return super.paramString() + ",colums=" + this.columns + ",columWidth=" + this.columnWidth + ",rows=" + this.rows + ",rowHeight=" + this.rowHeight + ",word=" + var2 + ",wrap=" + var1;
  287.    }
  288.  
  289.    public boolean getScrollableTracksViewportWidth() {
  290.       return this.wrap ? true : super.getScrollableTracksViewportWidth();
  291.    }
  292.  
  293.    public Dimension getPreferredScrollableViewportSize() {
  294.       Dimension var1 = super.getPreferredScrollableViewportSize();
  295.       var1 = var1 == null ? new Dimension(400, 400) : var1;
  296.       Insets var2 = this.getInsets();
  297.       var1.width = this.columns == 0 ? var1.width : this.columns * this.getColumnWidth() + var2.left + var2.right;
  298.       var1.height = this.rows == 0 ? var1.height : this.rows * this.getRowHeight() + var2.top + var2.bottom;
  299.       return var1;
  300.    }
  301.  
  302.    public int getScrollableUnitIncrement(Rectangle var1, int var2, int var3) {
  303.       switch (var2) {
  304.          case 0:
  305.             return this.getColumnWidth();
  306.          case 1:
  307.             return this.getRowHeight();
  308.          default:
  309.             throw new IllegalArgumentException("Invalid orientation: " + var2);
  310.       }
  311.    }
  312.  
  313.    private void writeObject(ObjectOutputStream var1) throws IOException {
  314.       var1.defaultWriteObject();
  315.       if (this.getUIClassID().equals("TextAreaUI")) {
  316.          byte var2 = JComponent.getWriteObjCounter(this);
  317.          --var2;
  318.          JComponent.setWriteObjCounter(this, var2);
  319.          if (var2 == 0 && this.ui != null) {
  320.             this.ui.installUI(this);
  321.          }
  322.       }
  323.  
  324.    }
  325.  
  326.    public AccessibleContext getAccessibleContext() {
  327.       if (this.accessibleContext == null) {
  328.          this.accessibleContext = new AccessibleJTextArea(this);
  329.       }
  330.  
  331.       return this.accessibleContext;
  332.    }
  333. }
  334.