package scrum.client.pr;
import ilarkesto.gwt.client.AMultiSelectionViewEditWidget;
import ilarkesto.gwt.client.TableBuilder;
import scrum.client.ScrumGwt;
import scrum.client.admin.User;
import scrum.client.common.AScrumWidget;
import scrum.client.journal.ChangeHistoryWidget;
import com.google.gwt.user.client.ui.Widget;
public class BlogEntryWidget extends AScrumWidget {
private BlogEntry blogEntry;
public BlogEntryWidget(BlogEntry blogEntry) {
super();
this.blogEntry = blogEntry;
}
@Override
protected Widget onInitialization() {
TableBuilder tb = ScrumGwt.createFieldTable();
tb.addFieldRow("Title", blogEntry.getTitleModel());
tb.addFieldRow("Text", blogEntry.getTextModel());
tb.addFieldRow("Date", blogEntry.getDateAndTimeModel());
tb.addFieldRow("Authors", new AMultiSelectionViewEditWidget<User>() {
@Override
protected void onViewerUpdate() {
setViewerItems(blogEntry.getAuthors());
}
@Override
protected void onEditorUpdate() {
setEditorItems(blogEntry.getProject().getParticipants());
setEditorSelectedItems(blogEntry.getAuthors());
}
@Override
protected void onEditorSubmit() {
blogEntry.setAuthors(getEditorSelectedItems());
}
@Override
public boolean isEditable() {
return true;
}
});
tb.addRow(new ChangeHistoryWidget(blogEntry), 2);
return TableBuilder.row(20, tb.createTable(), ScrumGwt.createEmoticonsAndComments(blogEntry));
}
}