Java Swing Focus isDescendingFrom(Component focusOwner, Component parent)

Here you can find the source of isDescendingFrom(Component focusOwner, Component parent)

Description

Returns whether the component is part of the parent's container hierarchy.

License

Open Source License

Parameter

Parameter Description
focusOwner a parameter
parent a parameter

Return

true if the component is contained under the parent's hierarchy, coping with JPopupMenus.

Declaration

public static boolean isDescendingFrom(Component focusOwner,
        Component parent) 

Method Source Code

//package com.java2s;
/*// w  w w.  j  a  va 2 s.  co m
 * #%L
 * The AIBench Plugin Manager Plugin
 * %%
 * Copyright (C) 2006 - 2016 Daniel Glez-Pe?a and Florentino Fdez-Riverola
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 * 
 * This program 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 Lesser Public License for more details.
 * 
 * You should have received a copy of the GNU General Lesser Public
 * License along with this program.  If not, see
 * <http://www.gnu.org/licenses/lgpl-3.0.html>.
 * #L%
 */

import java.awt.Component;

import javax.swing.JPopupMenu;

public class Main {
    /**
     * Returns whether the component is part of the parent's
     * container hierarchy. If a parent in the chain is of type 
     * JPopupMenu, the parent chain of its invoker is walked.
     * 
     * @param focusOwner
     * @param parent
     * @return true if the component is contained under the parent's 
     *    hierarchy, coping with JPopupMenus.
     */
    public static boolean isDescendingFrom(Component focusOwner,
            Component parent) {
        while (focusOwner != null) {
            if (focusOwner instanceof JPopupMenu) {
                focusOwner = ((JPopupMenu) focusOwner).getInvoker();
                if (focusOwner == null) {
                    return false;
                }
            }
            if (focusOwner == parent) {
                return true;
            }
            focusOwner = focusOwner.getParent();
        }
        return false;
    }
}

Related

  1. installDefaultFocusHandling(Container c)
  2. installFocusCycleRoot(Container c, FocusTraversalPolicy cyclePolicy)
  3. installJComponentRepainterOnWindowFocusChanged( JComponent component)
  4. installJComponentRepainterOnWindowFocusChanged(JComponent component)
  5. installJComponentRepainterOnWindowFocusChanged(JComponent component)
  6. isFocusable(Component component)
  7. isFocused(Component component)
  8. isFocused(Component component, boolean recoursive)
  9. isParentWindowFocused(Component component)