user-statistics/src/main/java/org/gcube/portlet/user/userstatisticsportlet/client/ui/ActivityWidget.java

169 lines
4.3 KiB
Java

package org.gcube.portlet.user.userstatisticsportlet.client.ui;
import org.gcube.portal.databook.shared.ShowUserStatisticAction;
import org.gcube.portlet.user.userstatisticsportlet.client.events.ShowFeedsRelatedToUserStatisticsEvent;
import com.github.gwtbootstrap.client.ui.Button;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Cursor;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
public class ActivityWidget extends Composite {
private static CommentsAndLikesWidgetUiBinder uiBinder = GWT
.create(CommentsAndLikesWidgetUiBinder.class);
interface CommentsAndLikesWidgetUiBinder extends
UiBinder<Widget, ActivityWidget> {
}
@UiField
Button likesButton;
@UiField
Button commentsButton;
@UiField
Button postsButton;
@UiField
Label likesValue;
@UiField
Label commentsValue;
@UiField
Label postsValue;
private HandlerManager busEvents;
public ActivityWidget() {
initWidget(uiBinder.createAndBindUi(this));
// set styles
commentsButton.addStyleName("buttons-statistics-style");
likesButton.addStyleName("buttons-statistics-style");
postsButton.addStyleName("buttons-statistics-style");
}
/**
* Set comments information
* @param value
* @param tipIcon
* @param tipValue
* @param actionToTakeOnClick
* @param landingPage
*/
public void setComments(String value, String tipIcon, String tipValue, final ShowUserStatisticAction actionToTakeOnClick, final String landingPage){
commentsButton.setTitle(tipIcon);
commentsValue.setText(value);
commentsValue.setTitle(tipValue);
if(busEvents != null && actionToTakeOnClick != null){
commentsValue.getElement().getStyle().setCursor(Cursor.POINTER);
commentsValue.addStyleName("statistic-value-underline");
commentsValue.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
busEvents.fireEvent(new ShowFeedsRelatedToUserStatisticsEvent(actionToTakeOnClick, landingPage));
}
});
}
// set to visible
commentsValue.setVisible(true);
commentsButton.setVisible(true);
}
/**
* Set likes information
* @param value
* @param tipIcon
* @param tipValue
* @param actionToTakeOnClick
* @param landingPage
*/
public void setLikes(String value, String tipIcon, String tipValue, final ShowUserStatisticAction actionToTakeOnClick, final String landingPage){
likesButton.setTitle(tipIcon);
likesValue.setText(value);
likesValue.setTitle(tipValue);
if(busEvents != null && actionToTakeOnClick != null){
likesValue.getElement().getStyle().setCursor(Cursor.POINTER);
likesValue.addStyleName("statistic-value-underline");
likesValue.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
busEvents.fireEvent(new ShowFeedsRelatedToUserStatisticsEvent(actionToTakeOnClick, landingPage));
}
});
}
// set to visible
likesValue.setVisible(true);
likesButton.setVisible(true);
}
/**
* Set posts information
* @param value
* @param tipIcon
* @param tipValue
* @param actionToTakeOnClick
* @param landingPage
*/
public void setPosts(String value, String tipIcon, String tipValue, final ShowUserStatisticAction actionToTakeOnClick, final String landingPage){
postsButton.setTitle(tipIcon);
postsValue.setText(value);
postsValue.setTitle(tipValue);
if(busEvents != null && actionToTakeOnClick != null){
postsValue.getElement().getStyle().setCursor(Cursor.POINTER);
postsValue.addStyleName("statistic-value-underline");
postsValue.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
busEvents.fireEvent(new ShowFeedsRelatedToUserStatisticsEvent(actionToTakeOnClick, landingPage));
}
});
}
// set to visible
postsValue.setVisible(true);
postsButton.setVisible(true);
}
/**
* Set the event bus to let this widget fire events
* @param busEvents
*/
public void setEventBus(HandlerManager busEvents){
this.busEvents = busEvents;
}
}