/* * This file is part of JGAP. * * JGAP offers a dual license model containing the LGPL as well as the MPL. * * For licensing information please see the file license.txt included with JGAP * or have a look at the top of class org.jgap.Chromosome which representatively * includes the JGAP license policy applicable for any file delivered with JGAP. */ package org.jgap.data.config; import java.util.*; /** * Represents a property to be shown on the configuration screen. * * @author Siddhartha Azad * @since 2.3 */ public class ConfigProperty { /** String containing the CVS revision. Read out via reflection!*/ private final static String CVS_REVISION = "$Revision: 1.5 $"; // name of the property private String m_name; // widget to use to get the value of this property private String m_widget; // label with which to display this property private String m_label; // allowed values for this property (if applicable) private List m_values; /** * Default Constructor for a ConfigProperty. * * @author Siddhartha Azad * @since 2.3 */ public ConfigProperty() { // defaults m_name = ""; m_label = ""; m_widget = "JTextField"; m_values = Collections.synchronizedList(new ArrayList()); } /** * @return name associated with this property * * @author Siddhartha Azad * @since 2.3 */ public String getName() { return m_name; } /** * Setter for the name of this property. * @param a_name the name associated with this property. This name will be * used as the key in the properties file for persisting * configuration information * * @author Siddhartha Azad * @since 2.3 */ public void setName(final String a_name) { m_name = a_name; // by default display label is same as the name if (m_label.equals("")) { m_label = a_name; } } /** * @return name of the widget associated with this property * * @author Siddhartha Azad * @since 2.3 */ public String getWidget() { return m_widget; } /** * Sets the widget. * @param a_widget either "JList" or "JTextField" for now * * @author Siddhartha Azad * @since 2.3 */ public void setWidget(final String a_widget) { m_widget = a_widget; } /** * @return label of the property * * @author Siddhartha Azad * @since 2.4 */ public String getLabel() { return m_label; } /** * Sets the label. * @param a_label the label of this property, by default the same as the * name of the property * * @author Siddhartha Azad * @since 2.4 */ public void setLabel(final String a_label) { m_label = a_label; } /** * Add a value into the values ArrayList. These values are added in case the * display component is a ListBox or ComboBox or something that can have * multiple values. * @param a_value the value to add * * @author Siddhartha Azad * @since 2.3 */ public void addValue(final String a_value) { m_values.add(a_value); } /** * @return iterator on the values ArrayList for this property * * @author Siddhartha Azad * @since 2.3 */ public Iterator getValuesIter() { return m_values.iterator(); } }