Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2006-05-08 04:50:11 +0000
committerslewis2006-05-08 04:50:11 +0000
commit5569adb0e53688507ba79ecd2f0cbd7bdd035b7a (patch)
tree01d8171c337e36523b6b72637f17b7690a95f196
parent399eef39224856cf311921c89dfc0ccf5b9f452e (diff)
downloadorg.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
-rw-r--r--examples/bundles/org.eclipse.ecf.example.clients/src/org/eclipse/ecf/example/clients/RobotApplication.java3
-rw-r--r--examples/bundles/org.eclipse.ecf.example.clients/src/org/eclipse/ecf/example/clients/XMPPChatClient.java17
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ChatRoomManagerUI.java2
-rw-r--r--framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IChatRoomContainer.java2
-rw-r--r--framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IChatRoomManager.java20
-rw-r--r--framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/chat/IRoomInfo.java2
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/container/XMPPClientSOContainer.java23
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/identity/XMPPRoomID.java1
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());

Back to the top