In this article I will describe how to display a list of “My Communities” in an XPage. To do this I will have to create an ArrayList of communities and use a repeat control in an XPage to display them.
Getting My Communities
As I showed in this previous blog post there were some interesting issues in setting up the managed beans for getting the communities out of connections/smartcloud.
But in quick review this is the code for getting my communities.
package com.xomino.sbt; import java.util.Collection; import javax.faces.context.FacesContext; import com.ibm.sbt.services.client.ClientServicesException; import com.ibm.sbt.services.client.connections.communities.Community; import com.ibm.sbt.services.client.connections.communities.CommunityList; import com.ibm.sbt.services.client.connections.communities.CommunityService; import com.ibm.sbt.services.client.connections.communities.CommunityServiceException; import com.ibm.sbt.services.endpoints.Endpoint; import com.ibm.xsp.extlib.util.ExtLibUtil; public class Utils { public static void checkAuthentication() throws ClientServicesException{ Endpoint theEndpoint = getEndpoint(); if (!theEndpoint.isAuthenticated()){ theEndpoint.authenticate(true); } } public static Endpoint getEndpoint(){ Endpoint endpoint = (Endpoint) ExtLibUtil.resolveVariable(FacesContext.getCurrentInstance(), "smartcloud"); return endpoint; } public static Collection<Community> getCommunities() throws CommunityServiceException{ CommunityService svc = new CommunityService(); CommunityList communities = svc.getMyCommunities(); return communities; } }
What is interesting is that the svc.getMyCommunities() returns a “Collection” and the code assist not only told me this, but it changed the return of the method “Collection” and added the import java.util.Collection.
So that is all well and good – but then how do I get that only my XPage?
Well I actually used the JavaDoc !
So then in the XPage I used a repeat control to iterate through the “collection”
<xp:repeat id="repeat2" rows="30" value="#{javascript:com.xomino.sbt.Utils.getCommunities()}" var="myCommunities"> <xp:div styleClass="readonly" disableTheme="true"> <xp:text disableTheme="true"> <xp:this.value><![CDATA[#{javascript:myCommunities.getTitle()}]]></xp:this.value> </xp:text> </xp:div> </xp:repeat>
and there we have it.
So what is a Collection exactly? I guess I ought to find out……