package scrum.client; import ilarkesto.core.scope.Scope; import ilarkesto.gwt.client.DateAndTime; import ilarkesto.gwt.client.Gwt; import ilarkesto.gwt.client.TableBuilder; import scrum.client.collaboration.CommentsWidget; import scrum.client.collaboration.EmoticonSelectorWidget; import scrum.client.common.AScrumGwtEntity; import scrum.client.project.Project; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.Widget; public class ScrumGwt extends Gwt { public static String getPeriodToAsShortestString(String prefix, DateAndTime dateAndTime, String suffix) { if (dateAndTime == null) return null; return prefix + getPeriodToAsShortestString(dateAndTime) + suffix; } public static String getPeriodToAsShortestString(DateAndTime dateAndTime) { if (dateAndTime == null) return null; return dateAndTime.getPeriodToNow().toShortestString(); } public static Widget createEmoticonsAndComments(AScrumGwtEntity entity) { TableBuilder tb = ScrumGwt.createFieldTable(); tb.addFieldRow("My emoticon", new EmoticonSelectorWidget(entity)); tb.addRow(Gwt.createSpacer(1, 5)); tb.addRow(new CommentsWidget(entity), 2); return tb.createTable(); } public static Widget createActionsPanel(Widget... widgets) { FlowPanel panel = new FlowPanel(); panel.setStyleName("ActionsPanel"); for (Widget widget : widgets) { panel.add(widget); } return panel; } public static TableBuilder createFieldTable() { TableBuilder tb = new TableBuilder(); tb.setCellPadding(2); tb.setColumnWidths("100px"); return tb; } public static HTML createPdfLink(String text, String pdfId, AScrumGwtEntity entity) { return createPdfLink(text, pdfId, "entityId", entity.getId()); } public static HTML createPdfLink(String text, String pdfId, String parameterKey, String parameterValue, String parameter2Key, String parameter2Value) { return createPdfLink(text, pdfId, parameterKey + "=" + parameterValue + "&" + parameter2Key + "=" + parameter2Value); } public static HTML createPdfLink(String text, String pdfId, String parameterKey, String parameterValue) { return createPdfLink(text, pdfId, parameterKey + "=" + parameterValue); } public static HTML createPdfLink(String text, String pdfId, String parameters) { Project project = Scope.get().getComponent(Project.class); assert project != null; return createServletDownloadLink("pdf.pdf?projectId=" + project.getId() + "&pdfId=" + pdfId + "&" + parameters, text); } public static String toHtml(String reference, String label) { label = escapeHtml(label); return ScrumJs.createShowEntityByReferenceLink(reference, label) + " " + label; } }