home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing;
-
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Window;
- import java.awt.event.ComponentEvent;
- import java.awt.event.ComponentListener;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- import java.awt.event.MouseMotionListener;
- import java.awt.event.WindowEvent;
- import java.awt.event.WindowListener;
- import java.util.EventObject;
- import java.util.Vector;
-
- class JPopupMenu$MouseGrabber implements MouseListener, MouseMotionListener, WindowListener, ComponentListener {
- JPopupMenu popupMenu;
- Vector grabbed = new Vector();
-
- public JPopupMenu$MouseGrabber(JPopupMenu var1) {
- this.popupMenu = var1;
- }
-
- void cancelPopupMenu() {
- this.popupMenu.firePopupMenuCanceled();
- this.popupMenu.setVisible(false);
- }
-
- void grabContainer(Container var1, Component var2) {
- if (var1 != var2) {
- if (var1 instanceof Window) {
- ((Window)var1).addWindowListener(this);
- ((Window)var1).addComponentListener(this);
- this.grabbed.addElement(var1);
- }
-
- Object var3 = ((Component)var1).getTreeLock();
- synchronized(var3){}
-
- try {
- int var5 = var1.getComponentCount();
- Component[] var6 = var1.getComponents();
-
- for(int var7 = 0; var7 < var5; ++var7) {
- Component var8 = var6[var7];
- if (var8.isVisible() && var8 != var2) {
- var8.addMouseListener(this);
- var8.addMouseMotionListener(this);
- this.grabbed.addElement(var8);
- if (var8 instanceof Container) {
- Container var9 = (Container)var8;
- this.grabContainer(var9, var2);
- }
- }
- }
- } catch (Throwable var11) {
- throw var11;
- }
-
- }
- }
-
- void ungrabContainers() {
- int var1 = 0;
-
- for(int var2 = this.grabbed.size(); var1 < var2; ++var1) {
- Component var3 = (Component)this.grabbed.elementAt(var1);
- if (var3 instanceof Window) {
- ((Window)var3).removeWindowListener(this);
- ((Window)var3).removeComponentListener(this);
- } else {
- var3.removeMouseListener(this);
- var3.removeMouseMotionListener(this);
- }
- }
-
- this.grabbed = new Vector();
- }
-
- public void mousePressed(MouseEvent var1) {
- Component var2 = (Component)((EventObject)var1).getSource();
- MenuSelectionManager var3 = MenuSelectionManager.defaultManager();
- if (!var3.isComponentPartOfCurrentMenu(this.popupMenu) || !var3.isComponentPartOfCurrentMenu(var2)) {
- this.cancelPopupMenu();
- }
- }
-
- public void mouseReleased(MouseEvent var1) {
- MenuSelectionManager.defaultManager().processMouseEvent(var1);
- }
-
- public void mouseEntered(MouseEvent var1) {
- MenuSelectionManager.defaultManager().processMouseEvent(var1);
- }
-
- public void mouseExited(MouseEvent var1) {
- MenuSelectionManager.defaultManager().processMouseEvent(var1);
- }
-
- public void mouseMoved(MouseEvent var1) {
- MenuSelectionManager.defaultManager().processMouseEvent(var1);
- }
-
- public void mouseDragged(MouseEvent var1) {
- MenuSelectionManager.defaultManager().processMouseEvent(var1);
- }
-
- public void mouseClicked(MouseEvent var1) {
- }
-
- public void componentResized(ComponentEvent var1) {
- this.cancelPopupMenu();
- }
-
- public void componentMoved(ComponentEvent var1) {
- this.cancelPopupMenu();
- }
-
- public void componentShown(ComponentEvent var1) {
- this.cancelPopupMenu();
- }
-
- public void componentHidden(ComponentEvent var1) {
- this.cancelPopupMenu();
- }
-
- public void windowOpened(WindowEvent var1) {
- }
-
- public void windowClosing(WindowEvent var1) {
- this.cancelPopupMenu();
- }
-
- public void windowClosed(WindowEvent var1) {
- this.cancelPopupMenu();
- }
-
- public void windowIconified(WindowEvent var1) {
- this.cancelPopupMenu();
- }
-
- public void windowDeiconified(WindowEvent var1) {
- }
-
- public void windowActivated(WindowEvent var1) {
- }
-
- public void windowDeactivated(WindowEvent var1) {
- }
- }
-