diff options
author | slewis | 2006-05-08 04:50:11 +0000 |
---|---|---|
committer | slewis | 2006-05-08 04:50:11 +0000 |
commit | 5569adb0e53688507ba79ecd2f0cbd7bdd035b7a (patch) | |
tree | 01d8171c337e36523b6b72637f17b7690a95f196 | |
parent | 399eef39224856cf311921c89dfc0ccf5b9f452e (diff) | |
download | org.eclipse.ecf-5569adb0e53688507ba79ecd2f0cbd7bdd035b7a.tar.gz org.eclipse.ecf-5569adb0e53688507ba79ecd2f0cbd7bdd035b7a.tar.xz org.eclipse.ecf-5569adb0e53688507ba79ecd2f0cbd7bdd035b7a.zip |
Restructured IRoomInfo and IChatRoomManager interfaces and changed appropriate implementationsECF_0_8_0_I20060507_stable
8 files changed, 30 insertions, 40 deletions
diff --git a/examples/bundles/org.eclipse.ecf.example.clients/src/org/eclipse/ecf/example/clients/RobotApplication.java b/examples/bundles/org.eclipse.ecf.example.clients/src/org/eclipse/ecf/example/clients/RobotApplication.java index 370395dbc..857550bd3 100644 --- a/examples/bundles/org.eclipse.ecf.example.clients/src/org/eclipse/ecf/example/clients/RobotApplication.java +++ b/examples/bundles/org.eclipse.ecf.example.clients/src/org/eclipse/ecf/example/clients/RobotApplication.java @@ -64,8 +64,7 @@ public class RobotApplication implements IPlatformRunnable, IMessageReceiver, throws ECFException, Exception, InterruptedException { XMPPChatClient client = new XMPPChatClient(this); client.connect(userName + "@" + hostName, password); - IChatRoomContainer room = client.connectChatRoom(userName, hostName, - roomName); + IChatRoomContainer room = client.connectChatRoom(roomName); System.out.println(room.getConnectedID().getName()); room.addMessageListener(this); sender = room.getChatMessageSender(); diff --git a/examples/bundles/org.eclipse.ecf.example.clients/src/org/eclipse/ecf/example/clients/XMPPChatClient.java b/examples/bundles/org.eclipse.ecf.example.clients/src/org/eclipse/ecf/example/clients/XMPPChatClient.java index ef3520f83..2f901e987 100644 --- a/examples/bundles/org.eclipse.ecf.example.clients/src/org/eclipse/ecf/example/clients/XMPPChatClient.java +++ b/examples/bundles/org.eclipse.ecf.example.clients/src/org/eclipse/ecf/example/clients/XMPPChatClient.java @@ -10,7 +10,6 @@ package org.eclipse.ecf.example.clients; import org.eclipse.ecf.core.ContainerFactory; import org.eclipse.ecf.core.IContainer; -import org.eclipse.ecf.core.ISharedObjectContainer; import org.eclipse.ecf.core.identity.ID; import org.eclipse.ecf.core.identity.IDFactory; import org.eclipse.ecf.core.identity.IDInstantiationException; @@ -35,7 +34,6 @@ public class XMPPChatClient { ID userID = null; IChatRoomManager chatmanager = null; IChatRoomContainer chatroom = null; - ISharedObjectContainer socontainer = null; // Interface for receiving messages IMessageReceiver receiver = null; @@ -61,9 +59,7 @@ public class XMPPChatClient { // Setup message listener to handle incoming messages presence.addMessageListener(new IMessageListener() { public void handleMessage(ID fromID, ID toID, Type type, String subject, String messageBody) { - if (receiver != null) { - receiver.handleMessage(fromID.getName(), messageBody); - } + receiver.handleMessage(fromID.getName(), messageBody); } }); // @@ -73,17 +69,12 @@ public class XMPPChatClient { userID = getID(account); } - public IChatRoomContainer connectChatRoom(String username, String hostname, String chatRoomID) throws Exception { - // Get chat room manager - chatmanager = presence.getChatRoomManager(); - // create target room id - ID targetChatID = IDFactory.getDefault().createID(chatroom.getConnectNamespace(), new Object[] {username,hostname,null,chatRoomID,username}); + public IChatRoomContainer connectChatRoom(String chatRoomName) throws Exception { // Create chat room container from manager - IRoomInfo roomInfo = chatmanager.getChatRoomInfo(targetChatID); + IRoomInfo roomInfo = presence.getChatRoomManager().getChatRoomInfo(chatRoomName); chatroom = roomInfo.createChatRoomContainer(); - socontainer = (ISharedObjectContainer) chatroom.getAdapter(ISharedObjectContainer.class); // connect to target - chatroom.connect(targetChatID, null); + chatroom.connect(roomInfo.getRoomID(), null); return chatroom; } diff --git a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ChatRoomManagerUI.java b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ChatRoomManagerUI.java index 8ff4e4d5e..35acb182e 100644 --- a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ChatRoomManagerUI.java +++ b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ChatRoomManagerUI.java @@ -38,7 +38,7 @@ public class ChatRoomManagerUI { Display.getDefault().syncExec(new Runnable() { public void run() { try { - IRoomInfo roomInfo = manager.getChatRoomInfo(targetID); + IRoomInfo roomInfo = manager.getChatRoomInfo(targetID.getName()); IChatRoomContainer chatRoom = null; try { chatRoom = roomInfo.createChatRoomContainer(); diff --git a/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IChatRoomContainer.java b/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IChatRoomContainer.java index f39fba5d7..db82b182a 100644 --- a/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IChatRoomContainer.java +++ b/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IChatRoomContainer.java @@ -15,7 +15,7 @@ import org.eclipse.ecf.presence.IInvitationListener; import org.eclipse.ecf.presence.IMessageListener; /** - * Chat container + * Chat room container */ public interface IChatRoomContainer extends IContainer { diff --git a/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IChatRoomManager.java b/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IChatRoomManager.java index 3531665bb..473611735 100644 --- a/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IChatRoomManager.java +++ b/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IChatRoomManager.java @@ -10,9 +10,6 @@ *****************************************************************************/ package org.eclipse.ecf.presence.chat; -import org.eclipse.ecf.core.ContainerInstantiationException; -import org.eclipse.ecf.core.identity.ID; - public interface IChatRoomManager { /** @@ -33,26 +30,15 @@ public interface IChatRoomManager { public IChatRoomManager[] getChildren(); /** - * Get IDs for chat rooms available via this chat room manager - * @return null if no access provided to chat room identities - */ - public ID[] getChatRooms(); - /** - * Get detailed room info for given room id - * @param roomID the id of the room to get detailed info for + * Get detailed room info for given room name + * @param roomname the name of the room to get detailed info for * @return IRoomInfo an instance that provides the given info */ - public IRoomInfo getChatRoomInfo(ID roomID); + public IRoomInfo getChatRoomInfo(String roomname); /** * Get detailed room info for all chat rooms associated with this manager * @return IRoomInfo an array of instances that provide info for all chat rooms */ public IRoomInfo[] getChatRoomsInfo(); - /** - * Create a new IChatRoomContainer instance - * @return non-null IChatRoomContainer implementer - * @throws ContainerInstantiationException if chat room container cannot be made - */ - //public IChatRoomContainer createChatRoomContainer() throws ContainerInstantiationException; } diff --git a/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IRoomInfo.java b/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IRoomInfo.java index be0cdd5df..633596646 100644 --- a/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IRoomInfo.java +++ b/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IRoomInfo.java @@ -57,7 +57,7 @@ public interface IRoomInfo extends IAdaptable { public boolean isModerated(); /** * - * @return ID of service we are currently connected to + * @return ID of connected user */ public ID getConnectedID(); /** diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/container/XMPPClientSOContainer.java b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/container/XMPPClientSOContainer.java index 0c1c921db..3382b6ad0 100644 --- a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/container/XMPPClientSOContainer.java +++ b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/container/XMPPClientSOContainer.java @@ -554,8 +554,8 @@ public class XMPPClientSOContainer extends ClientSOContainer { public ID[] getChatRooms() { return XMPPClientSOContainer.this.getChatRooms(); } - public IRoomInfo getChatRoomInfo(ID roomID) { - return XMPPClientSOContainer.this.getChatRoomInfo(roomID); + public IRoomInfo getChatRoomInfo(String roomname) { + return XMPPClientSOContainer.this.getChatRoomInfo(roomname); } public IRoomInfo[] getChatRoomsInfo() { ID [] chatRooms = getChatRooms(); @@ -563,7 +563,7 @@ public class XMPPClientSOContainer extends ClientSOContainer { IRoomInfo [] res = new IRoomInfo[chatRooms.length]; int count = 0; for(int i=0; i < chatRooms.length; i++) { - IRoomInfo infoResult = getChatRoomInfo(chatRooms[i]); + IRoomInfo infoResult = XMPPClientSOContainer.this.getChatRoomInfo(chatRooms[i]); if (infoResult != null) { res[count++] = infoResult; } @@ -649,7 +649,7 @@ public class XMPPClientSOContainer extends ClientSOContainer { return info.isModerated(); } public ID getConnectedID() { - return connectedID; + return roomID; } public Object getAdapter(Class clazz) { return null; @@ -689,4 +689,19 @@ public class XMPPClientSOContainer extends ClientSOContainer { } return null; } + protected IRoomInfo getChatRoomInfo(String roomname) { + try { + RoomInfo info = MultiUserChat.getRoomInfo(sharedObject.getConnection(),roomname); + if (info != null) { + // Create roomid + XMPPRoomID roomID = new XMPPRoomID(getConnectNamespace(),sharedObject.getConnection(),roomname); + return new ECFRoomInfo(roomID,info,getConnectedID()); + } + } catch (Exception e) { + dumpStack("Exception in getChatRoomInfo("+roomname+")",e); + return null; + } + return null; + } + }
\ No newline at end of file diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/identity/XMPPRoomID.java b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/identity/XMPPRoomID.java index 977c67d4b..ea483cf2a 100644 --- a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/identity/XMPPRoomID.java +++ b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/identity/XMPPRoomID.java @@ -45,7 +45,6 @@ public class XMPPRoomID extends BaseID implements IChatID { public XMPPRoomID(Namespace namespace, XMPPID userid, String domain, String groupname, String nickname) throws URISyntaxException { this(namespace,userid.getUsername(),userid.getHostname(),domain,groupname,nickname); } - public XMPPRoomID(Namespace namespace, XMPPConnection conn, String roomid, String longName) throws URISyntaxException { super(namespace); String username = fixUsername(conn.getUser()); |