File: TaskZoomJFrameChangeState.java

package info (click to toggle)
openjdk-11 11.0.4%2B11-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 757,028 kB
  • sloc: java: 5,016,041; xml: 1,191,974; cpp: 934,731; ansic: 555,697; sh: 24,299; objc: 12,703; python: 3,602; asm: 3,415; makefile: 2,772; awk: 351; sed: 172; perl: 114; jsp: 24; csh: 3
file content (181 lines) | stat: -rw-r--r-- 7,622 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
/*
 * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

import javax.swing.*;
import java.awt.*;

/*
 * @test
 * @key headful
 * @summary Construct a JFrame, zoom it from the normal state and back forth
 *          using Frame.ZOOMED and Frame.NORMAL. Iconofy from the zoomed
 *          state and back forth using Frame.ICONIFIED and Frame.NORMAL and
 *          check the zoomed size is same as the screen size. Check the
 *          location of the jframe after restoration from zoom or icon.
 * @author Aruna Samji
 * @library ../../../lib/testlibrary
 * @build ExtendedRobot
 * @run main TaskZoomJFrameChangeState
 */

public class TaskZoomJFrameChangeState extends Task<GUIZoomFrame> {

    public static void main (String[] args) throws Exception {
        new TaskZoomJFrameChangeState(GUIZoomFrame.class, new ExtendedRobot()).task();
    }

    TaskZoomJFrameChangeState(Class guiClass, ExtendedRobot robot) throws Exception {
         super(guiClass, robot);
    }

    public void task() throws Exception {
        SwingUtilities.invokeAndWait(() -> {
            gui.jframe1.setVisible(true);
            gui.jframe1.getContentPane().removeAll();
            if (gui.jframe1.getExtendedState() != Frame.NORMAL)
                gui.jframe1.setExtendedState(Frame.NORMAL);
        });
        robot.waitForIdle(1000);

        Point frameOrigin = gui.jframe1.getLocationOnScreen();
        SwingUtilities.invokeAndWait(() ->
            gui.jframe1.setExtendedState(Frame.ICONIFIED)
        );
        robot.waitForIdle(1000);

        //To check whether the bitwise mask for ICONIFIED state is set
        if (gui.jframe1.getExtendedState() != Frame.ICONIFIED)
            throw new RuntimeException("The bitwise mask Frame.ICONIFIED is " +
                    "not set when the frame is in ICONIFIED state");

        //To check whether the Frame is iconified programmatically
        if (!gui.iconify)
            throw new RuntimeException("Frame is not Iconified");

        //Normalising the Frame.
        SwingUtilities.invokeAndWait(() ->
            gui.jframe1.setExtendedState(Frame.NORMAL)
        );
        robot.waitForIdle(1000);

        //To check whether the bitwise mask for NORMAL state is set
        if (gui.jframe1.getExtendedState() != Frame.NORMAL)
            throw new RuntimeException("The bitwise mask Frame.NORMAL is " +
                    "not set when the frame is in NORMAL state");

        //To check whether the Frame is normalised programmatically
        if (!gui.normal)
            throw new RuntimeException("Frame is not restored to normal");

        Point newposition = gui.jframe1.getLocationOnScreen();

        if ((frameOrigin.x != newposition.x) & (frameOrigin.y != newposition.y))
            throw new RuntimeException("The frame is not positioned back to " +
                    "the original place  on the screen after iconified");

        robot.waitForIdle(1000);

        //To check whether the state is supported in the platform
        if (Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.MAXIMIZED_HORIZ)) {
            //Maximising the Frame horizontally
            SwingUtilities.invokeAndWait(() ->
                gui.jframe1.setExtendedState(Frame.MAXIMIZED_HORIZ)
            );
            robot.waitForIdle(1000);

            //To check whether the bitwise mask for MAXIMIZED_HORIZ state is set
            if (gui.jframe1.getExtendedState() != Frame.MAXIMIZED_HORIZ)
                throw new RuntimeException("The bitwise mask Frame.MAXIMIZED_HOR " +
                        "is not set when the frame is in MAXIMIZED_HOR state");

            //To check whether the Frame is maximized horizontally
            if (!gui.maxHor)
                throw new RuntimeException("Frame is not maximized horizontally");

            SwingUtilities.invokeAndWait(() ->
                gui.jframe1.setExtendedState(Frame.NORMAL)
            );
            robot.waitForIdle(1000);
        }

        //To check whether the state is supported in the platform
        if (Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.MAXIMIZED_VERT)) {
            //Maximising the Frame vertically
            SwingUtilities.invokeAndWait(() ->
                gui.jframe1.setExtendedState(Frame.MAXIMIZED_VERT)
            );
            robot.waitForIdle(1000);

            //To check whether the bitwise mask for MAXIMIZED_VERT state is set
            if (gui.jframe1.getExtendedState() != Frame.MAXIMIZED_VERT)
                throw new RuntimeException("The bitwise mask Frame.MAXIMIZED_VERT " +
                        "is not set when the frame is in MAXIMIZED_VERT state");

            //To check whether the Frame is maximized vertically
            if (!gui.maxVer)
                throw new RuntimeException("Frame is not maximized vertically");

            SwingUtilities.invokeAndWait(() ->
                gui.jframe1.setExtendedState(Frame.NORMAL)
            );
            robot.waitForIdle(1000);
        }

        if (Toolkit.getDefaultToolkit().isFrameStateSupported
                (Frame.MAXIMIZED_BOTH)){
            //Maximising the Frame fully
            SwingUtilities.invokeAndWait(() ->
                gui.jframe1.setExtendedState(Frame.MAXIMIZED_BOTH)
            );
        }
        robot.waitForIdle(1000);

        //To check whether the state is supported in the platform
        if (Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.MAXIMIZED_BOTH)) {
            //To check whether the bitwise mask for MAXIMIZED_BOTH state is set
            if (gui.jframe1.getExtendedState() != Frame.MAXIMIZED_BOTH)
                throw new RuntimeException("The bitwise mask Frame.MAXIMIZED_BOTH " +
                        "is not set when the frame is in MAXIMIZED_BOTH state");

            //To check whether the Frame is maximized fully
            if (!gui.maxBoth)
                throw new RuntimeException("Frame is not maximized fully");
        }

        //Normalising the Frame
        SwingUtilities.invokeAndWait(() ->
            gui.jframe1.setExtendedState(Frame.NORMAL)
        );
        robot.waitForIdle(1000);

        //To check whether the bitwise mask for NORMAL state is set
        if (gui.jframe1.getExtendedState() != Frame.NORMAL)
            throw new RuntimeException("The bitwise mask Frame.NORMAL is not " +
                    "set when the frame is in NORMAL state after Zoomed");

        //To check whether the Frame is normalised programmatically
        if (!gui.normal)
            throw new RuntimeException("Frame is not restored to normal after Zoomed");
    }
}