1 /* Dialog.java -- An AWT dialog box
2 Copyright (C) 1999, 2000, 2001, 2002 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)
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
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
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. */
41 import java.awt.peer.DialogPeer;
42 import java.awt.peer.WindowPeer;
43 import java.awt.peer.ContainerPeer;
44 import java.awt.peer.ComponentPeer;
47 * A dialog box widget class.
49 * @author Aaron M. Renn (arenn@urbanophile.com)
50 * @author Tom Tromey <tromey@redhat.com>
52 public class Dialog extends Window implements java.io.Serializable
59 // Serialization constant
60 private static final long serialVersionUID = 5920926903803293709L;
62 /*************************************************************************/
69 * @serial Indicates whether or not this dialog box is modal.
71 private boolean modal;
74 * @serial Indicates whether or not this dialog box is resizable.
76 private boolean resizable;
79 * @serial The title string for this dialog box, which can be
84 /*************************************************************************/
91 * Initializes a new instance of <code>Dialog</code> with the specified
92 * parent, that is not resizable and not modal, and which has no title.
94 * @param parent The parent frame of this dialog box.
99 this(parent, "", false);
102 /*************************************************************************/
105 * Initializes a new instance of <code>Dialog</code> with the specified
106 * parent and modality, that is not resizable and which has no title.
108 * @param parent The parent frame of this dialog box.
109 * @param modal <true> if this dialog box is modal, <code>false</code>
113 Dialog(Frame parent, boolean modal)
115 this(parent, "", modal);
118 /*************************************************************************/
121 * Initializes a new instance of <code>Dialog</code> with the specified
122 * parent, that is not resizable and not modal, and which has the specified
125 * @param parent The parent frame of this dialog box.
126 * @param title The title string for this dialog box.
129 Dialog(Frame parent, String title)
131 this(parent, title, false);
134 /*************************************************************************/
137 * Initializes a new instance of <code>Dialog</code> with the specified,
138 * parent, title, and modality, that is not resizable.
140 * @param parent The parent frame of this dialog box.
141 * @param title The title string for this dialog box.
142 * @param modal <true> if this dialog box is modal, <code>false</code>
146 Dialog(Frame parent, String title, boolean modal)
154 setLayout(new BorderLayout());
158 Dialog (Dialog owner)
160 this (owner, "", false);
164 Dialog (Dialog owner, String title)
166 this (owner, title, false);
170 Dialog (Dialog owner, String title, boolean modal)
175 setLayout (new BorderLayout ());
178 /*************************************************************************/
185 * Returns the title of this dialog box.
187 * @return The title of this dialog box.
195 /*************************************************************************/
198 * Sets the title of this dialog box to the specified string.
200 * @param title The new title.
202 public synchronized void
203 setTitle(String title)
208 DialogPeer d = (DialogPeer) peer;
213 /*************************************************************************/
216 * Tests whether or not this dialog box is modal.
218 * @return <code>true</code> if this dialog box is modal,
219 * <code>false</code> otherwise.
227 /*************************************************************************/
230 * Changes the modality of this dialog box. This can only be done before
231 * the peer is created.
233 * @param modal <code>true</code> to make this dialog box modal,
234 * <code>false</code> to make it non-modal.
237 setModal(boolean modal)
242 /*************************************************************************/
245 * Tests whether or not this dialog box is resizable.
247 * @return <code>true</code> if this dialog is resizable, <code>false</code>,
256 /*************************************************************************/
259 * Changes the resizability of this dialog box.
261 * @param resizable <code>true</code> to make this dialog resizable,
262 * <code>false</code> to make it non-resizable.
264 public synchronized void
265 setResizable(boolean resizable)
267 this.resizable = resizable;
270 DialogPeer d = (DialogPeer) peer;
271 d.setResizable (resizable);
275 /*************************************************************************/
278 * Creates this object's native peer.
280 public synchronized void
284 peer = getToolkit ().createDialog (this);
288 /*************************************************************************/
291 * Makes this dialog visible and brings it to the front.
299 /*************************************************************************/
302 * Returns a debugging string for this component.
304 * @return A debugging string for this component.
309 return ("title+" + title + ",modal=" + modal +
310 ",resizable=" + resizable + "," + super.paramString());