home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / awt / textarea.java < prev    next >
Text File  |  1995-08-11  |  5KB  |  201 lines

  1. /*
  2.  * @(#)TextArea.java    1.11 95/03/28 Sami Shaio
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19. package awt;
  20.  
  21. /**
  22.  * A TextArea object is a multi-line area that displays text. It can
  23.  * be made editable or read-only.
  24.  *
  25.  * @version 1.11 28 Mar 1995
  26.  * @author Sami Shaio
  27.  */
  28. public class TextArea extends Component {
  29.     private    WServer    wServer;
  30.     private boolean        hFill = false;
  31.     private boolean        vFill = false;
  32.     boolean editable;
  33.  
  34.     /**
  35.      * Constructs a TextArea.
  36.      * @param p is the parent Window
  37.      * @param pName is the name of the TextArea. Some layouts such as
  38.      *             BorderLayout, use the name for layout.
  39.      * @param f is the font to use. It can be null.
  40.      * @param columns is the number of columns in terms of the current font.
  41.      * @param rows is the number of rows in terms of the current font.
  42.      */
  43.     public TextArea(Container p, String pName, Font f, int columns, int rows) {
  44.     super(p,pName);
  45.     Window win = Window.getWindow(p);
  46.     wServer = win.wServer;
  47.     wServer.textAreaCreate(this, win, f, columns, rows);
  48.     setEditable(true);
  49.     }
  50.  
  51.     /**
  52.      * Sets whether this TextArea is editable or not.
  53.      */
  54.     public void setEditable(boolean t) {
  55.     wServer.textAreaSetEditable(this, t);
  56.     editable = t;
  57.     setBackColor(editable ? Color.editableText : Color.readOnlyText);
  58.     }
  59.  
  60.     /**
  61.      * Set the color of the text.
  62.      */
  63.     public void setColor(Color c) {
  64.     wServer.textAreaSetColor(this, c);
  65.     }
  66.     
  67.     /**
  68.      * Set the color of the background.
  69.      */
  70.     public void setBackColor(Color c) {
  71.     wServer.textAreaSetBackColor(this, c);
  72.     }
  73.         
  74.     /**
  75.      * Return the cursor position.
  76.      * @return the cursor position.
  77.      */
  78.     public int cursorPos() {
  79.     return wServer.textAreaCursorPos(this);
  80.     }
  81.  
  82.     /**
  83.      * Sets the cursor position and makes that position visible.
  84.      * @param pos is the position to set the cursor to.
  85.      */
  86.     public void setCursorPos(int pos) {
  87.     wServer.textAreaSetCursorPos(this, pos);
  88.     }
  89.  
  90.     /**
  91.      * Return the last position in the TextArea.
  92.      * @return the last position in the TextArea.
  93.      */
  94.     public int endPos() {
  95.     return wServer.textAreaEndPos(this);
  96.     }
  97.  
  98.     /**
  99.      * @return whether this TextArea is editable or not.
  100.      */
  101.     public boolean isEditable() {
  102.     return editable;
  103.     }
  104.  
  105.     /**
  106.      * Sets the text of this TextArea to the specified value.
  107.      * @param text the text to set as the contents.
  108.      */
  109.     public void setText(String text) {
  110.     wServer.textAreaSetText(this, text);
  111.     }
  112.  
  113.     /**
  114.      * Return the contents of this TextArea.
  115.      * @return contents of the TextArea.
  116.      */
  117.     public String getText() {
  118.     return wServer.textAreaGetText(this);
  119.     }
  120.  
  121.     /**
  122.      * Inserts text at the given position.
  123.      * @param text the text to insert.
  124.      * @param pos the position to insert at.
  125.      */
  126.     public void insertText(String text, int pos) {
  127.     wServer.textAreaInsertText(this, text, pos);
  128.     }
  129.  
  130.     /**
  131.      * Replaces the text from start to end.
  132.      * @param text the text to use as the replacement.
  133.      * @param start the start position.
  134.      * @param end the end position.
  135.      */
  136.     public void replaceText(String text, int start, int end) {
  137.     wServer.textAreaReplaceText(this, text, start, end);
  138.     }
  139.     
  140.  
  141.     /** Sets whether or not this List stretches horizontally. */
  142.     public void setHFill(boolean t) {
  143.     hFill = t;
  144.     }
  145.  
  146.     /** Sets whether or not this List stretches vertically. */
  147.     public void setVFill(boolean t) {
  148.     vFill = t;
  149.     }
  150.  
  151.     /**
  152.      * Disposes of this TextArea. It cannot be used after being disposed.
  153.      */
  154.     public void dispose() {
  155.     wServer.textAreaDispose(this);
  156.     }
  157.  
  158.     public Dimension getPreferredSize() {
  159.     return new Dimension((hFill) ? parent.width : width,
  160.                  (vFill) ? parent.height : height);
  161.     }
  162.  
  163.     /**
  164.      * Moves this TextArea to the given position.
  165.      * @param X the x position to move to.
  166.      * @param Y the y position to move to.
  167.      */
  168.     public void move(int X, int Y) {
  169.     super.move(X,Y);
  170.     wServer.textAreaMoveTo(this, X, Y);
  171.     }
  172.  
  173.     /**
  174.      * Reshapes this TextArea.
  175.      * @param x the x position.
  176.      * @param y the y position.
  177.      * @param w the width in pixels.
  178.      * @param h the height in pixels.
  179.      */
  180.     public void reshape(int x, int y, int w, int h) {
  181.     super.reshape(x, y, w, h);
  182.     wServer.textAreaReshape(this, x, y, w, h);
  183.     }
  184.  
  185.     /**
  186.      * Makes this TextArea visible.
  187.      */
  188.     public void map() {
  189.     wServer.textAreaShow(this);
  190.     mapped = true;
  191.     }
  192.  
  193.     /**
  194.      * Hides this TextArea.
  195.      */
  196.     public void unMap() {
  197.     wServer.textAreaHide(this);
  198.     mapped = false;
  199.     }
  200. }
  201.