- /*
 - * @(#)ButtonModel.java 1.26 03/12/19
 - *
 - * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
 - * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 - */
 - package javax.swing;
 - import java.awt.event.*;
 - import java.awt.*;
 - import javax.swing.event.*;
 - /**
 - * State Model for buttons.
 - * This model is used for check boxes and radio buttons, which are
 - * special kinds of buttons, as well as for normal buttons.
 - * For check boxes and radio buttons, pressing the mouse selects
 - * the button. For normal buttons, pressing the mouse "arms" the
 - * button. Releasing the mouse over the button then initiates a
 - * <i>button</i> press, firing its action event. Releasing the
 - * mouse elsewhere disarms the button.
 - * <p>
 - * In use, a UI will invoke {@link #setSelected} when a mouse
 - * click occurs over a check box or radio button. It will invoke
 - * {@link #setArmed} when the mouse is pressed over a regular
 - * button and invoke {@link #setPressed} when the mouse is released.
 - * If the mouse travels outside the button in the meantime,
 - * <code>setArmed(false)</code> will tell the button not to fire
 - * when it sees <code>setPressed</code>. (If the mouse travels
 - * back in, the button will be rearmed.)
 - * <blockquote>
 - * <b>Note: </b><br>
 - * A button is triggered when it is both "armed" and "pressed".
 - * </blockquote>
 - *
 - * @version 1.26 12/19/03
 - * @author Jeff Dinkins
 - */
 - public interface ButtonModel extends ItemSelectable {
 - /**
 - * Indicates partial commitment towards pressing the
 - * button.
 - *
 - * @return true if the button is armed, and ready to be pressed
 - * @see #setArmed
 - */
 - boolean isArmed();
 - /**
 - * Indicates if the button has been selected. Only needed for
 - * certain types of buttons - such as radio buttons and check boxes.
 - *
 - * @return true if the button is selected
 - */
 - boolean isSelected();
 - /**
 - * Indicates if the button can be selected or pressed by
 - * an input device (such as a mouse pointer). (Check boxes
 - * are selected, regular buttons are "pressed".)
 - *
 - * @return true if the button is enabled, and therefore
 - * selectable (or pressable)
 - */
 - boolean isEnabled();
 - /**
 - * Indicates if button has been pressed.
 - *
 - * @return true if the button has been pressed
 - */
 - boolean isPressed();
 - /**
 - * Indicates that the mouse is over the button.
 - *
 - * @return true if the mouse is over the button
 - */
 - boolean isRollover();
 - /**
 - * Marks the button as "armed". If the mouse button is
 - * released while it is over this item, the button's action event
 - * fires. If the mouse button is released elsewhere, the
 - * event does not fire and the button is disarmed.
 - *
 - * @param b true to arm the button so it can be selected
 - */
 - public void setArmed(boolean b);
 - /**
 - * Selects or deselects the button.
 - *
 - * @param b true selects the button,
 - * false deselects the button.
 - */
 - public void setSelected(boolean b);
 - /**
 - * Enables or disables the button.
 - *
 - * @param b true to enable the button
 - * @see #isEnabled
 - */
 - public void setEnabled(boolean b);
 - /**
 - * Sets the button to pressed or unpressed.
 - *
 - * @param b true to set the button to "pressed"
 - * @see #isPressed
 - */
 - public void setPressed(boolean b);
 - /**
 - * Sets or clears the button's rollover state
 - *
 - * @param b true to turn on rollover
 - * @see #isRollover
 - */
 - public void setRollover(boolean b);
 - /**
 - * Sets the keyboard mnemonic (shortcut key or
 - * accelerator key) for this button.
 - *
 - * @param key an int specifying the accelerator key
 - */
 - public void setMnemonic(int key);
 - /**
 - * Gets the keyboard mnemonic for this model
 - *
 - * @return an int specifying the accelerator key
 - * @see #setMnemonic
 - */
 - public int getMnemonic();
 - /**
 - * Sets the actionCommand string that gets sent as part of the
 - * event when the button is pressed.
 - *
 - * @param s the String that identifies the generated event
 - */
 - public void setActionCommand(String s);
 - /**
 - * Returns the action command for this button.
 - *
 - * @return the String that identifies the generated event
 - * @see #setActionCommand
 - */
 - public String getActionCommand();
 - /**
 - * Identifies the group this button belongs to --
 - * needed for radio buttons, which are mutually
 - * exclusive within their group.
 - *
 - * @param group the ButtonGroup this button belongs to
 - */
 - public void setGroup(ButtonGroup group);
 - /**
 - * Adds an ActionListener to the button.
 - *
 - * @param l the listener to add
 - */
 - void addActionListener(ActionListener l);
 - /**
 - * Removes an ActionListener from the button.
 - *
 - * @param l the listener to remove
 - */
 - void removeActionListener(ActionListener l);
 - /**
 - * Adds an ItemListener to the button.
 - *
 - * @param l the listener to add
 - */
 - void addItemListener(ItemListener l);
 - /**
 - * Removes an ItemListener from the button.
 - *
 - * @param l the listener to remove
 - */
 - void removeItemListener(ItemListener l);
 - /**
 - * Adds a ChangeListener to the button.
 - *
 - * @param l the listener to add
 - */
 - void addChangeListener(ChangeListener l);
 - /**
 - * Removes a ChangeListener from the button.
 - *
 - * @param l the listener to remove
 - */
 - void removeChangeListener(ChangeListener l);
 - }