Author: ilya_shaikovsky
Date: 2011-03-11 06:30:49 -0500 (Fri, 11 Mar 2011)
New Revision: 22157
Added:
branches/4.0.X/examples/irc-client/src/main/java/org/ircclient/controller/Message.java
Modified:
branches/4.0.X/examples/irc-client/src/main/java/org/ircclient/controller/ChatBean.java
branches/4.0.X/examples/irc-client/src/main/webapp/chat.xhtml
branches/4.0.X/examples/irc-client/src/main/webapp/welcome.xhtml
Log:
irc-client, clean-up according to Nick review performed.
@Nick checked the result prior to commit
Modified:
branches/4.0.X/examples/irc-client/src/main/java/org/ircclient/controller/ChatBean.java
===================================================================
---
branches/4.0.X/examples/irc-client/src/main/java/org/ircclient/controller/ChatBean.java 2011-03-11
11:07:30 UTC (rev 22156)
+++
branches/4.0.X/examples/irc-client/src/main/java/org/ircclient/controller/ChatBean.java 2011-03-11
11:30:49 UTC (rev 22157)
@@ -2,7 +2,7 @@
import java.io.IOException;
import java.io.Serializable;
-import java.text.MessageFormat;
+import java.text.DateFormat;
import java.util.Date;
import javax.faces.application.FacesMessage;
@@ -35,6 +35,7 @@
private String channelName;
private String message;
+
private transient TopicsContext topicsContext;
public String connect() {
@@ -47,17 +48,20 @@
null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, this.getName() + "
nick already in use", this.getName()
+ " nick already in use"));
+ return null;
} catch (IOException e) {
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, "Sorry, server
unresponsible. Try again later.",
"Sorry, server unresponsible. Try again later."));
+ return null;
} catch (IrcException e) {
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_ERROR,
"Sorry, we encountered IRC services problems. Try again
later.",
"Sorry, we encountered IRC services problems. Try again
later."));
+ return null;
}
return "chat";
}
@@ -74,12 +78,19 @@
return topicsContext;
}
+ public String getMessagesSubtopic() {
+ return this.getUserName() + SUBTOPIC_SEPARATOR + channelName;
+ }
+
+ public String getListSubtopic() {
+ return this.getUserName() + SUBTOPIC_SEPARATOR + channelName + "List";
+ }
+
@Override
protected void onMessage(String channel, String sender, String login, String
hostname, String message) {
- String channelName = channel.replace(CHANNEL_PREFIX, "");
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName()
+ SUBTOPIC_SEPARATOR + channelName),
- MessageFormat.format("{0,time,medium} {1}: {2}", new Date(),
sender, message));
+ Message messageObject = new Message(message, sender,
DateFormat.getInstance().format(new Date()));
+ getTopicsContext().publish(new TopicKey("chat",
getMessagesSubtopic()), messageObject);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -88,7 +99,7 @@
@Override
protected void onUserList(String channel, User[] users) {
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName()
+ SUBTOPIC_SEPARATOR + channelName + "List"), null);
+ getTopicsContext().publish(new TopicKey("chat", getListSubtopic()),
null);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -97,9 +108,9 @@
@Override
protected void onJoin(String channel, String sender, String login, String hostname)
{
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName()
+ SUBTOPIC_SEPARATOR + channelName + "List"), null);
- getTopicsContext().publish(new TopicKey("chat", this.getUserName()
+ SUBTOPIC_SEPARATOR + channelName),
- MessageFormat.format("{0,time,medium} {1}: {2}", new Date(),
sender, "joined channel"));
+ getTopicsContext().publish(new TopicKey("chat", getListSubtopic()),
null);
+ Message messageObject = new Message("joined channel", sender,
DateFormat.getInstance().format(new Date()));
+ getTopicsContext().publish(new TopicKey("chat",
getMessagesSubtopic()), messageObject);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -108,9 +119,9 @@
@Override
protected void onPart(String channel, String sender, String login, String hostname)
{
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName()
+ SUBTOPIC_SEPARATOR + channelName + "List"), null);
- getTopicsContext().publish(new TopicKey("chat", this.getUserName()
+ SUBTOPIC_SEPARATOR + channelName),
- MessageFormat.format("{0,time,medium} {1}: {2}", new Date(),
sender, "left channel"));
+ getTopicsContext().publish(new TopicKey("chat", getListSubtopic()),
null);
+ Message messageObject = new Message("left channel", sender,
DateFormat.getInstance().format(new Date()));
+ getTopicsContext().publish(new TopicKey("chat",
getMessagesSubtopic()), messageObject);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -119,9 +130,10 @@
@Override
protected void onNickChange(String oldNick, String login, String hostname, String
newNick) {
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName()
+ SUBTOPIC_SEPARATOR + channelName + "List"), null);
- getTopicsContext().publish(new TopicKey("chat", this.getUserName()
+ SUBTOPIC_SEPARATOR + channelName),
- MessageFormat.format("{0,time,medium} {1}", new Date(), oldNick
+ " changed nick to " + newNick));
+ getTopicsContext().publish(new TopicKey("chat", getListSubtopic()),
null);
+ Message messageObject = new Message(" changed nick to " + newNick,
oldNick, DateFormat.getInstance()
+ .format(new Date()));
+ getTopicsContext().publish(new TopicKey("chat",
getMessagesSubtopic()), messageObject);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -130,9 +142,10 @@
@Override
protected void onQuit(String sourceNick, String sourceLogin, String sourceHostname,
String reason) {
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName()
+ SUBTOPIC_SEPARATOR + channelName + "List"), null);
- getTopicsContext().publish(new TopicKey("chat", this.getUserName()
+ SUBTOPIC_SEPARATOR + channelName),
- MessageFormat.format("{0,time,medium} {1}: {2} {3}", new
Date(), sourceNick, "joined channel", reason));
+ getTopicsContext().publish(new TopicKey("chat", getListSubtopic()),
null);
+ Message messageObject = new Message("left channel" + reason,
sourceNick, DateFormat.getInstance().format(
+ new Date()));
+ getTopicsContext().publish(new TopicKey("chat",
getMessagesSubtopic()), messageObject);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -145,8 +158,8 @@
public void send() {
this.sendMessage(CHANNEL_PREFIX + channelName, message);
try {
- getTopicsContext().publish(new TopicKey("chat", this.getUserName()
+ SUBTOPIC_SEPARATOR + channelName),
- MessageFormat.format("{0,time,medium} {1}: {2}", new Date(),
this.getName(), message));
+ Message messageObject = new Message(message, this.getName(),
DateFormat.getInstance().format(new Date()));
+ getTopicsContext().publish(new TopicKey("chat",
getMessagesSubtopic()), messageObject);
} catch (MessageException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -187,4 +200,5 @@
public void setMessage(String message) {
this.message = message;
}
+
}
Added:
branches/4.0.X/examples/irc-client/src/main/java/org/ircclient/controller/Message.java
===================================================================
---
branches/4.0.X/examples/irc-client/src/main/java/org/ircclient/controller/Message.java
(rev 0)
+++
branches/4.0.X/examples/irc-client/src/main/java/org/ircclient/controller/Message.java 2011-03-11
11:30:49 UTC (rev 22157)
@@ -0,0 +1,40 @@
+package org.ircclient.controller;
+
+public class Message {
+
+ private String text;
+ private String author;
+ private String timestamp;
+
+ public Message(String text, String author, String timestamp) {
+ super();
+ this.text = text;
+ this.author = author;
+ this.timestamp = timestamp;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+
+ public String getTimestamp() {
+ return timestamp;
+ }
+
+ public void setTimestamp(String timestamp) {
+ this.timestamp = timestamp;
+ }
+
+}
Modified: branches/4.0.X/examples/irc-client/src/main/webapp/chat.xhtml
===================================================================
--- branches/4.0.X/examples/irc-client/src/main/webapp/chat.xhtml 2011-03-11 11:07:30 UTC
(rev 22156)
+++ branches/4.0.X/examples/irc-client/src/main/webapp/chat.xhtml 2011-03-11 11:30:49 UTC
(rev 22157)
@@ -9,22 +9,28 @@
template="/templates/template.xhtml">
<ui:define name="body">
<style>
-.chatOutput {
- overflow: auto;
- width: 80%;
- height: 200px;
- float: left;
-}
-
-.chatList {
- float: right;
- width: 19%;
- height: 200px;
- overflow: auto;
-}
-</style>
+ .chatOutput {
+ overflow: auto;
+ width: 80%;
+ height: 200px;
+ float: left;
+ }
+
+ .chatList {
+ float: right;
+ width: 19%;
+ height: 200px;
+ overflow: auto;
+ }
+ </style>
+ <script>
+ function getMessageString(data){
+ return data.author + " - " +data.timestamp+ ": " + data.text;
+ }
+ </script>
<rich:panel
- header="Welcome to #{chatBean.channelName} channel at
#{chatBean.serverName}" id="chatpanel">
+ header="Welcome to #{chatBean.channelName} channel at
#{chatBean.serverName}"
+ id="chatpanel">
<rich:panel styleClass="chatOutput"
bodyClass="#{chatBean.channelName}Output" />
<rich:panel styleClass="chatList">
@@ -36,13 +42,13 @@
<br clear="all" />
<hr />
<h:form>
- <a4j:push
address="#{chatBean.userName}_#{chatBean.channelName}List@chat"
+ <a4j:push address="#{chatBean.listSubtopic}@chat"
onerror="alert(event.rf.data)">
<a4j:ajax event="dataavailable" render="users"
execute="@none" />
</a4j:push>
- <a4j:push address="#{chatBean.userName}_#{chatBean.channelName}@chat"
+ <a4j:push address="#{chatBean.messagesSubtopic}@chat"
onerror="alert(event.rf.data)"
- ondataavailable="jQuery('<div
/>').prependTo('.#{chatBean.channelName}Output').text(event.rf.data)"
/>
+ ondataavailable="jQuery('<div
/>').prependTo('.#{chatBean.channelName}Output').text(getMessageString(event.rf.data))"
/>
<h:inputTextarea value="#{chatBean.message}" rows="3"
style="width:80%" id="nm" />
<a4j:commandButton value="Send" action="#{chatBean.send}"
@@ -52,9 +58,9 @@
<h:form>
<rich:panel header="Change nickname:">
<h:inputText valueChangeListener="#{chatBean.changeNick}"
id="cn" />
- <a4j:commandButton value="Change" execute="@form"
render="@none"/>
+ <a4j:commandButton value="Change" execute="@form"
render="@none" />
</rich:panel>
- <h:commandButton value="Disconnect"
action="#{chatBean.leave}"/>
+ <h:commandButton value="Disconnect" action="#{chatBean.leave}"
/>
</h:form>
</rich:panel>
</ui:define>
Modified: branches/4.0.X/examples/irc-client/src/main/webapp/welcome.xhtml
===================================================================
--- branches/4.0.X/examples/irc-client/src/main/webapp/welcome.xhtml 2011-03-11 11:07:30
UTC (rev 22156)
+++ branches/4.0.X/examples/irc-client/src/main/webapp/welcome.xhtml 2011-03-11 11:30:49
UTC (rev 22157)
@@ -8,26 +8,9 @@
xmlns:c="http://java.sun.com/jsp/jstl/core"
template="/templates/template.xhtml">
<ui:define name="body">
- <style>
-.chatOutput {
- overflow: auto;
- width: 80%;
- height: 200px;
- float: left;
-}
-
-.chatList {
- float: right;
- width: 19%;
- height: 200px;
- overflow: auto;
-}
-</style>
<rich:panel header="Connect to IRC">
<h:form>
- <a4j:outputPanel ajaxRendered="true">
- <h:messages style="color:red" />
- </a4j:outputPanel>
+ <rich:messages style="color:red" />
<h:panelGrid columns="2">
<h:outputText value="Your nickname:" />
<h:inputText required="true" id="name"
value="#{chatBean.userName}" />