social-profile/src/main/java/org/gcube/portlets/user/socialprofile/client/ui/DisplayProfile.java

58 lines
1.8 KiB
Java

package org.gcube.portlets.user.socialprofile.client.ui;
import org.gcube.portal.databook.shared.UserInfo;
import org.gcube.portlets.user.socialprofile.client.SocialService;
import org.gcube.portlets.user.socialprofile.client.SocialServiceAsync;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Widget;
public class DisplayProfile extends Composite {
private static DisplayProfileUiBinder uiBinder = GWT
.create(DisplayProfileUiBinder.class);
interface DisplayProfileUiBinder extends UiBinder<Widget, DisplayProfile> {
}
public static final String avatar_default = GWT.getModuleBaseURL() + "../images/Avatar_default.png";
public static final String loading = GWT.getModuleBaseURL() + "../images/avatarLoader.gif";
private final SocialServiceAsync socialService = GWT.create(SocialService.class);
@UiField HTMLPanel mainPanel;
@UiField Image avatarImage;
private UserInfo myUserInfo;
public DisplayProfile() {
initWidget(uiBinder.createAndBindUi(this));
avatarImage.setUrl(loading);
mainPanel.addStyleName("framed");
socialService.getUserInfo(new AsyncCallback<UserInfo>() {
@Override
public void onSuccess(UserInfo result) {
myUserInfo = result;
avatarImage.getElement().getParentElement().setAttribute("href", myUserInfo.getAccountURL());
avatarImage.setSize("60px", "60px");
avatarImage.setUrl(myUserInfo.getAvatarId());
}
@Override
public void onFailure(Throwable caught) {
avatarImage.setSize("120px", "120px");
avatarImage.setUrl(avatar_default);
}
});
}
}