package scrum.client.collaboration; import ilarkesto.gwt.client.AOutputViewEditWidget; import ilarkesto.gwt.client.ButtonWidget; import ilarkesto.gwt.client.Gwt; import ilarkesto.gwt.client.editor.RichtextEditorWidget; import scrum.client.ScrumGwt; import scrum.client.admin.User; import scrum.client.common.AScrumWidget; import scrum.client.img.Img; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; public class CommentWidget extends AScrumWidget { private Label date; private Comment comment; public CommentWidget(Comment comment) { this.comment = comment; } @Override protected Widget onInitialization() { Label authorLabel = new Label(comment.getAuthorName()); authorLabel.setStyleName("CommentWidget-header-author"); User author = comment.getAuthor(); if (author != null) { String color = getCurrentProject().getUserConfig(author).getColor(); authorLabel.getElement().getStyle().setProperty("color", color); } date = new Label(); date.setStyleName("CommentWidget-header-date"); HorizontalPanel header = new HorizontalPanel(); header.setStyleName("CommentWidget-header"); header.add(Gwt.createFlowPanel(authorLabel, date)); if (getCurrentProject().getHomepageDir() != null) { header.add(new AOutputViewEditWidget() { @Override protected void onViewerUpdate() { Widget widget = null; if (comment.isPublished()) { widget = Img.bundle.publicComment().createImage(); widget.setTitle("This comment is visible on the homepage."); } else { widget = new ButtonWidget(new PublishCommentAction(comment)).update(); } setViewer(ScrumGwt.createDiv("Comment-Widget-header-pub", widget)); } }); } FlowPanel panel = new FlowPanel(); panel.setStyleName("CommentWidget"); panel.add(header); // panel.add(new ATextWidget() { // // @Override // protected void onUpdate() { // setHtml(Wiki.toHtml(comment.getText())); // } // }); panel.add(new RichtextEditorWidget(comment.getTextModel())); return panel; } @Override protected void onUpdate() { date.setText(comment.getDateAndTime().getPeriodToNow().toShortestString() + " ago"); super.onUpdate(); } }