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

  1. /*
  2.  * @(#)TextField.java    1.21 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.  * TextField is a gui element that allows a single line of text input.
  23.  *
  24.  * @version 1.21 28 Mar 1995
  25.  * @author Sami Shaio
  26.  */
  27. public class TextField extends Component {
  28.     private boolean hFill;
  29.     private WServer wServer;
  30.     public boolean echoSet = false;
  31.     public char    echoChar;
  32.     public boolean editable;
  33.  
  34.     /**
  35.      * Constructs a TextField.
  36.      * @param initValue is the initial value of the field. It may be null.
  37.      * @param pName is the name of this component.
  38.      * @param p is the parent window of this TextField.
  39.      * @param editable is true if this TextField should allow editing.
  40.      */
  41.     public TextField(String initValue,
  42.              String pName,
  43.              Container p,
  44.              boolean editable) {
  45.     super(p, pName);
  46.     Window win = Window.getWindow(p);
  47.     wServer = win.wServer;    
  48.     wServer.textFieldCreate(this, initValue, win, editable);
  49.     this.editable = editable;
  50.     setBackColor(editable ? Color.editableText : Color.readOnlyText);
  51.     }
  52.  
  53.     /**
  54.      * If t is true then this TextField will stretch horizontally to
  55.      * the width of its container.
  56.      */
  57.     public void setHFill(boolean t) {
  58.     hFill = t;
  59.     }
  60.  
  61.     /**
  62.      * Sets the font for this TextField.
  63.      */
  64.     public void setFont(Font f) {
  65.     wServer.textFieldSetFont(this, f);
  66.     }
  67.  
  68.     /**
  69.      * Sets the color of the text in this TextField.
  70.      */
  71.     public void setColor(Color c) {
  72.     wServer.textFieldSetColor(this, c);
  73.     }
  74.  
  75.     /**
  76.      * Sets the color of this TextField's background.
  77.      */
  78.     public void setBackColor(Color c) {
  79.     wServer.textFieldSetBackColor(this, c);
  80.     }
  81.  
  82.     /**
  83.      * Sets the echo character for this TextField. This is useful
  84.      * for fields where the user input shouldn't be echoed to the screen,
  85.      * as in the case of a TextField that represents a password.
  86.      */
  87.     public void setEchoCharacter(char c) {
  88.     echoSet = true;
  89.     echoChar = c;
  90.     wServer.textFieldSetEchoCharacter(this, c);
  91.     }
  92.  
  93.     /**
  94.      * Sets whether or not this TextField should be editable.
  95.      */
  96.     public void setEditable(boolean t) {
  97.     editable = t;
  98.     wServer.textFieldSetEditable(this, t);
  99.     setBackColor(t ? Color.editableText : Color.readOnlyText);
  100.     }
  101.  
  102.     /**
  103.      * Sets the text of this TextField.
  104.      */
  105.     public void setText(String t) {
  106.     wServer.textFieldSetText(this, t);
  107.     }
  108.  
  109.     /**
  110.      * Returns the text contained in this TextField.
  111.      */
  112.     public String getText() {
  113.     return wServer.textFieldGetText(this);
  114.     }
  115.  
  116.     /**
  117.      * Disposes of this TextField, rendering it useless.
  118.      */
  119.     public void dispose() {
  120.     wServer.textFieldDispose(this);
  121.     }
  122.  
  123.     /**
  124.      * Moves this TextField to x,y
  125.      */
  126.     public void move(int x, int y) {
  127.     super.move(x,y);
  128.     wServer.textFieldMoveTo(this, x, y);
  129.     }
  130.  
  131.     /**
  132.      * Reshapes this TextField to the given dimensions.
  133.      */
  134.     public void reshape(int x, int y, int w, int h) {
  135.     super.reshape(x, y, w, h);
  136.     wServer.textFieldReshape(this, x, y, w, h);
  137.     }
  138.  
  139.     /**
  140.      * Returns the preferred size of this TextField.
  141.      */
  142.     public Dimension getPreferredSize() {
  143.     Dimension dim = new Dimension((hFill) ? parent.width : width, height);
  144.  
  145.     return dim;
  146.     }
  147.  
  148.     /**
  149.      * Shows this TextField.
  150.      */
  151.     public void map() {
  152.     wServer.textFieldShow(this);
  153.     mapped = true;
  154.     }
  155.  
  156.     /**
  157.      * Hides this TextField.
  158.      */
  159.     public void unMap() {
  160.     wServer.textFieldHide(this);
  161.     mapped = false;
  162.     }
  163.  
  164.  
  165.     /**
  166.      * Override this method to take action when the user hits return
  167.      * after entering a value in the TextField.
  168.      */
  169.     public void selected() {
  170.     }
  171.  
  172. }
  173.         
  174.