Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 68857 Details for
Bug 183192
[presence] IChatRoomContainer needs to allow the sending of private messages
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Proposed patch to have IRCRootContainer propagate the private IMs to other channels.
org.eclipse.ecf.provider.irc-bug13192-provide-private-chat.patch (text/plain), 8.19 KB, created by
Remy Suen
on 2007-05-26 08:58:02 EDT
(
hide
)
Description:
Proposed patch to have IRCRootContainer propagate the private IMs to other channels.
Filename:
MIME Type:
Creator:
Remy Suen
Created:
2007-05-26 08:58:02 EDT
Size:
8.19 KB
patch
obsolete
>Index: src/org/eclipse/ecf/internal/provider/irc/container/IRCChannelContainer.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.ecf/plugins/org.eclipse.ecf.provider.irc/src/org/eclipse/ecf/internal/provider/irc/container/IRCChannelContainer.java,v >retrieving revision 1.9 >diff -u -r1.9 IRCChannelContainer.java >--- src/org/eclipse/ecf/internal/provider/irc/container/IRCChannelContainer.java 17 Apr 2007 17:01:57 -0000 1.9 >+++ src/org/eclipse/ecf/internal/provider/irc/container/IRCChannelContainer.java 26 May 2007 12:57:21 -0000 >@@ -36,6 +36,7 @@ > import org.eclipse.ecf.presence.chatroom.IChatRoomContainer; > import org.eclipse.ecf.presence.chatroom.IChatRoomMessageSender; > import org.eclipse.ecf.presence.chatroom.IChatRoomParticipantListener; >+import org.eclipse.ecf.presence.im.IChatMessageSender; > import org.eclipse.osgi.util.NLS; > import org.schwering.irc.lib.IRCUser; > >@@ -44,7 +45,7 @@ > * > */ > public class IRCChannelContainer extends IRCAbstractContainer implements >- IChatRoomContainer { >+ IChatMessageSender, IChatRoomContainer { > > private static final long CONNECT_TIMEOUT = 10000; > >@@ -322,4 +323,18 @@ > this.channelOperator = channelOperator; > } > >+ public void sendChatMessage(ID toID, ID threadID, >+ org.eclipse.ecf.presence.im.IChatMessage.Type type, String subject, >+ String body, Map properties) throws ECFException { >+ rootContainer.sendChatMessage(toID, body); >+ } >+ >+ public void sendChatMessage(ID toID, String body) throws ECFException { >+ rootContainer.sendChatMessage(toID, body); >+ } >+ >+ public IChatMessageSender getPrivateMessageSender() { >+ return this; >+ } >+ > } >Index: src/org/eclipse/ecf/internal/provider/irc/container/IRCAbstractContainer.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.ecf/plugins/org.eclipse.ecf.provider.irc/src/org/eclipse/ecf/internal/provider/irc/container/IRCAbstractContainer.java,v >retrieving revision 1.8 >diff -u -r1.8 IRCAbstractContainer.java >--- src/org/eclipse/ecf/internal/provider/irc/container/IRCAbstractContainer.java 2 Apr 2007 23:01:47 -0000 1.8 >+++ src/org/eclipse/ecf/internal/provider/irc/container/IRCAbstractContainer.java 26 May 2007 12:57:21 -0000 >@@ -27,6 +27,8 @@ > import org.eclipse.ecf.presence.chatroom.ChatRoomMessage; > import org.eclipse.ecf.presence.chatroom.ChatRoomMessageEvent; > import org.eclipse.ecf.presence.chatroom.IChatRoomAdminListener; >+import org.eclipse.ecf.presence.im.ChatMessage; >+import org.eclipse.ecf.presence.im.ChatMessageEvent; > > public abstract class IRCAbstractContainer extends AbstractContainer { > >@@ -63,8 +65,16 @@ > protected void traceStack(Throwable t, String msg) { > Trace.catching(Activator.PLUGIN_ID, IRCDebugOptions.EXCEPTIONS_CATCHING, this.getClass(), msg, t); > } >+ >+ public void fireChatMessageEvent(ID sender, String msg) { >+ for (Iterator i = msgListeners.iterator(); i.hasNext();) { >+ IIMMessageListener l = (IIMMessageListener) i.next(); >+ l.handleMessageEvent(new ChatMessageEvent(sender, >+ new ChatMessage(sender, msg))); >+ } >+ } > >- public void fireMessageListeners(ID sender, String msg) { >+ public void fireChatRoomMessageEvent(ID sender, String msg) { > for (Iterator i = msgListeners.iterator(); i.hasNext();) { > IIMMessageListener l = (IIMMessageListener) i.next(); > l.handleMessageEvent(new ChatRoomMessageEvent(sender, >Index: src/org/eclipse/ecf/internal/provider/irc/container/IRCRootContainer.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.ecf/plugins/org.eclipse.ecf.provider.irc/src/org/eclipse/ecf/internal/provider/irc/container/IRCRootContainer.java,v >retrieving revision 1.15 >diff -u -r1.15 IRCRootContainer.java >--- src/org/eclipse/ecf/internal/provider/irc/container/IRCRootContainer.java 20 May 2007 03:01:04 -0000 1.15 >+++ src/org/eclipse/ecf/internal/provider/irc/container/IRCRootContainer.java 26 May 2007 12:57:21 -0000 >@@ -43,6 +43,8 @@ > import org.eclipse.ecf.presence.chatroom.IChatRoomParticipantListener; > import org.eclipse.ecf.presence.history.IHistory; > import org.eclipse.ecf.presence.history.IHistoryManager; >+import org.eclipse.ecf.presence.im.IChatMessageSender; >+import org.eclipse.ecf.presence.im.IChatMessage.Type; > import org.eclipse.osgi.util.NLS; > import org.schwering.irc.lib.IRCConnection; > import org.schwering.irc.lib.IRCEventListener; >@@ -57,7 +59,7 @@ > * > */ > public class IRCRootContainer extends IRCAbstractContainer implements >- IContainer, IChatRoomInvitationSender, IChatRoomManager, >+ IContainer, IChatMessageSender, IChatRoomInvitationSender, IChatRoomManager, > IChatRoomContainer, IRCMessageChannel, IChatRoomContainerOptionsAdapter { > > private static final long CONNECT_TIMEOUT = 20000; >@@ -364,13 +366,11 @@ > * @see org.eclipse.ecf.core.IContainer#getAdapter(java.lang.Class) > */ > public Object getAdapter(Class serviceType) { >- if (serviceType == null) >+ if (serviceType != null && serviceType.isInstance(this)) { > return null; >- if (serviceType.equals(IChatRoomManager.class) >- || serviceType.equals(IChatRoomContainerOptionsAdapter.class)) >- return this; >- else >+ } else { > return null; >+ } > } > > /* >@@ -723,27 +723,32 @@ > private void showMessage(String channel, String msg) { > IRCChannelContainer msgChannel = getChannel(channel); > if (msgChannel != null) >- msgChannel.fireMessageListeners(createIDFromString(channel), msg); >+ msgChannel.fireChatRoomMessageEvent(createIDFromString(channel), msg); > else >- fireMessageListeners((channel == null) ? getSystemID() >+ fireChatRoomMessageEvent((channel == null) ? getSystemID() > : createIDFromString(channel), msg); > } > > private void showMessage(String channel, String user, String msg) { > IRCChannelContainer msgChannel = getChannel(channel); >- if (msgChannel != null) >- msgChannel.fireMessageListeners(createIDFromString(user), msg); >- else >- fireMessageListeners(createIDFromString(user), msg); >+ if (msgChannel != null) { >+ msgChannel.fireChatRoomMessageEvent(createIDFromString(user), msg); >+ } else { >+ fireChatMessageEvent(createIDFromString(user), msg); >+ for (Iterator it = channels.values().iterator(); it.hasNext();) { >+ msgChannel = (IRCChannelContainer) it.next(); >+ msgChannel.fireChatMessageEvent(createIDFromString(user), msg); >+ } >+ } > } > > private void showErrorMessage(String channel, String msg) { > IRCChannelContainer msgChannel = getChannel(channel); > if (msgChannel != null) >- msgChannel.fireMessageListeners((username == null) ? getSystemID() >+ msgChannel.fireChatRoomMessageEvent((username == null) ? getSystemID() > : createIDFromString(username), msg); > else >- fireMessageListeners((username == null) ? getSystemID() >+ fireChatRoomMessageEvent((username == null) ? getSystemID() > : createIDFromString(username), msg); > } > >@@ -970,4 +975,20 @@ > } > } > >+ public void sendChatMessage(ID toID, ID threadID, Type type, >+ String subject, String body, Map properties) throws ECFException { >+ sendChatMessage(toID, body); >+ } >+ >+ public void sendChatMessage(ID toID, String body) throws ECFException { >+ if (toID == null) { >+ throw new ECFException(); >+ } >+ connection.doPrivmsg(toID.getName(), body); >+ } >+ >+ public IChatMessageSender getPrivateMessageSender() { >+ return this; >+ } >+ > } >Index: src/org/eclipse/ecf/internal/provider/irc/container/IRCMessageChannel.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.ecf/plugins/org.eclipse.ecf.provider.irc/src/org/eclipse/ecf/internal/provider/irc/container/IRCMessageChannel.java,v >retrieving revision 1.2 >diff -u -r1.2 IRCMessageChannel.java >--- src/org/eclipse/ecf/internal/provider/irc/container/IRCMessageChannel.java 8 Feb 2007 07:27:57 -0000 1.2 >+++ src/org/eclipse/ecf/internal/provider/irc/container/IRCMessageChannel.java 26 May 2007 12:57:21 -0000 >@@ -15,6 +15,6 @@ > > public interface IRCMessageChannel { > >- public void fireMessageListeners(ID sender, String msg); >+ public void fireChatRoomMessageEvent(ID sender, String msg); > > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 183192
: 68857