home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 1999 March / maximum-cd-1999-03.iso / Feature / Lotus / ORGANIZE / COMPNENT / LTOUIN21.ZIP / sun / activator / AppletViewer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-03-12  |  10.9 KB  |  419 lines

  1. package sun.activator;
  2.  
  3. import java.applet.Applet;
  4. import java.applet.AppletContext;
  5. import java.awt.Color;
  6. import java.awt.Component;
  7. import java.awt.Dimension;
  8. import java.awt.Font;
  9. import java.awt.FontMetrics;
  10. import java.awt.Frame;
  11. import java.awt.Graphics;
  12. import java.awt.Window;
  13. import java.io.BufferedInputStream;
  14. import java.io.File;
  15. import java.io.FileInputStream;
  16. import java.net.MalformedURLException;
  17. import java.net.URL;
  18. import java.util.Hashtable;
  19. import java.util.Properties;
  20. import sun.activator.protocol.ProxyType;
  21. import sun.activator.protocol.ftp.Handler;
  22. import sun.applet.AppletPanel;
  23. import sun.net.www.MimeTable;
  24.  
  25. public abstract class AppletViewer extends AppletPanel implements ProxyType {
  26.    public static final int NETWORK_ACCESS_NONE = 0;
  27.    public static final int NETWORK_ACCESS_HOST = 1;
  28.    public static final int NETWORK_ACCESS_UNRESTRICTED = 2;
  29.    public static final int CLASS_ACCESS_RESTRICTED = 0;
  30.    public static final int CLASS_ACCESS_UNRESTRICTED = 1;
  31.    public static final int UNSIGNED_ACCESS_NO = 0;
  32.    public static final int UNSIGNED_ACCESS_YES = 1;
  33.    private static boolean debug = true;
  34.    private static boolean initialized = false;
  35.    public static boolean javaEnabled = true;
  36.    public static String theVersion = "1.1";
  37.    private static String defaultSaveFile = "Applet.ser";
  38.    public static File theUserPropertiesFile;
  39.    public static File theAppletViewerPropsFile;
  40.    URL documentURL = null;
  41.    URL baseURL = null;
  42.    private static AppletMessageHandler amh = new AppletMessageHandler("appletpanel");
  43.    protected Hashtable atts = new Hashtable();
  44.    private ActivatorAppletContext appletContext;
  45.  
  46.    protected AppletViewer(ActivatorAppletContext var1) {
  47.       if (var1 == null) {
  48.          throw new IllegalArgumentException("AppletContext");
  49.       } else {
  50.          this.appletContext = var1;
  51.          var1.addAppletInContext(this);
  52.       }
  53.    }
  54.  
  55.    static void debug(String var0) {
  56.       if (debug) {
  57.          System.err.println("AppletViewerPanel::" + var0);
  58.       }
  59.  
  60.    }
  61.  
  62.    public Applet getApplet() {
  63.       Applet var1 = super.getApplet();
  64.       if (var1 != null) {
  65.          return var1 instanceof BeansApplet ? null : var1;
  66.       } else {
  67.          return null;
  68.       }
  69.    }
  70.  
  71.    public AppletContext getAppletContext() {
  72.       return this.appletContext;
  73.    }
  74.  
  75.    public String getCode() {
  76.       String var1 = this.getParameter("java_code");
  77.       if (var1 == null) {
  78.          var1 = this.getParameter("code");
  79.       }
  80.  
  81.       return var1;
  82.    }
  83.  
  84.    public URL getCodeBase() {
  85.       return this.baseURL;
  86.    }
  87.  
  88.    public URL getDocumentBase() {
  89.       return this.documentURL;
  90.    }
  91.  
  92.    protected String getHandledType() {
  93.       return "Java Applet";
  94.    }
  95.  
  96.    public int getHeight() {
  97.       String var1 = this.getParameter("height");
  98.       return var1 != null ? Integer.valueOf(var1) : 0;
  99.    }
  100.  
  101.    public String getJarFiles() {
  102.       String var1 = this.getParameter("java_archive");
  103.       if (var1 == null) {
  104.          var1 = this.getParameter("archive");
  105.       }
  106.  
  107.       return var1;
  108.    }
  109.  
  110.    public String getName() {
  111.       String var1 = this.getParameter("name");
  112.       if (var1 != null) {
  113.          return var1;
  114.       } else {
  115.          var1 = this.getCode();
  116.          if (var1 != null) {
  117.             int var2 = var1.lastIndexOf(".class");
  118.             if (var2 != -1) {
  119.                var1 = var1.substring(0, var2);
  120.             }
  121.          } else {
  122.             var1 = this.getSerializedObject();
  123.             if (var1 != null) {
  124.                int var4 = var1.lastIndexOf(".ser");
  125.                if (var4 != -1) {
  126.                   var1 = var1.substring(0, var4);
  127.                }
  128.             }
  129.          }
  130.  
  131.          return var1;
  132.       }
  133.    }
  134.  
  135.    public String getParameter(String var1) {
  136.       var1 = var1.toLowerCase();
  137.       if (this.atts.get(var1) != null) {
  138.          return (String)this.atts.get(var1);
  139.       } else {
  140.          String var2 = null;
  141.  
  142.          try {
  143.             var2 = this.getParameterFromHTML(var1);
  144.          } catch (Throwable var4) {
  145.             var4.printStackTrace();
  146.          }
  147.  
  148.          if (var2 != null) {
  149.             this.atts.put(var1.toLowerCase(), var2);
  150.          }
  151.  
  152.          return var2;
  153.       }
  154.    }
  155.  
  156.    protected abstract String getParameterFromHTML(String var1);
  157.  
  158.    public String getSerializedObject() {
  159.       String var1 = this.getParameter("java_object");
  160.       if (var1 == null) {
  161.          var1 = this.getParameter("object");
  162.       }
  163.  
  164.       return var1;
  165.    }
  166.  
  167.    public Object getViewedObject() {
  168.       Applet var1 = super.getApplet();
  169.       return var1 instanceof BeansApplet ? ((BeansApplet)var1).bean : var1;
  170.    }
  171.  
  172.    public String getWaitingMessage() {
  173.       return "Loading " + this.getHandledType() + " ...";
  174.    }
  175.  
  176.    public int getWidth() {
  177.       String var1 = this.getParameter("width");
  178.       return var1 != null ? Integer.valueOf(var1) : 0;
  179.    }
  180.  
  181.    public void init() {
  182.       super.init();
  183.       ((AppletPanel)this).sendEvent(1);
  184.       ((AppletPanel)this).sendEvent(2);
  185.       ((AppletPanel)this).sendEvent(3);
  186.    }
  187.  
  188.    public static void initEnvironment(int var0, String var1, String var2) {
  189.       if (!initialized) {
  190.          initialized = true;
  191.          Properties var3 = new Properties(System.getProperties());
  192.          ((Hashtable)var3).put("acl.read", "+");
  193.          ((Hashtable)var3).put("acl.read.default", "");
  194.          ((Hashtable)var3).put("acl.write", "+");
  195.          ((Hashtable)var3).put("acl.write.default", "");
  196.          ((Hashtable)var3).put("browser", "sun.activator");
  197.          ((Hashtable)var3).put("browser.version", theVersion);
  198.          ((Hashtable)var3).put("browser.vendor", "Sun Microsystems Inc.");
  199.          ((Hashtable)var3).put("http.agent", "Activator/" + theVersion);
  200.          ((Hashtable)var3).put("package.restrict.access.sun", "true");
  201.          ((Hashtable)var3).put("package.restrict.access.netscape", "true");
  202.          ((Hashtable)var3).put("package.restrict.definition.java", "true");
  203.          ((Hashtable)var3).put("package.restrict.definition.sun", "true");
  204.          ((Hashtable)var3).put("package.restrict.definition.netscape", "true");
  205.          ((Hashtable)var3).put("java.version.applet", "true");
  206.          ((Hashtable)var3).put("java.vendor.applet", "true");
  207.          ((Hashtable)var3).put("java.vendor.url.applet", "true");
  208.          ((Hashtable)var3).put("java.class.version.applet", "true");
  209.          ((Hashtable)var3).put("os.name.applet", "true");
  210.          ((Hashtable)var3).put("os.version.applet", "true");
  211.          ((Hashtable)var3).put("os.arch.applet", "true");
  212.          ((Hashtable)var3).put("file.separator.applet", "true");
  213.          ((Hashtable)var3).put("path.separator.applet", "true");
  214.          ((Hashtable)var3).put("line.separator.applet", "true");
  215.          ((Hashtable)var3).put("java.protocol.handler.pkgs", "sun.activator.protocol");
  216.  
  217.          try {
  218.             FileInputStream var4 = new FileInputStream(theAppletViewerPropsFile);
  219.             var3.load(new BufferedInputStream(var4));
  220.             var4.close();
  221.          } catch (Exception var9) {
  222.          }
  223.  
  224.          try {
  225.             FileInputStream var10 = new FileInputStream(theUserPropertiesFile);
  226.             var3.load(new BufferedInputStream(var10));
  227.             var10.close();
  228.          } catch (Exception var8) {
  229.             System.out.println("[no properties loaded, using defaults]");
  230.          }
  231.  
  232.          if ("true".equalsIgnoreCase(var3.getProperty("activator.console", "false"))) {
  233.             Frame var11 = JavaRunTime.openJavaConsole();
  234.             if (var11 != null) {
  235.                ((Window)var11).show();
  236.             }
  237.  
  238.             String var5 = System.getProperty("activator.version");
  239.             if (var5 == null) {
  240.                System.out.println("Project Java Activator");
  241.             } else {
  242.                System.out.println("Project Java Activator:  Version " + var5);
  243.             }
  244.  
  245.             System.out.println("Using JRE version " + System.getProperty("java.version"));
  246.             System.out.println("User home directory =  " + System.getProperty("user.home"));
  247.          }
  248.  
  249.          if ("false".equalsIgnoreCase(var3.getProperty("activator.proxy.usebrowsersettings", "true"))) {
  250.             System.out.println("User has overriden browser's proxy settings.");
  251.             var0 = 1;
  252.             var1 = var3.getProperty("activator.proxy.settings", "");
  253.             var2 = "";
  254.          }
  255.  
  256.          switch (var0) {
  257.             case 1:
  258.                System.out.println("Proxy Configuration: Manual Configuration");
  259.                System.out.println("         Proxy: " + var1);
  260.                System.out.println("         Proxy Override: " + var2);
  261.                break;
  262.             case 2:
  263.                System.out.println("Proxy Configuration: Automatic Proxy Configuration");
  264.                break;
  265.             default:
  266.                System.out.println("Proxy Configuration: No Proxy");
  267.                var0 = 0;
  268.          }
  269.  
  270.          System.out.println("");
  271.          ((Hashtable)var3).remove("http.proxyHost");
  272.          ((Hashtable)var3).remove("http.proxyPort");
  273.          ((Hashtable)var3).remove("ftpProxyHost");
  274.          ((Hashtable)var3).remove("ftpProxyPort");
  275.          ((Hashtable)var3).remove("ftpProxySet");
  276.          ((Hashtable)var3).remove("gopherProxyHost");
  277.          ((Hashtable)var3).remove("gopherProxyPort");
  278.          ((Hashtable)var3).remove("gopherProxySet");
  279.          if (var0 != 0) {
  280.             ActivatorProxyHandler var12 = new ActivatorProxyHandler(var0, var1, var2);
  281.  
  282.             try {
  283.                Handler.setProxyHandler(var12);
  284.                sun.activator.protocol.http.Handler.setProxyHandler(var12);
  285.                sun.activator.protocol.gopher.Handler.setProxyHandler(var12);
  286.             } catch (Throwable var7) {
  287.                sun.activator.protocol.jdk12.ftp.Handler.setProxyHandler(var12);
  288.                sun.activator.protocol.http.Handler.setProxyHandler(var12);
  289.                sun.activator.protocol.gopher.Handler.setProxyHandler(var12);
  290.                ((Hashtable)var3).put("java.protocol.handler.pkgs", "sun.activator.protocol.jdk12");
  291.             }
  292.          }
  293.  
  294.          System.setProperties(var3);
  295.          System.setSecurityManager(new ActivatorSecurityManager());
  296.          Runtime.getRuntime();
  297.          Runtime.runFinalizersOnExit(true);
  298.  
  299.          try {
  300.             MimeTable var13 = MimeTable.getDefaultTable();
  301.          } catch (Throwable var6) {
  302.             var6.printStackTrace();
  303.          }
  304.  
  305.          if ("false".equalsIgnoreCase(var3.getProperty("activator.enabled", "true"))) {
  306.             javaEnabled = false;
  307.             System.err.println("Java is not enabled");
  308.          }
  309.       }
  310.    }
  311.  
  312.    protected void initProperties() {
  313.       String var1 = this.getParameter("java_codebase");
  314.       if (var1 == null) {
  315.          var1 = this.getParameter("codebase");
  316.       }
  317.  
  318.       if (var1 != null) {
  319.          if (!var1.endsWith("/")) {
  320.             var1 = var1 + "/";
  321.          }
  322.  
  323.          try {
  324.             this.baseURL = new URL(this.documentURL, var1);
  325.          } catch (MalformedURLException var5) {
  326.          }
  327.       }
  328.  
  329.       if (this.baseURL == null) {
  330.          String var2 = this.documentURL.getFile();
  331.          int var3 = var2.lastIndexOf(47);
  332.          if (var3 > 0 && var3 < var2.length() - 1) {
  333.             try {
  334.                this.baseURL = new URL(this.documentURL, var2.substring(0, var3 + 1));
  335.             } catch (MalformedURLException var4) {
  336.             }
  337.          }
  338.       }
  339.  
  340.       if (this.baseURL == null) {
  341.          this.baseURL = this.documentURL;
  342.       }
  343.  
  344.    }
  345.  
  346.    public static void loadPropertiesFiles() {
  347.       String var0 = File.separator;
  348.       theUserPropertiesFile = new File(System.getProperty("user.home") + var0 + ".java" + var0 + "properties");
  349.       (new File(theUserPropertiesFile.getParent())).mkdirs();
  350.       theAppletViewerPropsFile = new File(System.getProperty("java.home") + var0 + "lib" + var0 + "appletviewer.properties");
  351.    }
  352.  
  353.    public void onClose(int var1) {
  354.       this.appletContext.removeAppletFromContext(this);
  355.       if (super.status == 1) {
  356.          super.status = 7;
  357.          ((AppletPanel)this).stopLoading();
  358.          ((AppletPanel)this).getAppletHandlerThread().interrupt();
  359.       } else {
  360.          ((AppletPanel)this).sendEvent(4);
  361.          ((AppletPanel)this).sendEvent(5);
  362.          ((AppletPanel)this).sendEvent(0);
  363.          ((AppletPanel)this).sendEvent(6);
  364.  
  365.          try {
  366.             if (var1 >= 0) {
  367.                ((AppletPanel)this).getAppletHandlerThread().join((long)var1);
  368.             }
  369.          } catch (InterruptedException var2) {
  370.          }
  371.  
  372.       }
  373.    }
  374.  
  375.    public void paint(Graphics var1) {
  376.       if (this.getViewedObject() == null && var1 != null) {
  377.          ((Component)this).setBackground(Color.white);
  378.          var1.setColor(Color.black);
  379.          Dimension var2 = ((Component)this).getSize();
  380.          Font var3 = var1.getFont();
  381.          FontMetrics var4 = null;
  382.          if (var3 != null) {
  383.             var4 = var1.getFontMetrics(var3);
  384.          }
  385.  
  386.          String var5 = this.getWaitingMessage();
  387.          if (var2 != null && var4 != null) {
  388.             var1.drawString(var5, (var2.width - var4.stringWidth(var5)) / 2, (var2.height + var4.getAscent()) / 2);
  389.          }
  390.       }
  391.  
  392.    }
  393.  
  394.    public void setDoInit(boolean var1) {
  395.       super.doInit = var1;
  396.    }
  397.  
  398.    public void setDocumentBase(URL var1) {
  399.       this.documentURL = var1;
  400.    }
  401.  
  402.    public void setParameter(String var1, Object var2) {
  403.       var1 = var1.toLowerCase();
  404.       this.atts.put(var1, var2.toString());
  405.    }
  406.  
  407.    public void setStatus(int var1) {
  408.       super.status = var1;
  409.    }
  410.  
  411.    public void showActivatorAppletLog(String var1) {
  412.       ((AppletPanel)this).showAppletLog(var1);
  413.    }
  414.  
  415.    public void showActivatorAppletStatus(String var1) {
  416.       ((AppletPanel)this).showAppletStatus(var1);
  417.    }
  418. }
  419.