blob: edabc4f714edabc6cad7f856e824cc058465d075 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 */
23
24/*
25 test
26 @bug 4464714 6365898
27 @summary Frames cannot be shown initially maximized
28 @author Valeriy Ushakov: area=toplevel
29 @run applet/manual=yesno InitialMaximizedTest.html
30*/
31
32
33/**
34 * InitialMaximizedTest.java
35 *
36 * summary:
37 */
38
39import java.applet.Applet;
40import java.awt.*;
41
42
43public class InitialMaximizedTest extends Applet
44{
45 Frame f;
46
47 public void init()
48 {
49 this.setLayout (new BorderLayout ());
50
51 String[] instructions =
52 {
53 "This test creates a frame that is initially maximized.",
54 "Press PASS if frame is shown initially maximized, else press FAIL"
55 };
56 Sysout.createDialogWithInstructions( instructions );
57
58 }//End init()
59
60 public void start ()
61 {
62 //Get things going. Request focus, set size, et cetera
63 setSize (200,200);
64 setVisible(true);
65 validate();
66
67 f = new Frame("The frame SHOULD be shown MAXIMIZED");
68 f.setSize(300, 300);
69 f.setLocation(50, 50);
70 f.setExtendedState(Frame.MAXIMIZED_BOTH);
71 f.setVisible(true);
72 }// start()
73
74}// class InitialMaximizedTest
75
76/* Place other classes related to the test after this line */
77
78
79
80
81
82/****************************************************
83 Standard Test Machinery
84 DO NOT modify anything below -- it's a standard
85 chunk of code whose purpose is to make user
86 interaction uniform, and thereby make it simpler
87 to read and understand someone else's test.
88 ****************************************************/
89
90/**
91 This is part of the standard test machinery.
92 It creates a dialog (with the instructions), and is the interface
93 for sending text messages to the user.
94 To print the instructions, send an array of strings to Sysout.createDialog
95 WithInstructions method. Put one line of instructions per array entry.
96 To display a message for the tester to see, simply call Sysout.println
97 with the string to be displayed.
98 This mimics System.out.println but works within the test harness as well
99 as standalone.
100 */
101
102class Sysout
103{
104 private static TestDialog dialog;
105
106 public static void createDialogWithInstructions( String[] instructions )
107 {
108 dialog = new TestDialog( new Frame(), "Instructions" );
109 dialog.printInstructions( instructions );
110 dialog.setVisible(true);
111 println( "Any messages for the tester will display here." );
112 }
113
114 public static void createDialog( )
115 {
116 dialog = new TestDialog( new Frame(), "Instructions" );
117 String[] defInstr = { "Instructions will appear here. ", "" } ;
118 dialog.printInstructions( defInstr );
119 dialog.setVisible(true);
120 println( "Any messages for the tester will display here." );
121 }
122
123
124 public static void printInstructions( String[] instructions )
125 {
126 dialog.printInstructions( instructions );
127 }
128
129
130 public static void println( String messageIn )
131 {
132 dialog.displayMessage( messageIn );
133 }
134
135}// Sysout class
136
137/**
138 This is part of the standard test machinery. It provides a place for the
139 test instructions to be displayed, and a place for interactive messages
140 to the user to be displayed.
141 To have the test instructions displayed, see Sysout.
142 To have a message to the user be displayed, see Sysout.
143 Do not call anything in this dialog directly.
144 */
145class TestDialog extends Dialog
146{
147
148 TextArea instructionsText;
149 TextArea messageText;
150 int maxStringLength = 80;
151
152 //DO NOT call this directly, go through Sysout
153 public TestDialog( Frame frame, String name )
154 {
155 super( frame, name );
156 int scrollBoth = TextArea.SCROLLBARS_BOTH;
157 instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
158 add( "North", instructionsText );
159
160 messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
161 add("Center", messageText);
162
163 pack();
164
165 setVisible(true);
166 }// TestDialog()
167
168 //DO NOT call this directly, go through Sysout
169 public void printInstructions( String[] instructions )
170 {
171 //Clear out any current instructions
172 instructionsText.setText( "" );
173
174 //Go down array of instruction strings
175
176 String printStr, remainingStr;
177 for( int i=0; i < instructions.length; i++ )
178 {
179 //chop up each into pieces maxSringLength long
180 remainingStr = instructions[ i ];
181 while( remainingStr.length() > 0 )
182 {
183 //if longer than max then chop off first max chars to print
184 if( remainingStr.length() >= maxStringLength )
185 {
186 //Try to chop on a word boundary
187 int posOfSpace = remainingStr.
188 lastIndexOf( ' ', maxStringLength - 1 );
189
190 if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
191
192 printStr = remainingStr.substring( 0, posOfSpace + 1 );
193 remainingStr = remainingStr.substring( posOfSpace + 1 );
194 }
195 //else just print
196 else
197 {
198 printStr = remainingStr;
199 remainingStr = "";
200 }
201
202 instructionsText.append( printStr + "\n" );
203
204 }// while
205
206 }// for
207
208 }//printInstructions()
209
210 //DO NOT call this directly, go through Sysout
211 public void displayMessage( String messageIn )
212 {
213 messageText.append( messageIn + "\n" );
214 System.out.println(messageIn);
215 }
216
217}// TestDialog class