This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Patch: javax.swing


Hi list,


I just commited the attached patch which fixes several issues in 
javax.swing.


Michael


2004-04-21  Mark Wielaard  <mark@klomp.org>

	* javax/awt/JFrame.java: Implement WindowConstants. Remove final
	static fields defined in interface.
	* javax/awt/JDialog.java: Likewise.
	(JDialog): Make constructors public.
	(getDefaultCloseOperation): Make public.
	(processWindowEvent): Call System.exit(0) when EXIT_ON_CLOSE set.
	(setDefaultCloseOperation): Make public. Check argument. Add API doc.
	* javax/swing/JViewport.java (JViewport): Make constructor public.

Index: javax/swing/JViewport.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/JViewport.java,v
retrieving revision 1.5
diff -u -r1.5 JViewport.java
--- javax/swing/JViewport.java	19 Mar 2004 20:42:38 -0000	1.5
+++ javax/swing/JViewport.java	21 Apr 2004 05:34:28 -0000
@@ -121,7 +121,7 @@
 
   Point lastPaintPosition;
 
-  JViewport()
+  public JViewport()
   {
     setOpaque(true);
     updateUI();
Index: javax/swing/JDialog.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/JDialog.java,v
retrieving revision 1.2
diff -u -r1.2 JDialog.java
--- javax/swing/JDialog.java	11 Jun 2003 13:20:39 -0000	1.2
+++ javax/swing/JDialog.java	21 Apr 2004 05:34:28 -0000
@@ -1,5 +1,5 @@
 /* JDialog.java --
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -57,12 +57,8 @@
  *
  * @author Ronald Veldema (rveldema@cs.vu.nl)
  */
-public class JDialog extends Dialog implements Accessible
+public class JDialog extends Dialog implements Accessible, WindowConstants
 {
-    public final static int HIDE_ON_CLOSE        = 0;
-    public final static int DISPOSE_ON_CLOSE     = 1;
-    public final static int DO_NOTHING_ON_CLOSE  = 2;
-
     protected  AccessibleContext accessibleContext;
 
     private int close_action = HIDE_ON_CLOSE;    
@@ -75,42 +71,42 @@
      *
      *************/
 
-    JDialog(Frame owner)
+    public JDialog(Frame owner)
     {
 	this(owner, "dialog");
     }
     
-    JDialog(Frame owner,
+    public JDialog(Frame owner,
 	    String s)
     {
 	this(owner, s, true);
     }
     
-  JDialog(Frame owner,
+  public JDialog(Frame owner,
 	  String s,
 	  boolean modeld)
     {
 	super(owner, s, modeld);
     }
 
-  JDialog(Frame owner,
+  public JDialog(Frame owner,
 	  //  String s,
 	  boolean modeld)
     {
 	super(owner, "JDialog", modeld);
     }
-  JDialog(Dialog owner)
+  public JDialog(Dialog owner)
   {
       this(owner, "dialog");
   }
     
-    JDialog(Dialog owner,
+    public JDialog(Dialog owner,
 	    String s)
     {
 	this(owner, s, true);
     }
     
-  JDialog(Dialog owner,
+  public JDialog(Dialog owner,
 	  String s,
 	  boolean modeld)
     {
@@ -221,18 +217,20 @@
 
     protected  void processWindowEvent(WindowEvent e)
     {
-	//	System.out.println("PROCESS_WIN_EV-1: " + e);
 	super.processWindowEvent(e); 
-	//	System.out.println("PROCESS_WIN_EV-2: " + e);
 	switch (e.getID())
 	    {
 	    case WindowEvent.WINDOW_CLOSING:
 		{
 		    switch(close_action)
 			{
+			case EXIT_ON_CLOSE:
+			  {
+			    System.exit(0);
+			    break;
+			  }
 			case DISPOSE_ON_CLOSE:
 			    {
-				System.out.println("user requested dispose on close");
 				dispose();
 				break;
 			    }
@@ -258,8 +256,34 @@
     }   
  
 
-    void setDefaultCloseOperation(int operation)
-    {  close_action = operation;   }
+  /**
+   * Defines what happens when this frame is closed. Can be one off
+   * <code>EXIT_ON_CLOSE</code>,
+   * <code>DISPOSE_ON_CLOSE</code>,
+   * <code>HIDE_ON_CLOSE</code> or
+   * <code>DO_NOTHING_ON_CLOSE</code>.
+   * The default is <code>HIDE_ON_CLOSE</code>.
+   * When <code>EXIT_ON_CLOSE</code> is specified this method calls
+   * <code>SecurityManager.checkExit(0)</code> which might throw a
+   * <code>SecurityException</code>. When the specified operation is
+   * not one of the above a <code>IllegalArgumentException</code> is
+   * thrown.
+   */
+  public void setDefaultCloseOperation(int operation)
+  {
+    SecurityManager sm = System.getSecurityManager();
+    if (sm != null && operation == EXIT_ON_CLOSE)
+      sm.checkExit(0);
+    
+    if (operation != EXIT_ON_CLOSE && operation != DISPOSE_ON_CLOSE
+	&& operation != HIDE_ON_CLOSE && operation != DO_NOTHING_ON_CLOSE)
+      throw new IllegalArgumentException("operation = " + operation);
+    
+    close_action = operation;
+  }
+  
+  public int getDefaultCloseOperation()
+  {    return close_action;   }
 
     protected  String paramString()
     {   return "JDialog";     }
Index: javax/swing/JFrame.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/JFrame.java,v
retrieving revision 1.4
diff -u -r1.4 JFrame.java
--- javax/swing/JFrame.java	12 Feb 2004 00:17:23 -0000	1.4
+++ javax/swing/JFrame.java	21 Apr 2004 05:34:28 -0000
@@ -1,5 +1,5 @@
 /* JFrame.java --
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -57,16 +57,11 @@
  *
  * @author Ronald Veldema (rveldema@cs.vu.nl)
  */
-public class JFrame extends Frame
+public class JFrame extends Frame implements WindowConstants
 {
-    public final static int HIDE_ON_CLOSE        = 0;
-    public final static int EXIT_ON_CLOSE        = 1;
-    public final static int DISPOSE_ON_CLOSE     = 2;
-    public final static int DO_NOTHING_ON_CLOSE  = 3;
-
     protected  AccessibleContext accessibleContext;
 
-    private int close_action = EXIT_ON_CLOSE;    
+    private int close_action = HIDE_ON_CLOSE;    
     
 
     /***************************************************
@@ -192,7 +187,7 @@
     return accessibleContext;
   }
   
-    int getDefaultCloseOperation()
+    public int getDefaultCloseOperation()
     {    return close_action;   }
 
     
@@ -212,7 +207,7 @@
 			{
 			case EXIT_ON_CLOSE:
 			    {
-				System.exit(1);
+				System.exit(0);
 				break;
 			    }
 			case DISPOSE_ON_CLOSE:
@@ -241,8 +236,30 @@
 	    }
     }   
  
-
-    void setDefaultCloseOperation(int operation)
-    {  close_action = operation;   }
+    /**
+     * Defines what happens when this frame is closed. Can be one off
+     * <code>EXIT_ON_CLOSE</code>,
+     * <code>DISPOSE_ON_CLOSE</code>,
+     * <code>HIDE_ON_CLOSE</code> or
+     * <code>DO_NOTHING_ON_CLOSE</code>.
+     * The default is <code>HIDE_ON_CLOSE</code>.
+     * When <code>EXIT_ON_CLOSE</code> is specified this method calls
+     * <code>SecurityManager.checkExit(0)</code> which might throw a
+     * <code>SecurityException</code>. When the specified operation is
+     * not one of the above a <code>IllegalArgumentException</code> is
+     * thrown.
+     */
+    public void setDefaultCloseOperation(int operation)
+    {
+      SecurityManager sm = System.getSecurityManager();
+      if (sm != null && operation == EXIT_ON_CLOSE)
+	sm.checkExit(0);
+
+      if (operation != EXIT_ON_CLOSE && operation != DISPOSE_ON_CLOSE
+	  && operation != HIDE_ON_CLOSE && operation != DO_NOTHING_ON_CLOSE)
+	throw new IllegalArgumentException("operation = " + operation);
+	  
+      close_action = operation;
+    }
 
 }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]