Chat revamp, phase 2.
- FeedbackMessage has been subsumed into SystemMessage, which now has three modes: INFO, FEEDBACK, or ATTENTION. - Cleaned up methods for sending those system messages. - on the server: sendInfo(), sendFeedback(), sendAttention() - on the client: displayInfo(), displayFeedback(), displayAttention(). git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2635 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: ChatDirector.java,v 1.45 2003/06/03 23:36:18 ray Exp $
|
// $Id: ChatDirector.java,v 1.46 2003/06/04 02:50:18 ray Exp $
|
||||||
|
|
||||||
package com.threerings.crowd.chat.client;
|
package com.threerings.crowd.chat.client;
|
||||||
|
|
||||||
@@ -28,7 +28,6 @@ import com.threerings.crowd.util.CrowdContext;
|
|||||||
|
|
||||||
import com.threerings.crowd.chat.data.ChatCodes;
|
import com.threerings.crowd.chat.data.ChatCodes;
|
||||||
import com.threerings.crowd.chat.data.ChatMessage;
|
import com.threerings.crowd.chat.data.ChatMessage;
|
||||||
import com.threerings.crowd.chat.data.FeedbackMessage;
|
|
||||||
import com.threerings.crowd.chat.data.SystemMessage;
|
import com.threerings.crowd.chat.data.SystemMessage;
|
||||||
import com.threerings.crowd.chat.data.TellFeedbackMessage;
|
import com.threerings.crowd.chat.data.TellFeedbackMessage;
|
||||||
import com.threerings.crowd.chat.data.UserMessage;
|
import com.threerings.crowd.chat.data.UserMessage;
|
||||||
@@ -209,64 +208,69 @@ public class ChatDirector extends BasicDirector
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Requests that the specified system message be dispatched to all
|
* Display a system INFO message as if it had come from the server.
|
||||||
* registered chat displays. The message will be delivered as if it
|
* The localtype of the message will be PLACE_CHAT_TYPE.
|
||||||
* were received on the main chat object (meaning the chat type will
|
|
||||||
* be {@link ChatCodes#PLACE_CHAT_TYPE}).
|
|
||||||
*
|
*
|
||||||
* @param bundle the message bundle identifier that should be used to
|
* Info messages are sent when something happens that was neither
|
||||||
* localize this message.
|
* directly triggered by the user, nor requires direct action.
|
||||||
* @param message the localizable message string.
|
|
||||||
*/
|
*/
|
||||||
public void displaySystemMessage (String bundle, String message)
|
public void displayInfo (String bundle, String message)
|
||||||
{
|
{
|
||||||
displaySystemMessage(bundle, message, PLACE_CHAT_TYPE);
|
displaySystem(bundle, message, SystemMessage.INFO, PLACE_CHAT_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Requests that the specified system message be dispatched to all
|
* Display a system INFO message as if it had come from the server.
|
||||||
* registered chat displays.
|
|
||||||
*
|
*
|
||||||
* @param bundle the message bundle identifier that should be used to
|
* Info messages are sent when something happens that was neither
|
||||||
* localize this message.
|
* directly triggered by the user, nor requires direct action.
|
||||||
* @param message the localizable message string.
|
|
||||||
* @param localtype {@link ChatCodes#PLACE_CHAT_TYPE} if the message was
|
|
||||||
* received on the place object or the type associated with the
|
|
||||||
* auxiliary chat object on which the message was received.
|
|
||||||
*/
|
*/
|
||||||
public void displaySystemMessage (
|
public void displayInfo (String bundle, String message, String localtype)
|
||||||
String bundle, String message, String localtype)
|
|
||||||
{
|
{
|
||||||
|
displaySystem(bundle, message, SystemMessage.INFO, localtype);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display a system FEEDBACK message as if it had come from the server.
|
||||||
|
* The localtype of the message will be PLACE_CHAT_TYPE.
|
||||||
|
*
|
||||||
|
* Feedback messages are sent in direct response to a user action,
|
||||||
|
* usually to indicate success or failure of the user's action.
|
||||||
|
*/
|
||||||
|
public void displayFeedback (String bundle, String message)
|
||||||
|
{
|
||||||
|
displaySystem(
|
||||||
|
bundle, message, SystemMessage.FEEDBACK, PLACE_CHAT_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display a system ATTENTION message as if it had come from the server.
|
||||||
|
* The localtype of the message will be PLACE_CHAT_TYPE.
|
||||||
|
*
|
||||||
|
* Attention messages are sent when something requires user action
|
||||||
|
* that did not result from direct action by the user.
|
||||||
|
*/
|
||||||
|
public void displayAttention (String bundle, String message)
|
||||||
|
{
|
||||||
|
displaySystem(
|
||||||
|
bundle, message, SystemMessage.ATTENTION, PLACE_CHAT_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified system message as if it had come from the server.
|
||||||
|
*/
|
||||||
|
protected void displaySystem (
|
||||||
|
String bundle, String message, byte attLevel, String localtype)
|
||||||
|
{
|
||||||
|
// nothing should be untranslated, so pass the default bundle if need
|
||||||
|
// be.
|
||||||
|
if (bundle == null) {
|
||||||
|
bundle = _bundle;
|
||||||
|
}
|
||||||
SystemMessage msg = new SystemMessage();
|
SystemMessage msg = new SystemMessage();
|
||||||
msg.setClientInfo(xlate(bundle, message), localtype);
|
msg.attentionLevel = attLevel;
|
||||||
dispatchMessage(msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Displays a feedback message translated with the default bundle.
|
|
||||||
*/
|
|
||||||
public void displayFeedbackMessage (String message)
|
|
||||||
{
|
|
||||||
displayFeedbackMessage(_bundle, message);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Displays a feedback message.
|
|
||||||
*/
|
|
||||||
public void displayFeedbackMessage (String bundle, String message)
|
|
||||||
{
|
|
||||||
displayFeedbackMessage(bundle, message, PLACE_CHAT_TYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Displays a feedback message.
|
|
||||||
*/
|
|
||||||
public void displayFeedbackMessage (String bundle, String message,
|
|
||||||
String localtype)
|
|
||||||
{
|
|
||||||
FeedbackMessage msg = new FeedbackMessage();
|
|
||||||
msg.setClientInfo(xlate(bundle, message), localtype);
|
msg.setClientInfo(xlate(bundle, message), localtype);
|
||||||
dispatchMessage(msg);
|
dispatchMessage(msg);
|
||||||
}
|
}
|
||||||
@@ -333,7 +337,7 @@ public class ChatDirector extends BasicDirector
|
|||||||
_cservice.broadcast(
|
_cservice.broadcast(
|
||||||
_ctx.getClient(), message, new ChatService.InvocationListener() {
|
_ctx.getClient(), message, new ChatService.InvocationListener() {
|
||||||
public void requestFailed (String reason) {
|
public void requestFailed (String reason) {
|
||||||
displayFeedbackMessage(
|
displayFeedback(
|
||||||
_bundle, MessageBundle.compose(
|
_bundle, MessageBundle.compose(
|
||||||
"m.broadcast_failed", reason));
|
"m.broadcast_failed", reason));
|
||||||
}
|
}
|
||||||
@@ -388,7 +392,7 @@ public class ChatDirector extends BasicDirector
|
|||||||
public void requestFailed (String reason) {
|
public void requestFailed (String reason) {
|
||||||
String msg = MessageBundle.compose(
|
String msg = MessageBundle.compose(
|
||||||
"m.tell_failed", MessageBundle.taint(target), reason);
|
"m.tell_failed", MessageBundle.taint(target), reason);
|
||||||
displayFeedbackMessage(_bundle, msg);
|
displayFeedback(_bundle, msg);
|
||||||
if (rl != null) {
|
if (rl != null) {
|
||||||
rl.requestFailed(null);
|
rl.requestFailed(null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: MuteDirector.java,v 1.8 2003/06/03 21:41:33 ray Exp $
|
// $Id: MuteDirector.java,v 1.9 2003/06/04 02:50:18 ray Exp $
|
||||||
|
|
||||||
package com.threerings.crowd.chat.client;
|
package com.threerings.crowd.chat.client;
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ public class MuteDirector extends BasicDirector
|
|||||||
public void setMuted (String username, boolean mute)
|
public void setMuted (String username, boolean mute)
|
||||||
{
|
{
|
||||||
if (mute ? _mutelist.add(username) : _mutelist.remove(username)) {
|
if (mute ? _mutelist.add(username) : _mutelist.remove(username)) {
|
||||||
_chatdir.displayFeedbackMessage(MessageBundle.tcompose(
|
_chatdir.displayFeedback(null, MessageBundle.tcompose(
|
||||||
mute ? "m.muted" : "m.unmuted", username));
|
mute ? "m.muted" : "m.unmuted", username));
|
||||||
notifyObservers(username, mute);
|
notifyObservers(username, mute);
|
||||||
}
|
}
|
||||||
@@ -123,7 +123,7 @@ public class MuteDirector extends BasicDirector
|
|||||||
public boolean validateTell (String target, String msg)
|
public boolean validateTell (String target, String msg)
|
||||||
{
|
{
|
||||||
if (isMuted(target)) {
|
if (isMuted(target)) {
|
||||||
_chatdir.displayFeedbackMessage("m.no_tell_mute");
|
_chatdir.displayFeedback(null, "m.no_tell_mute");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
//
|
|
||||||
// $Id: FeedbackMessage.java,v 1.2 2003/06/03 21:41:33 ray Exp $
|
|
||||||
|
|
||||||
package com.threerings.crowd.chat.data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A ChatMessage to indicate to the user that an action they took
|
|
||||||
* has been processed.
|
|
||||||
*/
|
|
||||||
public class FeedbackMessage extends ChatMessage
|
|
||||||
{
|
|
||||||
public FeedbackMessage ()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Construct a FeedbackMessage.
|
|
||||||
*/
|
|
||||||
public FeedbackMessage (String message, String localtype)
|
|
||||||
{
|
|
||||||
super(message, localtype);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: SystemMessage.java,v 1.2 2003/06/03 21:41:33 ray Exp $
|
// $Id: SystemMessage.java,v 1.3 2003/06/04 02:50:18 ray Exp $
|
||||||
|
|
||||||
package com.threerings.crowd.chat.data;
|
package com.threerings.crowd.chat.data;
|
||||||
|
|
||||||
@@ -9,6 +9,23 @@ package com.threerings.crowd.chat.data;
|
|||||||
*/
|
*/
|
||||||
public class SystemMessage extends ChatMessage
|
public class SystemMessage extends ChatMessage
|
||||||
{
|
{
|
||||||
|
/** Attention level constant to indicate that this message is merely
|
||||||
|
* providing the user with information. */
|
||||||
|
public static final byte INFO = 0;
|
||||||
|
|
||||||
|
/** Attention level constant to indicate that this message is the
|
||||||
|
* result of a user action. */
|
||||||
|
public static final byte FEEDBACK = 1;
|
||||||
|
|
||||||
|
/** Attention level constant to indicate that some action is required. */
|
||||||
|
public static final byte ATTENTION = 2;
|
||||||
|
|
||||||
|
//----
|
||||||
|
|
||||||
|
/** The attention level of this message. */
|
||||||
|
public byte attentionLevel;
|
||||||
|
|
||||||
|
// documentation inherited
|
||||||
public SystemMessage ()
|
public SystemMessage ()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -16,8 +33,9 @@ public class SystemMessage extends ChatMessage
|
|||||||
/**
|
/**
|
||||||
* Construct a SystemMessage.
|
* Construct a SystemMessage.
|
||||||
*/
|
*/
|
||||||
public SystemMessage (String message, String bundle)
|
public SystemMessage (String message, String bundle, byte attentionLevel)
|
||||||
{
|
{
|
||||||
super(message, bundle);
|
super(message, bundle);
|
||||||
|
this.attentionLevel = attentionLevel;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
//
|
//
|
||||||
// $Id: TellFeedbackMessage.java,v 1.1 2003/06/03 23:46:10 ray Exp $
|
// $Id: TellFeedbackMessage.java,v 1.2 2003/06/04 02:50:18 ray Exp $
|
||||||
|
|
||||||
package com.threerings.crowd.chat.data;
|
package com.threerings.crowd.chat.data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A feedback message to indicate that a tell succeeded.
|
* A feedback message to indicate that a tell succeeded.
|
||||||
*/
|
*/
|
||||||
public class TellFeedbackMessage extends FeedbackMessage
|
public class TellFeedbackMessage extends ChatMessage
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* A tell feedback message is only composed on the client.
|
* A tell feedback message is only composed on the client.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: SpeakProvider.java,v 1.5 2003/06/03 21:41:33 ray Exp $
|
// $Id: SpeakProvider.java,v 1.6 2003/06/04 02:50:18 ray Exp $
|
||||||
|
|
||||||
package com.threerings.crowd.chat.server;
|
package com.threerings.crowd.chat.server;
|
||||||
|
|
||||||
@@ -125,21 +125,75 @@ public class SpeakProvider
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends a system message notification to the specified object with
|
* Sends a system INFO message notification to the specified object with
|
||||||
* the supplied message content. A system message is one that will be
|
* the supplied message content. A system message is one that will be
|
||||||
* rendered where the speak messages are rendered, but in a way that
|
* rendered where the speak messages are rendered, but in a way that
|
||||||
* makes it clear that it is a message from the server.
|
* makes it clear that it is a message from the server.
|
||||||
*
|
*
|
||||||
|
* Info messages are sent when something happens that was neither
|
||||||
|
* directly triggered by the user, nor requires direct action.
|
||||||
|
*
|
||||||
* @param speakObj the object on which to deliver the message.
|
* @param speakObj the object on which to deliver the message.
|
||||||
* @param bundle the name of the localization bundle that should be
|
* @param bundle the name of the localization bundle that should be
|
||||||
* used to translate this system message prior to displaying it to the
|
* used to translate this system message prior to displaying it to the
|
||||||
* client.
|
* client.
|
||||||
* @param message the text of the message.
|
* @param message the text of the message.
|
||||||
*/
|
*/
|
||||||
public static void sendSystemSpeak (
|
public static void sendInfo (
|
||||||
DObject speakObj, String bundle, String message)
|
DObject speakObj, String bundle, String message)
|
||||||
{
|
{
|
||||||
sendMessage(speakObj, new SystemMessage(message, bundle));
|
sendSystem(speakObj, bundle, message, SystemMessage.INFO);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends a system FEEDBACK message notification to the specified
|
||||||
|
* object with the supplied message content. A system message is one
|
||||||
|
* that will be rendered where the speak messages are rendered,
|
||||||
|
* but in a way that makes it clear that it is a message from the server.
|
||||||
|
*
|
||||||
|
* Feedback messages are sent in direct response to a user action,
|
||||||
|
* usually to indicate success or failure of the user's action.
|
||||||
|
*
|
||||||
|
* @param speakObj the object on which to deliver the message.
|
||||||
|
* @param bundle the name of the localization bundle that should be
|
||||||
|
* used to translate this system message prior to displaying it to the
|
||||||
|
* client.
|
||||||
|
* @param message the text of the message.
|
||||||
|
*/
|
||||||
|
public static void sendFeedback (
|
||||||
|
DObject speakObj, String bundle, String message)
|
||||||
|
{
|
||||||
|
sendSystem(speakObj, bundle, message, SystemMessage.FEEDBACK);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends a system ATTENTION message notification to the specified
|
||||||
|
* object with the supplied message content. A system message is one
|
||||||
|
* that will be rendered where the speak messages are rendered,
|
||||||
|
* but in a way that makes it clear that it is a message from the server.
|
||||||
|
*
|
||||||
|
* Attention messages are sent when something requires user action
|
||||||
|
* that did not result from direct action by the user.
|
||||||
|
*
|
||||||
|
* @param speakObj the object on which to deliver the message.
|
||||||
|
* @param bundle the name of the localization bundle that should be
|
||||||
|
* used to translate this system message prior to displaying it to the
|
||||||
|
* client.
|
||||||
|
* @param message the text of the message.
|
||||||
|
*/
|
||||||
|
public static void sendAttention (
|
||||||
|
DObject speakObj, String bundle, String message)
|
||||||
|
{
|
||||||
|
sendSystem(speakObj, bundle, message, SystemMessage.ATTENTION);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send the specified system message on the specified dobj.
|
||||||
|
*/
|
||||||
|
protected static void sendSystem (
|
||||||
|
DObject speakObj, String bundle, String message, byte attLevel)
|
||||||
|
{
|
||||||
|
sendMessage(speakObj, new SystemMessage(message, bundle, attLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: ChatPanel.java,v 1.24 2003/06/03 23:36:18 ray Exp $
|
// $Id: ChatPanel.java,v 1.25 2003/06/04 02:50:19 ray Exp $
|
||||||
|
|
||||||
package com.threerings.micasa.client;
|
package com.threerings.micasa.client;
|
||||||
|
|
||||||
@@ -38,7 +38,6 @@ import com.threerings.crowd.chat.client.ChatDirector;
|
|||||||
import com.threerings.crowd.chat.client.ChatDisplay;
|
import com.threerings.crowd.chat.client.ChatDisplay;
|
||||||
import com.threerings.crowd.chat.data.ChatCodes;
|
import com.threerings.crowd.chat.data.ChatCodes;
|
||||||
import com.threerings.crowd.chat.data.ChatMessage;
|
import com.threerings.crowd.chat.data.ChatMessage;
|
||||||
import com.threerings.crowd.chat.data.FeedbackMessage;
|
|
||||||
import com.threerings.crowd.chat.data.SystemMessage;
|
import com.threerings.crowd.chat.data.SystemMessage;
|
||||||
import com.threerings.crowd.chat.data.UserMessage;
|
import com.threerings.crowd.chat.data.UserMessage;
|
||||||
|
|
||||||
@@ -240,8 +239,7 @@ public class ChatPanel
|
|||||||
append(msg.message + "\n", _msgStyle);
|
append(msg.message + "\n", _msgStyle);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if ((message instanceof SystemMessage) ||
|
} else if (message instanceof SystemMessage) {
|
||||||
(message instanceof FeedbackMessage)) {
|
|
||||||
append(message.message + "\n", _noticeStyle);
|
append(message.message + "\n", _noticeStyle);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: GameManager.java,v 1.64 2003/06/03 21:41:33 ray Exp $
|
// $Id: GameManager.java,v 1.65 2003/06/04 02:50:19 ray Exp $
|
||||||
|
|
||||||
package com.threerings.parlor.game;
|
package com.threerings.parlor.game;
|
||||||
|
|
||||||
@@ -344,7 +344,7 @@ public class GameManager extends PlaceManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
// otherwise, just deliver the message
|
// otherwise, just deliver the message
|
||||||
SpeakProvider.sendSystemSpeak(_gameobj, msgbundle, msg);
|
SpeakProvider.sendInfo(_gameobj, msgbundle, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// documentation inherited
|
// documentation inherited
|
||||||
|
|||||||
Reference in New Issue
Block a user