/*
* GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007
*/
package hudson.gwtmarketplace.client.pages.product;
import hudson.gwtmarketplace.client.components.ProductRating;
import hudson.gwtmarketplace.client.model.ProductComment;
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
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.FlowPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.SimplePanel;
public class CommentPanel extends Composite {
interface MyUiBinder extends UiBinder<FlowPanel, CommentPanel> {
}
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
private static DateTimeFormat dateFormat = DateTimeFormat.getMediumDateTimeFormat();
@UiField
Label comment;
@UiField
Label commentFooter;
@UiField
SimplePanel ratingContainer;
@UiField
SimplePanel dislosureContainer;
public CommentPanel(ProductComment comment) {
initWidget(uiBinder.createAndBindUi(this));
this.comment.setText(comment.getCommentText());
String footer = null;
if (null != comment.getUserId()) {
footer = "Posted by " + comment.getUserAlias() + " on " + dateFormat.format(comment.getCreatedDate());
}
else {
footer = "Posted " + dateFormat.format(comment.getCreatedDate());
}
commentFooter.setText(footer);
if (comment.getRating() != null) {
ProductRating rating = new ProductRating(comment.getRating(), true);
ratingContainer.add(rating);
if (null != comment.getUnableToRate() && comment.getUnableToRate()) {
dislosureContainer.add(new HTML("(duplicate user rating - does not alter overall product rating)<br/><br/>"));
}
else {
dislosureContainer.setVisible(false);
}
}
else {
ratingContainer.setVisible(false);
}
}
}