|
From: <tre...@us...> - 2007-11-27 01:55:22
|
Revision: 606
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=606&view=rev
Author: trevorolio
Date: 2007-11-26 17:55:25 -0800 (Mon, 26 Nov 2007)
Log Message:
-----------
Added a little tink noise to incoming chat messages.
This can be disabled using /quiet and enabled using /loud
Modified Paths:
--------------
maven/trunk/ogoglio-viewer-applet/src/main/java/com/ogoglio/viewer/applet/ViewerApplet.java
Modified: maven/trunk/ogoglio-viewer-applet/src/main/java/com/ogoglio/viewer/applet/ViewerApplet.java
===================================================================
--- maven/trunk/ogoglio-viewer-applet/src/main/java/com/ogoglio/viewer/applet/ViewerApplet.java 2007-11-27 01:55:23 UTC (rev 605)
+++ maven/trunk/ogoglio-viewer-applet/src/main/java/com/ogoglio/viewer/applet/ViewerApplet.java 2007-11-27 01:55:25 UTC (rev 606)
@@ -14,6 +14,7 @@
package com.ogoglio.viewer.applet;
import java.applet.Applet;
+import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
@@ -66,6 +67,12 @@
private ChatPanel chatPanel = new ChatPanel(new ChatPanelListener());
+ private boolean showChat = true;
+
+ private boolean playIncomingChatAudio = true;
+
+ AudioClip incomingChatAudioClip = null;
+
public ViewerApplet() {
setBackground(Color.WHITE);
setLayout(new BorderLayout());
@@ -97,7 +104,7 @@
float ry = getFloatParameter("ry", 0);
float rz = getFloatParameter("rz", 0);
boolean movable = !"false".equals(getParameter("movable"));
- boolean showChat = !"false".equals(getParameter("showChat"));
+ showChat = !"false".equals(getParameter("showChat"));
try {
serviceURI = new URI(getParameter("serviceURI"));
@@ -115,7 +122,12 @@
removeAll();
validate();
- if(showChat){
+ if (showChat) {
+ try {
+ incomingChatAudioClip = getAudioClip(getCodeBase(), WebConstants.INCOMING_CHAT_SOUND_PATH);
+ } catch (NullPointerException e) {
+ Log.warn("Could not load incoming chat sound, which happens in the test window, for some reason");
+ }
renderer.getCanvas().setSize(getWidth(), getHeight() - chatPanel.getPreferredSize().height);
renderer.getCanvas().setPreferredSize(new Dimension(getWidth(), getHeight() - chatPanel.getPreferredSize().height));
add(chatPanel, BorderLayout.SOUTH);
@@ -208,13 +220,19 @@
private class ChatPanelListener implements ChatPanel.Listener {
public void userReleasedFocus() {
- if(renderer != null && renderer.getCanvas() != null){
+ if (renderer != null && renderer.getCanvas() != null) {
renderer.getCanvas().requestFocus();
}
}
public void userSentMessage(String message) {
- spaceClient.userIssuedCommand(message);
+ if ("/quiet".equals(message)) {
+ playIncomingChatAudio = false;
+ } else if ("/loud".equals(message)) {
+ playIncomingChatAudio = true;
+ } else {
+ spaceClient.userIssuedCommand(message);
+ }
}
}
@@ -310,11 +328,16 @@
}
public void receivedChatMessage(String username, String message) {
+ if (!showChat) {
+ return;
+ }
if (username != null && username.startsWith(WebConstants.GUEST_COOKIE_PREFIX)) {
username = J3DUserRenderable.convertGuestCookieToDisplayName(username);
}
-
chatPanel.displayMessage(username, message);
+ if (playIncomingChatAudio && incomingChatAudioClip != null) {
+ incomingChatAudioClip.play();
+ }
}
public void receivedSpaceTransfer(URI link) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|