/* * @(#)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 * button press, firing its action event. Releasing the * mouse elsewhere disarms the button. *

* 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, * setArmed(false) will tell the button not to fire * when it sees setPressed. (If the mouse travels * back in, the button will be rearmed.) *

* Note:
* A button is triggered when it is both "armed" and "pressed". *
* * @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); }