aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java
diff options
context:
space:
mode:
authorYana Stamcheva <yana@jitsi.org>2009-09-14 15:02:21 +0000
committerYana Stamcheva <yana@jitsi.org>2009-09-14 15:02:21 +0000
commit0eac15d970b650a5ec217b769ab6a5b3def4ff82 (patch)
treeb8697a8099ccba3bef8330fa401fef3dd62aafc6 /src/net/java
parent1a43f53a1fdc1465dfdd9096b168db714366d3c3 (diff)
downloadjitsi-0eac15d970b650a5ec217b769ab6a5b3def4ff82.zip
jitsi-0eac15d970b650a5ec217b769ab6a5b3def4ff82.tar.gz
jitsi-0eac15d970b650a5ec217b769ab6a5b3def4ff82.tar.bz2
Show online contacts count for each group in the contact list. Patch provided by Valentin Martinet.
Diffstat (limited to 'src/net/java')
-rw-r--r--src/net/java/sip/communicator/impl/contactlist/MetaContactGroupImpl.java34
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListCellRenderer.java3
-rw-r--r--src/net/java/sip/communicator/service/contactlist/MetaContactGroup.java11
3 files changed, 43 insertions, 5 deletions
diff --git a/src/net/java/sip/communicator/impl/contactlist/MetaContactGroupImpl.java b/src/net/java/sip/communicator/impl/contactlist/MetaContactGroupImpl.java
index 79e2df6..6b02dd6 100644
--- a/src/net/java/sip/communicator/impl/contactlist/MetaContactGroupImpl.java
+++ b/src/net/java/sip/communicator/impl/contactlist/MetaContactGroupImpl.java
@@ -13,8 +13,8 @@ import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.util.*;
/**
- * A straightforward implementatiokn of the meta contact group. The group
- * implements a simple algorithme of sorting its children according to their
+ * A straightforward implementation of the meta contact group. The group
+ * implements a simple algorithm of sorting its children according to their
* status.
*
* @author Emil Ivov
@@ -138,6 +138,36 @@ public class MetaContactGroupImpl
{
return childContacts.size();
}
+
+ /**
+ * Returns the number of online <tt>MetaContact</tt>s that this group
+ * contains.
+ * <p>
+ * @return the number of online <tt>MetaContact</tt>s that this group
+ * contains.
+ */
+ public int countOnlineChildContacts()
+ {
+ int onlineContactsNumber = 0;
+ try
+ {
+ Iterator<MetaContact> itr = getChildContacts();
+ while(itr.hasNext())
+ {
+ if(itr.next().getDefaultContact()
+ .getPresenceStatus().isOnline())
+ {
+ onlineContactsNumber++;
+ }
+ }
+ }
+ catch(Exception e)
+ {
+ logger.debug("Failed to count online contacts.", e);
+ }
+
+ return onlineContactsNumber;
+ }
/**
* Returns the number of <tt>ContactGroups</tt>s that this group
diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListCellRenderer.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListCellRenderer.java
index 1297e51..5d2794e 100644
--- a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListCellRenderer.java
+++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListCellRenderer.java
@@ -172,7 +172,8 @@ public class ContactListCellRenderer
MetaContactGroup groupItem = (MetaContactGroup) value;
this.nameLabel.setText(groupItem.getGroupName()
- + " ( " + groupItem.countChildContacts() + " )");
+ + " ( "+ groupItem.countOnlineChildContacts()
+ + "/" + groupItem.countChildContacts() + " )");
this.nameLabel.setFont(this.getFont().deriveFont(Font.BOLD));
diff --git a/src/net/java/sip/communicator/service/contactlist/MetaContactGroup.java b/src/net/java/sip/communicator/service/contactlist/MetaContactGroup.java
index 81f4a75..18b8547 100644
--- a/src/net/java/sip/communicator/service/contactlist/MetaContactGroup.java
+++ b/src/net/java/sip/communicator/service/contactlist/MetaContactGroup.java
@@ -131,6 +131,15 @@ public interface MetaContactGroup
public int countChildContacts();
/**
+ * Returns the number of online <tt>MetaContact</tt>s that this group
+ * contains.
+ *
+ * @return the number of online <tt>MetaContact</tt>s that this group
+ * contains.
+ */
+ public int countOnlineChildContacts();
+
+ /**
* Returns the number of <tt>ContactGroups</tt>s that this group
* encapsulates
* <p>
@@ -268,7 +277,6 @@ public interface MetaContactGroup
*/
public MetaContactGroup getParentMetaContactGroup();
-
/**
* Returns a String representation of this group and the contacts it
* contains (may turn out to be a relatively long string).
@@ -284,5 +292,4 @@ public interface MetaContactGroup
* @return a String uniquely identifying this meta contact.
*/
public String getMetaUID();
-
}