Package java.awt

Source Code of java.awt.KeyboardFocusManagerTest

/*
*  Licensed to the Apache Software Foundation (ASF) under one or more
*  contributor license agreements.  See the NOTICE file distributed with
*  this work for additional information regarding copyright ownership.
*  The ASF licenses this file to You under the Apache License, Version 2.0
*  (the "License"); you may not use this file except in compliance with
*  the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
package java.awt;

import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeListenerProxy;
import java.beans.PropertyVetoException;
import java.beans.VetoableChangeListener;
import java.beans.VetoableChangeListenerProxy;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;

import junit.framework.TestCase;

public class KeyboardFocusManagerTest extends TestCase {

    boolean                listenerCalled, newListenerCalled, vlistenerCalled;
    KeyboardFocusManager   kfm       = new MyKeyboardManager();

    SimpleComponent        comp      = new SimpleComponent();
    SimpleComponent        comp1     = new SimpleComponent();
    PropertyChangeEvent    event, newEvent, vetoedEvent;
    PropertyChangeListener listener  = new PropertyChangeListener() {

                                         public void propertyChange(
                                                 PropertyChangeEvent e) {
                                             listenerCalled = true;
                                             event = e;
                                         }

                                     };
    VetoableChangeListener vlistener = new VetoableChangeListener() {
                                         String vetoedPropName = "activeWindow";

                                         public void vetoableChange(
                                                 PropertyChangeEvent e)
                                                 throws PropertyVetoException {
                                             event = e;
                                             vlistenerCalled = true;
                                             String propName = e
                                                     .getPropertyName();
                                             if (propName
                                                     .equals(vetoedPropName)
                                                     && e.getNewValue() != null) {
                                                 vetoedEvent = e;
                                                 throw new PropertyVetoException(
                                                         propName
                                                                 + " change is vetoed!",
                                                         e);
                                             }
                                         }

                                     };

    public static void main(String[] args) {
        junit.textui.TestRunner.run(KeyboardFocusManagerTest.class);
    }

    @SuppressWarnings("serial")
    public class SimpleComponent extends Component {
    }

    class MyKeyboardManager extends DefaultKeyboardFocusManager {

    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        listenerCalled = vlistenerCalled = false;
        clearVetoableChangeListeners();
        clearPropertyChangeListeners();
        kfm.clearGlobalFocusOwner();
        kfm.setGlobalActiveWindow(null);
        kfm.setGlobalFocusedWindow(null);
        kfm.setGlobalPermanentFocusOwner(null);
        event = vetoedEvent = newEvent = null;
    }

    /*
     * @see TestCase#tearDown()
     */
    @Override
    protected void tearDown() throws Exception {
        super.tearDown();
    }

    void clearPropertyChangeListeners() {
        if (kfm != null) {
            PropertyChangeListener[] listeners = kfm
                    .getPropertyChangeListeners();
            if (listeners != null) {
                for (PropertyChangeListener element : listeners) {
                    kfm.removePropertyChangeListener(element);
                }
            }
        }
    }

    void clearVetoableChangeListeners() {
        if (kfm != null) {
            VetoableChangeListener[] listeners = kfm
                    .getVetoableChangeListeners();
            if (listeners != null) {
                for (VetoableChangeListener element : listeners) {
                    kfm.removeVetoableChangeListener(element);
                }
            }
        }
    }

    /*
     * Class under test for void addPropertyChangeListener(java.lang.String,
     * java.beans.PropertyChangeListener)
     */
    public final void testAddPropertyChangeListenerString() {
        assertNotNull(kfm);

        String propName = "focusOwner";
        kfm.addPropertyChangeListener(propName, listener);
        PropertyChangeListener[] listeners = kfm
                .getPropertyChangeListeners(propName);
        assertNotNull(listeners);
        int len = listeners.length;
        assertEquals(1, len);
        assertSame(listener, listeners[0]);
        assertFalse(listenerCalled);
        kfm.setGlobalActiveWindow(new Frame());
        assertFalse(listenerCalled);
        kfm.setGlobalFocusOwner(comp);
        assertTrue(listenerCalled);
        assertNotNull(event);
        assertSame(kfm, event.getSource());
        assertNull(event.getOldValue());
        assertSame(comp, event.getNewValue());
        assertEquals(propName, event.getPropertyName());
        listenerCalled = false;
        kfm.setGlobalFocusOwner(comp1);
        assertTrue(listenerCalled);
        assertNotNull(event);
        assertSame(comp, event.getOldValue());
        assertSame(comp1, event.getNewValue());

    }

    /*
     * Class under test for void
     * addPropertyChangeListener(java.beans.PropertyChangeListener)
     */
    // TODO: FIXME
    public final void testAddPropertyChangeListener() {
        assertNotNull(kfm);

        kfm.addPropertyChangeListener(listener);
        PropertyChangeListener[] listeners = kfm.getPropertyChangeListeners();
        assertNotNull(listeners);
        int len = listeners.length;
        assertEquals(1, len);
        assertSame(listener, listeners[0]);
        assertFalse(listenerCalled);
        Frame f = new Frame();
        kfm.setGlobalFocusedWindow(f);
        assertTrue(listenerCalled);
        assertNotNull(event);
        assertNull(event.getOldValue());
        assertSame(f, event.getNewValue());
        assertEquals("focusedWindow", event.getPropertyName());
        listenerCalled = false;
        event = null;
        kfm.setGlobalFocusOwner(comp);
        assertTrue(listenerCalled);
        assertNotNull(event);
        // assertNull(event.getOldValue());
        assertSame(comp, event.getNewValue());
        assertEquals("focusOwner", event.getPropertyName());
        listenerCalled = false;
        event = null;
        kfm.setGlobalFocusOwner(comp1);
        assertTrue(listenerCalled);
        assertNotNull(event);
        assertSame(comp, event.getOldValue());
        assertSame(comp1, event.getNewValue());
        kfm.addPropertyChangeListener("newproperty", listener);
        len = kfm.getPropertyChangeListeners().length;
        assertEquals(2, len);
    }

    /*
     * Class under test for void
     * addVetoableChangeListener(java.beans.VetoableChangeListener)
     */
    // public final void testAddRemoveVetoableChangeListener() {
    // assertNotNull(kfm);
    // kfm.addVetoableChangeListener(vlistener);
    // VetoableChangeListener[] listeners = kfm.getVetoableChangeListeners();
    // assertNotNull(listeners);
    // int len = listeners.length;
    // assertEquals(1, len);
    // assertSame(vlistener, listeners[0]);
    // assertFalse(vlistenerCalled);
    // //test non-vetoed property change:
    // kfm.setGlobalFocusOwner(comp);
    // assertTrue(vlistenerCalled);
    // assertNotNull(event);
    // assertNull(event.getOldValue());
    // assertSame(comp, event.getNewValue());
    // assertEquals("focusOwner", event.getPropertyName());
    // //verify that change wasn't vetoed:
    // assertSame(comp, kfm.getFocusOwner());
    // //test vetoed property change:
    // Frame f = new Frame();
    // vlistenerCalled = false;
    // event = null;
    // kfm.setGlobalActiveWindow(f);
    // assertTrue(vlistenerCalled);
    // assertNotNull(event);
    // //check first that vetoed change was reported to listener:
    // assertSame(f, vetoedEvent.getNewValue());
    // assertNull(vetoedEvent.getOldValue());
    // assertEquals("activeWindow", vetoedEvent.getPropertyName());
    // //then check that the last change was
    // //back to old value:
    // assertSame(f, event.getOldValue());
    // assertNull(event.getNewValue());
    // assertEquals("activeWindow", event.getPropertyName());
    // //verify that the change was vetoed:
    // assertNull(kfm.getActiveWindow());
    // //verify removal of listener:
    // vlistenerCalled = false;
    // event = vetoedEvent = null;
    // kfm.removeVetoableChangeListener(null);
    // listeners = kfm.getVetoableChangeListeners();
    // assertEquals(1, listeners.length);
    // assertSame(vlistener, listeners[0]);
    // kfm.removeVetoableChangeListener(new VetoableChangeListenerProxy("q",
    // vlistener));
    // listeners = kfm.getVetoableChangeListeners();
    // assertEquals(1, listeners.length);
    // assertSame(vlistener, listeners[0]);
    // kfm.removeVetoableChangeListener(vlistener);
    // listeners = kfm.getVetoableChangeListeners();
    // assertEquals(0, listeners.length);
    // kfm.setGlobalActiveWindow(f);
    // assertFalse(vlistenerCalled);
    // assertSame(f, kfm.getActiveWindow());
    //
    // }
    /*
     * Class under test for void addVetoableChangeListener(java.lang.String,
     * java.beans.VetoableChangeListener)
     */
    public final void testAddRemoveVetoableChangeListenerString() {
        assertNotNull(kfm);
        String propName = "focusedWindow";
        kfm.addVetoableChangeListener(propName, vlistener);
        VetoableChangeListener[] listeners = kfm
                .getVetoableChangeListeners(propName);
        assertNotNull(listeners);
        int len = listeners.length;
        assertEquals(1, len);
        assertSame(vlistener, listeners[0]);
        assertFalse(vlistenerCalled);
        Frame f = new Frame();
        kfm.setGlobalActiveWindow(f);
        assertFalse(vlistenerCalled);
        assertSame(f, kfm.getActiveWindow());
        kfm.setGlobalFocusedWindow(f);
        assertTrue(vlistenerCalled);
        assertNotNull(event);
        assertSame(kfm, event.getSource());
        assertNull(event.getOldValue());
        assertSame(f, event.getNewValue());
        assertEquals(propName, event.getPropertyName());
        assertSame(f, kfm.getFocusedWindow());
        vlistenerCalled = false;
        event = vetoedEvent = null;
        kfm.removeVetoableChangeListener("q", vlistener);
        listeners = kfm.getVetoableChangeListeners(propName);
        assertNotNull(listeners);
        assertEquals(1, listeners.length);
        kfm.removeVetoableChangeListener(propName, vlistener);
        listeners = kfm.getVetoableChangeListeners(propName);
        assertNotNull(listeners);
        assertEquals(0, listeners.length);
        kfm.setGlobalFocusedWindow(null);
        assertFalse(vlistenerCalled);
        assertNull(kfm.getFocusedWindow());
        kfm.setGlobalActiveWindow(null);
        assertFalse(vlistenerCalled);
        assertNull(kfm.getActiveWindow());
        propName = "activeWindow";
        kfm.addVetoableChangeListener(propName, vlistener);
        listeners = kfm.getVetoableChangeListeners(propName);
        assertNotNull(listeners);
        assertEquals(1, listeners.length);
        kfm.setGlobalActiveWindow(f);
        assertTrue(vlistenerCalled);
        assertNull(kfm.getActiveWindow());
    }

    /*
     * Class under test for java.beans.PropertyChangeListener[]
     * getPropertyChangeListeners()
     */
    public final void testGetPropertyChangeListeners() {
        PropertyChangeListener[] listeners = kfm.getPropertyChangeListeners();
        assertNotNull(listeners);
        assertEquals(0, listeners.length);
        kfm.addPropertyChangeListener(listener);
        assertEquals(0, listeners.length);
        listeners = kfm.getPropertyChangeListeners();
        assertEquals(1, listeners.length);
        assertSame(listener, listeners[0]);
        String propName = "currentFocusCycleRoot";
        kfm.addPropertyChangeListener(propName, listener);
        listeners = kfm.getPropertyChangeListeners();
        assertEquals(2, listeners.length);
        assertNotSame(listener, listeners[1]);
        assertTrue(listeners[1] instanceof PropertyChangeListenerProxy);
        PropertyChangeListenerProxy proxy = (PropertyChangeListenerProxy) listeners[1];
        assertEquals(propName, proxy.getPropertyName());
        assertSame(listener, proxy.getListener());
    }

    /*
     * Class under test for java.beans.PropertyChangeListener[]
     * getPropertyChangeListeners(java.lang.String)
     */
    public final void testGetPropertyChangeListenersString() {
        String propName = "defaultFocusTraversalPolicy";
        PropertyChangeListener[] listeners = kfm
                .getPropertyChangeListeners(propName);
        assertNotNull(listeners);
        assertEquals(0, listeners.length);

        kfm.addPropertyChangeListener("focusedWindow", listener);
        int len = kfm.getPropertyChangeListeners(propName).length;
        assertEquals(0, len);
        kfm.addPropertyChangeListener(propName, listener);
        listeners = kfm.getPropertyChangeListeners(propName);
        len = listeners.length;
        assertEquals(1, len);
        assertSame(listener, listeners[0]);
        listeners = kfm.getPropertyChangeListeners("property");
        assertEquals(0, listeners.length);
    }

    /*
     * Class under test for java.beans.VetoableChangeListener[]
     * getVetoableChangeListeners(java.lang.String)
     */
    public final void testGetVetoableChangeListenersString() {
        String propName = "permanentFocusOwner";
        VetoableChangeListener[] listeners = kfm
                .getVetoableChangeListeners(propName);
        assertNotNull(listeners);
        assertEquals(0, listeners.length);

        kfm.addPropertyChangeListener("focusedWindow", listener);
        int len = kfm.getVetoableChangeListeners(propName).length;
        assertEquals(0, len);
        kfm.addVetoableChangeListener(propName, vlistener);
        listeners = kfm.getVetoableChangeListeners(propName);
        len = listeners.length;
        assertEquals(1, len);
        assertSame(vlistener, listeners[0]);
        listeners = kfm.getVetoableChangeListeners("q");
        assertEquals(0, listeners.length);
    }

    /*
     * Class under test for java.beans.VetoableChangeListener[]
     * getVetoableChangeListeners()
     */
    public final void testGetVetoableChangeListeners() {
        VetoableChangeListener[] listeners = kfm.getVetoableChangeListeners();
        assertNotNull(listeners);
        assertEquals(0, listeners.length);
        kfm.addVetoableChangeListener(vlistener);
        assertEquals(0, listeners.length);
        listeners = kfm.getVetoableChangeListeners();
        assertEquals(1, listeners.length);
        assertSame(vlistener, listeners[0]);
        String propName = "focusOwner";
        kfm.addVetoableChangeListener(propName, vlistener);
        listeners = kfm.getVetoableChangeListeners();
        assertEquals(2, listeners.length);
        assertNotSame(vlistener, listeners[1]);
        assertTrue(listeners[1] instanceof VetoableChangeListenerProxy);
        VetoableChangeListenerProxy proxy = (VetoableChangeListenerProxy) listeners[1];
        assertEquals(propName, proxy.getPropertyName());
        assertSame(vlistener, proxy.getListener());
    }

    /*
     * Class under test for void removePropertyChangeListener(java.lang.String,
     * java.beans.PropertyChangeListener)
     */
    public final void testRemovePropertyChangeListenerString() {
        String propName = "forwardDefaultFocusTraversalKeys";
        kfm.removePropertyChangeListener(propName, null);
        PropertyChangeListener[] listeners = kfm
                .getPropertyChangeListeners(propName);
        assertNotNull(listeners);
        assertEquals(0, listeners.length);
        kfm.addPropertyChangeListener(propName, listener);
        listeners = kfm.getPropertyChangeListeners(propName);
        assertEquals(1, listeners.length);
        Set<AWTKeyStroke> forSet = new HashSet<AWTKeyStroke>();
        forSet.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_ENTER, 0));
        kfm.setDefaultFocusTraversalKeys(
                KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, forSet);
        assertTrue(listenerCalled);
        listenerCalled = false;
        kfm.removePropertyChangeListener("property", listener);
        listeners = kfm.getPropertyChangeListeners(propName);
        assertEquals(1, listeners.length);
        kfm.removePropertyChangeListener(propName, listener);
        listeners = kfm.getPropertyChangeListeners(propName);
        assertEquals(0, listeners.length);
        forSet.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_ENTER,
                InputEvent.CTRL_DOWN_MASK));
        kfm.setDefaultFocusTraversalKeys(
                KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, forSet);
        assertFalse(listenerCalled);
    }

    /*
     * Class under test for void
     * removePropertyChangeListener(java.beans.PropertyChangeListener)
     */
    // public final void testRemovePropertyChangeListener() {
    // String propName = "backwardDefaultFocusTraversalKeys";
    // kfm.removePropertyChangeListener(listener);
    // PropertyChangeListener[] listeners = kfm.getPropertyChangeListeners();
    // assertNotNull(listeners);
    // assertEquals(0, listeners.length);
    // kfm.addPropertyChangeListener(propName, listener);
    // listeners = kfm.getPropertyChangeListeners();
    // assertEquals(1, listeners.length);
    // Set backSet = new HashSet();
    // backSet.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_SPACE,
    // KeyEvent.CTRL_DOWN_MASK));
    // kfm.setDefaultFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
    // backSet);
    // assertTrue(listenerCalled);
    // listenerCalled = false;
    // kfm.removePropertyChangeListener(listeners[0]);
    // listeners = kfm.getPropertyChangeListeners();
    // assertEquals(0, listeners.length);
    // backSet.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_SPACE, 0));
    // kfm.setDefaultFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
    // backSet);
    // assertFalse(listenerCalled);
    // kfm.addPropertyChangeListener(listener);
    // listeners = kfm.getPropertyChangeListeners();
    // assertEquals(1, listeners.length);
    // kfm.firePropertyChange("property", new Integer(0), new Integer(1));
    // assertTrue(listenerCalled);
    // listenerCalled = false;
    // kfm.removePropertyChangeListener(listener);
    // listeners = kfm.getPropertyChangeListeners();
    // assertEquals(0, listeners.length);
    // kfm.firePropertyChange("property", new Integer(1), new Integer(0));
    // assertFalse(listenerCalled);
    //
    // }
    public final void testSetCurrentKeyboardFocusManager() {
        String propName = "managingFocus";
        PropertyChangeListener newListener = new PropertyChangeListener() {

            public void propertyChange(PropertyChangeEvent e) {
                newListenerCalled = true;
                newEvent = e;
            }

        };

        KeyboardFocusManager oldFocusManager = KeyboardFocusManager
                .getCurrentKeyboardFocusManager();
        assertNotSame(oldFocusManager, kfm);
        oldFocusManager.addPropertyChangeListener(propName, listener);
        kfm.addPropertyChangeListener(propName, newListener);
        KeyboardFocusManager.setCurrentKeyboardFocusManager(kfm);
        assertSame(KeyboardFocusManager.getCurrentKeyboardFocusManager(), kfm);
        assertTrue(listenerCalled);
        assertNotNull(event);
        assertSame(event.getSource(), oldFocusManager);
        assertEquals(propName, event.getPropertyName());
        assertEquals(event.getOldValue(), new Boolean(true));
        assertEquals(event.getNewValue(), new Boolean(false));
        assertTrue(newListenerCalled);
        assertNotNull(newEvent);
        assertSame(newEvent.getSource(), kfm);
        assertEquals(propName, newEvent.getPropertyName());
        assertEquals(newEvent.getOldValue(), new Boolean(false));
        assertEquals(newEvent.getNewValue(), new Boolean(true));
    }

    public void testSetDefaultFocusTraversalKeys() {
        final KeyboardFocusManager mgr = new DefaultKeyboardFocusManager();
        Set<AWTKeyStroke> s;
        Set<AWTKeyStroke> s1;

        try {
            mgr.setDefaultFocusTraversalKeys(-1, createSet());
        } catch (IllegalArgumentException ex) {
            // expected
        }

        try {
            mgr.setDefaultFocusTraversalKeys(
                    KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, null);
        } catch (IllegalArgumentException ex) {
            // expected
        }

        try {
            mgr.setDefaultFocusTraversalKeys(
                    KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
                    createSet((AWTKeyStroke) null));
        } catch (IllegalArgumentException ex) {
            // expected
        }

        try {
            mgr.setDefaultFocusTraversalKeys(
                    KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
                    createSet(AWTKeyStroke.getAWTKeyStroke(KeyEvent.KEY_TYPED,
                            0)));
        } catch (IllegalArgumentException ex) {
            // expected
        }

        try {
            mgr
                    .setDefaultFocusTraversalKeys(
                            KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
                            createSet(AWTKeyStroke.getAWTKeyStroke(
                                    KeyEvent.VK_TAB, 0)));
        } catch (IllegalArgumentException ex) {
            // expected
        }

        s = createSet(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_TAB, 0));
        s1 = mgr
                .getDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS);
        mgr.addPropertyChangeListener(listener);
        mgr.setDefaultFocusTraversalKeys(
                KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, s);
        assertEquals(
                s,
                mgr
                        .getDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));
        assertNotNull(event);
        assertSame(s, event.getNewValue());
        assertSame(s1, event.getOldValue());
    }

    public void testGetDefaultFocusTraversalKeys() {
        final KeyboardFocusManager mgr = new DefaultKeyboardFocusManager();

        assertNotNull(mgr
                .getDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));
        assertNotNull(mgr
                .getDefaultFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS));
        assertNotNull(mgr
                .getDefaultFocusTraversalKeys(KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS));
        assertNotNull(mgr
                .getDefaultFocusTraversalKeys(KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS));

        assertEquals(
                createSet(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_TAB, 0),
                        AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_TAB,
                                InputEvent.CTRL_DOWN_MASK)),
                mgr
                        .getDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));
        assertEquals(
                createSet(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_TAB,
                        InputEvent.SHIFT_DOWN_MASK), AWTKeyStroke
                        .getAWTKeyStroke(KeyEvent.VK_TAB,
                                InputEvent.SHIFT_DOWN_MASK
                                        | InputEvent.CTRL_DOWN_MASK)),
                mgr
                        .getDefaultFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS));
        assertTrue(mgr.getDefaultFocusTraversalKeys(
                KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS).isEmpty());
        assertTrue(mgr.getDefaultFocusTraversalKeys(
                KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS).isEmpty());

        try {
            mgr.getDefaultFocusTraversalKeys(
                    KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS).add(null);
            fail("UnsupportedOperationException was not thrown"); //$NON-NLS-1$
        } catch (UnsupportedOperationException ex) {
            // expected
        }
    }

    private static Set<AWTKeyStroke> createSet(final AWTKeyStroke... keystrokes) {
        final Set<AWTKeyStroke> s = new LinkedHashSet<AWTKeyStroke>();

        for (AWTKeyStroke stroke : keystrokes) {
            s.add(stroke);
        }
        return s;
    }
}
TOP

Related Classes of java.awt.KeyboardFocusManagerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.