Package java.awt.event

Examples of java.awt.event.FocusEvent


                return typeAheadAssertions(newActiveWindow, we);
            }

            case FocusEvent.FOCUS_GAINED: {
                FocusEvent fe = (FocusEvent)e;
                CausedFocusEvent.Cause cause = (fe instanceof CausedFocusEvent) ?
                    ((CausedFocusEvent)fe).getCause() : CausedFocusEvent.Cause.UNKNOWN;
                Component oldFocusOwner = getGlobalFocusOwner();
                Component newFocusOwner = fe.getComponent();
                if (oldFocusOwner == newFocusOwner) {
                    if (focusLog.isLoggable(Level.FINE)) {
                        focusLog.log(Level.FINE, "Skipping {0} because focus owner is the same",
                                                 new Object[] {String.valueOf(e)});
                    }
                    // We can't just drop the event - there could be
                    // type-ahead markers associated with it.
                    dequeueKeyEvents(-1, newFocusOwner);
                    break;
                }

                // If there exists a current focus owner, then notify it that
                // it has lost focus.
                if (oldFocusOwner != null) {
                    boolean isEventDispatched =
                        sendMessage(oldFocusOwner,
                                    new CausedFocusEvent(oldFocusOwner,
                                                   FocusEvent.FOCUS_LOST,
                                                   fe.isTemporary(),
                                                   newFocusOwner, cause));
                    // Failed to dispatch, clear by ourselfves
                    if (!isEventDispatched) {
                        setGlobalFocusOwner(null);
                        if (!fe.isTemporary()) {
                            setGlobalPermanentFocusOwner(null);
                        }
                    }
                }

                // Because the native windowing system has a different notion
                // of the current focus and activation states, it is possible
                // that a Component outside of the focused Window receives a
                // FOCUS_GAINED event. We synthesize a WINDOW_GAINED_FOCUS
                // event in that case.
                final Window newFocusedWindow = Component.getContainingWindow(newFocusOwner);
                final Window currentFocusedWindow = getGlobalFocusedWindow();
                if (newFocusedWindow != null &&
                    newFocusedWindow != currentFocusedWindow)
                {
                    sendMessage(newFocusedWindow,
                                new WindowEvent(newFocusedWindow,
                                        WindowEvent.WINDOW_GAINED_FOCUS,
                                                currentFocusedWindow));
                    if (newFocusedWindow != getGlobalFocusedWindow()) {
                        // Focus change was rejected. Will happen if
                        // newFocusedWindow is not a focusable Window.

                        // Need to recover type-ahead, but don't bother
                        // restoring focus. That was done by the
                        // WINDOW_GAINED_FOCUS handler
                        dequeueKeyEvents(-1, newFocusOwner);
                        break;
                    }
                }

                if (!(newFocusOwner.isFocusable() && newFocusOwner.isEnabled()
                      && newFocusOwner.isShowing()))
                {
                    // we should not accept focus on such component, so reject it.
                    dequeueKeyEvents(-1, newFocusOwner);
                    if (KeyboardFocusManager.isAutoFocusTransferEnabled())
                    {
                        restoreFocus(fe, newFocusedWindow);
                    }
                    break;
                }

                setGlobalFocusOwner(newFocusOwner);

                if (newFocusOwner != getGlobalFocusOwner()) {
                    // Focus change was rejected. Will happen if
                    // newFocusOwner is not focus traversable.
                    dequeueKeyEvents(-1, newFocusOwner);
                    if (KeyboardFocusManager.isAutoFocusTransferEnabled()) {
                        restoreFocus(fe, (Window)newFocusedWindow);
                    }
                    break;
                }

                if (!fe.isTemporary()) {
                    setGlobalPermanentFocusOwner(newFocusOwner);

                    if (newFocusOwner != getGlobalPermanentFocusOwner()) {
                        // Focus change was rejected. Unlikely, but possible.
                        dequeueKeyEvents(-1, newFocusOwner);
                        if (KeyboardFocusManager.isAutoFocusTransferEnabled()) {
                            restoreFocus(fe, (Window)newFocusedWindow);
                        }
                        break;
                    }
                }

                setNativeFocusOwner(getHeavyweight(newFocusOwner));

                Component realOppositeComponent = this.realOppositeComponentWR.get();
                if (realOppositeComponent != null &&
                    realOppositeComponent != fe.getOppositeComponent()) {
                    fe = new CausedFocusEvent(newFocusOwner,
                                        FocusEvent.FOCUS_GAINED,
                                        fe.isTemporary(),
                                        realOppositeComponent, cause);
                    ((AWTEvent) fe).isPosted = true;
                }
                return typeAheadAssertions(newFocusOwner, fe);
            }

            case FocusEvent.FOCUS_LOST: {
                FocusEvent fe = (FocusEvent)e;
                Component currentFocusOwner = getGlobalFocusOwner();
                if (currentFocusOwner == null) {
                    if (focusLog.isLoggable(Level.FINE)) {
                        focusLog.log(Level.FINE, "Skipping {0} because focus owner is null",
                                                 new Object[] {String.valueOf(e)});
                    }
                    break;
                }
                // Ignore cases where a Component loses focus to itself.
                // If we make a mistake because of retargeting, then the
                // FOCUS_GAINED handler will correct it.
                if (currentFocusOwner == fe.getOppositeComponent()) {
                    if (focusLog.isLoggable(Level.FINE)) {
                        focusLog.log(Level.FINE, "Skipping {0} because current focus owner is equal to opposite",
                                                 new Object[] {String.valueOf(e)});
                    }
                    break;
                }

                setGlobalFocusOwner(null);

                if (getGlobalFocusOwner() != null) {
                    // Focus change was rejected. Unlikely, but possible.
                    restoreFocus(currentFocusOwner, true);
                    break;
                }

                if (!fe.isTemporary()) {
                    setGlobalPermanentFocusOwner(null);

                    if (getGlobalPermanentFocusOwner() != null) {
                        // Focus change was rejected. Unlikely, but possible.
                        restoreFocus(currentFocusOwner, true);
                        break;
                    }
                } else {
                    Window owningWindow = currentFocusOwner.getContainingWindow();
                    if (owningWindow != null) {
                        owningWindow.setTemporaryLostComponent(currentFocusOwner);
                    }
                }

                setNativeFocusOwner(null);

                fe.setSource(currentFocusOwner);

                realOppositeComponentWR = (fe.getOppositeComponent() != null)
                    ? new WeakReference<Component>(currentFocusOwner)
                    : NULL_COMPONENT_WR;

                return typeAheadAssertions(currentFocusOwner, fe);
            }
View Full Code Here


                    if (header.getResizingColumn() == null) {
                        Point p = e.getPoint();
                        TableColumnModel columnModel = header.getColumnModel();
                        int index = columnModel.getColumnIndexAtX(p.x);
                        if (index != -1) {
                            header.processEvent(new FocusEvent(e.getComponent(), FocusEvent.FOCUS_GAINED));
                            if (header.editCellAt(index, e)) {                               
                                setDispatchComponent(e);
                                repostEvent(e);
                            }
                            header.getTable().scrollRectToVisible(header.getHeaderRect(index));                           
View Full Code Here

            // when losing focus to some component in other window
            // post temporary event:
            if (!focus && (opposite != null) && !callCB) {
                temporary = (c.getWindowAncestor() != opposite.getWindowAncestor());
            }
            FocusEvent newEvent = new FocusEvent(c, focus ? FocusEvent.FOCUS_GAINED
                    : FocusEvent.FOCUS_LOST, temporary, opposite);
            // remember previous focus owner to be able to post it as opposite
            // later
            // [when opposite component gains focus]
            // but clear it if application loses focus
View Full Code Here

    public boolean dispatchEvent(AWTEvent e) {
        if (e instanceof KeyEvent) {
            KeyEvent ke = (KeyEvent) e;
            return (preProcessKeyEvent(ke) || dispatchKeyEvent(ke));
        } else if (e instanceof FocusEvent) {
            FocusEvent fe = (FocusEvent) e;
            return dispatchFocusEvent(fe);
        } else if (e instanceof WindowEvent) {
            WindowEvent we = (WindowEvent) e;
            return dispatchWindowEvent(we);
        } else if (e == null) {
View Full Code Here

        aComponent.addFocusListener(focusListener);
        FocusListener[] listeners = comp.getFocusListeners();
        assertEquals(1, listeners.length);
        assertSame(focusListener, listeners[0]);
        assertNull(lastFocusEvent);
        comp.processEvent(new FocusEvent(comp, FocusEvent.FOCUS_GAINED));
        assertNotNull("focus listener called", lastFocusEvent);
        lastFocusEvent = null;
        aComponent.removeFocusListener(null);
        listeners = comp.getFocusListeners();
        assertSame(focusListener, listeners[0]);
        comp.processEvent(new FocusEvent(comp, FocusEvent.FOCUS_LOST));
        assertNotNull("focus listener called", lastFocusEvent);
        lastFocusEvent = null;
        aComponent.removeFocusListener(focusListener);
        listeners = comp.getFocusListeners();
        comp.processEvent(new FocusEvent(comp, FocusEvent.FOCUS_LOST, true));
        assertEquals(0, listeners.length);
        assertNull("listener not called", lastFocusEvent);

    }
View Full Code Here

        button.getModel().setArmed(true);
        button.getModel().setRollover(true);
        BasicButtonListener listener = (BasicButtonListener) button.getChangeListeners()[0];
        AdvancedChangeListener changeListener = new AdvancedChangeListener();
        button.getModel().addChangeListener(changeListener);
        listener.focusLost(new FocusEvent(button, 0));
        if (isHarmony()) {
            assertEquals("number of events", 2, changeListener.events.size());
            assertEquals("Pressed", Boolean.TRUE, changeListener.states.get(0));
            assertEquals("Armed", Boolean.FALSE, changeListener.states.get(1));
            assertEquals("Pressed", Boolean.FALSE, changeListener.states.get(2));
View Full Code Here

        message = null;
    }

    private void initFocusEvent() {
        if (FOCUS_GAINED == null || FOCUS_LOST == null) {
            FOCUS_GAINED = new FocusEvent(tf, FocusEvent.FOCUS_GAINED);
            FOCUS_LOST = new FocusEvent(tf, FocusEvent.FOCUS_LOST);
        }
    }
View Full Code Here

        assertNotNull(obj.getSelectionPainter());
    }

    public void testFocusGained() throws Exception {
        jta.setEditable(true);
        dc.focusGained(new FocusEvent(jta, FocusEvent.FOCUS_GAINED));
        assertTrue(dc.isVisible());
        dc.focusLost(new FocusEvent(jta, FocusEvent.FOCUS_LOST));
        jta.setEditable(false);
        dc.focusGained(new FocusEvent(jta, FocusEvent.FOCUS_GAINED));
        assertFalse(dc.isVisible());
        jta.setEditable(true);
        jta.setEnabled(false);
        dc.focusGained(new FocusEvent(jta, FocusEvent.FOCUS_GAINED));
        assertFalse(dc.isVisible());
    }
View Full Code Here

        dc.focusGained(new FocusEvent(jta, FocusEvent.FOCUS_GAINED));
        assertFalse(dc.isVisible());
    }

    public void testFocusLost() throws Exception {
        dc.focusLost(new FocusEvent(jta, FocusEvent.FOCUS_LOST));
        assertFalse(dc.isVisible());
    }
View Full Code Here

        aComponent.addFocusListener(focusListener);
        FocusListener[] listeners = comp.getFocusListeners();
        assertEquals(1, listeners.length);
        assertSame(focusListener, listeners[0]);
        assertNull(lastFocusEvent);
        comp.processEvent(new FocusEvent(comp, FocusEvent.FOCUS_GAINED));
        assertNotNull("focus listener called", lastFocusEvent);
        lastFocusEvent = null;
        aComponent.removeFocusListener(null);
        listeners = comp.getFocusListeners();
        assertSame(focusListener, listeners[0]);
        comp.processEvent(new FocusEvent(comp, FocusEvent.FOCUS_LOST));
        assertNotNull("focus listener called", lastFocusEvent);
        lastFocusEvent = null;
        aComponent.removeFocusListener(focusListener);
        listeners = comp.getFocusListeners();
        comp.processEvent(new FocusEvent(comp, FocusEvent.FOCUS_LOST, true));
        assertEquals(0, listeners.length);
        assertNull("listener not called", lastFocusEvent);

    }
View Full Code Here

TOP

Related Classes of java.awt.event.FocusEvent

Copyright © 2018 www.massapicom. 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.