- /*
- * @(#)CheckboxGroup.java 1.29 00/02/02
- *
- * Copyright 1995-2000 Sun Microsystems, Inc. All Rights Reserved.
- *
- * This software is the proprietary information of Sun Microsystems, Inc.
- * Use is subject to license terms.
- *
- */
- package java.awt;
-
- /**
- * The <code>CheckboxGroup</code> class is used to group together
- * a set of <code>Checkbox</code> buttons.
- * <p>
- * Exactly one check box button in a <code>CheckboxGroup</code> can
- * be in the "on" state at any given time. Pushing any
- * button sets its state to "on" and forces any other button that
- * is in the "on" state into the "off" state.
- * <p>
- * The following code example produces a new check box group,
- * with three check boxes:
- * <p>
- * <hr><blockquote><pre>
- * setLayout(new GridLayout(3, 1));
- * CheckboxGroup cbg = new CheckboxGroup();
- * add(new Checkbox("one", cbg, true));
- * add(new Checkbox("two", cbg, false));
- * add(new Checkbox("three", cbg, false));
- * </pre></blockquote><hr>
- * <p>
- * This image depicts the check box group created by this example:
- * <p>
- * <img src="doc-files/CheckboxGroup-1.gif"
- * ALIGN=center HSPACE=10 VSPACE=7>
- * <p>
- * @version 1.29 02/02/00
- * @author Sami Shaio
- * @see java.awt.Checkbox
- * @since JDK1.0
- */
- public class CheckboxGroup implements java.io.Serializable {
- /**
- * The current choice.
- * @serial
- * @see getCurrent()
- * @see setCurrent()
- */
- Checkbox selectedCheckbox = null;
-
- /*
- * JDK 1.1 serialVersionUID
- */
- private static final long serialVersionUID = 3729780091441768983L;
-
- /**
- * Creates a new instance of <code>CheckboxGroup</code>.
- */
- public CheckboxGroup() {
- }
-
- /**
- * Gets the current choice from this check box group.
- * The current choice is the check box in this
- * group that is currently in the "on" state,
- * or <code>null</code> if all check boxes in the
- * group are off.
- * @return the check box that is currently in the
- * "on" state, or <code>null</code>.
- * @see java.awt.Checkbox
- * @see java.awt.CheckboxGroup#setSelectedCheckbox
- * @since JDK1.1
- */
- public Checkbox getSelectedCheckbox() {
- return getCurrent();
- }
-
- /**
- * @deprecated As of JDK version 1.1,
- * replaced by <code>getSelectedCheckbox()</code>.
- */
- public Checkbox getCurrent() {
- return selectedCheckbox;
- }
-
- /**
- * Sets the currently selected check box in this group
- * to be the specified check box.
- * This method sets the state of that check box to "on" and
- * sets all other check boxes in the group to be off.
- * <p>
- * If the check box argument is <tt>null</tt>, all check boxes
- * in this check box group are deselected. If the check box argument
- * belongs to a different check box group, this method does
- * nothing.
- * @param box the <code>Checkbox</code> to set as the
- * current selection.
- * @see java.awt.Checkbox
- * @see java.awt.CheckboxGroup#getSelectedCheckbox
- * @since JDK1.1
- */
- public void setSelectedCheckbox(Checkbox box) {
- setCurrent(box);
- }
-
- /**
- * @deprecated As of JDK version 1.1,
- * replaced by <code>setSelectedCheckbox(Checkbox)</code>.
- */
- public synchronized void setCurrent(Checkbox box) {
- if (box != null && box.group != this) {
- return;
- }
- Checkbox oldChoice = this.selectedCheckbox;
- this.selectedCheckbox = box;
- if ((oldChoice != null) && (oldChoice != box)) {
- oldChoice.setState(false);
- }
- if (box != null && oldChoice != box && !box.getState()) {
- box.setStateInternal(true);
- }
- }
-
- /**
- * Returns a string representation of this check box group,
- * including the value of its current selection.
- * @return a string representation of this check box group.
- */
- public String toString() {
- return getClass().getName() + "[selectedCheckbox=" + selectedCheckbox + "]";
- }
-
- }