home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1998 September / dppcpro0998.iso / Rwc / Sybase / Install.exe / samples.z / Form_Socket.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-03-25  |  7.1 KB  |  286 lines

  1. import java.applet.Applet;
  2. import java.awt.Button;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Event;
  7. import java.awt.Font;
  8. import java.awt.FontMetrics;
  9. import java.awt.Insets;
  10. import java.awt.Label;
  11. import java.awt.List;
  12. import java.awt.Rectangle;
  13. import java.awt.TextField;
  14. import java.awt.Window;
  15. import java.awt.event.ActionEvent;
  16. import java.awt.event.ActionListener;
  17. import java.io.DataInputStream;
  18. import java.io.IOException;
  19. import java.io.PrintStream;
  20. import java.net.Socket;
  21. import java.net.UnknownHostException;
  22. import java.util.EventObject;
  23. import powersoft.powerj.event.AWTEvent;
  24. import powersoft.powerj.event.EventData;
  25. import powersoft.powerj.ui.ResizePercentLayout;
  26. import powersoft.powerj.util.Debug;
  27.  
  28. class Form_Socket extends Applet implements ActionListener {
  29.    boolean __mainForm;
  30.    private TextField textf_server = new TextField();
  31.    private TextField textf_port = new TextField();
  32.    private Button cb_connect = new Button();
  33.    private Button cb_disconnect = new Button();
  34.    private TextField textf_msg = new TextField();
  35.    private Button cb_send = new Button();
  36.    private List lb_1 = new List();
  37.    private Label label_1 = new Label();
  38.    private Label label_2 = new Label();
  39.    private Label label_3 = new Label();
  40.    private Label label_4 = new Label();
  41.    // $FF: renamed from: _s java.net.Socket
  42.    Socket field_0;
  43.    DataInputStream _input;
  44.    PrintStream _output;
  45.    Form_Socket$StreamListener _listener;
  46.    Debug _dbLog;
  47.    public static final int DEFAULT_PORT = 1777;
  48.  
  49.    public Rectangle DURectangle(int var1, int var2, int var3, int var4) {
  50.       String var5 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  51.       FontMetrics var6 = ((Component)this).getFontMetrics(((Component)this).getFont());
  52.       double var7 = (double)(var6 != null ? var6.stringWidth(var5) / var5.length() : 0);
  53.       double var9 = var6 != null ? (double)var6.getHeight() / (double)2.0F : (double)0.0F;
  54.       return new Rectangle((int)Math.round(var7 * (double)var1 / (double)4.0F), (int)Math.round(var9 * (double)var2 / (double)4.0F), (int)Math.round(var7 * (double)var3 / (double)4.0F), (int)Math.round(var9 * (double)var4 / (double)4.0F));
  55.    }
  56.  
  57.    public void DUPositionComponent(Component var1, int var2, int var3, int var4, int var5, Insets var6) {
  58.       Rectangle var7 = this.DURectangle(var2, var3, var4, var5);
  59.       if (var1 != this && var6 != null) {
  60.          var7.x += var6.left;
  61.          var7.y += var6.top;
  62.       }
  63.  
  64.       var1.setBounds(var7);
  65.    }
  66.  
  67.    public void setMainForm(boolean var1) {
  68.       this.__mainForm = var1;
  69.    }
  70.  
  71.    public boolean isMainForm() {
  72.       return this.__mainForm;
  73.    }
  74.  
  75.    public boolean create() throws Exception {
  76.       Container var1 = this.getContentPane();
  77.       Font var2 = new Font("Dialog", 0, 12);
  78.       ((Component)this).setFont(var2);
  79.       boolean var3 = true;
  80.       Insets var4 = (Insets)var1.getInsets().clone();
  81.       ((Component)var1).setBackground(Color.lightGray);
  82.       ((Component)var1).setForeground(Color.black);
  83.       ResizePercentLayout var5 = new ResizePercentLayout();
  84.       var1.setLayout(var5);
  85.       var1.add(this.textf_server);
  86.       var1.add(this.textf_port);
  87.       var1.add(this.cb_connect);
  88.       var1.add(this.cb_disconnect);
  89.       var1.add(this.textf_msg);
  90.       var1.add(this.cb_send);
  91.       var1.add(this.lb_1);
  92.       var1.add(this.label_1);
  93.       var1.add(this.label_2);
  94.       var1.add(this.label_3);
  95.       var1.add(this.label_4);
  96.       this.DUPositionComponent(this, 0, 0, 322, 216, var4);
  97.       this.DUPositionComponent(this.textf_server, 5, 20, 140, 14, var4);
  98.       this.textf_server.setFont(var2);
  99.       this.textf_server.setBackground(Color.white);
  100.       this.textf_server.setForeground(Color.black);
  101.       this.textf_server.setEnabled(true);
  102.       this.textf_server.setVisible(true);
  103.       this.DUPositionComponent(this.textf_port, 155, 20, 45, 14, var4);
  104.       this.textf_port.setFont(var2);
  105.       this.textf_port.setBackground(Color.white);
  106.       this.textf_port.setForeground(Color.black);
  107.       this.textf_port.setEnabled(true);
  108.       this.textf_port.setVisible(true);
  109.       this.cb_connect.addActionListener(this);
  110.       this.DUPositionComponent(this.cb_connect, 210, 20, 50, 14, var4);
  111.       this.cb_connect.setFont(var2);
  112.       this.cb_connect.setBackground(Color.lightGray);
  113.       this.cb_connect.setForeground(Color.black);
  114.       this.cb_connect.setEnabled(true);
  115.       this.cb_connect.setVisible(true);
  116.       this.cb_connect.setLabel("Connect");
  117.       this.cb_disconnect.addActionListener(this);
  118.       this.DUPositionComponent(this.cb_disconnect, 265, 20, 50, 14, var4);
  119.       this.cb_disconnect.setFont(var2);
  120.       this.cb_disconnect.setBackground(Color.lightGray);
  121.       this.cb_disconnect.setForeground(Color.black);
  122.       this.cb_disconnect.setEnabled(true);
  123.       this.cb_disconnect.setVisible(true);
  124.       this.cb_disconnect.setLabel("Disconnect");
  125.       this.DUPositionComponent(this.textf_msg, 5, 60, 265, 14, var4);
  126.       this.textf_msg.setFont(var2);
  127.       this.textf_msg.setBackground(Color.white);
  128.       this.textf_msg.setForeground(Color.black);
  129.       this.textf_msg.setEnabled(true);
  130.       this.textf_msg.setVisible(true);
  131.       this.cb_send.addActionListener(this);
  132.       this.DUPositionComponent(this.cb_send, 275, 60, 40, 14, var4);
  133.       this.cb_send.setFont(var2);
  134.       this.cb_send.setBackground(Color.lightGray);
  135.       this.cb_send.setForeground(Color.black);
  136.       this.cb_send.setEnabled(true);
  137.       this.cb_send.setVisible(true);
  138.       this.cb_send.setLabel("Send");
  139.       this.DUPositionComponent(this.lb_1, 5, 100, 310, 70, var4);
  140.       this.lb_1.setFont(var2);
  141.       this.lb_1.setBackground(Color.white);
  142.       this.lb_1.setForeground(Color.black);
  143.       this.lb_1.setEnabled(true);
  144.       this.lb_1.setVisible(true);
  145.       this.DUPositionComponent(this.label_1, 5, 45, 80, 10, var4);
  146.       this.label_1.setText("Message for server:");
  147.       this.label_1.setAlignment(0);
  148.       this.label_1.setFont(var2);
  149.       this.label_1.setBackground(Color.lightGray);
  150.       this.label_1.setForeground(Color.black);
  151.       this.label_1.setEnabled(true);
  152.       this.label_1.setVisible(true);
  153.       this.DUPositionComponent(this.label_2, 5, 85, 35, 10, var4);
  154.       this.label_2.setText("Log:");
  155.       this.label_2.setAlignment(0);
  156.       this.label_2.setFont(var2);
  157.       this.label_2.setBackground(Color.lightGray);
  158.       this.label_2.setForeground(Color.black);
  159.       this.label_2.setEnabled(true);
  160.       this.label_2.setVisible(true);
  161.       this.DUPositionComponent(this.label_3, 5, 10, 50, 10, var4);
  162.       this.label_3.setText("Server name:");
  163.       this.label_3.setAlignment(0);
  164.       this.label_3.setFont(var2);
  165.       this.label_3.setBackground(Color.lightGray);
  166.       this.label_3.setForeground(Color.black);
  167.       this.label_3.setEnabled(true);
  168.       this.label_3.setVisible(true);
  169.       this.DUPositionComponent(this.label_4, 155, 10, 20, 10, var4);
  170.       this.label_4.setText("Port:");
  171.       this.label_4.setAlignment(0);
  172.       this.label_4.setFont(var2);
  173.       this.label_4.setBackground(Color.lightGray);
  174.       this.label_4.setForeground(Color.black);
  175.       this.label_4.setEnabled(true);
  176.       this.label_4.setVisible(true);
  177.       var5.setResizePercent(this.textf_server, new Rectangle(0, 0, 0, 0));
  178.       var5.setResizePercent(this.textf_port, new Rectangle(0, 0, 0, 0));
  179.       var5.setResizePercent(this.cb_connect, new Rectangle(0, 0, 0, 0));
  180.       var5.setResizePercent(this.cb_disconnect, new Rectangle(0, 0, 0, 0));
  181.       var5.setResizePercent(this.textf_msg, new Rectangle(0, 0, 0, 0));
  182.       var5.setResizePercent(this.cb_send, new Rectangle(0, 0, 0, 0));
  183.       var5.setResizePercent(this.lb_1, new Rectangle(0, 0, 0, 0));
  184.       var5.setResizePercent(this.label_1, new Rectangle(0, 0, 0, 0));
  185.       var5.setResizePercent(this.label_2, new Rectangle(0, 0, 0, 0));
  186.       var5.setResizePercent(this.label_3, new Rectangle(0, 0, 0, 0));
  187.       var5.setResizePercent(this.label_4, new Rectangle(0, 0, 0, 0));
  188.       this.Form_Socket_objectCreated(new EventData(this));
  189.       return var3;
  190.    }
  191.  
  192.    public synchronized void destroy() {
  193.       if (this instanceof Window) {
  194.          ((Window)this).dispose();
  195.       } else {
  196.          ((Container)this).removeNotify();
  197.       }
  198.  
  199.       if (this.isMainForm()) {
  200.          System.gc();
  201.          System.runFinalization();
  202.          System.exit(0);
  203.       }
  204.  
  205.    }
  206.  
  207.    public boolean defaultHandleEvent(Event var1) {
  208.       this.defaultProcessEvent(new AWTEvent(var1));
  209.       return false;
  210.    }
  211.  
  212.    public void defaultProcessEvent(java.awt.AWTEvent var1) {
  213.       super.processEvent(var1);
  214.    }
  215.  
  216.    public void actionPerformed(ActionEvent var1) {
  217.       Object var2 = ((EventObject)var1).getSource();
  218.       if (var2 == this.cb_connect) {
  219.          this.cb_connect_actionPerformed(var1);
  220.       } else if (var2 == this.cb_disconnect) {
  221.          this.cb_disconnect_actionPerformed(var1);
  222.       } else if (var2 == this.cb_send) {
  223.          this.cb_send_actionPerformed(var1);
  224.       } else {
  225.          this.unhandledEvent("java.awt.event.ActionListener", "actionPerformed", var1);
  226.       }
  227.  
  228.    }
  229.  
  230.    public Form_Socket() {
  231.    }
  232.  
  233.    public void processEvent(java.awt.AWTEvent var1) {
  234.       this.defaultProcessEvent(var1);
  235.    }
  236.  
  237.    public void unhandledEvent(String var1, String var2, Object var3) {
  238.    }
  239.  
  240.    public Container getContentPane() {
  241.       return this;
  242.    }
  243.  
  244.    public boolean Form_Socket_objectCreated(EventData var1) {
  245.       this.textf_server.setText("localhost");
  246.       this.textf_port.setText(String.valueOf(1777));
  247.       this.cb_connect.requestFocus();
  248.       return false;
  249.    }
  250.  
  251.    public void cb_connect_actionPerformed(ActionEvent var1) {
  252.       String var2 = this.textf_server.getText();
  253.       Integer var3 = new Integer(this.textf_port.getText());
  254.       this._dbLog = new Debug();
  255.  
  256.       try {
  257.          this.field_0 = new Socket(var2, var3);
  258.          this.lb_1.add("Connected to " + var2);
  259.          this._input = new DataInputStream(this.field_0.getInputStream());
  260.          this._output = new PrintStream(this.field_0.getOutputStream());
  261.       } catch (UnknownHostException var4) {
  262.          Debug.log("UnknownHostException thrown while creating socket.");
  263.       } catch (IOException var5) {
  264.          Debug.log("IOException thrown while creating socket.");
  265.       }
  266.  
  267.       this._listener = new Form_Socket$StreamListener(this, this._input, this.lb_1);
  268.    }
  269.  
  270.    public void cb_disconnect_actionPerformed(ActionEvent var1) {
  271.       try {
  272.          this._output.println("Attempting to close client side socket");
  273.          this.field_0.close();
  274.          this.lb_1.add("Disconnected successfully");
  275.       } catch (IOException var2) {
  276.          Debug.log("IOException while closing client side socket");
  277.       }
  278.  
  279.    }
  280.  
  281.    public void cb_send_actionPerformed(ActionEvent var1) {
  282.       this._output.println(this.textf_msg.getText());
  283.       this.textf_msg.setText("");
  284.    }
  285. }
  286.