/* * 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 java.awt.*; /* * @test * @summary Call the method KeyboardFocusManager. clearGlobalFocusOwner() * and check whether the global focus owner has got cleared * @author Aruna Samji * @library ../../../lib/testlibrary * @build ExtendedRobot * @run main TaskGlobalFocusOwner */ public class TaskGlobalFocusOwner extends Task { public static void main (String[] args) throws Exception { new TaskGlobalFocusOwner(new GUIMerlinFocus(), new ExtendedRobot()).runTask(); } TaskGlobalFocusOwner(GUIMerlinFocus gui, ExtendedRobot robot) { super(gui, robot); } public void task() throws Exception { gui.testframe4.setVisible(true); robot.waitForIdle(1000); gui.tempfocus = true; Point textfield15Center = gui.textfield15.getLocationOnScreen(); textfield15Center.translate(gui.textfield15.getWidth()/2, gui.textfield15.getHeight()/2); robot.glide(gui.textfield15.getLocationOnScreen(), textfield15Center); robot.click(); robot.waitForIdle(1000); //Clear the GlobalFocusOwner, textfield should receive the permanent focus lost //and any key events should not be generated. gui.setBooleans(); gui.de.clearGlobalFocusOwner(); robot.waitForIdle(1000); if (gui.tempfocus == true) throw new RuntimeException("The focus lost is temporary when " + "globalFocusOwner is cleared."); robot.type('A'); robot.waitForIdle(1000); if (gui.keypressed15) throw new RuntimeException("The keyevent is triggered when " + "globalfocusowner is cleared" ); //Get the focus again and check for the key events gui.setBooleans(); robot.click(); robot.waitForIdle(1000); if (! gui.focusgain) throw new RuntimeException("The textfield did not get focus."); robot.type('A'); robot.waitForIdle(1000); if (! gui.keypressed15) throw new RuntimeException("The keyevent is not triggered."); } }