[jboss-svn-commits] JBL Code SVN: r32545 - labs/jbosslabs/labs-3.0-build/integration/sbs-topextmembers/trunk/src/main/java/org/jboss/labs/sbs/plugin/topextmembers.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Apr 13 07:52:39 EDT 2010


Author: lkrzyzanek
Date: 2010-04-13 07:52:38 -0400 (Tue, 13 Apr 2010)
New Revision: 32545

Modified:
   labs/jbosslabs/labs-3.0-build/integration/sbs-topextmembers/trunk/src/main/java/org/jboss/labs/sbs/plugin/topextmembers/RHMemberFilter.java
   labs/jbosslabs/labs-3.0-build/integration/sbs-topextmembers/trunk/src/main/java/org/jboss/labs/sbs/plugin/topextmembers/TopExtMembersWidget.java
Log:
Added retrieval of other non RH

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-topextmembers/trunk/src/main/java/org/jboss/labs/sbs/plugin/topextmembers/RHMemberFilter.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-topextmembers/trunk/src/main/java/org/jboss/labs/sbs/plugin/topextmembers/RHMemberFilter.java	2010-04-13 08:10:10 UTC (rev 32544)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-topextmembers/trunk/src/main/java/org/jboss/labs/sbs/plugin/topextmembers/RHMemberFilter.java	2010-04-13 11:52:38 UTC (rev 32545)
@@ -26,9 +26,6 @@
 import java.util.Date;
 import java.util.Map;
 
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
-
 import com.jivesoftware.base.User;
 import com.jivesoftware.community.user.profile.ProfileFieldValue;
 import com.jivesoftware.community.user.profile.ProfileManager;
@@ -40,8 +37,6 @@
  */
 public class RHMemberFilter implements MemberFilter {
 
-  private static final Logger log = LogManager.getLogger(RHMemberFilter.class.getName());
-
   /** ID of profile file 'hire date' */
   public static final long HIRE_DATE_ID = 10;
 
@@ -66,23 +61,21 @@
     ProfileFieldValue leaveDate = profile.get(LEAVE_DATE_ID);
     Date now = new Date();
 
-    if (hireDate != null) {
+    if (hireDate != null && hireDate.getValue() != null) {
       Date hd;
       try {
         hd = convertProfileDate(hireDate.getValue());
       } catch (ParseException e) {
-        log.error("Hire date is in bad format for user: " + u.getUsername() + ". Value: " + hireDate.getValue());
         return false;
       }
       if (hd.after(now)) {
         return false;
       }
-      if (leaveDate != null) {
+      if (leaveDate != null && leaveDate.getValue() != null) {
         Date ld;
         try {
           ld = (Date) convertProfileDate(leaveDate.getValue());
         } catch (ParseException e) {
-          log.error("Leaving date is in bad format for user: " + u.getUsername() + ". Value: " + hireDate.getValue());
           return false;
         }
         if (ld.after(now)) {

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-topextmembers/trunk/src/main/java/org/jboss/labs/sbs/plugin/topextmembers/TopExtMembersWidget.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-topextmembers/trunk/src/main/java/org/jboss/labs/sbs/plugin/topextmembers/TopExtMembersWidget.java	2010-04-13 08:10:10 UTC (rev 32544)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-topextmembers/trunk/src/main/java/org/jboss/labs/sbs/plugin/topextmembers/TopExtMembersWidget.java	2010-04-13 11:52:38 UTC (rev 32545)
@@ -28,6 +28,10 @@
 import org.apache.log4j.Logger;
 
 import com.jivesoftware.base.User;
+import com.jivesoftware.community.Community;
+import com.jivesoftware.community.JiveConstants;
+import com.jivesoftware.community.JiveContainer;
+import com.jivesoftware.community.StatusLevelManager;
 import com.jivesoftware.community.annotations.PropertyNames;
 import com.jivesoftware.community.user.profile.ProfileManager;
 import com.jivesoftware.community.widget.WidgetCategory;
@@ -51,10 +55,14 @@
 
   protected static final Logger log = LogManager.getLogger(TopExtMembersWidget.class.getName());
 
-  private ProfileManager profileManager;
+  protected ProfileManager profileManager;
 
+  protected StatusLevelManager statusLevelManager;
+
   private MemberFilter memberFilter;
 
+  private static final int FETCH_COUNT = 20;
+
   public String getTitle(WidgetContext widgetContext) {
     return getLocalizedString("widget.topextmembers.title", widgetContext);
   }
@@ -74,20 +82,46 @@
 
     Iterable<User> topMembers = (Iterable<User>) properties.get("topMembers");
 
-    if (topMembers != null) {
-      LinkedList<User> nonRHTopMembers = new LinkedList<User>();
-      for (User user : topMembers) {
+    if (topMembers == null) {
+      return properties;
+    }
+
+    LinkedList<User> nonRHTopMembers = new LinkedList<User>();
+    int topMembersCount = 0;
+    for (User user : topMembers) {
+      if (!memberFilter.accpet(user)) {
+        nonRHTopMembers.add(user);
+      }
+      topMembersCount++;
+    }
+    if (topMembersCount == 0) {
+      log.debug("Count of top Members is 0");
+      return properties;
+    }
+
+    JiveContainer container = (JiveContainer) properties.get("container");
+    Community rootCommunity = (Community) properties.get("rootCommunity");
+
+    int currentIndex = getNumResults();
+    while (nonRHTopMembers.size() < getNumResults()) {
+      Iterable<User> nextTopMembers;
+      if (container.getObjectType() == JiveConstants.COMMUNITY && container.getID() == rootCommunity.getID()) {
+        nextTopMembers = statusLevelManager.getLeaders(currentIndex, FETCH_COUNT);
+      } else {
+        nextTopMembers = statusLevelManager.getLeaders(container, currentIndex, FETCH_COUNT);
+      }
+      for (User user : nextTopMembers) {
         if (!memberFilter.accpet(user)) {
           nonRHTopMembers.add(user);
         }
+        if (nonRHTopMembers.size() >= getNumResults()) {
+          break;
+        }
       }
+      currentIndex = currentIndex + FETCH_COUNT;
+    }
 
-      // while(nonRHTopMembers.size() < getNumResults()) {
-      // break;
-      // }
-
-      properties.put("topMembers", nonRHTopMembers.iterator());
-    }
+    properties.put("topMembers", nonRHTopMembers.iterator());
     return properties;
   }
 
@@ -100,4 +134,9 @@
     this.memberFilter = memberFilter;
   }
 
+  public void setStatusLevelManager(StatusLevelManager statusLevelManager) {
+    super.setStatusLevelManager(statusLevelManager);
+    this.statusLevelManager = statusLevelManager;
+  }
+
 }



More information about the jboss-svn-commits mailing list