001 package sale.stdforms; 002 003 import sale.*; 004 005 import util.swing.*; 006 007 import javax.swing.*; 008 009 /** 010 * A simple FormSheet that displays a label and an {@link JTextInput input line}. 011 * 012 * <p>The FormSheet uses a {@link sale.FormSheetContentCreator} to create its contents.</p> 013 * 014 * @author Steffen Zschaler 015 * @version 2.0 12/07/1999 016 * @since v2.0 017 */ 018 public class TextInputForm extends FormSheet { 019 020 /** 021 * The String array that will hold the text that was entered into the text field. 022 * 023 * @serial 024 */ 025 private String[] m_asResult = new String[] { 026 ""}; 027 028 /** 029 * Create a new TextInputForm. 030 * 031 * @param sCaption the caption of the FormSheet. 032 * @param sLabel the label to be put at the top of the FormSheet. 033 * @param sInitialText the text that is to appear in the input line when the user has not entered anything 034 * yet. 035 * @param fWaitResponse, the initial value for the "{@link FormSheet#waitResponse}" property. 036 */ 037 public TextInputForm(String sCaption, final String sLabel, String sInitialText, boolean fWaitResponse) { 038 super(sCaption, (JComponent)null, fWaitResponse); 039 040 m_asResult[0] = sInitialText; 041 042 addContentCreator(new FormSheetContentCreator() { 043 protected void createFormSheetContent(FormSheet fs) { 044 045 JPanel jpForm = new JPanel(); 046 Box b = Box.createVerticalBox(); 047 048 b.add(Box.createVerticalGlue()); 049 b.add(new JLabel(sLabel)); 050 b.add(new JTextInput(m_asResult, m_asResult[0])); 051 b.add(Box.createGlue()); 052 053 jpForm.add(b); 054 055 fs.setComponent(jpForm); 056 } 057 }); 058 } 059 060 /** 061 * Create a new TextInputForm. The value for the "{@link FormSheet#waitResponse}" property will 062 * initially be set to true. 063 * 064 * @param sCaption the caption of the FormSheet. 065 * @param sLabel the label to be put at the top of the FormSheet. 066 * @param sInitialText the text that is to appear in the input line when the user has not entered anything 067 * yet. 068 */ 069 public TextInputForm(String sCaption, String sLabel, String sInitialText) { 070 this(sCaption, sLabel, sInitialText, true); 071 } 072 073 /** 074 * Get the current contents of the input field. 075 * 076 * @override Never 077 */ 078 public String getText() { 079 return m_asResult[0]; 080 } 081 }