[gui][PATCH] JCheckBoxMenuItem and fixes to menu items.

Olga Rodimina rodimina@redhat.com
Fri Apr 2 19:40:00 GMT 2004


Hi,

Attached patch partly implements JCheckBoxMenuItem and adds
JCheckBoxMenuItemUI. It also makes few small various fixes to
JMenuItem and JRadioButtonMenuItem.

I'll be committing this patch to java-gui-branch.


Olga.
-------------- next part --------------
? .snprj
? libjava.proj
? patch
? javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java
Index: ChangeLog
===================================================================
RCS file: /cvs/gcc/gcc/libjava/ChangeLog,v
retrieving revision 1.2660.2.64
diff -c -p -u -r1.2660.2.64 ChangeLog
--- ChangeLog	2 Apr 2004 15:52:51 -0000	1.2660.2.64
+++ ChangeLog	2 Apr 2004 19:23:27 -0000
@@ -1,3 +1,21 @@
+2004-04-02  Olga Rodimina  <rodimina@redhat.com>
+
+	* Makefile.am: Added new file.
+	* Makefile.in: Regenerate.
+	* javax/swing/ImageIcon.java: 
+	(ImageIcon(file)): set description of the icon 
+	to the file name
+	* javax/swing/JCheckBoxMenuItem.java:
+	Mostly Implemented. Work in progress.
+	* javax/swing/JRadioButtonMenuItem.java:
+ 	Reimplement constructors to use JToggleButtonModel.
+	* javax/swing/plaf/basic/BasicIconFactory.java:
+	(getCheckBoxMenuItemIcon): return check box
+	icon.
+	* javax/swing/plaf/basic/BasicMenuItemUI.java:
+	paint menu item selected only when it is armed and 
+	pressed. 
+ 
 2004-04-02  David Jee  <djee@redhat.com>
 
 	* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
Index: Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libjava/Makefile.am,v
retrieving revision 1.361.2.9
diff -c -p -u -r1.361.2.9 Makefile.am
--- Makefile.am	31 Mar 2004 18:31:44 -0000	1.361.2.9
+++ Makefile.am	2 Apr 2004 19:23:28 -0000
@@ -1258,6 +1258,7 @@ javax/swing/plaf/basic/BasicProgressBarU
 javax/swing/plaf/basic/BasicRootPaneUI.java \
 javax/swing/plaf/basic/BasicRadioButtonUI.java \
 javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java \
+javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java \
 javax/swing/plaf/basic/BasicScrollBarUI.java \
 javax/swing/plaf/basic/BasicScrollPaneUI.java \
 javax/swing/plaf/basic/BasicSeparatorUI.java \
Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/libjava/Makefile.in,v
retrieving revision 1.385.2.9
diff -c -p -u -r1.385.2.9 Makefile.in
--- Makefile.in	31 Mar 2004 18:31:45 -0000	1.385.2.9
+++ Makefile.in	2 Apr 2004 19:23:28 -0000
@@ -963,6 +963,7 @@ javax/swing/plaf/basic/BasicProgressBarU
 javax/swing/plaf/basic/BasicRootPaneUI.java \
 javax/swing/plaf/basic/BasicRadioButtonUI.java \
 javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java \
+javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java \
 javax/swing/plaf/basic/BasicScrollBarUI.java \
 javax/swing/plaf/basic/BasicScrollPaneUI.java \
 javax/swing/plaf/basic/BasicSeparatorUI.java \
@@ -3007,6 +3008,7 @@ javax/swing/plaf/basic/BasicProgressBarU
 javax/swing/plaf/basic/BasicRootPaneUI.lo \
 javax/swing/plaf/basic/BasicRadioButtonUI.lo \
 javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.lo \
+javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.lo \
 javax/swing/plaf/basic/BasicScrollBarUI.lo \
 javax/swing/plaf/basic/BasicScrollPaneUI.lo \
 javax/swing/plaf/basic/BasicSeparatorUI.lo \
@@ -5085,6 +5087,7 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_D
 .deps/javax/swing/plaf/basic/BasicBorders.P \
 .deps/javax/swing/plaf/basic/BasicButtonListener.P \
 .deps/javax/swing/plaf/basic/BasicButtonUI.P \
+.deps/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.P \
 .deps/javax/swing/plaf/basic/BasicCheckBoxUI.P \
 .deps/javax/swing/plaf/basic/BasicGraphicsUtils.P \
 .deps/javax/swing/plaf/basic/BasicIconFactory.P \
Index: javax/swing/ImageIcon.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/ImageIcon.java,v
retrieving revision 1.2
diff -c -p -u -r1.2 ImageIcon.java
--- javax/swing/ImageIcon.java	11 Jun 2003 13:20:39 -0000	1.2
+++ javax/swing/ImageIcon.java	2 Apr 2004 19:23:29 -0000
@@ -56,7 +56,10 @@ public class ImageIcon implements Icon
 
   public ImageIcon(String s)
     {
-	this(s, "");
+    	// if description is not specified, then file name becomes
+	// desciption for this icon
+	
+	this(s, s);
     }
 
   public ImageIcon(String file,
Index: javax/swing/JCheckBoxMenuItem.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/JCheckBoxMenuItem.java,v
retrieving revision 1.3
diff -c -p -u -r1.3 JCheckBoxMenuItem.java
--- javax/swing/JCheckBoxMenuItem.java	9 Jan 2004 10:18:47 -0000	1.3
+++ javax/swing/JCheckBoxMenuItem.java	2 Apr 2004 19:23:29 -0000
@@ -39,206 +39,135 @@ package javax.swing;
 
 import java.io.IOException;
 import java.io.ObjectOutputStream;
+
 import javax.accessibility.Accessible;
 import javax.accessibility.AccessibleContext;
 import javax.accessibility.AccessibleRole;
 
-/**
- * JCheckBoxMenuItem
- * @author	Andrew Selkirk
- * @version	1.0
- */
-public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants, Accessible
-{
-
-	//-------------------------------------------------------------
-	// Classes ----------------------------------------------------
-	//-------------------------------------------------------------
-
-	/**
-	 * AccessibleJCheckBoxMenuItem
-	 */
-	protected class AccessibleJCheckBoxMenuItem extends AccessibleJMenuItem {
-
-		//-------------------------------------------------------------
-		// Variables --------------------------------------------------
-		//-------------------------------------------------------------
-
-
-		//-------------------------------------------------------------
-		// Initialization ---------------------------------------------
-		//-------------------------------------------------------------
-
-		/**
-		 * Constructor AccessibleJCheckBoxMenuItem
-		 * @param component TODO
-		 */
-		protected AccessibleJCheckBoxMenuItem(JCheckBoxMenuItem component) {
-			super(component);
-			// TODO
-		} // AccessibleJCheckBoxMenuItem()
-
-
-		//-------------------------------------------------------------
-		// Methods ----------------------------------------------------
-		//-------------------------------------------------------------
-
-		/**
-		 * getAccessibleRole
-		 * @returns AccessibleRole
-		 */
-		public AccessibleRole getAccessibleRole() {
-			return AccessibleRole.CHECK_BOX;
-		} // getAccessibleRole()
-
-
-	} // AccessibleJCheckBoxMenuItem
-
-
-	//-------------------------------------------------------------
-	// Variables --------------------------------------------------
-	//-------------------------------------------------------------
-
-	/**
-	 * uiClassID
-	 */
-	private static final String uiClassID = "CheckBoxMenuItemUI";
-
-
-	//-------------------------------------------------------------
-	// Initialization ---------------------------------------------
-	//-------------------------------------------------------------
-
-	/**
-	 * Constructor JCheckBoxMenuItem
-	 */
-	public JCheckBoxMenuItem() {
-		// TODO
-	} // JCheckBoxMenuItem()
-
-	/**
-	 * Constructor JCheckBoxMenuItem
-	 * @param icon TODO
-	 */
-	public JCheckBoxMenuItem(Icon icon) {
-		// TODO
-	} // JCheckBoxMenuItem()
-
-	/**
-	 * Constructor JCheckBoxMenuItem
-	 * @param text TODO
-	 */
-	public JCheckBoxMenuItem(String text) {
-		// TODO
-	} // JCheckBoxMenuItem()
-
-	/**
-	 * Constructor JCheckBoxMenuItem
-	 * @param action TODO
-	 */
-	public JCheckBoxMenuItem(Action action) {
-		// TODO
-	} // JCheckBoxMenuItem()
-
-	/**
-	 * Constructor JCheckBoxMenuItem
-	 * @param text TODO
-	 * @param icon TODO
-	 */
-	public JCheckBoxMenuItem(String text, Icon icon) {
-		// TODO
-	} // JCheckBoxMenuItem()
-
-	/**
-	 * Constructor JCheckBoxMenuItem
-	 * @param text TODO
-	 * @param state TODO
-	 */
-	public JCheckBoxMenuItem(String text, boolean state) {
-		// TODO
-	} // JCheckBoxMenuItem()
-
-	/**
-	 * Constructor JCheckBoxMenuItem
-	 * @param text TODO
-	 * @param icon TODO
-	 * @param state TODO
-	 */
-	public JCheckBoxMenuItem(String text, Icon icon, boolean state) {
-		// TODO
-	} // JCheckBoxMenuItem()
-
-
-	//-------------------------------------------------------------
-	// Methods ----------------------------------------------------
-	//-------------------------------------------------------------
-
-	/**
-	 * writeObject
-	 * @param stream TODO
-	 * @exception IOException TODO
-	 */
-	private void writeObject(ObjectOutputStream stream) throws IOException {
-		// TODO
-	} // writeObject()
-
-	/**
-	 * getUIClassID
-	 * @returns String
-	 */
-	public String getUIClassID() {
-		return uiClassID;
-	} // getUIClassID()
-
-	/**
-	 * getState
-	 * @returns boolean
-	 */
-	public boolean getState() {
-		return false; // TODO
-	} // getState()
-
-	/**
-	 * setState
-	 * @param state TODO
-	 */
-	public synchronized void setState(boolean state) {
-		// TODO
-	} // setState()
-
-	/**
-	 * getSelectedObjects
-	 * @returns Object[]
-	 */
-	public Object[] getSelectedObjects() {
-		return null; // TODO
-	} // getSelectedObjects()
-
-	/**
-	 * requestFocus
-	 */
-	public void requestFocus() {
-		// TODO
-	} // requestFocus()
-
-	/**
-	 * paramString
-	 * @returns String
-	 */
-	protected String paramString() {
-		return null; // TODO
-	} // paramString()
-
-	/**
-	 * getAccessibleContext
-	 * @returns AccessibleContext
-	 */
-	public AccessibleContext getAccessibleContext() {
-		if (accessibleContext == null) {
-			accessibleContext = new AccessibleJCheckBoxMenuItem(this);
-		} // if
-		return accessibleContext;
-	} // getAccessibleContext()
-
 
+public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants,
+                                                            Accessible
+{
+  //-------------------------------------------------------------
+  // Variables --------------------------------------------------
+  //-------------------------------------------------------------
+  private static final String uiClassID = "CheckBoxMenuItemUI";
+  private boolean state;
+  private Object[] selectedObjects;
+
+  //-------------------------------------------------------------
+  // Initialization ---------------------------------------------
+  //-------------------------------------------------------------
+  public JCheckBoxMenuItem()
+  {
+    this(null, null);
+  } // JCheckBoxMenuItem()
+
+  public JCheckBoxMenuItem(Icon icon)
+  {
+    this(null, icon);
+  } // JCheckBoxMenuItem()
+
+  public JCheckBoxMenuItem(String text)
+  {
+    this(text, null);
+  } // JCheckBoxMenuItem()
+
+  public JCheckBoxMenuItem(Action action)
+  {
+    this();
+    setAction(action);
+  } // JCheckBoxMenuItem()
+
+  public JCheckBoxMenuItem(String text, Icon icon)
+  {
+    this(text, icon, false);
+  } // JCheckBoxMenuItem()
+
+  public JCheckBoxMenuItem(String text, boolean state)
+  {
+    this(text, null, state);
+  } // JCheckBoxMenuItem()
+
+  public JCheckBoxMenuItem(String text, Icon icon, boolean state)
+  {
+    super(text, icon);
+    setModel(new JToggleButton.ToggleButtonModel());
+    this.state = state;
+  } // JCheckBoxMenuItem()
+
+  //-------------------------------------------------------------
+  // Methods ----------------------------------------------------
+  //-------------------------------------------------------------
+  private void writeObject(ObjectOutputStream stream) throws IOException
+  {
+    // TODO
+  } // writeObject()
+
+  public String getUIClassID()
+  {
+    return uiClassID;
+  } // getUIClassID()
+
+  public boolean getState()
+  {
+    return state;
+  } // getState()
+
+  public synchronized void setState(boolean state)
+  {
+    this.state = state;
+  } // setState()
+
+  public Object[] getSelectedObjects()
+  {
+    return selectedObjects;
+  } // getSelectedObjects()
+
+  public void requestFocus()
+  {
+    // TODO
+  } // requestFocus()
+
+  protected String paramString()
+  {
+    return "JCheckBoxMenuItem";
+  } // paramString()
+
+  public AccessibleContext getAccessibleContext()
+  {
+    if (accessibleContext == null)
+      {
+        accessibleContext = new AccessibleJCheckBoxMenuItem(this);
+      }
+
+    return accessibleContext;
+  } // getAccessibleContext()
+
+  //-------------------------------------------------------------
+  // Classes ----------------------------------------------------
+  //-------------------------------------------------------------
+  protected class AccessibleJCheckBoxMenuItem extends AccessibleJMenuItem
+  {
+    //-------------------------------------------------------------
+    // Variables --------------------------------------------------
+    //-------------------------------------------------------------
+    //-------------------------------------------------------------
+    // Initialization ---------------------------------------------
+    //-------------------------------------------------------------
+    protected AccessibleJCheckBoxMenuItem(JCheckBoxMenuItem component)
+    {
+      super(component);
+
+      // TODO
+    } // AccessibleJCheckBoxMenuItem()
+
+    //-------------------------------------------------------------
+    // Methods ----------------------------------------------------
+    //-------------------------------------------------------------
+    public AccessibleRole getAccessibleRole()
+    {
+      return AccessibleRole.CHECK_BOX;
+    } // getAccessibleRole()
+  } // AccessibleJCheckBoxMenuItem
 } // JCheckBoxMenuItem
Index: javax/swing/JRadioButtonMenuItem.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/JRadioButtonMenuItem.java,v
retrieving revision 1.3.8.1
diff -c -p -u -r1.3.8.1 JRadioButtonMenuItem.java
--- javax/swing/JRadioButtonMenuItem.java	31 Mar 2004 18:31:46 -0000	1.3.8.1
+++ javax/swing/JRadioButtonMenuItem.java	2 Apr 2004 19:23:29 -0000
@@ -78,24 +78,23 @@ public class JRadioButtonMenuItem extend
 
   public JRadioButtonMenuItem(String text, Icon icon)
   {
-    super(text, icon);
+    this(text, icon, false);
   } // JRadioButtonMenuItem()
 
   public JRadioButtonMenuItem(String text, boolean selected)
   {
-    this(text, null);
-    model.setSelected(selected);
+    this(text, null, selected);
   } // JRadioButtonMenuItem()
 
   public JRadioButtonMenuItem(Icon icon, boolean selected)
   {
-    this(null, icon);
-    model.setSelected(selected);
+    this(null, icon, selected);
   } // JRadioButtonMenuItem()
 
   public JRadioButtonMenuItem(String text, Icon icon, boolean selected)
   {
-    this(text, icon);
+    super(text, icon);  
+    setModel(new JToggleButton.ToggleButtonModel());	
     model.setSelected(selected);
   } // JRadioButtonMenuItem()
 
Index: javax/swing/plaf/basic/BasicIconFactory.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicIconFactory.java,v
retrieving revision 1.3.2.1
diff -c -p -u -r1.3.2.1 BasicIconFactory.java
--- javax/swing/plaf/basic/BasicIconFactory.java	31 Mar 2004 18:31:47 -0000	1.3.2.1
+++ javax/swing/plaf/basic/BasicIconFactory.java	2 Apr 2004 19:23:29 -0000
@@ -196,7 +196,7 @@ public class BasicIconFactory implements
   }
   public static Icon getCheckBoxMenuItemIcon()
   {
-    return new DummyIcon();
+    return getCheckBoxIcon();
   }
   public static Icon getRadioButtonMenuItemIcon()
   {
Index: javax/swing/plaf/basic/BasicMenuItemUI.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/Attic/BasicMenuItemUI.java,v
retrieving revision 1.1.2.3
diff -c -p -u -r1.1.2.3 BasicMenuItemUI.java
--- javax/swing/plaf/basic/BasicMenuItemUI.java	31 Mar 2004 18:31:48 -0000	1.1.2.3
+++ javax/swing/plaf/basic/BasicMenuItemUI.java	2 Apr 2004 19:23:29 -0000
@@ -323,7 +323,7 @@ public class BasicMenuItemUI extends Men
     SwingUtilities.calculateInsetArea(br, b.getMargin(), vr);        
     paintBackground(g, (JMenuItem) c, c.getBackground());
     
-    if ((b.getModel().isArmed() && b.getModel().isPressed()) || b.isSelected())
+    if ((b.getModel().isArmed() && b.getModel().isPressed()))
       {
         if (((AbstractButton) b).isContentAreaFilled())
           {


More information about the Java-patches mailing list