OSDN Git Service

Add license clarification.
[pf3gnuchains/gcc-fork.git] / libjava / java / awt / Dialog.java
1 /* Dialog.java -- An AWT dialog box
2    Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
3
4 This file is part of GNU Classpath.
5
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.
10
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.
15
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.
20
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.
25
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. */
37
38
39 package java.awt;
40
41 import java.awt.peer.DialogPeer;
42 import java.awt.peer.WindowPeer;
43 import java.awt.peer.ContainerPeer;
44 import java.awt.peer.ComponentPeer;
45
46 /**
47   * A dialog box widget class.
48   *
49   * @author Aaron M. Renn (arenn@urbanophile.com)
50   * @author Tom Tromey <tromey@redhat.com>
51   */
52 public class Dialog extends Window implements java.io.Serializable
53 {
54
55 /*
56  * Static Variables
57  */
58
59 // Serialization constant
60 private static final long serialVersionUID = 5920926903803293709L;
61
62 /*************************************************************************/
63
64 /*
65  * Instance Variables
66  */
67
68 /**
69   * @serial Indicates whether or not this dialog box is modal.
70   */
71 private boolean modal;
72
73 /**
74   * @serial Indicates whether or not this dialog box is resizable.
75   */
76 private boolean resizable;
77
78 /**
79   * @serial The title string for this dialog box, which can be
80   * <code>null</code>.
81   */
82 private String title;
83
84 /*************************************************************************/
85
86 /*
87  * Constructors
88  */
89
90 /**
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.
93   *
94   * @param parent The parent frame of this dialog box.
95   */
96 public
97 Dialog(Frame parent)
98 {
99   this(parent, "", false);
100 }
101
102 /*************************************************************************/
103
104 /**
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.
107   *
108   * @param parent The parent frame of this dialog box.
109   * @param modal <true> if this dialog box is modal, <code>false</code>
110   * otherwise.
111   */
112 public
113 Dialog(Frame parent, boolean modal)
114 {
115   this(parent, "", modal);
116 }
117
118 /*************************************************************************/
119
120 /**
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
123   * title.
124   *
125   * @param parent The parent frame of this dialog box.
126   * @param title The title string for this dialog box.
127   */
128 public
129 Dialog(Frame parent, String title)
130 {
131   this(parent, title, false);
132 }
133
134 /*************************************************************************/
135
136 /**
137   * Initializes a new instance of <code>Dialog</code> with the specified,
138   * parent, title, and modality, that is not resizable.
139   *
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>
143   * otherwise.
144   */
145 public
146 Dialog(Frame parent, String title, boolean modal)
147 {
148   super(parent);
149
150   this.title = title;
151   this.modal = modal;
152   resizable = false;
153
154   setLayout(new BorderLayout());
155 }
156
157 public
158 Dialog (Dialog owner)
159 {
160   this (owner, "", false);
161 }
162
163 public
164 Dialog (Dialog owner, String title)
165 {
166   this (owner, title, false);
167 }
168
169 public
170 Dialog (Dialog owner, String title, boolean modal)
171 {
172   super (owner);
173   this.modal = modal;
174   this.title = title;
175   setLayout (new BorderLayout ());
176 }
177
178 /*************************************************************************/
179
180 /*
181  * Instance Variables
182  */
183
184 /**
185   * Returns the title of this dialog box.
186   * 
187   * @return The title of this dialog box.
188   */
189 public String
190 getTitle()
191 {
192   return(title);
193 }
194
195 /*************************************************************************/
196
197 /**
198   * Sets the title of this dialog box to the specified string.
199   *
200   * @param title The new title.
201   */
202 public synchronized void
203 setTitle(String title)
204 {
205   this.title = title;
206   if (peer != null)
207     {
208       DialogPeer d = (DialogPeer) peer;
209       d.setTitle (title);
210     }
211 }
212
213 /*************************************************************************/
214
215 /**
216   * Tests whether or not this dialog box is modal.
217   *
218   * @return <code>true</code> if this dialog box is modal,
219   * <code>false</code> otherwise.
220   */
221 public boolean
222 isModal()
223 {
224   return(modal);
225 }
226
227 /*************************************************************************/
228
229 /**
230   * Changes the modality of this dialog box.  This can only be done before
231   * the peer is created.
232   *
233   * @param modal <code>true</code> to make this dialog box modal,
234   * <code>false</code> to make it non-modal.
235   */
236 public void
237 setModal(boolean modal)
238 {
239   this.modal = modal;
240 }
241
242 /*************************************************************************/
243
244 /**
245   * Tests whether or not this dialog box is resizable.
246   *
247   * @return <code>true</code> if this dialog is resizable, <code>false</code>,
248   * otherwise.
249   */
250 public boolean
251 isResizable()
252 {
253   return(resizable);
254 }
255
256 /*************************************************************************/
257
258 /**
259   * Changes the resizability of this dialog box.
260   *
261   * @param resizable <code>true</code> to make this dialog resizable,
262   * <code>false</code> to make it non-resizable.
263   */
264 public synchronized void
265 setResizable(boolean resizable)
266 {
267   this.resizable = resizable;
268   if (peer != null)
269     {
270       DialogPeer d = (DialogPeer) peer;
271       d.setResizable (resizable);
272     }
273 }
274
275 /*************************************************************************/
276
277 /**
278   * Creates this object's native peer.
279   */
280 public synchronized void
281 addNotify()
282 {
283   if (peer == null)
284     peer = getToolkit ().createDialog (this);
285   super.addNotify ();
286 }
287
288 /*************************************************************************/
289
290 /**
291   * Makes this dialog visible and brings it to the front.
292   */
293 public void
294 show()
295 {
296   super.show();
297 }
298
299 /*************************************************************************/
300
301 /**
302   * Returns a debugging string for this component.
303   * 
304   * @return A debugging string for this component.
305   */
306 protected String
307 paramString()
308 {
309   return ("title+" + title + ",modal=" + modal +
310           ",resizable=" + resizable + "," + super.paramString());
311 }
312
313 } // class Dialog
314