home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / JPopupMenu$MouseGrabber.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  4.0 KB  |  151 lines

  1. package com.sun.java.swing;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Window;
  6. import java.awt.event.ComponentEvent;
  7. import java.awt.event.ComponentListener;
  8. import java.awt.event.MouseEvent;
  9. import java.awt.event.MouseListener;
  10. import java.awt.event.MouseMotionListener;
  11. import java.awt.event.WindowEvent;
  12. import java.awt.event.WindowListener;
  13. import java.util.EventObject;
  14. import java.util.Vector;
  15.  
  16. class JPopupMenu$MouseGrabber implements MouseListener, MouseMotionListener, WindowListener, ComponentListener {
  17.    JPopupMenu popupMenu;
  18.    Vector grabbed = new Vector();
  19.  
  20.    public JPopupMenu$MouseGrabber(JPopupMenu var1) {
  21.       this.popupMenu = var1;
  22.    }
  23.  
  24.    void cancelPopupMenu() {
  25.       this.popupMenu.firePopupMenuCanceled();
  26.       this.popupMenu.setVisible(false);
  27.    }
  28.  
  29.    void grabContainer(Container var1, Component var2) {
  30.       if (var1 != var2) {
  31.          if (var1 instanceof Window) {
  32.             ((Window)var1).addWindowListener(this);
  33.             ((Window)var1).addComponentListener(this);
  34.             this.grabbed.addElement(var1);
  35.          }
  36.  
  37.          Object var3 = ((Component)var1).getTreeLock();
  38.          synchronized(var3){}
  39.  
  40.          try {
  41.             int var5 = var1.getComponentCount();
  42.             Component[] var6 = var1.getComponents();
  43.  
  44.             for(int var7 = 0; var7 < var5; ++var7) {
  45.                Component var8 = var6[var7];
  46.                if (var8.isVisible() && var8 != var2) {
  47.                   var8.addMouseListener(this);
  48.                   var8.addMouseMotionListener(this);
  49.                   this.grabbed.addElement(var8);
  50.                   if (var8 instanceof Container) {
  51.                      Container var9 = (Container)var8;
  52.                      this.grabContainer(var9, var2);
  53.                   }
  54.                }
  55.             }
  56.          } catch (Throwable var11) {
  57.             throw var11;
  58.          }
  59.  
  60.       }
  61.    }
  62.  
  63.    void ungrabContainers() {
  64.       int var1 = 0;
  65.  
  66.       for(int var2 = this.grabbed.size(); var1 < var2; ++var1) {
  67.          Component var3 = (Component)this.grabbed.elementAt(var1);
  68.          if (var3 instanceof Window) {
  69.             ((Window)var3).removeWindowListener(this);
  70.             ((Window)var3).removeComponentListener(this);
  71.          } else {
  72.             var3.removeMouseListener(this);
  73.             var3.removeMouseMotionListener(this);
  74.          }
  75.       }
  76.  
  77.       this.grabbed = new Vector();
  78.    }
  79.  
  80.    public void mousePressed(MouseEvent var1) {
  81.       Component var2 = (Component)((EventObject)var1).getSource();
  82.       MenuSelectionManager var3 = MenuSelectionManager.defaultManager();
  83.       if (!var3.isComponentPartOfCurrentMenu(this.popupMenu) || !var3.isComponentPartOfCurrentMenu(var2)) {
  84.          this.cancelPopupMenu();
  85.       }
  86.    }
  87.  
  88.    public void mouseReleased(MouseEvent var1) {
  89.       MenuSelectionManager.defaultManager().processMouseEvent(var1);
  90.    }
  91.  
  92.    public void mouseEntered(MouseEvent var1) {
  93.       MenuSelectionManager.defaultManager().processMouseEvent(var1);
  94.    }
  95.  
  96.    public void mouseExited(MouseEvent var1) {
  97.       MenuSelectionManager.defaultManager().processMouseEvent(var1);
  98.    }
  99.  
  100.    public void mouseMoved(MouseEvent var1) {
  101.       MenuSelectionManager.defaultManager().processMouseEvent(var1);
  102.    }
  103.  
  104.    public void mouseDragged(MouseEvent var1) {
  105.       MenuSelectionManager.defaultManager().processMouseEvent(var1);
  106.    }
  107.  
  108.    public void mouseClicked(MouseEvent var1) {
  109.    }
  110.  
  111.    public void componentResized(ComponentEvent var1) {
  112.       this.cancelPopupMenu();
  113.    }
  114.  
  115.    public void componentMoved(ComponentEvent var1) {
  116.       this.cancelPopupMenu();
  117.    }
  118.  
  119.    public void componentShown(ComponentEvent var1) {
  120.       this.cancelPopupMenu();
  121.    }
  122.  
  123.    public void componentHidden(ComponentEvent var1) {
  124.       this.cancelPopupMenu();
  125.    }
  126.  
  127.    public void windowOpened(WindowEvent var1) {
  128.    }
  129.  
  130.    public void windowClosing(WindowEvent var1) {
  131.       this.cancelPopupMenu();
  132.    }
  133.  
  134.    public void windowClosed(WindowEvent var1) {
  135.       this.cancelPopupMenu();
  136.    }
  137.  
  138.    public void windowIconified(WindowEvent var1) {
  139.       this.cancelPopupMenu();
  140.    }
  141.  
  142.    public void windowDeiconified(WindowEvent var1) {
  143.    }
  144.  
  145.    public void windowActivated(WindowEvent var1) {
  146.    }
  147.  
  148.    public void windowDeactivated(WindowEvent var1) {
  149.    }
  150. }
  151.