3789983e89
Reviewed-by: darcy, ihse
248 lines
8.8 KiB
Java
248 lines
8.8 KiB
Java
/*
|
|
* Copyright (c) 2007, 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.*;
|
|
import java.awt.event.*;
|
|
|
|
/*
|
|
* @test
|
|
* @summary Check for AWTEventMulticaster working in headless mode
|
|
* @run main/othervm -Djava.awt.headless=true HeadlessAWTEventMulticaster
|
|
*/
|
|
|
|
public class HeadlessAWTEventMulticaster {
|
|
class ComponentListenerImpl implements ComponentListener {
|
|
public boolean hidden = false;
|
|
public boolean moved = false;
|
|
public boolean resized = false;
|
|
public boolean shown = false;
|
|
|
|
public void componentHidden(ComponentEvent e) {
|
|
hidden = true;
|
|
}
|
|
|
|
public void componentMoved(ComponentEvent e) {
|
|
moved = true;
|
|
}
|
|
|
|
public void componentResized(ComponentEvent e) {
|
|
resized = true;
|
|
}
|
|
|
|
public void componentShown(ComponentEvent e) {
|
|
shown = true;
|
|
}
|
|
}
|
|
|
|
class ContainerListenerImpl implements ContainerListener {
|
|
public boolean removed = false;
|
|
public boolean added = false;
|
|
|
|
public void componentAdded(ContainerEvent e) {
|
|
added = true;
|
|
}
|
|
|
|
public void componentRemoved(ContainerEvent e) {
|
|
removed = true;
|
|
}
|
|
}
|
|
|
|
class FocusListenerImpl implements FocusListener {
|
|
public boolean gained = false;
|
|
public boolean lost = false;
|
|
|
|
public void focusGained(FocusEvent e) {
|
|
gained = true;
|
|
}
|
|
|
|
public void focusLost(FocusEvent e) {
|
|
lost = true;
|
|
}
|
|
}
|
|
|
|
class KeyListenerImpl implements KeyListener {
|
|
public boolean pressed = false;
|
|
public boolean released = false;
|
|
public boolean typed = false;
|
|
|
|
public void keyPressed(KeyEvent e) {
|
|
pressed = true;
|
|
}
|
|
|
|
public void keyReleased(KeyEvent e) {
|
|
released = true;
|
|
}
|
|
|
|
public void keyTyped(KeyEvent e) {
|
|
typed = true;
|
|
}
|
|
}
|
|
|
|
public static void main(String args[]) {
|
|
new HeadlessAWTEventMulticaster().doTest();
|
|
}
|
|
|
|
void doTest() {
|
|
ComponentListener compList;
|
|
ComponentListenerImpl compListImpl;
|
|
|
|
ContainerListener contList;
|
|
ContainerListenerImpl contListImpl;
|
|
|
|
FocusListener focList;
|
|
FocusListenerImpl focListImpl;
|
|
|
|
KeyListener keyList;
|
|
KeyListenerImpl keyListImpl;
|
|
|
|
Component component = new Component(){};
|
|
|
|
// Component resized
|
|
compListImpl = new ComponentListenerImpl();
|
|
compList = AWTEventMulticaster.add(compListImpl, null);
|
|
compList.componentResized(new ComponentEvent(component,
|
|
ComponentEvent.COMPONENT_RESIZED));
|
|
if (compListImpl.hidden || compListImpl.moved || compListImpl.shown) {
|
|
throw new RuntimeException("Wrong id delivered: hidden || moved || shown");
|
|
}
|
|
if (!compListImpl.resized) {
|
|
throw new RuntimeException("Expected id, resized, not delivered");
|
|
}
|
|
|
|
// Component moved
|
|
compListImpl = new ComponentListenerImpl();
|
|
compList = AWTEventMulticaster.add(compListImpl, null);
|
|
compList.componentMoved(new ComponentEvent(component,
|
|
ComponentEvent.COMPONENT_MOVED));
|
|
if (compListImpl.hidden || compListImpl.resized || compListImpl.shown) {
|
|
throw new RuntimeException("Wrong id delivered: hidden || resized || shown");
|
|
}
|
|
if (!compListImpl.moved) {
|
|
throw new RuntimeException("Expected id, moved, not delivered");
|
|
}
|
|
|
|
// Component shown
|
|
compListImpl = new ComponentListenerImpl();
|
|
compList = AWTEventMulticaster.add(compListImpl, null);
|
|
compList.componentShown(new ComponentEvent(component,
|
|
ComponentEvent.COMPONENT_SHOWN));
|
|
if (compListImpl.hidden || compListImpl.resized || compListImpl.moved) {
|
|
throw new RuntimeException("Wrong id delivered: hidden || resized || moved");
|
|
}
|
|
if (!compListImpl.shown) {
|
|
throw new RuntimeException("Expected id, shown, not delivered");
|
|
}
|
|
|
|
// Component hidden
|
|
compListImpl = new ComponentListenerImpl();
|
|
compList = AWTEventMulticaster.add(compListImpl, null);
|
|
compList.componentHidden(new ComponentEvent(component,
|
|
ComponentEvent.COMPONENT_HIDDEN));
|
|
if (compListImpl.shown || compListImpl.resized || compListImpl.moved) {
|
|
throw new RuntimeException("Wrong id delivered: shown || resized || moved");
|
|
}
|
|
if (!compListImpl.hidden) {
|
|
throw new RuntimeException("Expected id, hidden, not delivered");
|
|
}
|
|
|
|
// Component added
|
|
contListImpl = new ContainerListenerImpl();
|
|
contList = AWTEventMulticaster.add(contListImpl, null);
|
|
contList.componentAdded(new ContainerEvent(component,
|
|
ContainerEvent.COMPONENT_ADDED, component));
|
|
if (contListImpl.removed) {
|
|
throw new RuntimeException("Wrong id delivered: removed");
|
|
}
|
|
if (!contListImpl.added) {
|
|
throw new RuntimeException("Expected id, added, not delivered");
|
|
}
|
|
|
|
// Component removed
|
|
contListImpl = new ContainerListenerImpl();
|
|
contList = AWTEventMulticaster.add(contListImpl, null);
|
|
contList.componentRemoved(new ContainerEvent(component,
|
|
ContainerEvent.COMPONENT_REMOVED, component));
|
|
if (contListImpl.added) {
|
|
throw new RuntimeException("Wrong id delivered: added");
|
|
}
|
|
if (!contListImpl.removed) {
|
|
throw new RuntimeException("Expected id, removed, not delivered");
|
|
}
|
|
|
|
// Focus gained
|
|
focListImpl = new FocusListenerImpl();
|
|
focList = AWTEventMulticaster.add(focListImpl, null);
|
|
focList.focusGained(new FocusEvent(component, FocusEvent.FOCUS_GAINED));
|
|
if (focListImpl.lost) {
|
|
throw new RuntimeException("Wrong id delivered: lost");
|
|
}
|
|
if (!focListImpl.gained) {
|
|
throw new RuntimeException("Expected id, gained, not delivered");
|
|
}
|
|
|
|
// Focus lost
|
|
focListImpl = new FocusListenerImpl();
|
|
focList = AWTEventMulticaster.add(focListImpl, null);
|
|
focList.focusLost(new FocusEvent(component, FocusEvent.FOCUS_LOST));
|
|
if (focListImpl.gained) {
|
|
throw new RuntimeException("Wrong id delivered: gained");
|
|
}
|
|
if (!focListImpl.lost) {
|
|
throw new RuntimeException("Expected id, lost, not delivered");
|
|
}
|
|
|
|
// Key typed
|
|
keyListImpl = new KeyListenerImpl();
|
|
keyList = AWTEventMulticaster.add(keyListImpl, null);
|
|
keyList.keyTyped(new KeyEvent(component,
|
|
KeyEvent.KEY_TYPED, 0L, 0, 0));
|
|
if (keyListImpl.pressed || keyListImpl.released)
|
|
throw new RuntimeException("Wrong id delivered: pressed || released");
|
|
|
|
if (!keyListImpl.typed)
|
|
throw new RuntimeException("Expected id, typed, not delivered");
|
|
|
|
// Key pressed
|
|
keyListImpl = new KeyListenerImpl();
|
|
keyList = AWTEventMulticaster.add(keyListImpl, null);
|
|
keyList.keyPressed(new KeyEvent(component,
|
|
KeyEvent.KEY_PRESSED, 0L, 0, 0));
|
|
if (keyListImpl.typed || keyListImpl.released)
|
|
throw new RuntimeException("Wrong id delivered: typed || released");
|
|
|
|
if (!keyListImpl.pressed)
|
|
throw new RuntimeException("Expected id, pressed, not delivered");
|
|
|
|
// Key released
|
|
keyListImpl = new KeyListenerImpl();
|
|
keyList = AWTEventMulticaster.add(keyListImpl, null);
|
|
keyList.keyReleased(new KeyEvent(component,
|
|
KeyEvent.KEY_RELEASED, 0L, 0, 0));
|
|
if (keyListImpl.pressed || keyListImpl.typed)
|
|
throw new RuntimeException("Wrong id delivered: pressed || typed");
|
|
|
|
if (!keyListImpl.released)
|
|
throw new RuntimeException("Expected id, released, not delivered");
|
|
}
|
|
}
|