/* * Copyright (c) 2007, 2018, 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.
*/
leftFrame = new TestFrame();
leftFrame.setLocation(50, 50);
leftFrame.setBackground(Color.BLUE);
leftFrame.setVisible(true);
switch (owner) { case HIDDEN_DIALOG:
hiddenDialog = new Dialog((Frame) null);
dialog = new CustomDialog(hiddenDialog); break; case NULL_DIALOG:
dialog = new CustomDialog((Dialog) null); break; case HIDDEN_FRAME:
hiddenFrame = new Frame();
dialog = new CustomDialog(hiddenFrame); break; case NULL_FRAME:
dialog = new CustomDialog((Frame) null); break; case FRAME:
dialog = new CustomDialog(leftFrame); break;
}
Point p = leftFrame.getLocationOnScreen(); int x = p.x + (int)(leftFrame.getWidth() * 0.9); int y = p.y + (int)(leftFrame.getHeight() * 0.9); boolean f = robot.getPixelColor(x, y).equals(leftFrame.getBackground());
assertEQ(refState, f, msg);
}
Point p = rightFrame.getLocationOnScreen(); int x = p.x + (int)(rightFrame.getWidth() * 0.1); int y = p.y + (int)(rightFrame.getHeight() * 0.9); boolean f = robot.getPixelColor(x, y).equals(rightFrame.getBackground());
assertEQ(refState, f, msg);
}
privatevoid Test() throws Exception {
String type =
dialog.getModalityType().toString().toLowerCase().replace('_', ' ');
final String msg1 = "The " + type + "dialog was " + "overlapped by the blocked frame.";
EventQueue.invokeAndWait(() -> { checkIfLeftOnTop(false, msg1); });
final String msg2 = "The dialog is still overlapped by the right frame" + " after calling toFront method for the blocked (left) frame.";
EventQueue.invokeAndWait(() -> { checkIfRightOnTop(false, msg2); });
final String msg3 = "The " + type + " dialog was overlapped by the " + "blocked frame after calling toFront method for the blocked frame.";
EventQueue.invokeAndWait(() -> { checkIfLeftOnTop(false, msg3); });
final String msg4 = "Calling toBack " + "for the blocked frame pushed the blocking dialog to back.";
EventQueue.invokeAndWait(() -> { checkIfRightOnTop(false, msg4); });
final String msg5 = "The " + type + " dialog was overlapped " + "by the blocked frame after toBack was called for the left frame.";
EventQueue.invokeAndWait(() -> { checkIfLeftOnTop(false, msg5); });
}
privatevoid docTest() throws Exception {
if (owner == DialogOwner.FRAME) { Test(); } else {
final String msg1 = "toBack was called for the dialog.";
EventQueue.invokeAndWait(() -> { checkIfLeftOnTop(true, msg1); });
EventQueue.invokeAndWait(() -> { checkIfRightOnTop(true, msg1); });
final String msg2 = "Dialog still behind " + "the right frame even after calling toFront method.";
EventQueue.invokeAndWait(() -> { checkIfRightOnTop(false, msg2); }); final String msg3 = "The document modal dialog " + "gone behind the blocked left frame.";
EventQueue.invokeAndWait(() -> { checkIfLeftOnTop(false, msg3); });
final String msg4 = "Calling toBack for the left " + "frame pushed the document modal dialog to back.";
EventQueue.invokeAndWait(() -> { checkIfRightOnTop(false, msg4); }); final String msg5 = "The document modal dialog " + "was pushed behind the left frame when toBack called for the frame.";
EventQueue.invokeAndWait(() -> { checkIfRightOnTop(false, msg5); });
}
}
privatevoid modelessTest() throws Exception {
if (owner == DialogOwner.FRAME) { final String msg = "The modeless dialog was " + "pushed behind the parent left frame after toBack call.";
EventQueue.invokeAndWait(() -> { checkIfLeftOnTop(false, msg); });
} else { final String msg = "Dialog should not overlap the frame after calling toBack.";
EventQueue.invokeAndWait(() -> { checkIfLeftOnTop(true, msg); });
EventQueue.invokeAndWait(() -> { checkIfRightOnTop(true, msg); });
}
final String msg1 = "The frames should not overlap the dialog " + "after calling toFront for it.";
EventQueue.invokeAndWait(() -> { checkIfLeftOnTop(false, msg1); });
EventQueue.invokeAndWait(() -> { checkIfRightOnTop(false, msg1); });
final String msg2 = "Calling toBack method for the " + "left frame pushed the modeless dialog to back.";
EventQueue.invokeAndWait(() -> { checkIfRightOnTop(false, msg2); }); final String msg3 = "The modeless dialog was pushed " + "behind the left frame after toBack was called for the frame.";
EventQueue.invokeAndWait(() -> { checkIfLeftOnTop(false, msg3); });
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.