Initial
This commit is contained in:
108
java/JCHAT/ChatAdapter.java
Normal file
108
java/JCHAT/ChatAdapter.java
Normal file
@@ -0,0 +1,108 @@
|
||||
import java.awt.*;
|
||||
import java.applet.*;
|
||||
import java.net.*;
|
||||
import java.io.*;
|
||||
import java.awt.event.*;
|
||||
import java.lang.reflect.*;
|
||||
import com.ms.security.*;
|
||||
|
||||
public class ChatAdapter extends Applet
|
||||
{
|
||||
String mStrLabel=new String();
|
||||
IOManager mIOManager=new IOManager();
|
||||
AdviseThread mAdviseThread=null;
|
||||
GUIControls mGUIControls=null;
|
||||
|
||||
public void init()
|
||||
{
|
||||
setFont(new Font("Courier New",Font.BOLD,12));
|
||||
setBackground(Color.lightGray);
|
||||
mGUIControls=new GUIControls(this);
|
||||
try{if(Class.forName("com.ms.security.PolicyEngine") != null)PolicyEngine.assertPermission(PermissionID.NETIO);}
|
||||
catch(Throwable cnfe){;}
|
||||
mGUIControls.status().setText("Not connected.");
|
||||
}
|
||||
public void stop()
|
||||
{
|
||||
mAdviseThread.isCancelled(true);
|
||||
mIOManager.shutdown();
|
||||
}
|
||||
public void destroy()
|
||||
{
|
||||
}
|
||||
public void paint(Graphics graphics)
|
||||
{
|
||||
}
|
||||
public void showUsers()
|
||||
{
|
||||
StringArray userList=new StringArray();
|
||||
mIOManager.who(userList);
|
||||
if(0==userList.size())mGUIControls.list().addItem(new String("There are no users logged in at this time."));
|
||||
for(int index=0;index<userList.size();index++)
|
||||
{
|
||||
mGUIControls.list().addItem(new String("User;'")+ userList.getAt(index)+new String("' is here."));
|
||||
}
|
||||
}
|
||||
public boolean action(Event event,Object object)
|
||||
{
|
||||
if(mGUIControls.connect()==event.target)
|
||||
{
|
||||
StringArray receiveStrings=new StringArray();
|
||||
String strResponse=new String();
|
||||
String strIPAddress=null;
|
||||
String strAdviseAddress=null;
|
||||
String strPort=null;
|
||||
|
||||
strAdviseAddress=new String(getParameter("advise"));
|
||||
if(null==strAdviseAddress||0==strAdviseAddress.length())strAdviseAddress=new String(AdviseThread.getAdviseAddress());
|
||||
strIPAddress=new String(getParameter("ip"));
|
||||
if(null==strIPAddress||0==strIPAddress.length())strIPAddress=new String("");
|
||||
strPort=new String(getParameter("port"));
|
||||
if(null==strPort||0==strPort.length())strPort=new String("");
|
||||
if(0==mGUIControls.userName().getText().length()){mGUIControls.status().setText("'User Name' cannot be empty.");return false;}
|
||||
if(0!=strIPAddress.length())mGUIControls.status().setText(new String("trying '")+strIPAddress+new String("'"));
|
||||
else mGUIControls.status().setText(new String("trying 'localhost'"));
|
||||
if(0==strPort.length())strPort="100";
|
||||
mIOManager.connect(strIPAddress,Integer.parseInt(strPort));
|
||||
if(!mIOManager.isConnected()){mGUIControls.status().setText("Failed to connect to host.");return true;}
|
||||
else mGUIControls.status().setText("Connection established.");
|
||||
mAdviseThread=new AdviseThread(mGUIControls.list());
|
||||
mAdviseThread.start();
|
||||
mGUIControls.status().setText(new String("Advising server of talkback '")+strAdviseAddress+new String("'"));
|
||||
mIOManager.advise(strAdviseAddress,mAdviseThread.AdvisePort);
|
||||
mGUIControls.status().setText("Logging into server...");
|
||||
if(!mIOManager.user(mGUIControls.userName().getText(),receiveStrings))
|
||||
{
|
||||
mGUIControls.status().setText("Login failed");
|
||||
for(int index=0;index<receiveStrings.size();index++)mGUIControls.list().addItem(receiveStrings.getAt(index));
|
||||
mAdviseThread.isCancelled(true);
|
||||
mIOManager.shutdown();
|
||||
return true;
|
||||
}
|
||||
mStrLabel=mIOManager.version();
|
||||
mGUIControls.connect().setEnabled(false);
|
||||
mGUIControls.disconnect().setEnabled(true);
|
||||
mGUIControls.send().setEnabled(true);
|
||||
mGUIControls.status().setText("Connected.");
|
||||
mGUIControls.list().removeAll();
|
||||
showUsers();
|
||||
}
|
||||
else if(mGUIControls.disconnect()==event.target)
|
||||
{
|
||||
mAdviseThread.isCancelled(true);
|
||||
mIOManager.shutdown();
|
||||
mGUIControls.connect().setEnabled(true);
|
||||
mGUIControls.disconnect().setEnabled(false);
|
||||
mGUIControls.send().setEnabled(false);
|
||||
mGUIControls.status().setText("Not connected.");
|
||||
}
|
||||
else if(mGUIControls.send()==event.target&&mIOManager.isConnected())
|
||||
{
|
||||
mIOManager.talk(mGUIControls.text().getText());
|
||||
mGUIControls.status().setText("Message sent.");
|
||||
mGUIControls.text().setText("");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user