| /* | |
| * 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"); | |
| } | |
| } |