r58@sally: elizabeth | 2005-10-25 03:59:59 -0700
Changed things around a bit to have the cheesy JabberChat run out of the box: * ChatDirector no longer freaks out when given null message bundles/managers. * MiCasa's ChatPanel is marked with a TODO item to stop passing in null messagebundles and messagemanagers to ChatDirector. * JabberApp and JabberClient have been adjusted to allow the user to specify which chatroom to join from the command line; I plan to implement this using BootstrapData when time permits. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3741 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -50,13 +50,15 @@ public class JabberApp
|
||||
_client.init(_frame);
|
||||
}
|
||||
|
||||
public void run (String server, int port, String username, String password)
|
||||
public void run (String server, int port, String username, String password,
|
||||
int roomId)
|
||||
{
|
||||
// position everything and show the frame
|
||||
_frame.setSize(800, 600);
|
||||
SwingUtil.centerWindow(_frame);
|
||||
_frame.setVisible(true);
|
||||
|
||||
_client.setRoom(roomId);
|
||||
Client client = _client.getContext().getClient();
|
||||
|
||||
// pass them on to the client
|
||||
@@ -90,6 +92,14 @@ public class JabberApp
|
||||
|
||||
String username = (args.length > 2) ? args[2] : null;
|
||||
String password = (args.length > 3) ? args[3] : null;
|
||||
int roomId = 2;
|
||||
if (args.length > 4) {
|
||||
try {
|
||||
roomId = Integer.parseInt(args[4]);
|
||||
} catch (NumberFormatException e) {
|
||||
// so what?
|
||||
}
|
||||
}
|
||||
|
||||
JabberApp app = new JabberApp();
|
||||
try {
|
||||
@@ -101,7 +111,7 @@ public class JabberApp
|
||||
}
|
||||
|
||||
// and run it
|
||||
app.run(server, port, username, password);
|
||||
app.run(server, port, username, password, roomId);
|
||||
}
|
||||
|
||||
protected JabberClient _client;
|
||||
|
||||
@@ -83,6 +83,14 @@ public class JabberClient
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the roomId to which we will connect upon logon.
|
||||
*/
|
||||
public void setRoom (int roomId)
|
||||
{
|
||||
_roomId = roomId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a reference to the context in effect for this client. This
|
||||
* reference is valid for the lifetime of the application.
|
||||
@@ -100,7 +108,7 @@ public class JabberClient
|
||||
// place on the whole server; a normal client would either issue
|
||||
// an invocation service request at this point or look at
|
||||
// something in the BootstrapData to figure out what to do
|
||||
_ctx.getLocationDirector().moveTo(2);
|
||||
_ctx.getLocationDirector().moveTo(_roomId);
|
||||
}
|
||||
|
||||
// documentation inherited from interface SessionObserver
|
||||
@@ -231,6 +239,7 @@ public class JabberClient
|
||||
protected OccupantDirector _occdir;
|
||||
protected ChatDirector _chatdir;
|
||||
protected MessageManager _msgmgr;
|
||||
protected int _roomId;
|
||||
|
||||
/** The prefix prepended to localization bundle names before looking
|
||||
* them up in the classpath. */
|
||||
|
||||
Reference in New Issue
Block a user