My5250App.java
上传用户:xiekaiwei
上传日期:2015-07-04
资源大小:620k
文件大小:5k
源码类别:

Telnet客户端

开发平台:

Java

  1. package org.tn5250j;
  2. import java.awt.*;
  3. import javax.swing.*;
  4. import java.util.*;
  5. import org.tn5250j.tools.logging.*;
  6. import org.tn5250j.tools.LangTool;
  7. import org.tn5250j.gui.TN5250jSecurityAccessDialog;
  8. import org.tn5250j.framework.common.*;
  9. //import org.tn5250j.swing.JTerminal;
  10. public class My5250App extends JApplet implements TN5250jConstants {
  11.    boolean isStandalone = true;
  12.    private SessionManager manager;
  13.    private TN5250jLogger log;
  14.    /**Get a parameter value*/
  15.    public String getParameter(String key, String def) {
  16.       return isStandalone ? System.getProperty(key, def) :
  17.          (getParameter(key) != null ? getParameter(key) : def);
  18.    }
  19.    /**Construct the applet*/
  20.    public My5250App() {
  21.    }
  22.    /**Initialize the applet*/
  23.    public void init() {
  24.       try {
  25.          jbInit();
  26.       }
  27.       catch(Exception e) {
  28.        if (log == null)
  29.             System.out.println(e.getMessage());
  30.          else
  31.           log.warn("In constructor: ", e);
  32.       }
  33.    }
  34.    /**Component initialization*/
  35.    private void jbInit() throws Exception {
  36.       this.setSize(new Dimension(400,300));
  37.       if (isSpecified("-L"))
  38.        LangTool.init(parseLocale(getParameter("-L")));
  39.       else
  40.        LangTool.init();
  41.      //Let's check some permissions
  42.      try {
  43.         System.getProperty(".java.policy");
  44.      }
  45.      catch (SecurityException e) {
  46.         e.printStackTrace();
  47.         TN5250jSecurityAccessDialog.showErrorMessage(e);
  48.         return;
  49.      }
  50.      log = TN5250jLogFactory.getLogger (this.getClass());
  51.       Properties sesProps = new Properties();
  52.       log.info(" We have loaded a new one");
  53.       // Start loading properties - Host must exist
  54.       sesProps.put(SESSION_HOST,getParameter("host"));
  55.       if (isSpecified("-e"))
  56.          sesProps.put(SESSION_TN_ENHANCED,"1");
  57.       if (isSpecified("-p")) {
  58.          sesProps.put(SESSION_HOST_PORT,getParameter("-p"));
  59.       }
  60. //      if (isSpecified("-f",args))
  61. //         propFileName = getParm("-f",args);
  62.       if (isSpecified("-cp"))
  63.          sesProps.put(SESSION_CODE_PAGE ,getParameter("-cp"));
  64.       if (isSpecified("-gui"))
  65.          sesProps.put(SESSION_USE_GUI,"1");
  66.       if (isSpecified("-132"))
  67.          sesProps.put(SESSION_SCREEN_SIZE,SCREEN_SIZE_27X132_STR);
  68.       else
  69.          sesProps.put(SESSION_SCREEN_SIZE,SCREEN_SIZE_24X80_STR);
  70.       // socks proxy host argument
  71.       if (isSpecified("-sph")) {
  72.          sesProps.put(SESSION_PROXY_HOST ,getParameter("-sph"));
  73.       }
  74.       // socks proxy port argument
  75.       if (isSpecified("-spp"))
  76.          sesProps.put(SESSION_PROXY_PORT ,getParameter("-spp"));
  77.       // check if device name is specified
  78.       if (isSpecified("-dn"))
  79.          sesProps.put(SESSION_DEVICE_NAME ,getParameter("-dn"));
  80.       loadSystemProperty("SESSION_CONNECT_USER");
  81.       loadSystemProperty("SESSION_CONNECT_PASSWORD");
  82.       loadSystemProperty("SESSION_CONNECT_PROGRAM");
  83.       loadSystemProperty("SESSION_CONNECT_LIBRARY");
  84.       loadSystemProperty("SESSION_CONNECT_MENU");
  85.       manager = SessionManager.instance();
  86.       final Session5250 s = manager.openSession(sesProps,"","Test Applet");
  87.       final SessionGUI gui = new SessionGUI(s);
  88. //      final JTerminal jt = new JTerminal(s);
  89.       this.getContentPane().add(gui);
  90.       s.connect();
  91.       SwingUtilities.invokeLater(new Runnable() {
  92.          public void run() {
  93. //            jt.grabFocus();
  94.             gui.grabFocus();
  95.          }
  96.       });
  97.    }
  98.    private void loadSystemProperty(String param) {
  99.       if (isSpecified(param))
  100.          System.getProperties().put(param,getParameter(param));
  101.    }
  102.    /**Get Applet information*/
  103.    public String getAppletInfo() {
  104.       return "tn5250j - " + tn5250jRelease + tn5250jVersion + tn5250jSubVer + " - Jave tn5250 Client";
  105.    }
  106.    /**Get parameter info*/
  107.    public String[][] getParameterInfo() {
  108.       return null;
  109.    }
  110.    /**
  111.     * Tests if a parameter was specified or not.
  112.     */
  113.    private boolean isSpecified(String parm) {
  114.       if (getParameter(parm) != null) {
  115.          log.info("Parameter " + parm + " is specified as: " + getParameter(parm));
  116.          return true;
  117.       }
  118.       return false;
  119.    }
  120.    /**
  121.     * Returns a local specified by the string localString
  122.     */
  123.    protected static Locale parseLocale(String localString) {
  124.       int x = 0;
  125.       String[] s = {"","",""};
  126.       StringTokenizer tokenizer = new StringTokenizer(localString, "_");
  127.       while (tokenizer.hasMoreTokens()) {
  128.          s[x++] = tokenizer.nextToken();
  129.       }
  130.       return new Locale(s[0],s[1],s[2]);
  131.    }
  132.    //static initializer for setting look & feel
  133.    static {
  134.       try {
  135.          //UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  136.          //UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
  137.       }
  138.       catch(Exception e) {
  139.       }
  140.    }
  141. }