Package org.pokenet.client.ui.frames

Source Code of org.pokenet.client.ui.frames.ServerDialog

package org.pokenet.client.ui.frames;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.List;

import mdes.slick.sui.Button;
import mdes.slick.sui.Frame;
import mdes.slick.sui.Label;
import mdes.slick.sui.TextField;
import mdes.slick.sui.event.ActionEvent;
import mdes.slick.sui.event.ActionListener;

import org.newdawn.slick.Color;
import org.pokenet.client.GameClient;
import org.pokenet.client.backend.Translator;

/**
* Handles server selection
* @author shadowkanji
*
*/
public class ServerDialog extends Frame {
  private Button [] m_servers;
  private String [] m_host;
  private Label m_info;
  private Color m_black;
  private Button privateServer;
  private TextField privateIP;
  /**
   * Default constructor
   */
  public ServerDialog() {
    getContentPane().setX(getContentPane().getX() - 1);
    getContentPane().setY(getContentPane().getY() + 1);
    m_black = new Color(0, 0, 0);
    List<String> translate = Translator.translate("_LOGIN");
   
    this.setSize(316, 280);
    this.setLocation(400 - 160, 280);
    this.setTitle(translate.get(0));
    this.setBackground(new Color(0, 0, 0, 140));
    this.getTitleBar().setForeground(m_black);
    this.setDraggable(false);
    this.setResizable(false);
    this.getTitleBar().getCloseButton().setVisible(false);
   
    /*
     * Create the info label
     */
    m_info = new Label(translate.get(1));
    m_info.pack();
    m_info.setLocation(24, 8);
    m_info.setForeground(new Color(255, 255, 255));
    this.add(m_info);
   
    /*
     * Create all the server buttons
     */
    String respath = System.getProperty("res.path");
    if(respath==null)
      respath="";
    try {
      m_servers = new Button[5];
      m_host = new String[5];
      InputStream stream;
      try {
        URL url = new URL("http://pokeglobal.sourceforge.net/servers.txt");
        stream = url.openStream();
      } catch (Exception e) {
        stream = new FileInputStream(respath+"res/servers.txt");
      }
          BufferedReader in = new BufferedReader(new InputStreamReader(stream));

     
      m_servers[0] = new Button(in.readLine());
      m_servers[0].setSize(280, 24);
      m_servers[0].setLocation(16, 32);
      m_servers[0].setVisible(true);
      m_servers[0].addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
          GameClient.setHost(m_host[0]);
        }
      });
      this.add(m_servers[0]);
      m_host[0] = in.readLine();
     
      m_servers[1] = new Button(in.readLine());
      m_servers[1].setSize(280, 24);
      m_servers[1].setLocation(16, 64);
      m_servers[1].setVisible(true);
      m_servers[1].addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
          GameClient.setHost(m_host[1]);
        }
      });
      this.add(m_servers[1]);
      m_host[1] = in.readLine();
     
      m_servers[2] = new Button(in.readLine());
      m_servers[2].setSize(280, 24);
      m_servers[2].setLocation(16, 96);
      m_servers[2].setVisible(true);
      m_servers[2].addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
          GameClient.setHost(m_host[2]);
        }
      });
      this.add(m_servers[2]);
      m_host[2] = in.readLine();
     
      m_servers[3] = new Button(in.readLine());
      m_servers[3].setSize(280, 24);
      m_servers[3].setLocation(16, 128);
      m_servers[3].setVisible(true);
      m_servers[3].addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
          GameClient.setHost(m_host[3]);
        }
      });
      this.add(m_servers[3]);
      m_host[3] = in.readLine();
     
      m_servers[4] = new Button(in.readLine());
      m_servers[4].setSize(280, 24);
      m_servers[4].setLocation(16, 160);
      m_servers[4].setVisible(true);
      m_servers[4].addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
          GameClient.setHost(m_host[4]);
        }
      });
      this.add(m_servers[4]);
      m_host[4] = in.readLine();
     
      /*
       * Finally, check which servers don't exist and disable their buttons
       */
      for(int i = 0; i < 5; i++) {
        if(m_host[i].equalsIgnoreCase("-")) {
          m_servers[i].setEnabled(false);
          m_host[i] = "";
        }
        m_servers[i].setForeground(m_black);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    privateIP = new TextField();
    privateIP.setLocation(16, 204);
    privateIP.setSize(128, 24);
    this.add(privateIP);
   
    privateServer = new Button();
    privateServer.setText(translate.get(2));
    privateServer.setSize(128, 24);
    privateServer.setLocation(168, 204);
    privateServer.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        GameClient.setHost(getPrivateServer());
      }
    });
    this.add(privateServer);
   
    this.setVisible(false);
  }
 
  public String getPrivateServer() {
    if(privateIP.getText().length() > 0)
      return privateIP.getText();
    else
      return "localhost";
  }
  public void goServer(){
     if(privateIP.getText().length() > 0)
      GameClient.setHost(getPrivateServer());
  }
  public void reloadStrings(){
    List<String> translate = Translator.translate("_LOGIN");
    this.setTitle(translate.get(0));
    m_info.setText(translate.get(1));
    privateServer.setText(translate.get(2));
  }
}
TOP

Related Classes of org.pokenet.client.ui.frames.ServerDialog

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.