Merge from mainline (gomp-merge-2005-02-26).
[official-gcc.git] / libjava / javax / swing / JRadioButtonMenuItem.java
blob2aefb3395466714e54ee29576e53487f9aa2d70a
1 /* JRadioButtonMenuItem.java --
2 Copyright (C) 2002, 2004 Free Software Foundation, Inc.
4 This file is part of GNU Classpath.
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.
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.
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., 59 Temple Place, Suite 330, Boston, MA
19 02111-1307 USA.
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.
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. */
39 package javax.swing;
41 import java.io.IOException;
42 import java.io.ObjectOutputStream;
44 import javax.accessibility.Accessible;
45 import javax.accessibility.AccessibleContext;
46 import javax.accessibility.AccessibleRole;
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.
56 public class JRadioButtonMenuItem extends JMenuItem implements Accessible
58 private static final long serialVersionUID = 8482658191548521743L;
60 /** name for the UI delegate for this radio button menu item. */
61 private static final String uiClassID = "RadioButtonMenuItemUI";
63 /**
64 * Creates a new JRadioButtonMenuItem object.
66 public JRadioButtonMenuItem()
68 this(null, null);
71 /**
72 * Creates a new JRadioButtonMenuItem with specified icon
74 * @param icon Icon to be used for this menu item
76 public JRadioButtonMenuItem(Icon icon)
78 this(null, icon);
81 /**
82 * Creates a new JRadioButtonMenuItem with specified label
84 * @param text Label for this menu item
86 public JRadioButtonMenuItem(String text)
88 this(text, null);
91 /**
92 * Creates a new JRadioButtonMenuItem using specified action
94 * @param action Action for this menu item
96 public JRadioButtonMenuItem(Action action)
98 this();
99 setAction(action);
103 * Creates a new JRadioButtonMenuItem with specified label and icon
105 * @param text Label for this menu item
106 * @param icon Icon for this menu item
108 public JRadioButtonMenuItem(String text, Icon icon)
110 this(text, icon, false);
114 * Creates a new JRadioButtonMenuItem with specified label
115 * and marked selected if 'selected' is true.
117 * @param text Text for this menu item
118 * @param selected Selected state of this menu item
120 public JRadioButtonMenuItem(String text, boolean selected)
122 this(text, null, selected);
126 * Creates a new JRadioButtonMenuItem with specified icon
127 * and given selected state
129 * @param icon Icon for this menu item
130 * @param selected Selected state for this menu item
132 public JRadioButtonMenuItem(Icon icon, boolean selected)
134 this(null, icon, selected);
138 * Creates a new JRadioButtonMenuItem with specified label,
139 * icon and selected state.
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
145 public JRadioButtonMenuItem(String text, Icon icon, boolean selected)
147 super(text, icon);
148 setModel(new JToggleButton.ToggleButtonModel());
149 model.setSelected(selected);
152 private void writeObject(ObjectOutputStream stream) throws IOException
157 * This method returns a name to identify which look and feel class will be
158 * the UI delegate for the menuItem.
160 * @return The Look and Feel classID. "JRadioButtonMenuItemUI"
162 public String getUIClassID()
164 return uiClassID;
168 * This method overrides JComponent.requestFocus with an empty
169 * implementation, since JRadioButtonMenuItems should not
170 * receve focus in general.
172 public void requestFocus()
174 // Should do nothing here
178 * A string that describes this JRadioButtonMenuItem. Normally only used
179 * for debugging.
181 * @return A string describing this JRadioButtonMenuItem
183 protected String paramString()
185 return "JRadioButtonMenuItem";
188 public AccessibleContext getAccessibleContext()
190 if (accessibleContext == null)
191 accessibleContext = new AccessibleJRadioButtonMenuItem();
193 return accessibleContext;
196 protected class AccessibleJRadioButtonMenuItem extends AccessibleJMenuItem
198 private static final long serialVersionUID = 4381471510145292179L;
201 * Creates a new AccessibleJRadioButtonMenuItem object.
203 protected AccessibleJRadioButtonMenuItem()
207 public AccessibleRole getAccessibleRole()
209 return AccessibleRole.RADIO_BUTTON;