package org.gcube.portlets.user.vremembers.client.panels; import java.util.ArrayList; import org.gcube.portal.databook.client.GCubeSocialNetworking; import org.gcube.portal.databook.client.util.Encoder; import org.gcube.portlets.user.vremembers.client.MembersService; import org.gcube.portlets.user.vremembers.client.MembersServiceAsync; import org.gcube.portlets.user.vremembers.client.ui.DisplayBadge; import org.gcube.portlets.user.vremembers.shared.BelongingUser; import org.gcube.portlets.user.vremembers.shared.VREGroup; import com.github.gwtbootstrap.client.ui.PageHeader; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HTML; public class VREMembersPanel extends FlowPanel { private final MembersServiceAsync vreMemberService = GWT.create(MembersService.class); public VREMembersPanel() { //if showing a VRE Group if (getGroupShowId() != null) { String teamId = Encoder.decode(getGroupShowId()); vreMemberService.getVREGroupUsers(teamId, new AsyncCallback() { @Override public void onFailure(Throwable caught) { add(new HTML("
" + "Sorry, looks like something is broken with the server connection
" + "Please check your connection and try refresh this page.
")); } @Override public void onSuccess(VREGroup group) { clear(); PageHeader toAdd = new PageHeader(); toAdd.setText(group.getName()); toAdd.setSubtext(group.getDescription()); add(toAdd); showMembers(group.getUsers()); } }); } else { //show all the VRE Members vreMemberService.getSiteUsers(new AsyncCallback>() { @Override public void onSuccess(ArrayList users) { clear(); showMembers(users); } @Override public void onFailure(Throwable caught) { add(new HTML("
" + "Sorry, looks like something is broken with the server connection
" + "Please check your connection and try refresh this page.
")); } }); } } private void showMembers(ArrayList users) { if (users == null || users.isEmpty()) { add(new HTML("
Ops, something went wrong. Please reload this page.
")); } else { for (int i = 0; i < users.size(); i++) { add(new DisplayBadge(users.get(i))); } } } /** * check if it has to show a group * @return */ private String getGroupShowId() { return Window.Location.getParameter(Encoder.encode(GCubeSocialNetworking.GROUP_MEMBERS_OID)); } }