The ChatDirector requires a MessageManager, so let's promote that to a real
CrowdContext service instead of sneaking it into the ChatDirector's constructor. That way other CrowdContext users can make use of the MessageManager as well. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6192 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -41,7 +41,6 @@ import com.samskivert.util.ResultListener;
|
||||
import com.samskivert.util.StringUtil;
|
||||
|
||||
import com.threerings.util.MessageBundle;
|
||||
import com.threerings.util.MessageManager;
|
||||
import com.threerings.util.Name;
|
||||
import com.threerings.util.TimeUtil;
|
||||
|
||||
@@ -136,20 +135,19 @@ public class ChatDirector extends BasicDirector
|
||||
* @param msgmgr the message manager via which we do our translations.
|
||||
* @param bundle the message bundle from which we obtain our chat-related translation strings.
|
||||
*/
|
||||
public ChatDirector (CrowdContext ctx, MessageManager msgmgr, String bundle)
|
||||
public ChatDirector (CrowdContext ctx, String bundle)
|
||||
{
|
||||
super(ctx);
|
||||
|
||||
// keep the context around
|
||||
_ctx = ctx;
|
||||
_msgmgr = msgmgr;
|
||||
_bundle = bundle;
|
||||
|
||||
// register ourselves as a location observer
|
||||
_ctx.getLocationDirector().addLocationObserver(this);
|
||||
|
||||
// register our default chat handlers
|
||||
if (_bundle == null || _msgmgr == null) {
|
||||
if (_bundle == null || _ctx.getMessageManager() == null) {
|
||||
log.warning("Null bundle or message manager given to ChatDirector");
|
||||
return;
|
||||
}
|
||||
@@ -161,7 +159,7 @@ public class ChatDirector extends BasicDirector
|
||||
*/
|
||||
protected void registerCommandHandlers ()
|
||||
{
|
||||
MessageBundle msg = _msgmgr.getBundle(_bundle);
|
||||
MessageBundle msg = _ctx.getMessageManager().getBundle(_bundle);
|
||||
registerCommandHandler(msg, "help", new HelpHandler());
|
||||
registerCommandHandler(msg, "clear", new ClearHandler());
|
||||
registerCommandHandler(msg, "speak", new SpeakHandler());
|
||||
@@ -906,7 +904,7 @@ public class ChatDirector extends BasicDirector
|
||||
*/
|
||||
protected StringBuffer translatedReplacements (String key, StringBuffer buf)
|
||||
{
|
||||
MessageBundle bundle = _msgmgr.getBundle(_bundle);
|
||||
MessageBundle bundle = _ctx.getMessageManager().getBundle(_bundle);
|
||||
if (!bundle.exists(key)) {
|
||||
return buf;
|
||||
}
|
||||
@@ -1027,8 +1025,8 @@ public class ChatDirector extends BasicDirector
|
||||
*/
|
||||
protected String xlate (String bundle, String message)
|
||||
{
|
||||
if (bundle != null && _msgmgr != null) {
|
||||
MessageBundle msgb = _msgmgr.getBundle(bundle);
|
||||
if (bundle != null && _ctx.getMessageManager() != null) {
|
||||
MessageBundle msgb = _ctx.getMessageManager().getBundle(bundle);
|
||||
if (msgb == null) {
|
||||
log.warning("No message bundle available to translate message", "bundle", bundle,
|
||||
"message", message);
|
||||
@@ -1405,9 +1403,6 @@ public class ChatDirector extends BasicDirector
|
||||
/** Provides access to chat-related server-side services. */
|
||||
protected ChatService _cservice;
|
||||
|
||||
/** The message manager. */
|
||||
protected MessageManager _msgmgr;
|
||||
|
||||
/** The bundle to use for our own internal messages. */
|
||||
protected String _bundle;
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
|
||||
package com.threerings.crowd.util;
|
||||
|
||||
import com.threerings.util.MessageManager;
|
||||
|
||||
import com.threerings.presents.util.PresentsContext;
|
||||
|
||||
import com.threerings.crowd.chat.client.ChatDirector;
|
||||
@@ -49,6 +51,12 @@ public interface CrowdContext extends PresentsContext
|
||||
*/
|
||||
ChatDirector getChatDirector ();
|
||||
|
||||
/**
|
||||
* Returns a reference to the message manager used by the client to generate localized
|
||||
* messages.
|
||||
*/
|
||||
MessageManager getMessageManager ();
|
||||
|
||||
/**
|
||||
* When the client enters a new place, the location director creates a
|
||||
* place controller which then creates a place view to visualize the
|
||||
|
||||
@@ -157,7 +157,7 @@ public class JabberClient
|
||||
_locdir = new LocationDirector(_ctx);
|
||||
_occdir = new OccupantDirector(_ctx);
|
||||
_msgmgr = new MessageManager(MESSAGE_MANAGER_PREFIX);
|
||||
_chatdir = new ChatDirector(_ctx, _msgmgr, null);
|
||||
_chatdir = new ChatDirector(_ctx, null);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -206,6 +206,11 @@ public class JabberClient
|
||||
return _chatdir;
|
||||
}
|
||||
|
||||
public MessageManager getMessageManager ()
|
||||
{
|
||||
return _msgmgr;
|
||||
}
|
||||
|
||||
public void setPlaceView (PlaceView view)
|
||||
{
|
||||
JPanel panel = (JPanel)view;
|
||||
|
||||
@@ -49,7 +49,8 @@ public class TestClient
|
||||
_client = new Client(new UsernamePasswordCreds(new Name(username), "test"), _rqueue);
|
||||
_locdir = new LocationDirector(_ctx);
|
||||
_occdir = new OccupantDirector(_ctx);
|
||||
_chatdir = new ChatDirector(_ctx, new MessageManager("rsrc"), "global");
|
||||
_msgmgr = new MessageManager("rsrc");
|
||||
_chatdir = new ChatDirector(_ctx, "global");
|
||||
|
||||
// we want to know about logon/logoff
|
||||
_client.addClientObserver(this);
|
||||
@@ -157,6 +158,11 @@ public class TestClient
|
||||
return _chatdir;
|
||||
}
|
||||
|
||||
public MessageManager getMessageManager ()
|
||||
{
|
||||
return _msgmgr;
|
||||
}
|
||||
|
||||
public void setPlaceView (PlaceView view)
|
||||
{
|
||||
// nothing to do because we don't create views
|
||||
@@ -173,6 +179,7 @@ public class TestClient
|
||||
|
||||
protected LocationDirector _locdir;
|
||||
protected OccupantDirector _occdir;
|
||||
protected MessageManager _msgmgr;
|
||||
protected ChatDirector _chatdir;
|
||||
|
||||
protected BasicRunQueue _rqueue = new BasicRunQueue();
|
||||
|
||||
Reference in New Issue
Block a user