diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 5e6097329da..cf7cf4e2206 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,14 @@ +2004-04-21 Mark Wielaard + + * 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. + 2004-04-21 Michael Koch * java/util/Map.java diff --git a/libjava/javax/swing/JDialog.java b/libjava/javax/swing/JDialog.java index 11f27b239e0..8d43b761d96 100644 --- a/libjava/javax/swing/JDialog.java +++ b/libjava/javax/swing/JDialog.java @@ -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 @@ import javax.accessibility.AccessibleContext; * * @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 @@ public class JDialog extends Dialog implements Accessible * *************/ - 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 @@ public class JDialog extends Dialog implements Accessible 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 @@ public class JDialog extends Dialog implements Accessible } - void setDefaultCloseOperation(int operation) - { close_action = operation; } + /** + * Defines what happens when this frame is closed. Can be one off + * EXIT_ON_CLOSE, + * DISPOSE_ON_CLOSE, + * HIDE_ON_CLOSE or + * DO_NOTHING_ON_CLOSE. + * The default is HIDE_ON_CLOSE. + * When EXIT_ON_CLOSE is specified this method calls + * SecurityManager.checkExit(0) which might throw a + * SecurityException. When the specified operation is + * not one of the above a IllegalArgumentException 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"; } diff --git a/libjava/javax/swing/JFrame.java b/libjava/javax/swing/JFrame.java index 864f6bae4e0..89d109f660e 100644 --- a/libjava/javax/swing/JFrame.java +++ b/libjava/javax/swing/JFrame.java @@ -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 @@ import javax.accessibility.AccessibleContext; * * @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 @@ public class JFrame extends Frame return accessibleContext; } - int getDefaultCloseOperation() + public int getDefaultCloseOperation() { return close_action; } @@ -212,7 +207,7 @@ public class JFrame extends Frame { case EXIT_ON_CLOSE: { - System.exit(1); + System.exit(0); break; } case DISPOSE_ON_CLOSE: @@ -241,8 +236,30 @@ public class JFrame extends Frame } } + /** + * Defines what happens when this frame is closed. Can be one off + * EXIT_ON_CLOSE, + * DISPOSE_ON_CLOSE, + * HIDE_ON_CLOSE or + * DO_NOTHING_ON_CLOSE. + * The default is HIDE_ON_CLOSE. + * When EXIT_ON_CLOSE is specified this method calls + * SecurityManager.checkExit(0) which might throw a + * SecurityException. When the specified operation is + * not one of the above a IllegalArgumentException is + * thrown. + */ + public void setDefaultCloseOperation(int operation) + { + SecurityManager sm = System.getSecurityManager(); + if (sm != null && operation == EXIT_ON_CLOSE) + sm.checkExit(0); - void setDefaultCloseOperation(int operation) - { close_action = operation; } + 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; + } } diff --git a/libjava/javax/swing/JViewport.java b/libjava/javax/swing/JViewport.java index 17e60f1a560..66a9865a767 100644 --- a/libjava/javax/swing/JViewport.java +++ b/libjava/javax/swing/JViewport.java @@ -121,7 +121,7 @@ public class JViewport extends JComponent Point lastPaintPosition; - JViewport() + public JViewport() { setOpaque(true); updateUI();