Source for javax.swing.ButtonModel

   1: /* ButtonModel.java --
   2:    Copyright (C) 2002, 2004 Free Software Foundation, Inc.
   3: 
   4: This file is part of GNU Classpath.
   5: 
   6: GNU Classpath is free software; you can redistribute it and/or modify
   7: it under the terms of the GNU General Public License as published by
   8: the Free Software Foundation; either version 2, or (at your option)
   9: any later version.
  10: 
  11: GNU Classpath is distributed in the hope that it will be useful, but
  12: WITHOUT ANY WARRANTY; without even the implied warranty of
  13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14: General Public License for more details.
  15: 
  16: You should have received a copy of the GNU General Public License
  17: along with GNU Classpath; see the file COPYING.  If not, write to the
  18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  19: 02110-1301 USA.
  20: 
  21: Linking this library statically or dynamically with other modules is
  22: making a combined work based on this library.  Thus, the terms and
  23: conditions of the GNU General Public License cover the whole
  24: combination.
  25: 
  26: As a special exception, the copyright holders of this library give you
  27: permission to link this library with independent modules to produce an
  28: executable, regardless of the license terms of these independent
  29: modules, and to copy and distribute the resulting executable under
  30: terms of your choice, provided that you also meet, for each linked
  31: independent module, the terms and conditions of the license of that
  32: module.  An independent module is a module which is not derived from
  33: or based on this library.  If you modify this library, you may extend
  34: this exception to your version of the library, but you are not
  35: obligated to do so.  If you do not wish to do so, delete this
  36: exception statement from your version. */
  37: 
  38: 
  39: package javax.swing;
  40: 
  41: import java.awt.ItemSelectable;
  42: import java.awt.event.ActionListener;
  43: import java.awt.event.ItemListener;
  44: 
  45: import javax.swing.event.ChangeListener;
  46: 
  47: /**
  48:  * The data model that is used in all kinds of buttons.
  49:  */
  50: public interface ButtonModel extends ItemSelectable
  51: {  
  52: 
  53:   /**
  54:    * Returns <code>true</code> if the button is armed, <code>false</code>
  55:    * otherwise.
  56:    *
  57:    * A button is armed, when the user has pressed the mouse over it, but has
  58:    * not yet released the mouse.
  59:    * 
  60:    * @return <code>true</code> if the button is armed, <code>false</code>
  61:    *         otherwise
  62:    *
  63:    * @see #setArmed(boolean)
  64:    */
  65:   boolean isArmed();
  66: 
  67:   /**
  68:    * Sets the armed flag of the button.
  69:    *
  70:    * A button is armed, when the user has pressed the mouse over it, but has
  71:    * not yet released the mouse.
  72:    *
  73:    * @param b <code>true</code> if the button is armed, <code>false</code>
  74:    *        otherwise
  75:    *
  76:    * @see #isArmed()
  77:    */
  78:   void setArmed(boolean b);
  79: 
  80:   /**
  81:    * Returns <code>true</code> if the button is enabled, <code>false</code>
  82:    * otherwise.
  83:    *
  84:    * When a button is disabled, it is usually grayed out and the user cannot
  85:    * change its state.
  86:    *
  87:    * @return <code>true</code> if the button is enabled, <code>false</code>
  88:    *         otherwise
  89:    *
  90:    * @see #setEnabled(boolean)
  91:    */
  92:   boolean isEnabled();
  93: 
  94:   /**
  95:    * Sets the enabled flag of the button.
  96:    *
  97:    * When a button is disabled, it is usually grayed out and the user cannot
  98:    * change its state.
  99:    *
 100:    * @param b <code>true</code> if the button is enabled, <code>false</code>
 101:    *        otherwise
 102:    *
 103:    * @see #isEnabled()
 104:    */
 105:   void setEnabled(boolean b);
 106: 
 107:   /**
 108:    * Sets the pressed flag of the button.
 109:    *
 110:    * The button usually gets pressed when the user clicks on a button, it will
 111:    * be un-pressed when the user releases the mouse.
 112:    *
 113:    * @param b <code>true</code> if the button is pressed, <code>false</code>
 114:    *        otherwise
 115:    *
 116:    * @see #isPressed()
 117:    */
 118:   void setPressed(boolean b);
 119: 
 120:   /**
 121:    * Returns <code>true</code> if the button is pressed, <code>false</code>
 122:    * otherwise.
 123:    *
 124:    * The button usually gets pressed when the user clicks on a button, it will
 125:    * be un-pressed when the user releases the mouse.
 126:    *
 127:    * @return <code>true</code> if the button is pressed, <code>false</code>
 128:    *         otherwise
 129:    *
 130:    * @see #setPressed(boolean)
 131:    */
 132:   boolean isPressed();
 133: 
 134:   /**
 135:    * Removes an {@link ActionListener} from the list of registered listeners.
 136:    *
 137:    * @param l the action listener to remove
 138:    *
 139:    * @see #addActionListener(ActionListener)
 140:    */
 141:   void removeActionListener(ActionListener l);
 142: 
 143:   /**
 144:    * Adds an {@link ActionListener} to the list of registered listeners.
 145:    *
 146:    * An <code>ActionEvent</code> is usually fired when the user clicks on a
 147:    * button.
 148:    * 
 149:    * @param l the action listener to add
 150:    *
 151:    * @see #removeActionListener(ActionListener)
 152:    */
 153:   void addActionListener(ActionListener l);
 154: 
 155:   /**
 156:    * Adds an {@link ItemListener} to the list of registered listeners.
 157:    *
 158:    * An <code>ItemEvent</code> is usually fired when a button's selected
 159:    * state changes. This applies only to buttons that support the selected
 160:    * flag.
 161:    *
 162:    * @param l the item listener to add
 163:    *
 164:    * @see #removeItemListener(ItemListener)
 165:    */
 166:   void addItemListener(ItemListener l);
 167: 
 168:   /**
 169:    * Adds an {@link ItemListener} to the list of registered listeners.
 170:    *
 171:    * @param l the item listener to add
 172:    *
 173:    * @see #removeItemListener(ItemListener)
 174:    */
 175:   void removeItemListener(ItemListener l);
 176: 
 177:   /**
 178:    * Adds an {@link ChangeListener} to the list of registered listeners.
 179:    *
 180:    * A <code>ChangeEvent</code> is fired when any one of the button's flags
 181:    * changes.
 182:    *
 183:    * @param l the change listener to add
 184:    *
 185:    * @see #removeChangeListener(ChangeListener)
 186:    */
 187:   void addChangeListener(ChangeListener l);
 188: 
 189:   /**
 190:    * Adds an {@link ChangeListener} to the list of registered listeners.
 191:    *
 192:    * @param l the change listener to add
 193:    *
 194:    * @see #removeChangeListener(ChangeListener)
 195:    */
 196:   void removeChangeListener(ChangeListener l);
 197: 
 198:   /**
 199:    * Sets the rollover flag of the button.
 200:    *
 201:    * A button is rollover-ed, when the user has moved the mouse over it, but has
 202:    * not yet pressed the mouse.
 203:    *
 204:    * @param b <code>true</code> if the button is rollover, <code>false</code>
 205:    *        otherwise
 206:    *
 207:    * @see #isRollover()
 208:    */
 209:   void setRollover(boolean b);
 210: 
 211:   /**
 212:    * Returns <code>true</code> if the button is rollover-ed, <code>false</code>
 213:    * otherwise.
 214:    *
 215:    * A button is rollover-ed, when the user has moved the mouse over it, but has
 216:    * not yet pressed the mouse.
 217:    *
 218:    * @return <code>true</code> if the button is rollover, <code>false</code>
 219:    *         otherwise
 220:    *
 221:    * @see #setRollover(boolean)
 222:    */
 223:   boolean isRollover();
 224: 
 225:   /**
 226:    * Returns the keyboard mnemonic for the button. This specifies a shortcut
 227:    * or accelerator key that can be used to activate the button.
 228:    * 
 229:    * @return the keyboard mnemonic for the button
 230:    *
 231:    * @see #setMnemonic(int)
 232:    */
 233:   int  getMnemonic();
 234: 
 235:   /**
 236:    * Sets the keyboard mnemonic for the button. This specifies a shortcut
 237:    * or accelerator key that can be used to activate the button.
 238:    * 
 239:    * @param key the keyboard mnemonic for the button
 240:    *
 241:    * @see #getMnemonic()
 242:    */
 243:   void setMnemonic(int key);
 244: 
 245:   /**
 246:    * Sets the action command for the button. This will be used in
 247:    * <code>ActionEvents</code> fired by the button.
 248:    *
 249:    * @param s the action command to set
 250:    *
 251:    * @see #getActionCommand()
 252:    */
 253:   void setActionCommand(String s);
 254: 
 255:   /**
 256:    * Returns the action command of the button.
 257:    *
 258:    * @return the action command of the button
 259:    *
 260:    * @see #setActionCommand(String)
 261:    */
 262:   String getActionCommand();
 263: 
 264:   /**
 265:    * Sets the button group for the button. Some kinds of button (e.g. radio
 266:    * buttons) allow only one button within a button group selected at any one
 267:    * time.
 268:    *
 269:    * @param group the button group to set
 270:    */
 271:   void setGroup(ButtonGroup group);
 272: 
 273:   /**
 274:    * Sets the selected flag of the button.
 275:    *
 276:    * Some kinds of buttons (e.g. toggle buttons, check boxes, radio buttons)
 277:    * can be in one of two states: selected or unselected. The selected state
 278:    * is usually toggled by clicking on the button.
 279:    * 
 280:    * @param b <code>true</code> if the button is selected, <code>false</code>
 281:    *        otherwise
 282:    *
 283:    * @see #isSelected()
 284:    */
 285:   void setSelected(boolean b);
 286: 
 287:   /**
 288:    * Returns <code>true</code> if the button is selected, <code>false</code>
 289:    * otherwise.
 290:    *
 291:    * Some kinds of buttons (e.g. toggle buttons, check boxes, radio buttons)
 292:    * can be in one of two states: selected or unselected. The selected state
 293:    * is usually toggled by clicking on the button.
 294:    * 
 295:    * @return <code>true</code> if the button is selected, <code>false</code>
 296:    *         otherwise
 297:    *
 298:    * @see #setSelected(boolean)
 299:    */
 300:   boolean isSelected();
 301: }