Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2006-12-29 07:11:40 +0000
committerslewis2006-12-29 07:11:40 +0000
commit57b4b27386a15514bc714a59dae78b898569925f (patch)
tree2410d1834edf896903c494939b2ffd1febdb2e7e /providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/XMPPChatManager.java
parent293cd0cd7e9deffd1cd0597eb7fff1a8d918d0bf (diff)
downloadorg.eclipse.ecf-57b4b27386a15514bc714a59dae78b898569925f.tar.gz
org.eclipse.ecf-57b4b27386a15514bc714a59dae78b898569925f.tar.xz
org.eclipse.ecf-57b4b27386a15514bc714a59dae78b898569925f.zip
Added handling of vcard-temp:x:update namespace for smack extension provider. Also added to IPresence interface access to photo data provided by smack extension provider. Also added implementation in XMPPContainer and XMPPSOClientContainer classes.
Diffstat (limited to 'providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/XMPPChatManager.java')
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/XMPPChatManager.java98
1 files changed, 65 insertions, 33 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/XMPPChatManager.java b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/XMPPChatManager.java
index c6f52d290..f878da5c8 100644
--- a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/XMPPChatManager.java
+++ b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/XMPPChatManager.java
@@ -21,9 +21,12 @@ import org.eclipse.ecf.presence.im.ChatMessage;
import org.eclipse.ecf.presence.im.ChatMessageEvent;
import org.eclipse.ecf.presence.im.IChatManager;
import org.eclipse.ecf.presence.im.IChatMessage;
-import org.eclipse.ecf.presence.im.IChatMessageEvent;
-import org.eclipse.ecf.presence.im.IChatMessageListener;
import org.eclipse.ecf.presence.im.IChatMessageSender;
+import org.eclipse.ecf.presence.im.IIMMessageEvent;
+import org.eclipse.ecf.presence.im.IIMMessageListener;
+import org.eclipse.ecf.presence.im.ITypingMessage;
+import org.eclipse.ecf.presence.im.ITypingMessageSender;
+import org.eclipse.ecf.presence.im.TypingMessageEvent;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Message.Type;
@@ -38,9 +41,45 @@ public class XMPPChatManager implements IChatManager {
protected IChatMessageSender chatMessageSender = new IChatMessageSender() {
- public void sendChatMessage(ID toID, IChatMessage message)
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.presence.im.IChatMessageSender#sendChatMessage(org.eclipse.ecf.core.identity.ID, org.eclipse.ecf.core.identity.ID, org.eclipse.ecf.presence.im.IChatMessage.Type, java.lang.String, java.lang.String)
+ */
+ public void sendChatMessage(ID toID, ID threadID,
+ org.eclipse.ecf.presence.im.IChatMessage.Type type,
+ String subject, String body) throws ECFException {
+ if (toID == null)
+ throw new ECFException("receiver cannot be null");
+ try {
+ presenceHelper.getConnectionOrThrowIfNull().sendMessage(toID,
+ threadID, XMPPChatManager.this.createMessageType(type),
+ subject, body);
+ } catch (IOException e) {
+ throw new ECFException("sendChatMessage exception", e);
+ }
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.presence.im.IChatMessageSender#sendChatMessage(org.eclipse.ecf.core.identity.ID, java.lang.String)
+ */
+ public void sendChatMessage(ID toID, String body) throws ECFException {
+ sendChatMessage(toID, null, IChatMessage.Type.CHAT, null, body);
+ }
+
+ };
+
+
+ protected ITypingMessageSender typingMessageSender = new ITypingMessageSender() {
+
+ public void sendTypingMessage(ID toID, boolean isTyping, String body)
throws ECFException {
- XMPPChatManager.this.sendChatMessage(toID, message);
+ if (toID == null)
+ throw new ECFException("receiver cannot be null");
+ try {
+ presenceHelper.sendTypingMessage(toID, isTyping, body);
+ } catch (IOException e) {
+ throw new ECFException("sendChatMessage exception", e);
+ }
}
};
@@ -49,26 +88,6 @@ public class XMPPChatManager implements IChatManager {
this.presenceHelper = presenceHelper;
}
- /**
- * @param toID
- * @param message
- */
- protected void sendChatMessage(ID toID, IChatMessage message)
- throws ECFException {
- if (toID == null)
- throw new ECFException("receiver cannot be null");
- if (message == null)
- throw new ECFException("message cannot be null");
- try {
- presenceHelper.getConnectionOrThrowIfNull().sendMessage(toID,
- message.getThreadID(),
- createMessageType(message.getType()), message.getSubject(),
- message.getBody());
- } catch (IOException e) {
- throw new ECFException("sendChatMessage exception", e);
- }
- }
-
protected IChatMessage.Type createMessageType(Message.Type type) {
if (type == null)
return IChatMessage.Type.CHAT;
@@ -94,9 +113,9 @@ public class XMPPChatManager implements IChatManager {
/*
* (non-Javadoc)
*
- * @see org.eclipse.ecf.presence.im.IChatManager#addChatMessageListener(org.eclipse.ecf.presence.im.IChatMessageListener)
+ * @see org.eclipse.ecf.presence.im.IChatManager#addChatMessageListener(org.eclipse.ecf.presence.im.IIMMessageListener)
*/
- public void addChatMessageListener(IChatMessageListener listener) {
+ public void addMessageListener(IIMMessageListener listener) {
messageListeners.add(listener);
}
@@ -112,23 +131,36 @@ public class XMPPChatManager implements IChatManager {
/*
* (non-Javadoc)
*
- * @see org.eclipse.ecf.presence.im.IChatManager#removeChatMessageListener(org.eclipse.ecf.presence.im.IChatMessageListener)
+ * @see org.eclipse.ecf.presence.im.IChatManager#removeChatMessageListener(org.eclipse.ecf.presence.im.IIMMessageListener)
*/
- public void removeChatMessageListener(IChatMessageListener listener) {
+ public void removeMessageListener(IIMMessageListener listener) {
messageListeners.remove(listener);
}
- private void fireChatMessageEvent(IChatMessageEvent event) {
+ private void fireMessageEvent(IIMMessageEvent event) {
for (Iterator i = messageListeners.iterator(); i.hasNext();) {
- IChatMessageListener l = (IChatMessageListener) i.next();
- l.handleChatMessageEvent(event);
+ IIMMessageListener l = (IIMMessageListener) i.next();
+ l.handleMessageEvent(event);
}
}
protected void fireChatMessage(ID fromID, ID threadID, Type type,
String subject, String body) {
- fireChatMessageEvent(new ChatMessageEvent(fromID, new ChatMessage(
- threadID, createMessageType(type), subject, body)));
+ fireMessageEvent(new ChatMessageEvent(fromID, new ChatMessage(threadID,
+ createMessageType(type), subject, body)));
+ }
+
+ protected void fireTypingMessage(ID fromID, ITypingMessage typingMessage) {
+ fireMessageEvent(new TypingMessageEvent(fromID, typingMessage));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ecf.presence.im.IChatManager#getTypingMessageSender()
+ */
+ public ITypingMessageSender getTypingMessageSender() {
+ return typingMessageSender;
}
}

Back to the top