001: /*
002: * ====================================================================
003: * The JRefactory License, Version 1.0
004: *
005: * Copyright (c) 2001 JRefactory. All rights reserved.
006: *
007: * Redistribution and use in source and binary forms, with or without
008: * modification, are permitted provided that the following conditions
009: * are met:
010: *
011: * 1. Redistributions of source code must retain the above copyright
012: * notice, this list of conditions and the following disclaimer.
013: *
014: * 2. Redistributions in binary form must reproduce the above copyright
015: * notice, this list of conditions and the following disclaimer in
016: * the documentation and/or other materials provided with the
017: * distribution.
018: *
019: * 3. The end-user documentation included with the redistribution,
020: * if any, must include the following acknowledgment:
021: * "This product includes software developed by the
022: * JRefactory (http://www.sourceforge.org/projects/jrefactory)."
023: * Alternately, this acknowledgment may appear in the software itself,
024: * if and wherever such third-party acknowledgments normally appear.
025: *
026: * 4. The names "JRefactory" must not be used to endorse or promote
027: * products derived from this software without prior written
028: * permission. For written permission, please contact seguin@acm.org.
029: *
030: * 5. Products derived from this software may not be called "JRefactory",
031: * nor may "JRefactory" appear in their name, without prior written
032: * permission of Chris Seguin.
033: *
034: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
035: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
036: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
037: * DISCLAIMED. IN NO EVENT SHALL THE CHRIS SEGUIN OR
038: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
039: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
040: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
041: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
042: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
043: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
044: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
045: * SUCH DAMAGE.
046: * ====================================================================
047: *
048: * This software consists of voluntary contributions made by many
049: * individuals on behalf of JRefactory. For more information on
050: * JRefactory, please see
051: * <http://www.sourceforge.org/projects/jrefactory>.
052: */
053: package org.acm.seguin.tools.install;
054:
055: import java.util.Iterator;
056: import java.util.LinkedList;
057: import javax.swing.ButtonGroup;
058: import javax.swing.JRadioButton;
059:
060: /**
061: * Allows the user to select true or false
062: *
063: *@author Chris Seguin
064: *@created September 12, 2001
065: */
066: public abstract class OptionPanel extends SettingPanel {
067: private ButtonGroup group;
068: private LinkedList list;
069:
070: /**
071: * Constructor for the OptionPanel object
072: */
073: public OptionPanel() {
074: super ();
075:
076: group = new ButtonGroup();
077: list = new LinkedList();
078: }
079:
080: /**
081: * Gets the Value attribute of the TogglePanel object
082: *
083: *@return The Value value
084: */
085: public String getValue() {
086: Iterator iter = list.iterator();
087: while (iter.hasNext()) {
088: Object[] pair = (Object[]) iter.next();
089: if (((JRadioButton) pair[1]).isSelected()) {
090: return (String) pair[0];
091: }
092: }
093: return "";
094: }
095:
096: /**
097: * Adds a feature to the Control attribute of the TogglePanel object
098: */
099: public void addControl() {
100: }
101:
102: /**
103: * Add an option
104: *
105: *@param key The feature to be added to the Option attribute
106: *@param descr The feature to be added to the Option attribute
107: */
108: public void addOption(String key, String descr) {
109: incrItems();
110: addDescription("* " + key + " - " + descr, false);
111: JRadioButton button = new JRadioButton(descr);
112: button.setSelected(key.equals(getDefaultValue()));
113: add(button);
114: group.add(button);
115: Object[] pair = new Object[2];
116: pair[0] = key;
117: pair[1] = button;
118: list.add(pair);
119: }
120:
121: /**
122: * Reloads the value from the file
123: */
124: public void reload() {
125: Iterator iter = list.iterator();
126: while (iter.hasNext()) {
127: Object[] pair = (Object[]) iter.next();
128: String key = (String) pair[0];
129: JRadioButton button = (JRadioButton) pair[1];
130: button.setSelected(key.equals(getDefaultValue()));
131: }
132: }
133: }
134:
135: // This is the end of the file
|