Java JPopupMenu getOnlyPopupMenu(Container owner)

Here you can find the source of getOnlyPopupMenu(Container owner)

Description

get Only Popup Menu

License

Open Source License

Declaration

public static JPopupMenu getOnlyPopupMenu(Container owner) 

Method Source Code


//package com.java2s;
//License from project: Open Source License 

import java.awt.Component;
import java.awt.Container;

import java.util.ArrayList;

import java.util.List;

import javax.swing.JComponent;

import javax.swing.JPopupMenu;

public class Main {
    public static JPopupMenu getOnlyPopupMenu(Container owner) {
        return (JPopupMenu) getOnlyComponent(owner, JPopupMenu.class);
    }//  ww  w.  j  av  a 2  s. c o m

    private static JComponent getOnlyComponent(Container owner, Class<?> clazz) {
        return getOnlyComponent(owner, clazz, false);
    }

    private static JComponent getOnlyComponent(Container owner, Class<?> clazz, boolean onlyVisible) {
        List<JComponent> list = getComponents(owner, clazz, onlyVisible);
        if (list.size() != 1)
            throw new IllegalStateException(
                    "num " + (onlyVisible ? "visible " : "") + "compounds found " + list.size());
        return list.get(0);
    }

    public static List<JComponent> getComponents(Container owner, Class<?> clazz) {
        return getComponents(owner, clazz, false);
    }

    public static List<JComponent> getComponents(Container owner, Class<?> clazz, boolean onlyVisible) {
        List<JComponent> list = new ArrayList<JComponent>();
        for (Component c : owner.getComponents()) {
            if (clazz.isInstance(c) && (!onlyVisible || c.isShowing()))
                list.add((JComponent) c);
            else if (c instanceof JComponent) {
                for (JComponent b : getComponents((JComponent) c, clazz, onlyVisible))
                    list.add(b);
            }
        }
        return list;
    }
}

Related

  1. createPopupMenu(String menuText, JPopupMenu menu, ActionListener listener)
  2. ensurePopupIsOnScreen(JPopupMenu popup)
  3. findMenuComponent(JPopupMenu menu, String menuComponentName)
  4. findSubMenu(JPopupMenu popupMenu, String name)
  5. getMousePopupAdapter(final Component component, final JPopupMenu popup)
  6. getPopupMenu()
  7. getPopupMenuShowPoint(JPopupMenu popup, int x, int y)
  8. insertSeparatorIfNeeded(JPopupMenu popupMenu, int position)
  9. installPopupMenuColorAndFonts(final JComponent contentPane)