58 lines
1.8 KiB
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);
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|