home *** CD-ROM | disk | FTP | other *** search
/ PC for Alla 2003 April / PFA0304.iso / fullversioner / ImageZoom / InstData / com / WebInstallerApplet.class (.txt)
Encoding:
Java Class File  |  2002-07-17  |  21.7 KB  |  758 lines

  1. package com.zerog.ia.download;
  2.  
  3. import com.apple.mrj.MRJFileUtils;
  4. import com.apple.mrj.MRJOSType;
  5. import com.zerog.ia.download.dialogs.ProgressDialog;
  6. import com.zerog.ia.download.downloaders.BrowserDownloader;
  7. import com.zerog.ia.download.downloaders.FileDownloader;
  8. import com.zerog.ia.download.outputListeners.ContextListener;
  9. import com.zerog.ia.download.outputListeners.GUIContextListener;
  10. import com.zerog.ia.download.outputListeners.StdErrContextListener;
  11. import com.zerog.ia.download.shared.DownloadContext;
  12. import com.zerog.ia.download.shared.Platform;
  13. import com.zerog.ia.download.shared.PlatformList;
  14. import com.zerog.ia.download.utility.AppletResourceBundle;
  15. import com.zerog.ia.download.utility.DiskSpaceCheckForDownload;
  16. import com.zerog.ia.download.utility.Gestalt;
  17. import com.zerog.ia.download.utility.GridBagUtilImpl;
  18. import com.zerog.ia.download.utility.Util;
  19. import com.zerog.ia.download.utility.nativelib.unix.Environment;
  20. import java.applet.Applet;
  21. import java.awt.Button;
  22. import java.awt.Checkbox;
  23. import java.awt.Color;
  24. import java.awt.Component;
  25. import java.awt.Container;
  26. import java.awt.Dimension;
  27. import java.awt.Event;
  28. import java.awt.FlowLayout;
  29. import java.awt.Font;
  30. import java.awt.Frame;
  31. import java.awt.Graphics;
  32. import java.awt.GridBagLayout;
  33. import java.awt.GridLayout;
  34. import java.awt.Image;
  35. import java.awt.Insets;
  36. import java.awt.Label;
  37. import java.awt.Panel;
  38. import java.io.File;
  39. import java.io.FileNotFoundException;
  40. import java.net.MalformedURLException;
  41. import java.net.URL;
  42. import java.util.Enumeration;
  43. import java.util.Locale;
  44. import java.util.Vector;
  45. import netscape.security.PrivilegeManager;
  46.  
  47. public class WebInstallerApplet extends Applet implements DownloadContext {
  48.    public static AppletResourceBundle resourceBundle;
  49.    public PlatformList platforms;
  50.    private boolean wantingToDownloadInstallerWithVM;
  51.    private boolean allowingEmailToBeSent;
  52.    private String productName;
  53.    private Frame parentFrame;
  54.    private Vector contextListenerList = new Vector(3, 1);
  55.    private FileDownloader downloadProcess;
  56.    private Button btnAction;
  57.    private Checkbox chkIncludeVM;
  58.    private Image creditImage;
  59.    private Panel pnlNormalGui;
  60.    private Panel pnlExceptionGui;
  61.    private Panel pnlNoInstallerGui;
  62.    private String troubleEmailAddress;
  63.    private Vector filesToBeDeleted = new Vector(1, 1);
  64.    private boolean immediateInstall = false;
  65.    private boolean optionToDownloadEitherInstaller = true;
  66.    private int timeoutLength = 30000;
  67.    private Label lblRecommended = null;
  68.    private Font currentFont = null;
  69.    private Font boldFont = null;
  70.    private String buttonTextDownload = null;
  71.    private String buttonTextInstall = null;
  72.    private String vmCheckboxText = null;
  73.    public static final String DOWNLOAD_BUTTON = ".Button.Download";
  74.    public static final String INSTALL_BUTTON = ".Button.Install";
  75.    public static final String OK_BUTTON = ".Button.OK";
  76.    public static final String CANCEL_BUTTON = ".Button.Cancel";
  77.    public static final String VM_CHECKBOX = ".CheckBox.VM";
  78.    public static final String RECOMMENDED_INSTALLER = ".RecommendedInstaller";
  79.    public static final String NONE_AVAILABLE = ".NoInstallerAvailable.Label";
  80.    public static final String SELECT_FROM_LIST = ".SelectFromList.Label";
  81.    public static final String INSTRUCTIONS = ".Instructions.Label";
  82.    public static final String ERROR_DETAIL_TITLE = ".Error.Detail.Title";
  83.    public static final String OG_EXCEPTION_INSTRUCTIONS = ".Exception.InstructionsLabel";
  84.    public static final String FAILURE_UNKNOWN = ".Failure.Unknown";
  85.    private final String otherPlatforms = "Other Platforms";
  86.    // $FF: synthetic field
  87.    static Class class$com$zerog$ia$download$WebInstallerApplet;
  88.    // $FF: synthetic field
  89.    static Class class$com$zerog$ia$download$dialogs$EmailProgressDialog;
  90.    // $FF: synthetic field
  91.    static Class class$com$zerog$ia$download$dialogs$ErrorDetailDialog;
  92.    // $FF: synthetic field
  93.    static Class class$com$zerog$ia$download$dialogs$ErrorDialog;
  94.    // $FF: synthetic field
  95.    static Class class$com$zerog$ia$download$dialogs$ProgressDialog;
  96.    // $FF: synthetic field
  97.    static Class class$com$zerog$ia$download$dialogs$ProgressBar;
  98.  
  99.    public void init() {
  100.       try {
  101.          super.init();
  102.          System.err.println("Platform :  " + Gestalt.getPlatform());
  103.          System.err.println("VM Vendor:  " + Gestalt.getVMVendor());
  104.          System.err.println("VM Version: " + Gestalt.getVMVersion());
  105.          System.err.println("IsSupportedVM:  " + Gestalt.isSupportedVM());
  106.          System.err.println("-----------------------");
  107.          this.addContextListener(new GUIContextListener(this));
  108.          this.addContextListener(new StdErrContextListener(this));
  109.          this.notifySetFriendlyErrorMessage(AppletResourceBundle.getLocalizedString(this, ".Failure.Unknown"));
  110.          this.notifyOutputDiagnosticMessage("Java Vendor:  " + System.getProperty("java.vendor"));
  111.          this.notifyOutputDiagnosticMessage("URL:  " + System.getProperty("java.vendor.url"));
  112.          this.notifyOutputDiagnosticMessage("Java Version:  " + System.getProperty("java.version"));
  113.          this.notifyOutputDiagnosticMessage("Java Class Version:  " + System.getProperty("java.class.version"));
  114.          this.notifyOutputDiagnosticMessage("OS Name:  " + System.getProperty("os.name"));
  115.          this.notifyOutputDiagnosticMessage("OS Architecture:  " + System.getProperty("os.arch"));
  116.          this.notifyOutputDiagnosticMessage("OS Version:  " + System.getProperty("os.version"));
  117.          this.notifyOutputDiagnosticMessage("---------------------------------");
  118.          if (!Gestalt.isSupportedVM()) {
  119.             this.createAppletGui();
  120.             this.handleError();
  121.             ((Component)this).repaint();
  122.             return;
  123.          }
  124.  
  125.          this.loadPlatformData();
  126.          this.platforms.computeRunningOnPlatform();
  127.          if (this.platforms.getRunningOnPlatform() == null) {
  128.             this.createAppletGui();
  129.             this.handleNoInstallerError();
  130.             ((Component)this).repaint();
  131.             return;
  132.          }
  133.  
  134.          this.optionToDownloadEitherInstaller = true;
  135.          this.setWantingToDownloadInstallerWithVM(true);
  136.          if (this.platforms.getRunningOnPlatform().installerNameVM == null) {
  137.             this.setWantingToDownloadInstallerWithVM(false);
  138.             this.optionToDownloadEitherInstaller = false;
  139.          } else if (this.platforms.getRunningOnPlatform().installerNameNoVM == null) {
  140.             this.setWantingToDownloadInstallerWithVM(true);
  141.             this.optionToDownloadEitherInstaller = false;
  142.          }
  143.  
  144.          if (this.troubleEmailAddress != null) {
  145.             if (this.troubleEmailAddress.indexOf(64) >= 0) {
  146.                this.setAllowingEmailToBeSent(true);
  147.             } else {
  148.                this.setAllowingEmailToBeSent(false);
  149.             }
  150.          } else {
  151.             this.setAllowingEmailToBeSent(false);
  152.          }
  153.  
  154.          if (this.immediateInstall) {
  155.             this.notifyOutputDiagnosticMessage("init:  startDownloadProcess called from init");
  156.             this.startDownloadProcess();
  157.          } else {
  158.             this.loadCustomLocale();
  159.             this.createAppletGui();
  160.             this.addNormalAppletGui();
  161.          }
  162.       } catch (Throwable var4) {
  163.          this.notifyErrorOccured(var4);
  164.  
  165.          try {
  166.             this.createAppletGui();
  167.          } catch (Exception var3) {
  168.          }
  169.  
  170.          this.handleError();
  171.          ((Component)this).repaint();
  172.       }
  173.  
  174.    }
  175.  
  176.    void createAppletGui() throws Exception {
  177.       ((Component)this).setBackground(Color.white);
  178.       this.pnlExceptionGui = new Panel();
  179.       this.pnlExceptionGui.setLayout(new FlowLayout());
  180.       String var1 = AppletResourceBundle.getLocalizedString(this, ".SelectFromList.Label");
  181.       this.pnlExceptionGui.add(new Label(var1, 1));
  182.       this.pnlNormalGui = new Panel();
  183.       this.pnlNoInstallerGui = new Panel();
  184.       this.pnlNoInstallerGui.setLayout(new GridLayout(2, 1));
  185.       var1 = AppletResourceBundle.getLocalizedString(this, ".NoInstallerAvailable.Label");
  186.       this.pnlNoInstallerGui.add(new Label(var1, 1));
  187.       var1 = AppletResourceBundle.getLocalizedString(this, ".Instructions.Label");
  188.       this.pnlNoInstallerGui.add(new Label(var1, 1));
  189.       GridBagLayout var2;
  190.       this.pnlNormalGui.setLayout(var2 = new GridBagLayout());
  191.       GridBagUtilImpl.setLayoutManager(var2);
  192.       var1 = AppletResourceBundle.getLocalizedString(this, ".RecommendedInstaller");
  193.       this.lblRecommended = new Label(var1, 1);
  194.       this.currentFont = ((Component)this).getFont();
  195.       this.boldFont = new Font(this.currentFont.getName(), 1, this.currentFont.getSize() + 2);
  196.       if (!Gestalt.getVMVendor().equals(Gestalt.APPLE_VM)) {
  197.          this.lblRecommended.setFont(this.boldFont);
  198.       }
  199.  
  200.       GridBagUtilImpl.add(this.pnlNormalGui, this.lblRecommended, 0, 0, 3, 1, 2, 10, (double)1.0F, (double)0.0F);
  201.       GridBagUtilImpl.add(this.pnlNormalGui, this.btnAction = new Button(), 0, 1, 2, 1, 2, 11, (double)2.0F, (double)1.0F);
  202.       var1 = AppletResourceBundle.getLocalizedString(this, ".CheckBox.VM");
  203.       this.chkIncludeVM = new Checkbox(var1);
  204.       if (this.optionToDownloadEitherInstaller) {
  205.          if (Gestalt.isThisPlatformUnix()) {
  206.             GridBagUtilImpl.add(this.pnlNormalGui, this.chkIncludeVM, 2, 1, 1, 1, 2, new Insets(0, 2, 0, 0), 11, (double)1.0F, (double)1.0F);
  207.          } else {
  208.             GridBagUtilImpl.add(this.pnlNormalGui, this.chkIncludeVM, 2, 1, 1, 1, 2, new Insets(0, 5, 0, 0), 11, (double)1.0F, (double)1.0F);
  209.          }
  210.       }
  211.  
  212.    }
  213.  
  214.    public void addNormalAppletGui() {
  215.       ((Container)this).add(this.pnlNormalGui);
  216.       this.chkIncludeVM.setState(this.isWantingToDownloadInstallerWithVM());
  217.       Font var1 = new Font("Dialog", 0, 12);
  218.       this.btnAction.setFont(var1);
  219.       if (Gestalt.isThisPlatformUnix()) {
  220.          this.lblRecommended.setFont(new Font(this.currentFont.getName(), 1, this.currentFont.getSize()));
  221.          this.chkIncludeVM.setFont(new Font("Dialog", 0, 9));
  222.          this.btnAction.setFont(new Font("Dialog", 0, 9));
  223.       }
  224.  
  225.       try {
  226.          this.creditImage = ((Applet)this).getImage(new URL(this.getCodeBase() + "/images/credit.gif"));
  227.       } catch (Throwable var3) {
  228.          this.notifyOutputDiagnosticMessage("init: Credits gif couldn't be loaded.");
  229.          this.creditImage = null;
  230.       }
  231.  
  232.       this.updateActionButtonText();
  233.       ((Component)this).repaint();
  234.    }
  235.  
  236.    void handleError() {
  237.       try {
  238.          ((Container)this).remove(this.pnlNormalGui);
  239.       } catch (Throwable var3) {
  240.          System.err.println("WebInstallerApplet:  Unable to remove pnlNormalGui.");
  241.       }
  242.  
  243.       try {
  244.          ((Container)this).add(this.pnlExceptionGui);
  245.       } catch (Throwable var2) {
  246.          System.err.println("WebInstallerApplet:  Unable to add pnlExceptionGui.");
  247.          var2.printStackTrace();
  248.       }
  249.  
  250.       ((Component)this).repaint();
  251.    }
  252.  
  253.    void handleNoInstallerError() {
  254.       try {
  255.          ((Container)this).remove(this.pnlNormalGui);
  256.       } catch (Throwable var3) {
  257.          System.err.println("WebInstallerApplet:  Unable to remove pnlNormalGui.");
  258.       }
  259.  
  260.       try {
  261.          ((Container)this).add(this.pnlNoInstallerGui);
  262.       } catch (Throwable var2) {
  263.          System.err.println("WebInstallerApplet:  Unable to add pnlNoInstallerGui.");
  264.          var2.printStackTrace();
  265.       }
  266.  
  267.       ((Component)this).repaint();
  268.    }
  269.  
  270.    public void start() {
  271.       try {
  272.          super.start();
  273.       } catch (Throwable var2) {
  274.          this.notifyErrorOccured(var2);
  275.       }
  276.  
  277.    }
  278.  
  279.    public void addNotify() {
  280.       try {
  281.          super.addNotify();
  282.  
  283.          for(Object var1 = this; var1 != null; var1 = ((Component)var1).getParent()) {
  284.             System.err.println(var1);
  285.             if (var1 instanceof Frame) {
  286.                this.parentFrame = (Frame)var1;
  287.             }
  288.          }
  289.       } catch (Throwable var2) {
  290.          this.notifyErrorOccured(var2);
  291.       }
  292.  
  293.    }
  294.  
  295.    public synchronized boolean isWantingToDownloadInstallerWithVM() {
  296.       return this.wantingToDownloadInstallerWithVM;
  297.    }
  298.  
  299.    public synchronized void setWantingToDownloadInstallerWithVM(boolean var1) {
  300.       this.wantingToDownloadInstallerWithVM = var1;
  301.       this.updateActionButtonText();
  302.    }
  303.  
  304.    public String getTroubleEmailAddress() {
  305.       return this.troubleEmailAddress;
  306.    }
  307.  
  308.    public PlatformList getPlatforms() {
  309.       return this.platforms;
  310.    }
  311.  
  312.    public void loadPlatformData() throws Exception {
  313.       this.productName = ((Applet)this).getParameter("ProductName");
  314.       String var1 = ((Applet)this).getParameter("ImmediateInstall");
  315.       String var2 = ((Applet)this).getParameter("Timeout");
  316.       if (var2 != null && !var2.equals("")) {
  317.          this.timeoutLength = new Integer(((Applet)this).getParameter("Timeout"));
  318.          this.notifyOutputDiagnosticMessage("Timeout set to :" + this.timeoutLength);
  319.       } else {
  320.          this.timeoutLength = 30000;
  321.          this.notifyOutputDiagnosticMessage("Timeout set to :" + this.timeoutLength);
  322.       }
  323.  
  324.       try {
  325.          this.immediateInstall = var1.trim().equalsIgnoreCase("yes") || var1.trim().equalsIgnoreCase("true");
  326.       } catch (Exception var7) {
  327.          this.immediateInstall = false;
  328.       }
  329.  
  330.       this.notifyOutputDiagnosticMessage("immediateInstall:  " + this.immediateInstall);
  331.       this.troubleEmailAddress = ((Applet)this).getParameter("SendTroubleEmailTo");
  332.       this.notifyOutputDiagnosticMessage("Trouble e-mail address:  " + this.troubleEmailAddress);
  333.       this.platforms = new PlatformList();
  334.       byte var3 = 20;
  335.  
  336.       for(int var4 = 1; var4 <= var3; ++var4) {
  337.          try {
  338.             Platform var5 = new Platform(this, var4);
  339.             this.platforms.add(var5);
  340.             this.notifyOutputDiagnosticMessage("Reading applet parameters: Reading in data for platform #" + var4 + "; platform name = " + var5.platformName);
  341.          } catch (Throwable var6) {
  342.             this.notifyOutputDiagnosticMessage("Reading applet parameters: Platform #" + var4 + " not found.");
  343.          }
  344.       }
  345.  
  346.       Platform var8 = this.platforms.getRunningOnPlatform();
  347.       if (var8 == null) {
  348.       }
  349.  
  350.    }
  351.  
  352.    public boolean handleEvent(Event var1) {
  353.       try {
  354.          if (var1.target == this.btnAction && var1.id == 1001) {
  355.             this.pnlNormalGui.disable();
  356.             this.notifyOutputDiagnosticMessage("handleEvent:  startDownloadProcess called from handleEvent");
  357.             this.startDownloadProcess();
  358.          } else if (var1.target == this.chkIncludeVM && var1.id == 1001) {
  359.             this.setWantingToDownloadInstallerWithVM(this.chkIncludeVM.getState());
  360.          } else {
  361.             if (var1.id == 505) {
  362.                ((Applet)this).getAppletContext().showStatus("");
  363.                return super.handleEvent(var1);
  364.             }
  365.  
  366.             if (this.creditImage == null) {
  367.                ((Applet)this).getAppletContext().showStatus("");
  368.                return super.handleEvent(var1);
  369.             }
  370.  
  371.             if (var1.id == 501 && var1.y >= ((Component)this).size().height - this.creditImage.getHeight(this)) {
  372.                try {
  373.                   ((Applet)this).getAppletContext().showDocument(new URL("http://www.ZeroG.com"));
  374.                } catch (Throwable var3) {
  375.                   this.notifyOutputDiagnosticMessage("HandleEvent: User clicked on credit GIF; applet couldn't open www.ZeroG.com.");
  376.                }
  377.             } else if (var1.y >= ((Component)this).size().height - this.creditImage.getHeight(this)) {
  378.                ((Applet)this).getAppletContext().showStatus("http://www.ZeroG.com");
  379.                return super.handleEvent(var1);
  380.             }
  381.          }
  382.  
  383.          return true;
  384.       } catch (Throwable var4) {
  385.          this.notifyErrorOccured(var4);
  386.          return false;
  387.       }
  388.    }
  389.  
  390.    void updateActionButtonText() {
  391.       if (this.btnAction != null) {
  392.          String var1 = this.platforms.getRunningOnPlatform().platformName;
  393.          boolean var2 = true;
  394.          if (this.isWantingToDownloadInstallerWithVM()) {
  395.             var2 = !this.platforms.getRunningOnPlatform().isNotRunnableVM;
  396.          } else {
  397.             var2 = !this.platforms.getRunningOnPlatform().isNotRunnableNoVM;
  398.             if (Gestalt.isThisPlatformUnix() && !Gestalt.checkPathForVM()) {
  399.                var2 = false;
  400.             }
  401.          }
  402.  
  403.          if (var1.equals("Other Platforms")) {
  404.             this.wantingToDownloadInstallerWithVM = false;
  405.             var2 = false;
  406.          }
  407.  
  408.          this.notifyOutputDiagnosticMessage("");
  409.          this.notifyOutputDiagnosticMessage("Does Installer with VM exist: " + (this.platforms.getRunningOnPlatform().installerNameVM != null));
  410.          this.notifyOutputDiagnosticMessage("Does Installer no VM exist:   " + (this.platforms.getRunningOnPlatform().installerNameNoVM != null));
  411.          this.notifyOutputDiagnosticMessage("Is this Platform Unix:        " + Gestalt.isThisPlatformUnix());
  412.          if (Gestalt.isThisPlatformUnix()) {
  413.             this.notifyOutputDiagnosticMessage("Is Java on the PATH:          " + Gestalt.checkPathForVM());
  414.  
  415.             try {
  416.                this.notifyOutputDiagnosticMessage("** PATH = " + Environment.getInstance().getValue("PATH"));
  417.             } catch (Exception var4) {
  418.                this.notifyOutputDiagnosticMessage("IE: I'm being checked to see if I am unix ");
  419.                ((Throwable)var4).printStackTrace();
  420.             }
  421.          }
  422.  
  423.          this.notifyOutputDiagnosticMessage("");
  424.          if (Gestalt.isAbleToExecuteFiles() && var2) {
  425.             this.notifyOutputDiagnosticMessage("able to execute and runnable " + var2);
  426.             String var6 = AppletResourceBundle.getLocalizedString(this, ".Button.Install") + " " + var1;
  427.             this.btnAction.setLabel(var6 + "...     ");
  428.          } else {
  429.             if (!var2) {
  430.                this.notifyOutputDiagnosticMessage("Installer is not runnable by default, due to platform");
  431.             }
  432.  
  433.             if (!Gestalt.isAbleToExecuteFiles()) {
  434.                this.notifyOutputDiagnosticMessage("Is unable to execute files because of permissions");
  435.             }
  436.  
  437.             String var3 = AppletResourceBundle.getLocalizedString(this, ".Button.Download") + " " + var1;
  438.             this.btnAction.setLabel(var3 + "...     ");
  439.          }
  440.  
  441.       }
  442.    }
  443.  
  444.    public void paint(Graphics var1) {
  445.       super.paint(var1);
  446.  
  447.       try {
  448.          if (this.creditImage != null) {
  449.             Dimension var2 = ((Component)this).size();
  450.             var1.drawImage(this.creditImage, var2.width - this.creditImage.getWidth(this) >> 1, var2.height - 1 - this.creditImage.getHeight(this), this);
  451.          }
  452.       } catch (Throwable var3) {
  453.          this.notifyErrorOccured(var3);
  454.       }
  455.  
  456.    }
  457.  
  458.    public void startDownloadProcess() throws Exception {
  459.       Object var2 = null;
  460.       String var1;
  461.       if (this.isWantingToDownloadInstallerWithVM()) {
  462.          var1 = this.getCodeBase().toString() + this.platforms.getRunningOnPlatform().installerNameVM;
  463.       } else {
  464.          var1 = this.getCodeBase().toString() + this.platforms.getRunningOnPlatform().installerNameNoVM;
  465.       }
  466.  
  467.       boolean var3;
  468.       if (this.isWantingToDownloadInstallerWithVM()) {
  469.          var3 = !this.platforms.getRunningOnPlatform().isNotRunnableVM;
  470.       } else {
  471.          var3 = !this.platforms.getRunningOnPlatform().isNotRunnableNoVM;
  472.          if (Gestalt.isThisPlatformUnix() && !Gestalt.checkPathForVM()) {
  473.             var3 = false;
  474.          }
  475.       }
  476.  
  477.       String var4 = this.platforms.getRunningOnPlatform().platformName;
  478.       if (var4.equals("Other Platforms")) {
  479.          this.wantingToDownloadInstallerWithVM = false;
  480.          var3 = false;
  481.          String var5 = this.getCodeBase().toString().substring(0, this.getCodeBase().toString().indexOf("InstData"));
  482.          var1 = var5 + this.platforms.getRunningOnPlatform().installerNameVM;
  483.       }
  484.  
  485.       try {
  486.          var7 = new URL(var1);
  487.       } catch (MalformedURLException var6) {
  488.          this.notifySetFriendlyErrorMessage("Installer '" + var1 + "' not found.");
  489.          throw var6;
  490.       }
  491.  
  492.       this.notifyOutputDiagnosticMessage("Handle Event: File to copy is '" + var1 + "'.");
  493.       if (!var3) {
  494.          this.doBrowserDownload(var7);
  495.       } else if (var3 && Gestalt.isAbleToExecuteFiles()) {
  496.          this.doZGDownload(var7);
  497.       } else {
  498.          this.doBrowserDownload(var7);
  499.       }
  500.  
  501.    }
  502.  
  503.    public void doZGDownload(URL var1) {
  504.       if (Gestalt.isNetscapeSecurityModelAvailable()) {
  505.          PrivilegeManager.enablePrivilege(Gestalt.NETSCAPE_PROPERTY_READ);
  506.       }
  507.  
  508.       String var2 = this.getIALogFileDirectory();
  509.       System.err.println("logDir" + var2);
  510.       String var3;
  511.       if (this.isWantingToDownloadInstallerWithVM()) {
  512.          var3 = this.platforms.getRunningOnPlatform().installerNameVM;
  513.          System.err.println("platforms.getRunningOnPlatform()" + this.platforms.getRunningOnPlatform());
  514.       } else {
  515.          var3 = this.platforms.getRunningOnPlatform().installerNameNoVM;
  516.          System.err.println("platforms.getRunningOnPlatform()" + this.platforms.getRunningOnPlatform());
  517.       }
  518.  
  519.       var3 = var3.substring(var3.lastIndexOf(47) + 1);
  520.       System.err.println("WIA.doZGDownload(): initial installer name: '" + var3 + "'");
  521.       if (Gestalt.getPlatform() == Gestalt.MAC_OS_PLATFORM) {
  522.          int var4 = Math.min(var3.length(), 26);
  523.          String var5 = var3.toLowerCase();
  524.          if (var5.endsWith(".bin")) {
  525.             var4 = var5.lastIndexOf(".bin");
  526.          }
  527.  
  528.          var3 = var3.substring(0, Math.min(26, var4)).trim();
  529.          var3 = var3 + ".bin";
  530.       }
  531.  
  532.       var3 = var3.trim();
  533.       var3 = var3.replace(' ', '_');
  534.       this.notifyOutputDiagnosticMessage("handleEvent: installer name is" + var3);
  535.       String var14 = this.getProductName().substring(0, Math.min(30, this.getProductName().length())).trim();
  536.       var14 = var14.replace(' ', '_');
  537.       File var16 = new File(Util.prepFileName(var2 + var14 + "/" + var3));
  538.       System.err.println("WIA.doZGDownload(): logDir = '" + var2 + "'");
  539.       System.err.println("WIA.doZGDownload(): productNameDir (final) = '" + var14 + "'");
  540.       System.err.println("WIA.doZGDownload(): installerName  (final) = '" + var3 + "'");
  541.       this.notifyOutputDiagnosticMessage("The temp file has been created: " + var16.toString());
  542.       this.notifyOutputDiagnosticMessage("Creating the ProgressDialog for the disk space check");
  543.       ProgressDialog var6 = new ProgressDialog(this);
  544.       var6.setProgressDialogText(2, (String)null, var16.toString());
  545.       this.notifyOutputDiagnosticMessage("Creating the class to check for disk space");
  546.       this.notifyOutputDiagnosticMessage("Source location: " + var1);
  547.       DiskSpaceCheckForDownload var7 = new DiskSpaceCheckForDownload(var1, var16, var6, this);
  548.       var6.addObserver(var7);
  549.       Thread var8 = new Thread(var6);
  550.       var8.setPriority(10);
  551.       var8.start();
  552.       Thread var9 = new Thread(var7);
  553.       var9.start();
  554.       this.notifyOutputDiagnosticMessage("Disk space checking has started");
  555.    }
  556.  
  557.    public void doBrowserDownload(URL var1) {
  558.       this.notifyOutputDiagnosticMessage("Preparing browser download object.");
  559.       this.downloadProcess = new BrowserDownloader(this);
  560.       this.downloadProcess.setFileToDownload(var1);
  561.       this.notifyOutputDiagnosticMessage("Starting the download process from doBrowserDownload");
  562.       this.downloadProcess.start();
  563.    }
  564.  
  565.    public Frame getParentFrame() {
  566.       return this.parentFrame;
  567.    }
  568.  
  569.    public String getProductName() {
  570.       return this.productName;
  571.    }
  572.  
  573.    public URL getCodeBase() {
  574.       String var1 = super.getCodeBase().toString();
  575.       if (var1.substring(var1.length() - 2).equals("/.")) {
  576.          var1 = var1.substring(0, var1.length() - 1);
  577.       }
  578.  
  579.       try {
  580.          return new URL(var1);
  581.       } catch (MalformedURLException var3) {
  582.          this.notifyOutputDiagnosticMessage("getCodeBase: Unable to retrieve code base (currently showing up as '" + var1 + "'.");
  583.          return null;
  584.       }
  585.    }
  586.  
  587.    public void loadCustomLocale() {
  588.       Locale var1 = ((Applet)this).getLocale();
  589.       this.notifyOutputDiagnosticMessage("Locale from System. Language: " + var1.getDisplayLanguage());
  590.       this.notifyOutputDiagnosticMessage("Locale from System.  Country: " + var1.getDisplayCountry());
  591.       this.loadLocalizedStringResource("CustomOKButtonLabel", class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".Button.OK");
  592.       this.loadLocalizedStringResource("CustomCancelButtonLabel", class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".Button.Cancel");
  593.       this.loadLocalizedStringResource("CustomRecommendedText", class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".RecommendedInstaller");
  594.       this.loadLocalizedStringResource("CustomDownloadButtonText", class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".Button.Download");
  595.       this.loadLocalizedStringResource("CustomInstallButtonText", class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".Button.Install");
  596.       this.loadLocalizedStringResource("CustomVMCheckboxText", class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".CheckBox.VM");
  597.       this.loadLocalizedStringResource("CustomNoInstallersAvailableText", class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".NoInstallerAvailable.Label");
  598.       this.loadLocalizedStringResource("CustomSelectInstallerFromListText", class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".SelectFromList.Label");
  599.       this.loadLocalizedStringResource("CustomSelectInstructionsText", class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".Instructions.Label");
  600.       this.loadLocalizedStringResource("CustomUnknownFailureText", class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".Failure.Unknown");
  601.       this.loadLocalizedStringResource("CustomEmailDialogTitle", class$com$zerog$ia$download$dialogs$EmailProgressDialog == null ? (class$com$zerog$ia$download$dialogs$EmailProgressDialog = class$("com.zerog.ia.download.dialogs.EmailProgressDialog")) : class$com$zerog$ia$download$dialogs$EmailProgressDialog, ".Title");
  602.       this.loadLocalizedStringResource("CustomErrorDetailDialogTitle", class$com$zerog$ia$download$dialogs$ErrorDetailDialog == null ? (class$com$zerog$ia$download$dialogs$ErrorDetailDialog = class$("com.zerog.ia.download.dialogs.ErrorDetailDialog")) : class$com$zerog$ia$download$dialogs$ErrorDetailDialog, ".Title");
  603.       this.loadLocalizedStringResource("CustomErrorDetailDialogHeading", class$com$zerog$ia$download$dialogs$ErrorDetailDialog == null ? (class$com$zerog$ia$download$dialogs$ErrorDetailDialog = class$("com.zerog.ia.download.dialogs.ErrorDetailDialog")) : class$com$zerog$ia$download$dialogs$ErrorDetailDialog, ".Heading");
  604.       this.loadLocalizedStringResource("CustomErrorDialogTitle", class$com$zerog$ia$download$dialogs$ErrorDialog == null ? (class$com$zerog$ia$download$dialogs$ErrorDialog = class$("com.zerog.ia.download.dialogs.ErrorDialog")) : class$com$zerog$ia$download$dialogs$ErrorDialog, ".Title");
  605.       this.loadLocalizedStringResource("CustomErrorDialogHeading", class$com$zerog$ia$download$dialogs$ErrorDialog == null ? (class$com$zerog$ia$download$dialogs$ErrorDialog = class$("com.zerog.ia.download.dialogs.ErrorDialog")) : class$com$zerog$ia$download$dialogs$ErrorDialog, ".Heading");
  606.       this.loadLocalizedStringResource("CustomErrorDialogShowDetail", class$com$zerog$ia$download$dialogs$ErrorDialog == null ? (class$com$zerog$ia$download$dialogs$ErrorDialog = class$("com.zerog.ia.download.dialogs.ErrorDialog")) : class$com$zerog$ia$download$dialogs$ErrorDialog, ".Show.Detail");
  607.       this.loadLocalizedStringResource("CustomErrorDialogSendTo", class$com$zerog$ia$download$dialogs$ErrorDialog == null ? (class$com$zerog$ia$download$dialogs$ErrorDialog = class$("com.zerog.ia.download.dialogs.ErrorDialog")) : class$com$zerog$ia$download$dialogs$ErrorDialog, ".Send.To");
  608.       this.loadLocalizedStringResource("CustomErrorDialogSendToAbout", class$com$zerog$ia$download$dialogs$ErrorDialog == null ? (class$com$zerog$ia$download$dialogs$ErrorDialog = class$("com.zerog.ia.download.dialogs.ErrorDialog")) : class$com$zerog$ia$download$dialogs$ErrorDialog, ".Send.To.About");
  609.       this.loadLocalizedStringResource("CustomErrorDialogEnterEmail", class$com$zerog$ia$download$dialogs$ErrorDialog == null ? (class$com$zerog$ia$download$dialogs$ErrorDialog = class$("com.zerog.ia.download.dialogs.ErrorDialog")) : class$com$zerog$ia$download$dialogs$ErrorDialog, ".Enter.Email");
  610.       this.loadLocalizedStringResource("CustomErrorDialogInvalidEmail", class$com$zerog$ia$download$dialogs$ErrorDialog == null ? (class$com$zerog$ia$download$dialogs$ErrorDialog = class$("com.zerog.ia.download.dialogs.ErrorDialog")) : class$com$zerog$ia$download$dialogs$ErrorDialog, ".Invalid.Email");
  611.       this.loadLocalizedStringResource("CustomProgressDialogCheckDiskSpaceTitle", class$com$zerog$ia$download$dialogs$ProgressDialog == null ? (class$com$zerog$ia$download$dialogs$ProgressDialog = class$("com.zerog.ia.download.dialogs.ProgressDialog")) : class$com$zerog$ia$download$dialogs$ProgressDialog, ".CheckDiskSpace.Title");
  612.       this.loadLocalizedStringResource("CustomProgressDialogDownloadTitle", class$com$zerog$ia$download$dialogs$ProgressDialog == null ? (class$com$zerog$ia$download$dialogs$ProgressDialog = class$("com.zerog.ia.download.dialogs.ProgressDialog")) : class$com$zerog$ia$download$dialogs$ProgressDialog, ".Download.Title");
  613.       this.loadLocalizedStringResource("CustomProgressDialogStartInstallerTitle", class$com$zerog$ia$download$dialogs$ProgressDialog == null ? (class$com$zerog$ia$download$dialogs$ProgressDialog = class$("com.zerog.ia.download.dialogs.ProgressDialog")) : class$com$zerog$ia$download$dialogs$ProgressDialog, ".StartInstaller.Title");
  614.       this.loadLocalizedStringResource("CustomProgressDialogCheckDiskSpaceHeading", class$com$zerog$ia$download$dialogs$ProgressDialog == null ? (class$com$zerog$ia$download$dialogs$ProgressDialog = class$("com.zerog.ia.download.dialogs.ProgressDialog")) : class$com$zerog$ia$download$dialogs$ProgressDialog, ".CheckDiskSpace.Heading");
  615.       this.loadLocalizedStringResource("CustomProgressDialogDownloadHeading", class$com$zerog$ia$download$dialogs$ProgressDialog == null ? (class$com$zerog$ia$download$dialogs$ProgressDialog = class$("com.zerog.ia.download.dialogs.ProgressDialog")) : class$com$zerog$ia$download$dialogs$ProgressDialog, ".Download.Heading");
  616.       this.loadLocalizedStringResource("CustomProgressDialogStartInstallerHeading", class$com$zerog$ia$download$dialogs$ProgressDialog == null ? (class$com$zerog$ia$download$dialogs$ProgressDialog = class$("com.zerog.ia.download.dialogs.ProgressDialog")) : class$com$zerog$ia$download$dialogs$ProgressDialog, ".StartInstaller.Heading");
  617.       this.loadLocalizedStringResource("CustomProgressDialogCheckDiskSpaceLabel", class$com$zerog$ia$download$dialogs$ProgressDialog == null ? (class$com$zerog$ia$download$dialogs$ProgressDialog = class$("com.zerog.ia.download.dialogs.ProgressDialog")) : class$com$zerog$ia$download$dialogs$ProgressDialog, ".CheckDiskSpace.Label");
  618.       this.loadLocalizedStringResource("CustomProgressDialogDownloadLabel", class$com$zerog$ia$download$dialogs$ProgressDialog == null ? (class$com$zerog$ia$download$dialogs$ProgressDialog = class$("com.zerog.ia.download.dialogs.ProgressDialog")) : class$com$zerog$ia$download$dialogs$ProgressDialog, ".Download.Label");
  619.       this.loadLocalizedStringResource("CustomProgressDialogStartInstallerLabel", class$com$zerog$ia$download$dialogs$ProgressDialog == null ? (class$com$zerog$ia$download$dialogs$ProgressDialog = class$("com.zerog.ia.download.dialogs.ProgressDialog")) : class$com$zerog$ia$download$dialogs$ProgressDialog, ".StartInstaller.Label");
  620.       this.loadLocalizedStringResource("CustomProgressBarPercentDoneText", class$com$zerog$ia$download$dialogs$ProgressBar == null ? (class$com$zerog$ia$download$dialogs$ProgressBar = class$("com.zerog.ia.download.dialogs.ProgressBar")) : class$com$zerog$ia$download$dialogs$ProgressBar, ".PercentDone");
  621.       this.loadLocalizedStringResource("CustomProgressBarAboutPrependText", class$com$zerog$ia$download$dialogs$ProgressBar == null ? (class$com$zerog$ia$download$dialogs$ProgressBar = class$("com.zerog.ia.download.dialogs.ProgressBar")) : class$com$zerog$ia$download$dialogs$ProgressBar, ".About.Prepend");
  622.       this.loadLocalizedStringResource("CustomProgressBarAboutPostpendText", class$com$zerog$ia$download$dialogs$ProgressBar == null ? (class$com$zerog$ia$download$dialogs$ProgressBar = class$("com.zerog.ia.download.dialogs.ProgressBar")) : class$com$zerog$ia$download$dialogs$ProgressBar, ".About.Postpend");
  623.       this.loadLocalizedStringResource("CustomProgressBarAboutAMinuteRemainingText", class$com$zerog$ia$download$dialogs$ProgressBar == null ? (class$com$zerog$ia$download$dialogs$ProgressBar = class$("com.zerog.ia.download.dialogs.ProgressBar")) : class$com$zerog$ia$download$dialogs$ProgressBar, ".AboutAMinute");
  624.       this.loadLocalizedStringResource("CustomProgressBarLessThanAMinuteRemainingText", class$com$zerog$ia$download$dialogs$ProgressBar == null ? (class$com$zerog$ia$download$dialogs$ProgressBar = class$("com.zerog.ia.download.dialogs.ProgressBar")) : class$com$zerog$ia$download$dialogs$ProgressBar, ".AboutLessMinute");
  625.    }
  626.  
  627.    public void loadLocalizedStringResource(String var1, Class var2, String var3) {
  628.       Locale var4 = ((Applet)this).getLocale();
  629.       String var5 = ((Applet)this).getParameter(var1 + "_" + var4.getLanguage());
  630.       if (var5 == null) {
  631.          this.notifyOutputDiagnosticMessage(var1 + "_" + var4.getLanguage() + " not found");
  632.       } else {
  633.          AppletResourceBundle.setLocalizedString(var2, var3, var5);
  634.       }
  635.  
  636.    }
  637.  
  638.    public void addContextListener(ContextListener var1) {
  639.       this.contextListenerList.addElement(var1);
  640.    }
  641.  
  642.    public void removeContextListener(ContextListener var1) {
  643.       this.contextListenerList.removeElement(var1);
  644.    }
  645.  
  646.    public void notifyErrorOccured(Throwable var1) {
  647.       Enumeration var2 = this.contextListenerList.elements();
  648.  
  649.       while(var2.hasMoreElements()) {
  650.          ((ContextListener)var2.nextElement()).errorOccured(var1);
  651.       }
  652.  
  653.       this.notifySetFriendlyErrorMessage(AppletResourceBundle.getLocalizedString(this, ".Failure.Unknown"));
  654.    }
  655.  
  656.    public void notifyOutputDiagnosticMessage(String var1) {
  657.       Enumeration var2 = this.contextListenerList.elements();
  658.  
  659.       while(var2.hasMoreElements()) {
  660.          ((ContextListener)var2.nextElement()).outputDiagnosticMessage(var1);
  661.       }
  662.  
  663.    }
  664.  
  665.    public void notifySetFriendlyErrorMessage(String var1) {
  666.       Enumeration var2 = this.contextListenerList.elements();
  667.  
  668.       while(var2.hasMoreElements()) {
  669.          ((ContextListener)var2.nextElement()).setFriendlyErrorMessage(var1);
  670.       }
  671.  
  672.    }
  673.  
  674.    public FileDownloader getDownloadProcess() {
  675.       return this.downloadProcess;
  676.    }
  677.  
  678.    public boolean isAllowingEmailToBeSent() {
  679.       return this.allowingEmailToBeSent;
  680.    }
  681.  
  682.    public void setAllowingEmailToBeSent(boolean var1) {
  683.       this.allowingEmailToBeSent = var1;
  684.    }
  685.  
  686.    public Vector getContextListenerList() {
  687.       return this.contextListenerList;
  688.    }
  689.  
  690.    public void downloadStopped() {
  691.       if (this.pnlNormalGui != null) {
  692.          this.pnlNormalGui.enable();
  693.       }
  694.  
  695.    }
  696.  
  697.    public String getIALogFileDirectory() {
  698.       String var1;
  699.       if (Gestalt.getPlatform().equals(Gestalt.WINDOWS_PLATFORM)) {
  700.          String var2 = Util.prepFileName(System.getProperty("user.home"));
  701.          var1 = var2.substring(0, var2.indexOf(47));
  702.       } else {
  703.          if (Gestalt.getPlatform().equals(Gestalt.MAC_OS_PLATFORM)) {
  704.             Object var10 = null;
  705.             String var3 = null;
  706.  
  707.             try {
  708.                this.notifyOutputDiagnosticMessage("Finding download location for Mac");
  709.                File var11 = MRJFileUtils.findFolder(new MRJOSType("desk"));
  710.                var3 = Util.prepFileName(var11.getPath());
  711.             } catch (FileNotFoundException var6) {
  712.                this.notifyOutputDiagnosticMessage("Error: Unable to find temporary items folder.  Defaulting to /Mac_OS_9/");
  713.                var3 = System.getProperty("user.home");
  714.                ((Throwable)var6).printStackTrace();
  715.             } catch (Throwable var7) {
  716.                this.notifyOutputDiagnosticMessage("Exception found");
  717.                var7.printStackTrace();
  718.             }
  719.  
  720.             var1 = new String(var3);
  721.             this.notifyOutputDiagnosticMessage("handleEvent: rootDir = '" + var1 + "'.");
  722.             return var1;
  723.          }
  724.  
  725.          var1 = System.getProperty("user.home");
  726.          int var9 = var1.toLowerCase().lastIndexOf(".netscape");
  727.          if (var9 >= 0) {
  728.             var1 = var1.substring(0, var9 - 1);
  729.          }
  730.       }
  731.  
  732.       this.notifyOutputDiagnosticMessage("handleEvent: rootDir = '" + var1 + "'.");
  733.       return var1 + "/IA_Installers/";
  734.    }
  735.  
  736.    // $FF: synthetic method
  737.    static Class class$(String var0) {
  738.       try {
  739.          return Class.forName(var0);
  740.       } catch (ClassNotFoundException var2) {
  741.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  742.       }
  743.    }
  744.  
  745.    static {
  746.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".Button.OK", "OK");
  747.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".Button.Cancel", "Cancel");
  748.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".Button.Download", "Download Installer for");
  749.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".Button.Install", "     Start Installer for");
  750.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".CheckBox.VM", "Include VM in download");
  751.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".RecommendedInstaller", "Recommended Installation for Your Platform:");
  752.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".NoInstallerAvailable.Label", "There is no installer available for your platform.");
  753.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".SelectFromList.Label", "Please select an installer to download from the list below.");
  754.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".Instructions.Label", "You can download an installer for another platform from the list below.");
  755.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$WebInstallerApplet == null ? (class$com$zerog$ia$download$WebInstallerApplet = class$("com.zerog.ia.download.WebInstallerApplet")) : class$com$zerog$ia$download$WebInstallerApplet, ".Failure.Unknown", "The applet has failed for an unknown reason, possibly because of an incompatibility between this applet and your browser.");
  756.    }
  757. }
  758.