[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