Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2005-02-15 06:50:52 +0000
committerslewis2005-02-15 06:50:52 +0000
commit389107a73aeb45eaf103309690c37a3883bff869 (patch)
tree1af5e78782c18306507c786d6cf74ac9ee877e84
parentf1effd7530b148fdbd9658f57ef779e39a8988b4 (diff)
downloadorg.eclipse.ecf-389107a73aeb45eaf103309690c37a3883bff869.tar.gz
org.eclipse.ecf-389107a73aeb45eaf103309690c37a3883bff869.tar.xz
org.eclipse.ecf-389107a73aeb45eaf103309690c37a3883bff869.zip
New IPresenceViewer interface and IRosterViewer interface. Additions/changes Presence class. Added RosterEntry and RosterGroup implementation classes
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/META-INF/MANIFEST.MF2
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IPresenceViewer.java12
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterEntry.java3
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterGroup.java7
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterViewer.java10
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/Presence.java10
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/RosterEntry.java119
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/RosterGroup.java103
8 files changed, 263 insertions, 3 deletions
diff --git a/framework/bundles/org.eclipse.ecf.ui/META-INF/MANIFEST.MF b/framework/bundles/org.eclipse.ecf.ui/META-INF/MANIFEST.MF
index f634ebe7d..4e2793b90 100644
--- a/framework/bundles/org.eclipse.ecf.ui/META-INF/MANIFEST.MF
+++ b/framework/bundles/org.eclipse.ecf.ui/META-INF/MANIFEST.MF
@@ -10,3 +10,5 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.ecf,
org.eclipse.core.runtime
Eclipse-AutoStart: true
+Provide-Package: org.eclipse.ecf.ui.presence
+
diff --git a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IPresenceViewer.java b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IPresenceViewer.java
new file mode 100644
index 000000000..cc4f61e43
--- /dev/null
+++ b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IPresenceViewer.java
@@ -0,0 +1,12 @@
+/*
+ * Created on Feb 14, 2005
+ *
+ */
+package org.eclipse.ecf.ui.presence;
+
+import org.eclipse.ecf.core.identity.ID;
+
+public interface IPresenceViewer extends IRosterViewer {
+
+ public void receivePresence(ID userID, IPresence presence);
+}
diff --git a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterEntry.java b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterEntry.java
index 81b6eee6d..272cb3b58 100644
--- a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterEntry.java
+++ b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterEntry.java
@@ -9,12 +9,15 @@ import org.eclipse.ecf.core.identity.ID;
public interface IRosterEntry {
+ public void add(IRosterGroup group);
+ public void remove(IRosterGroup group);
public Iterator getGroups();
public String getName();
public ID getUserID();
public void setName(String name);
public InterestType getInterestType();
public IPresence getPresenceState();
+ public void setPresenceState(IPresence presence);
public static class InterestType {
diff --git a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterGroup.java b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterGroup.java
index 03d6c01c4..47f684783 100644
--- a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterGroup.java
+++ b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterGroup.java
@@ -5,11 +5,12 @@
package org.eclipse.ecf.ui.presence;
import java.util.Iterator;
-import org.eclipse.ecf.core.identity.ID;
+import java.util.Map;
public interface IRosterGroup {
- public IRosterEntry add(ID entryID, IRosterEntry entry);
- public IRosterEntry contains(ID entryID);
+ public IRosterEntry add(IRosterEntry entry);
+ public void addAll(Map existing);
+ public IRosterEntry contains(IRosterEntry entry);
public Iterator getRosterEntries();
public int size();
public String getName();
diff --git a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterViewer.java b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterViewer.java
new file mode 100644
index 000000000..10f98661b
--- /dev/null
+++ b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/IRosterViewer.java
@@ -0,0 +1,10 @@
+/*
+ * Created on Feb 14, 2005
+ *
+ */
+package org.eclipse.ecf.ui.presence;
+
+public interface IRosterViewer {
+
+ public void receiveRosterEntry(IRosterEntry entry);
+}
diff --git a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/Presence.java b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/Presence.java
index f586949ae..78578b84a 100644
--- a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/Presence.java
+++ b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/Presence.java
@@ -56,4 +56,14 @@ public class Presence implements IPresence {
return null;
}
+ public String toString() {
+ StringBuffer sb = new StringBuffer("Presence[");
+ sb.append("type=").append(type).append(";");
+ sb.append("mode=").append(mode).append(";");
+ sb.append("priority=").append(priority).append(";");
+ sb.append("status=").append(status).append(";");
+ sb.append("props=").append(properties).append(";");
+ sb.append("]");
+ return sb.toString();
+ }
}
diff --git a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/RosterEntry.java b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/RosterEntry.java
new file mode 100644
index 000000000..c3d5ab4e7
--- /dev/null
+++ b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/RosterEntry.java
@@ -0,0 +1,119 @@
+/*
+ * Created on Feb 14, 2005
+ *
+ */
+package org.eclipse.ecf.ui.presence;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import org.eclipse.ecf.core.identity.ID;
+
+public class RosterEntry implements IRosterEntry {
+
+ protected ID userID;
+ protected String name;
+ protected IPresence presenceState;
+ protected InterestType interestType;
+ protected List groups;
+
+ public RosterEntry(ID userID, String name, IPresence presenceState, InterestType interestType, Collection grps) {
+ this.userID = userID;
+ this.name = name;
+ this.presenceState = presenceState;
+ this.interestType = interestType;
+ this.groups = new ArrayList();
+ if (grps != null) this.groups.addAll(groups);
+ }
+
+ public RosterEntry(ID userID, String name) {
+ this(userID,name,null,InterestType.BOTH,null);
+ }
+
+ public RosterEntry(ID userID, String name, IPresence presenceState) {
+ this(userID,name,presenceState,InterestType.BOTH,null);
+ }
+ public RosterEntry(ID userID, String name, InterestType interestType) {
+ this(userID,name,null,interestType,null);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterEntry#getGroups()
+ */
+ public Iterator getGroups() {
+ return groups.iterator();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterEntry#getName()
+ */
+ public String getName() {
+ return name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterEntry#getUserID()
+ */
+ public ID getUserID() {
+ return userID;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterEntry#setName(java.lang.String)
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterEntry#getInterestType()
+ */
+ public InterestType getInterestType() {
+ return interestType;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterEntry#getPresenceState()
+ */
+ public IPresence getPresenceState() {
+ return presenceState;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterEntry#setPresenceState(org.eclipse.ecf.ui.presence.IPresence)
+ */
+ public void setPresenceState(IPresence presence) {
+ this.presenceState = presence;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterEntry#addGroup(org.eclipse.ecf.ui.presence.IRosterGroup)
+ */
+ public void add(IRosterGroup group) {
+ groups.add(group);
+ }
+
+ public void addAll(Collection grps) {
+ groups.addAll(grps);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterEntry#remvoe(org.eclipse.ecf.ui.presence.IRosterGroup)
+ */
+ public void remove(IRosterGroup group) {
+ groups.remove(group);
+ }
+
+ public String toString() {
+ StringBuffer sb = new StringBuffer("RosterEntry[");
+ sb.append("userID=").append(userID).append(";");
+ sb.append("name=").append(name).append(";");
+ sb.append("presence=").append(presenceState).append(";");
+ sb.append("interest=").append(interestType).append(";");
+ sb.append("groups=").append(groups).append(";");
+ sb.append("]");
+ return sb.toString();
+ }
+
+}
diff --git a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/RosterGroup.java b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/RosterGroup.java
new file mode 100644
index 000000000..03fa37c27
--- /dev/null
+++ b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/presence/RosterGroup.java
@@ -0,0 +1,103 @@
+/*
+ * Created on Feb 14, 2005
+ *
+ */
+package org.eclipse.ecf.ui.presence;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import org.eclipse.ecf.core.identity.ID;
+
+public class RosterGroup implements IRosterGroup {
+
+ protected Map entries;
+ protected String name;
+
+ public RosterGroup(String name, Map existing) {
+ super();
+ this.name = name;
+ entries = new HashMap();
+ if (existing != null) addAll(existing);
+ }
+
+ public RosterGroup(String name) {
+ this(name,null);
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterGroup#add(org.eclipse.ecf.core.identity.ID, org.eclipse.ecf.ui.presence.IRosterEntry)
+ */
+ public IRosterEntry add(IRosterEntry entry) {
+ if (entry != null) {
+ synchronized (entries) {
+ IRosterEntry res = (IRosterEntry) entries.put(entry.getUserID(),entry);
+ entry.add(this);
+ return res;
+ }
+ } else return null;
+ }
+ public void addAll(Map existing) {
+ synchronized (entries) {
+ for(Iterator i=existing.entrySet().iterator(); i.hasNext(); ) {
+ IRosterEntry entry = (IRosterEntry) i.next();
+ add(entry);
+ }
+ }
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterGroup#contains(org.eclipse.ecf.core.identity.ID)
+ */
+ public IRosterEntry contains(IRosterEntry entry) {
+ if (entry == null) return null;
+ synchronized (entries) {
+ ID uID = entry.getUserID();
+ boolean has = entries.containsKey(uID);
+ if (has) {
+ return (IRosterEntry) entries.get(uID);
+ }
+ }
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterGroup#getRosterEntries()
+ */
+ public Iterator getRosterEntries() {
+ return entries.values().iterator();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterGroup#size()
+ */
+ public int size() {
+ return entries.size();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterGroup#getName()
+ */
+ public String getName() {
+ return this.name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.ui.presence.IRosterGroup#removeEntry(org.eclipse.ecf.ui.presence.IRosterEntry)
+ */
+ public IRosterEntry removeEntry(IRosterEntry entry) {
+ synchronized (entries) {
+ boolean hasEntry = entries.containsValue(entry);
+ IRosterEntry res = (IRosterEntry) entries.remove(entry.getUserID());
+ return res;
+ }
+ }
+
+ public String toString() {
+ StringBuffer sb = new StringBuffer("RosterGroup[");
+ sb.append("name=").append(name).append(";");
+ sb.append("entries=").append(entries).append(";");
+ sb.append("]");
+ return sb.toString();
+ }
+
+
+}

Back to the top