001 /* 002 * This file is part of McIDAS-V 003 * 004 * Copyright 2007-2013 005 * Space Science and Engineering Center (SSEC) 006 * University of Wisconsin - Madison 007 * 1225 W. Dayton Street, Madison, WI 53706, USA 008 * https://www.ssec.wisc.edu/mcidas 009 * 010 * All Rights Reserved 011 * 012 * McIDAS-V is built on Unidata's IDV and SSEC's VisAD libraries, and 013 * some McIDAS-V source code is based on IDV and VisAD source code. 014 * 015 * McIDAS-V is free software; you can redistribute it and/or modify 016 * it under the terms of the GNU Lesser Public License as published by 017 * the Free Software Foundation; either version 3 of the License, or 018 * (at your option) any later version. 019 * 020 * McIDAS-V is distributed in the hope that it will be useful, 021 * but WITHOUT ANY WARRANTY; without even the implied warranty of 022 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 023 * GNU Lesser Public License for more details. 024 * 025 * You should have received a copy of the GNU Lesser Public License 026 * along with this program. If not, see http://www.gnu.org/licenses. 027 */ 028 029 package edu.wisc.ssec.mcidasv.startupmanager.options; 030 031 import java.awt.event.KeyAdapter; 032 import java.awt.event.KeyEvent; 033 034 import javax.swing.JComponent; 035 import javax.swing.JTextField; 036 037 import edu.wisc.ssec.mcidasv.startupmanager.options.OptionMaster.OptionPlatform; 038 import edu.wisc.ssec.mcidasv.startupmanager.options.OptionMaster.Type; 039 import edu.wisc.ssec.mcidasv.startupmanager.options.OptionMaster.Visibility; 040 041 public class TextOption extends AbstractOption { 042 043 private String value = ""; 044 045 public TextOption(final String id, final String label, 046 final String defaultValue, final OptionPlatform optionPlatform, 047 final Visibility optionVisibility) 048 { 049 super(id, label, Type.TEXT, optionPlatform, optionVisibility); 050 setValue(defaultValue); 051 } 052 053 public JTextField getComponent() { 054 final JTextField tf = new JTextField(getValue(), 10); 055 tf.addKeyListener(new KeyAdapter() { 056 public void keyReleased(final KeyEvent e) { 057 setValue(tf.getText()); 058 } 059 }); 060 if (!onValidPlatform()) { 061 tf.setEnabled(false); 062 } 063 return tf; 064 } 065 066 public String getValue() { 067 return value; 068 } 069 070 public void setValue(final String newValue) { 071 value = newValue; 072 } 073 074 public String toString() { 075 return String.format("[TextOption@%x: optionId=%s, value=%s]", 076 hashCode(), getOptionId(), getValue()); 077 } 078 }