home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 25 / CDROM25.iso / Share / prog / VJ11 / VJTRIAL.EXE / IE30Java.exe / classd.exe / sun / applet / AppletProps.java < prev    next >
Encoding:
Java Source  |  1997-01-27  |  5.6 KB  |  189 lines

  1. /*
  2.  * @(#)AppletProps.java    1.9 96/03/29
  3.  *
  4.  * Copyright (c) 1994-1995 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19.  
  20. package sun.applet;
  21.  
  22. import java.awt.*;
  23. import java.io.*;
  24. import java.util.Properties;
  25. import sun.net.www.http.HttpClient;
  26. import sun.net.ftp.FtpClient;
  27.  
  28. class AppletProps extends Frame {
  29.     
  30.     TextField proxyHost;
  31.     TextField proxyPort;
  32.     TextField firewallHost;
  33.     TextField firewallPort;
  34.     Choice networkMode;
  35.     Choice accessMode;
  36.  
  37.     AppletProps() {
  38.     setTitle("AppletViewer Properties");
  39.     Panel p = new Panel();
  40.     p.setLayout(new GridLayout(0, 2));
  41.  
  42.     p.add(new Label("Http proxy server:"));
  43.     p.add(proxyHost = new TextField());
  44.  
  45.     p.add(new Label("Http proxy port:"));
  46.     p.add(proxyPort = new TextField());
  47.  
  48.     p.add(new Label("Firewall proxy server:"));
  49.     p.add(firewallHost = new TextField());
  50.  
  51.     p.add(new Label("Firewall proxy port:"));
  52.     p.add(firewallPort = new TextField());
  53.  
  54.     p.add(new Label("Network access:"));
  55.     p.add(networkMode = new Choice());
  56.     networkMode.addItem("None");
  57.     networkMode.addItem("Applet Host");
  58.     networkMode.addItem("Unrestricted");
  59.  
  60.     p.add(new Label("Class access:"));
  61.     p.add(accessMode = new Choice());
  62.     accessMode.addItem("Restricted");
  63.     accessMode.addItem("Unrestricted");
  64.  
  65.     add("Center", p);
  66.     p = new Panel();
  67.     p.add(new Button("Apply"));
  68.     p.add(new Button("Reset"));
  69.     p.add(new Button("Cancel"));
  70.     add("South", p);
  71.     move(200, 150);
  72.     pack();
  73.     reset();
  74.     }
  75.  
  76.     void reset() {
  77.     ((AppletSecurity)System.getSecurityManager()).reset();
  78.  
  79.     switch (((AppletSecurity)System.getSecurityManager()).networkMode) {
  80.       case AppletSecurity.NETWORK_UNRESTRICTED:
  81.         networkMode.select("Unrestricted");
  82.         break;
  83.       case AppletSecurity.NETWORK_NONE:
  84.         networkMode.select("None");
  85.         break;
  86.       default:
  87.         networkMode.select("Applet Host");
  88.         break;
  89.     }
  90.  
  91.     if (Boolean.getBoolean("package.restrict.access.sun")) {
  92.         accessMode.select("Restricted");
  93.     } else {
  94.         accessMode.select("Unrestricted");
  95.     }
  96.  
  97.     if (Boolean.getBoolean("proxySet")) {
  98.         proxyHost.setText(System.getProperty("proxyHost"));
  99.         proxyPort.setText(System.getProperty("proxyPort"));
  100.         HttpClient.useProxyForCaching = true;
  101.         HttpClient.cachingProxyHost = System.getProperty("proxyHost");;
  102.         HttpClient.cachingProxyPort = 
  103.         Integer.valueOf(System.getProperty("proxyPort")).intValue();
  104.     } else {
  105.         proxyHost.setText("");
  106.         proxyPort.setText("");
  107.         HttpClient.useProxyForCaching = false;
  108.     }
  109.     if (Boolean.getBoolean("firewallSet")) {
  110.         firewallHost.setText(System.getProperty("firewallHost"));
  111.         firewallPort.setText(System.getProperty("firewallPort"));
  112.         HttpClient.useProxyForFirewall = true;
  113.         HttpClient.firewallProxyHost = System.getProperty("firewallHost");;
  114.         HttpClient.firewallProxyPort = 
  115.         Integer.valueOf(System.getProperty("firewallPort")).intValue();
  116.     } else {
  117.         firewallHost.setText("");
  118.         firewallPort.setText("");
  119.         HttpClient.useProxyForFirewall = false;
  120.     }
  121.     }
  122.  
  123.     void apply() {
  124.     // Get properties, set version
  125.     Properties props = System.getProperties();
  126.     props.put("appletviewer.version", AppletViewer.theVersion);
  127.     if (proxyHost.getText().length() > 0) {
  128.         props.put("proxySet", "true");
  129.         props.put("proxyHost", proxyHost.getText().trim());
  130.         props.put("proxyPort", proxyPort.getText().trim());
  131.     } else {
  132.         props.put("proxySet", "false");
  133.     }
  134.     if (firewallHost.getText().length() > 0) {
  135.         props.put("firewallSet", "true");
  136.         props.put("firewallHost", firewallHost.getText().trim());
  137.         props.put("firewallPort", firewallPort.getText().trim());
  138.     } else {
  139.         props.put("firewallSet", "false");
  140.     }
  141.     if ("None".equals(networkMode.getSelectedItem())) {
  142.         props.put("appletviewer.security.mode", "none");
  143.     } else if ("Unrestricted".equals(networkMode.getSelectedItem())) {
  144.         props.put("appletviewer.security.mode", "unrestricted");
  145.     } else {
  146.         props.put("appletviewer.security.mode", "host");
  147.     }
  148.  
  149.     if ("Restricted".equals(accessMode.getSelectedItem())) {
  150.         props.put("package.restrict.access.sun", "true");
  151.         props.put("package.restrict.access.netscape", "true");
  152.     } else {
  153.         props.put("package.restrict.access.sun", "false");
  154.         props.put("package.restrict.access.netscape", "false");
  155.     }
  156.  
  157.     // Save properties
  158.     try {
  159.         reset();
  160.  
  161.         FileOutputStream out = new FileOutputStream(AppletViewer.theUserPropertiesFile);
  162.         props.save(out, "AppletViewer");
  163.         out.close();
  164.         hide();
  165.     } catch (IOException e) {
  166.         System.out.println("Failed to save properties: " + e);
  167.         e.printStackTrace();
  168.         reset();
  169.     }
  170.     }
  171.  
  172.     public boolean action(Event evt, Object obj) {
  173.     if ("Apply".equals(obj)) {
  174.         apply();
  175.         return true;
  176.     }
  177.     if ("Reset".equals(obj)) {
  178.         reset();
  179.         return true;
  180.     }
  181.     if ("Cancel".equals(obj)) {
  182.         hide();
  183.         return true;
  184.     }
  185.     return false;
  186.     }
  187. }
  188.  
  189.