package org.gcube.portlets.user.vremembers.client.panels; import java.util.ArrayList; import org.gcube.social_networking.socialnetworking.model.client.GCubeSocialNetworking; import org.gcube.social_networking.socialnetworking.model.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()); if (teamId.compareTo("-100")==0) { vreMemberService.getVREManagers(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("VRE managers"); toAdd.setSubtext("The moderators of this VRE"); add(toAdd); if (group.getUsers().size() > 0) showMembers(group.getUsers()); else add(new HTML("
There are no VRE Managers in this VRE, this is weird please report this issue.
")); } }); } else { 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); if (group.getUsers().size() > 0) showMembers(group.getUsers()); else add(new HTML("
This group has no members, VRE Managers can define VRE groups and associate members to these groups.
")); } }); } } 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)); } }