private static boolean willPopupBeContained(JPopupMenu popup, Point origin) { if (!popup.isShowing()) { return false; } Window w = SwingUtilities.windowForComponent(popup.getInvoker()); Rectangle r = new Rectangle(origin, popup.getSize()); return (w != null) && w.getBounds().contains(r); }
JTable table = (JTable)popup.getInvoker(); System.out.println(table.getSelectedRow() + " : " + table.getSelectedColumn());
/** * @param c * @return */ private Component getInvoker(JComponent c) { JPopupMenu popup = (JPopupMenu) c; return popup.getInvoker(); }
public static void dynamicChangeToSubmenu(JPopupMenu popup, boolean usedToBeContained) { Object invoker = popup.getInvoker();
@Override public void actionPerformed(ActionEvent e) { if (menu.getInvoker() instanceof JTextComponent) { ((JTextComponent) menu.getInvoker()).cut(); } } });
@Override public void actionPerformed(ActionEvent e) { if (menu.getInvoker() instanceof JTextComponent) { ((JTextComponent) menu.getInvoker()).copy(); } } });
@Override public void actionPerformed(ActionEvent e) { if (menu.getInvoker() instanceof JTextComponent) { ((JTextComponent) menu.getInvoker()).paste(); } } });
public Component findUltimateParent(Component c) { Component parent = c; while (null != parent.getParent()) { parent = parent.getParent(); if (parent instanceof JPopupMenu) { JPopupMenu popup = (JPopupMenu) parent; parent = popup.getInvoker(); } } return parent; } // == Diagnostics =======================================================
public Component findUltimateParent(final Component c) { Component parent = c; while (null != parent.getParent()) { parent = parent.getParent(); if (parent instanceof JPopupMenu) { final JPopupMenu popup = (JPopupMenu) parent; parent = popup.getInvoker(); } } return parent; }
/** Returns the invoker, if any, of the given component. Returns null if * the component is not on a popup of any sort. */ public static Component getInvoker(Component comp) { if (comp instanceof JPopupMenu) return ((JPopupMenu)comp).getInvoker(); comp = comp.getParent(); return comp != null ? getInvoker(comp) : null; }
@ScriptFunction(name = "parent", jsDoc = PARENT_JSDOC) @Override public Widget getParentWidget() { java.awt.Container parent = super.getParent(); if (parent instanceof JPopupMenu && ((JPopupMenu) parent).getInvoker() instanceof JMenu) { parent = (java.awt.Container) ((JPopupMenu) parent).getInvoker(); } return parent instanceof HasChildren ? (Widget) parent : null; }
@ScriptFunction(name = "parent", jsDoc = PARENT_JSDOC) @Override public Widget getParentWidget() { java.awt.Container parent = super.getParent(); if (parent instanceof JPopupMenu && ((JPopupMenu) parent).getInvoker() instanceof JMenu) { parent = (java.awt.Container) ((JPopupMenu) parent).getInvoker(); } return parent instanceof HasChildren ? (Widget) parent : null; }
/** Return an identifying tag for the popup menu. */ public String deriveTag(Component comp) { Component invoker = ((JPopupMenu)comp).getInvoker(); return invoker == null ? "Popup menu" : "Popup on " + getTag(invoker); }
private boolean isOnJMenuBar(Component item) { if (item instanceof javax.swing.JMenuBar) return true; Component parent = item instanceof JPopupMenu ? ((JPopupMenu)item).getInvoker() : item.getParent(); return parent != null && isOnJMenuBar(parent); }
@ScriptFunction(name = "parent", jsDoc = PARENT_JSDOC) @Override public Widget getParentWidget() { java.awt.Container parent = super.getParent(); if (parent instanceof JPopupMenu && ((JPopupMenu) parent).getInvoker() instanceof JMenu) { parent = (java.awt.Container) ((JPopupMenu) parent).getInvoker(); } return parent instanceof HasChildren ? (Widget) parent : null; }
public void removeMenuComponent(final Component component) { final Container parent = component.getParent(); if (parent != null) { parent.remove(component); if (parent instanceof JPopupMenu) { final Component invoker = ((JPopupMenu) parent).getInvoker(); if (isExtraSubMenu(invoker) && parent.getComponentCount() == 0) removeMenuComponent(invoker); } } }
@Override public void popupMenuWillBecomeVisible(PopupMenuEvent e) { JTextComponent jtc = (JTextComponent) popupMenu.getInvoker(); boolean enableCutCopy = (jtc.getSelectionEnd() - jtc.getSelectionStart()) > 0; boolean enablePaste = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null) != null; mntmCut.setEnabled(enableCutCopy); mntmCopy.setEnabled(enableCutCopy); mntmPaste.setEnabled(enablePaste); } });
@RunsInCurrentThread private Component parentOrInvokerOf(@Nonnull JMenuItem menuItem) { Component parent = menuItem.getParent(); if (parent instanceof JPopupMenu) { parent = ((JPopupMenu) parent).getInvoker(); } return parent; }
private static boolean willPopupBeContained(JPopupMenu popup, Point origin) { if (!popup.isShowing()) { return false; } Window w = SwingUtilities.windowForComponent (popup.getInvoker()); Rectangle r = new Rectangle (origin, popup.getSize ()); return w != null && w.getBounds ().contains (r); }
public static String getPath(JMenuItem item) { Component parent = item.getParent(); if (parent instanceof JPopupMenu) { parent = ((JPopupMenu)parent).getInvoker(); } if (parent instanceof JMenuItem) { return getPath((JMenuItem)parent) + "|" + item.getText(); } return item.getText(); }