home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2002 March / PCWMAR02.iso / software / windowsxp / ftgateoffice / ftgateoffice.exe / Main / webhelp.jar / hhapplet / PopupMenu.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-11-07  |  2.8 KB  |  95 lines

  1. package hhapplet;
  2.  
  3. import java.applet.Applet;
  4. import java.awt.Button;
  5. import java.awt.Component;
  6. import java.awt.Container;
  7. import java.awt.Dimension;
  8. import java.awt.Event;
  9. import java.awt.Frame;
  10. import java.awt.GridLayout;
  11. import java.awt.Point;
  12. import java.awt.Rectangle;
  13. import java.awt.Toolkit;
  14. import java.awt.Window;
  15. import java.net.MalformedURLException;
  16. import java.net.URL;
  17. import java.util.Vector;
  18.  
  19. public class PopupMenu extends Window {
  20.    private Applet m_applet;
  21.    private Vector m_vEntries;
  22.    private boolean m_bIsIE3 = false;
  23.    private Point m_pntPosition;
  24.  
  25.    public PopupMenu(Applet var1, Vector var2) {
  26.       super((Frame)null);
  27.       this.m_applet = var1;
  28.       this.m_vEntries = var2;
  29.       ((Container)this).setLayout(new GridLayout(var2.size(), 1));
  30.  
  31.       for(int var3 = 0; var3 < var2.size(); ++var3) {
  32.          ((Container)this).add(new Button(((IndexSecondaryEntry)this.m_vEntries.elementAt(var3)).name));
  33.       }
  34.  
  35.       ((Window)this).pack();
  36.       Rectangle var7 = ((Component)this).bounds();
  37.       if (var7.width < 150) {
  38.          var7.width = 150;
  39.          ((Component)this).resize(var7.width, var7.height);
  40.       }
  41.  
  42.       Dimension var4 = Toolkit.getDefaultToolkit().getScreenSize();
  43.       int var5 = var4.width / 2 - var7.width / 2;
  44.       int var6 = var4.height / 2 - var7.height / 2;
  45.       this.m_pntPosition = new Point(var5, var6);
  46.       ((Component)this).move(var5, var6);
  47.    }
  48.  
  49.    public void show() {
  50.       if (this.m_bIsIE3) {
  51.          Dimension var1 = ((Component)this).size();
  52.          ((Component)this).reshape(this.m_pntPosition.x, this.m_pntPosition.y, var1.width, var1.height);
  53.          super.show();
  54.          ((Component)this).reshape(this.m_pntPosition.x, this.m_pntPosition.y, var1.width, var1.height);
  55.       } else {
  56.          super.show();
  57.       }
  58.    }
  59.  
  60.    public boolean action(Event var1, Object var2) {
  61.       String var3 = var2.toString();
  62.  
  63.       for(int var4 = 0; var4 < this.m_vEntries.size(); ++var4) {
  64.          if (var3 == ((IndexSecondaryEntry)this.m_vEntries.elementAt(var4)).name) {
  65.             try {
  66.                IndexSecondaryEntry var5 = (IndexSecondaryEntry)this.m_vEntries.elementAt(var4);
  67.                String var6 = var5.frame != null ? var5.frame : "_self";
  68.                URL var7 = URLFileHandler.makeURL(this.m_applet.getDocumentBase(), var5.local, var5.url);
  69.                String var8 = var7.toString();
  70.                if (var8.indexOf("file:/\\\\") == 0) {
  71.                   var8 = "file://" + var8.substring(8);
  72.                   var7 = new URL(var8);
  73.                }
  74.  
  75.                this.m_applet.getAppletContext().showDocument(var7, var6);
  76.             } catch (MalformedURLException var9) {
  77.                ((Throwable)var9).printStackTrace();
  78.             }
  79.  
  80.             ((Window)this).dispose();
  81.          }
  82.       }
  83.  
  84.       return true;
  85.    }
  86.  
  87.    public boolean handleEvent(Event var1) {
  88.       if (var1.id == 201) {
  89.          ((Window)this).dispose();
  90.       }
  91.  
  92.       return super.handleEvent(var1);
  93.    }
  94. }
  95.