/*
* @(#)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);
}
|