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

  1. /*
  2.  * @(#)text.java    1.12 95/04/10 Jonathan Payne
  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.  
  20. package browser.forms;
  21.  
  22. import awt.DisplayItem;
  23. import awt.DisplayItemWindow;
  24. import awt.NativeDisplayItem;
  25. import awt.TextField;
  26. import awt.Font;
  27. import awt.Component;
  28. import browser.WRFormatter;
  29.  
  30. /**
  31.  * An instance of class text is created for each occurrence of a
  32.  * text field in an html form.
  33.  * @version 1.12, 10 Apr 1995
  34.  * @author Jonathan Payne
  35.  */
  36.  
  37. public class text extends FormItem {
  38.     private boolean isIndex() {
  39.     return name.toLowerCase().equals("isindex");
  40.     }
  41.  
  42.     public DisplayItem buildDisplayItem(WRFormatter f) {
  43.     NativeDisplayItem   ndi = new FormDisplayItem();
  44.  
  45.     ndi.setComponent(new FormTextField(defaultValue, f.win, this));
  46.  
  47.     int    size;
  48.     Font    font = f.getFont();
  49.     int    width = -1;
  50.  
  51.     /* REMIND: Stick in code to use a fixed width font in
  52.        the text field, so character counting is accurate. */
  53.  
  54.     size = getIntegerAttribute("size", 20);
  55.     width = f.win.getFontMetrics(font).charWidth('m') * size;
  56.     Component   c = ndi.getComponent();
  57.     c.resize(width, c.height);
  58.     ndi.resize(c.width, c.height);
  59.  
  60.     return ndi;
  61.     }
  62.  
  63.     public String getFormString() {
  64.     if (isIndex()) {
  65.         return processString(getFormValue());
  66.     } else {
  67.         return super.getFormString();
  68.     }
  69.     }
  70.  
  71.     public void acceptStringValue(String value) {
  72.     TextField   tf =
  73.         (TextField) ((NativeDisplayItem) displayItem).getComponent();
  74.  
  75.     tf.setText(value);
  76.     }
  77.  
  78.     public String getFormValue() {
  79.     TextField   tf =
  80.         (TextField) ((NativeDisplayItem) displayItem).getComponent();
  81.  
  82.     return tf.getText();
  83.     }
  84.  
  85.     public void execute() {
  86.     if (isIndex()) {
  87.         form.submit();
  88.     }
  89.     }
  90. }
  91.