GNU Classpath (0.18) | ||
Frames | No Frames |
1: /* JRadioButtonMenuItem.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.io.IOException; 42: import java.io.ObjectOutputStream; 43: 44: import javax.accessibility.Accessible; 45: import javax.accessibility.AccessibleContext; 46: import javax.accessibility.AccessibleRole; 47: 48: /** 49: * This class represents JRadioButtonMenuItem. Its behaviour is very similar 50: * to JRadioButton. Just like JRadioButton, user can check and uncheck this 51: * menu item by clicking on it. JRadioButtonMenuItem uses ToggleButtonModel 52: * to keep track of its selection. If the JRadioButtonMenuItem is included in 53: * the button group, then only one JRadioButtonMenuItem can be selected at 54: * one time. 55: */ 56: public class JRadioButtonMenuItem extends JMenuItem implements Accessible 57: { 58: private static final long serialVersionUID = 8482658191548521743L; 59: 60: /** name for the UI delegate for this radio button menu item. */ 61: private static final String uiClassID = "RadioButtonMenuItemUI"; 62: 63: /** 64: * Creates a new JRadioButtonMenuItem object. 65: */ 66: public JRadioButtonMenuItem() 67: { 68: this(null, null); 69: } 70: 71: /** 72: * Creates a new JRadioButtonMenuItem with specified icon 73: * 74: * @param icon Icon to be used for this menu item 75: */ 76: public JRadioButtonMenuItem(Icon icon) 77: { 78: this(null, icon); 79: } 80: 81: /** 82: * Creates a new JRadioButtonMenuItem with specified label 83: * 84: * @param text Label for this menu item 85: */ 86: public JRadioButtonMenuItem(String text) 87: { 88: this(text, null); 89: } 90: 91: /** 92: * Creates a new JRadioButtonMenuItem using specified action 93: * 94: * @param action Action for this menu item 95: */ 96: public JRadioButtonMenuItem(Action action) 97: { 98: this(); 99: setAction(action); 100: } 101: 102: /** 103: * Creates a new JRadioButtonMenuItem with specified label and icon 104: * 105: * @param text Label for this menu item 106: * @param icon Icon for this menu item 107: */ 108: public JRadioButtonMenuItem(String text, Icon icon) 109: { 110: this(text, icon, false); 111: } 112: 113: /** 114: * Creates a new JRadioButtonMenuItem with specified label 115: * and marked selected if 'selected' is true. 116: * 117: * @param text Text for this menu item 118: * @param selected Selected state of this menu item 119: */ 120: public JRadioButtonMenuItem(String text, boolean selected) 121: { 122: this(text, null, selected); 123: } 124: 125: /** 126: * Creates a new JRadioButtonMenuItem with specified icon 127: * and given selected state 128: * 129: * @param icon Icon for this menu item 130: * @param selected Selected state for this menu item 131: */ 132: public JRadioButtonMenuItem(Icon icon, boolean selected) 133: { 134: this(null, icon, selected); 135: } 136: 137: /** 138: * Creates a new JRadioButtonMenuItem with specified label, 139: * icon and selected state. 140: * 141: * @param text Label for this menu item 142: * @param icon Icon to be use for this menu item 143: * @param selected selected state of this menu item 144: */ 145: public JRadioButtonMenuItem(String text, Icon icon, boolean selected) 146: { 147: super(text, icon); 148: setModel(new JToggleButton.ToggleButtonModel()); 149: model.setSelected(selected); 150: } 151: 152: private void writeObject(ObjectOutputStream stream) throws IOException 153: { 154: } 155: 156: /** 157: * This method returns a name to identify which look and feel class will be 158: * the UI delegate for the menuItem. 159: * 160: * @return The Look and Feel classID. "JRadioButtonMenuItemUI" 161: */ 162: public String getUIClassID() 163: { 164: return uiClassID; 165: } 166: 167: /** 168: * This method overrides JComponent.requestFocus with an empty 169: * implementation, since JRadioButtonMenuItems should not 170: * receve focus in general. 171: */ 172: public void requestFocus() 173: { 174: // Should do nothing here 175: } 176: 177: /** 178: * A string that describes this JRadioButtonMenuItem. Normally only used 179: * for debugging. 180: * 181: * @return A string describing this JRadioButtonMenuItem 182: */ 183: protected String paramString() 184: { 185: return "JRadioButtonMenuItem"; 186: } 187: 188: public AccessibleContext getAccessibleContext() 189: { 190: if (accessibleContext == null) 191: accessibleContext = new AccessibleJRadioButtonMenuItem(); 192: 193: return accessibleContext; 194: } 195: 196: protected class AccessibleJRadioButtonMenuItem extends AccessibleJMenuItem 197: { 198: private static final long serialVersionUID = 4381471510145292179L; 199: 200: /** 201: * Creates a new AccessibleJRadioButtonMenuItem object. 202: */ 203: protected AccessibleJRadioButtonMenuItem() 204: { 205: } 206: 207: public AccessibleRole getAccessibleRole() 208: { 209: return AccessibleRole.RADIO_BUTTON; 210: } 211: } 212: }
GNU Classpath (0.18) |