package scrum.client.pr; import ilarkesto.gwt.client.DateAndTime; import scrum.client.collaboration.EmoticonsWidget; import scrum.client.common.ABlockWidget; import scrum.client.common.BlockHeaderWidget; import scrum.client.common.BlockWidgetFactory; import scrum.client.img.Img; import scrum.client.journal.ActivateChangeHistoryAction; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; public class BlogEntryBlock extends ABlockWidget<BlogEntry> { private SimplePanel statusIcon; private Label dateLabel; @Override protected void onInitializationHeader(BlockHeaderWidget header) { BlogEntry blogEntry = getObject(); statusIcon = header.insertPrefixIcon(); dateLabel = header.appendCenterSuffix(""); header.appendCell(new EmoticonsWidget(blogEntry), null, true, true, null); header.addMenuAction(new PublishBlogEntryAction(blogEntry)); header.addMenuAction(new UnpublishBlogEntryAction(blogEntry)); header.addMenuAction(new ActivateChangeHistoryAction(blogEntry)); header.addMenuAction(new DeleteBlogEntryAction(blogEntry)); } @Override protected void onUpdateHeader(BlockHeaderWidget header) { BlogEntry blogEntry = getObject(); header.setDragHandle(blogEntry.getReference()); header.setCenter(blogEntry.getTitle()); Image statusImage = null; if (blogEntry.isPublished()) { statusImage = Img.bundle.blgPublished().createImage(); statusImage.setTitle("Published."); } statusIcon.setWidget(statusImage); String dateString = null; DateAndTime dateAndTime = blogEntry.getDateAndTime(); if (dateAndTime != null) { dateString = dateAndTime.toString(); } dateLabel.setText(dateString); } @Override protected Widget onExtendedInitialization() { return new BlogEntryWidget(getObject()); } public static final BlockWidgetFactory<BlogEntry> FACTORY = new BlockWidgetFactory<BlogEntry>() { public BlogEntryBlock createBlock() { return new BlogEntryBlock(); } }; }