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

  1. package com.sun.java.swing.plaf.basic;
  2.  
  3. import com.sun.java.swing.JComponent;
  4. import com.sun.java.swing.JMenu;
  5. import com.sun.java.swing.JMenuBar;
  6. import com.sun.java.swing.JPopupMenu;
  7. import java.awt.Component;
  8. import java.awt.Container;
  9. import java.awt.Point;
  10. import java.awt.Rectangle;
  11.  
  12. public class BasicMenuUtilities {
  13.    public static Component getMenuComponentAt(JMenuBar var0, int var1, int var2) {
  14.       int var3 = ((Container)var0).getComponentCount();
  15.       Component[] var4 = ((Container)var0).getComponents();
  16.  
  17.       for(int var5 = 0; var5 < var3; ++var5) {
  18.          Component var6 = var4[var5];
  19.          Point var7 = getTranslatedPoint((JMenuBar)var0, var1, var2, var0, var6);
  20.          Component var8;
  21.          if (var6 instanceof JMenu) {
  22.             var8 = getMenuComponentAt((JMenu)var6, var7.x, var7.y);
  23.          } else {
  24.             var8 = var6.getComponentAt(var7.x, var7.y);
  25.          }
  26.  
  27.          if (var8 != null && var8.isShowing()) {
  28.             return var8;
  29.          }
  30.       }
  31.  
  32.       return null;
  33.    }
  34.  
  35.    public static Component getMenuComponentAt(JMenu var0, int var1, int var2) {
  36.       if (((JComponent)var0).contains(var1, var2)) {
  37.          return var0;
  38.       } else if (var0.isSelected()) {
  39.          Point var3 = translateToPopupMenu(var0, var1, var2);
  40.          return getMenuComponentAt(var0.getPopupMenu(), var3.x, var3.y);
  41.       } else {
  42.          return null;
  43.       }
  44.    }
  45.  
  46.    public static Component getMenuComponentAt(JPopupMenu var0, int var1, int var2) {
  47.       int var3 = ((Container)var0).getComponentCount();
  48.       Component[] var4 = ((Container)var0).getComponents();
  49.  
  50.       for(int var5 = 0; var5 < var3; ++var5) {
  51.          Component var6 = var4[var5];
  52.          Point var7 = getTranslatedPoint((JPopupMenu)var0, var1, var2, var0, var6);
  53.          Component var8;
  54.          if (var6 instanceof JMenu) {
  55.             var8 = getMenuComponentAt((JMenu)var6, var7.x, var7.y);
  56.          } else {
  57.             var8 = var6.getComponentAt(var7.x, var7.y);
  58.          }
  59.  
  60.          if (var8 != null && var8.isShowing()) {
  61.             return var8;
  62.          }
  63.       }
  64.  
  65.       if (((JComponent)var0).contains(var1, var2) && ((Component)var0).isShowing()) {
  66.          return var0;
  67.       } else {
  68.          return null;
  69.       }
  70.    }
  71.  
  72.    public static Point getTranslatedPoint(JMenuBar var0, int var1, int var2, Component var3, Component var4) {
  73.       int var6 = var1;
  74.       int var7 = var2;
  75.  
  76.       Object var5;
  77.       for(var5 = var4; var5 != null && var5 != var3; var5 = ((Component)var5).getParent()) {
  78.          Rectangle var8 = ((Component)var5).getBounds();
  79.          var6 -= var8.x;
  80.          var7 -= var8.y;
  81.       }
  82.  
  83.       if (var5 != null) {
  84.          return new Point(var6, var7);
  85.       } else {
  86.          int var13 = ((Container)var0).getComponentCount();
  87.          Component[] var9 = ((Container)var0).getComponents();
  88.  
  89.          for(int var10 = 0; var10 < var13; ++var10) {
  90.             Component var11 = var9[var10];
  91.             if (var11 instanceof JMenu) {
  92.                Point var12 = getTranslatedPoint((JMenu)var11, var1, var2, var11, var4);
  93.                if (var12 != null) {
  94.                   return var12;
  95.                }
  96.             }
  97.          }
  98.  
  99.          return null;
  100.       }
  101.    }
  102.  
  103.    public static Point getTranslatedPoint(JPopupMenu var0, int var1, int var2, Component var3, Component var4) {
  104.       int var6 = var1;
  105.       int var7 = var2;
  106.  
  107.       Object var5;
  108.       for(var5 = var4; var5 != null && var5 != var3; var5 = ((Component)var5).getParent()) {
  109.          Rectangle var8 = ((Component)var5).getBounds();
  110.          var6 -= var8.x;
  111.          var7 -= var8.y;
  112.       }
  113.  
  114.       if (var5 != null) {
  115.          return new Point(var6, var7);
  116.       } else {
  117.          int var13 = ((Container)var0).getComponentCount();
  118.          Component[] var9 = ((Container)var0).getComponents();
  119.  
  120.          for(int var10 = 0; var10 < var13; ++var10) {
  121.             Component var11 = var9[var10];
  122.             if (var11 instanceof JMenu) {
  123.                Point var12 = getTranslatedPoint((JMenu)var11, var1, var2, var11, var4);
  124.                if (var12 != null) {
  125.                   return var12;
  126.                }
  127.             }
  128.          }
  129.  
  130.          return null;
  131.       }
  132.    }
  133.  
  134.    public static Point getTranslatedPoint(JMenu var0, int var1, int var2, Component var3, Component var4) {
  135.       if (var4 == var0) {
  136.          return new Point(var1, var2);
  137.       } else {
  138.          if (var0.isSelected()) {
  139.             Point var5 = translateToPopupMenu(var0, var1, var2);
  140.             int var6 = var0.getMenuComponentCount();
  141.             Component[] var7 = var0.getMenuComponents();
  142.  
  143.             for(int var8 = 0; var8 < var6; ++var8) {
  144.                Component var9 = var7[var8];
  145.                JPopupMenu var10 = var0.getPopupMenu();
  146.                Point var11 = getTranslatedPoint((JPopupMenu)var10, var5.x, var5.y, var10, var9);
  147.                if (var9 == var4) {
  148.                   return var11;
  149.                }
  150.  
  151.                if (var9 instanceof JMenu) {
  152.                   Point var12 = getTranslatedPoint((JMenu)var9, var11.x, var11.y, var9, var4);
  153.                   if (var12 != null) {
  154.                      return var12;
  155.                   }
  156.                }
  157.             }
  158.          }
  159.  
  160.          return null;
  161.       }
  162.    }
  163.  
  164.    private static Point translateToPopupMenu(JMenu var0, Point var1) {
  165.       return translateToPopupMenu(var0, var1.x, var1.y);
  166.    }
  167.  
  168.    private static Point translateToPopupMenu(JMenu var0, int var1, int var2) {
  169.       int var3;
  170.       int var4;
  171.       if (((Component)var0).getParent() instanceof JPopupMenu) {
  172.          var3 = var1 - ((Component)var0).getSize().width;
  173.          var4 = var2;
  174.       } else {
  175.          var3 = var1;
  176.          var4 = var2 - ((Component)var0).getSize().height;
  177.       }
  178.  
  179.       return new Point(var3, var4);
  180.    }
  181. }
  182.