diff --git a/hdrl/src/org/labkey/hdrl/query/HDRLQuerySchema.java b/hdrl/src/org/labkey/hdrl/query/HDRLQuerySchema.java index a3194c9b..4bedccf2 100644 --- a/hdrl/src/org/labkey/hdrl/query/HDRLQuerySchema.java +++ b/hdrl/src/org/labkey/hdrl/query/HDRLQuerySchema.java @@ -17,6 +17,7 @@ package org.labkey.hdrl.query; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.labkey.api.data.Container; import org.labkey.api.data.ContainerFilter; @@ -53,8 +54,6 @@ import org.labkey.hdrl.HDRLSchema; import org.springframework.validation.BindException; -import java.io.IOException; -import java.io.Writer; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -186,7 +185,7 @@ public Set getTableNames() } @Override - public QueryView createView(ViewContext context, QuerySettings settings, BindException errors) + public @NotNull QueryView createView(ViewContext context, QuerySettings settings, BindException errors) { String queryName = settings.getQueryName(); if (TABLE_INBOUND_REQUEST.equalsIgnoreCase(queryName)) @@ -196,11 +195,10 @@ public QueryView createView(ViewContext context, QuerySettings settings, BindExc @Override protected void addDetailsAndUpdateColumns(List ret, TableInfo table) { - SimpleDisplayColumn actionColumn = new SimpleDisplayColumn() { @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { Container c = ContainerManager.getForId(ctx.get(FieldKey.fromParts("container")).toString()); @@ -217,18 +215,17 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit { FieldKey requestFieldKey = FieldKey.fromParts("RequestId"); ActionURL actionUrl = new ActionURL(HDRLController.EditRequestAction.class, c).addParameter("requestId", (Integer)ctx.get(requestFieldKey)); - oldWriter.write(LinkBuilder.labkeyLink("Edit", actionUrl).toString()); + out.write(LinkBuilder.labkeyLink("Edit", actionUrl)); } else { ActionURL actionUrl = new ActionURL(HDRLController.RequestDetailsAction.class, c); actionUrl.addParameter("requestId", (Integer) ctx.get("requestId")); - oldWriter.write(LinkBuilder.labkeyLink("View", actionUrl).toString()); + out.write(LinkBuilder.labkeyLink("View", actionUrl)); } } }; ret.add(actionColumn); - } }; } @@ -243,20 +240,19 @@ else if (TABLE_INBOUND_SPECIMEN.equalsIgnoreCase(settings.getQueryName()) || TAB QueryView queryView = new QueryView(this, settings, errors) { - @Override protected void addDetailsAndUpdateColumns(List ret, TableInfo table) { SimpleDisplayColumn downloadColumn = new SimpleDisplayColumn() { @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { Integer specimenId = (Integer) ctx.get(FieldKey.fromParts("RowId")); if (HDRLManager.get().hasClinicalReport(specimenId, getUser(), getContainer())) { // download button displayed - oldWriter.write(PageFlowUtil.button("Download").href(new ActionURL(HDRLController.DownloadClinicalReportAction.class, getContainer()).addParameter("specimenId", specimenId)).toString()); + out.write(PageFlowUtil.button("Download").href(new ActionURL(HDRLController.DownloadClinicalReportAction.class, getContainer()).addParameter("specimenId", specimenId))); } } }; diff --git a/viscstudies/src/org/labkey/viscstudies/DatasetListWithStatusColumn.java b/viscstudies/src/org/labkey/viscstudies/DatasetListWithStatusColumn.java index e760e041..ae79eba4 100644 --- a/viscstudies/src/org/labkey/viscstudies/DatasetListWithStatusColumn.java +++ b/viscstudies/src/org/labkey/viscstudies/DatasetListWithStatusColumn.java @@ -27,19 +27,26 @@ import org.labkey.api.study.Dataset; import org.labkey.api.study.Study; import org.labkey.api.study.StudyService; -import org.labkey.api.util.PageFlowUtil; +import org.labkey.api.util.DOM; +import org.labkey.api.util.HtmlString; import org.labkey.api.writer.HtmlWriter; -import java.io.IOException; -import java.io.Writer; import java.util.Collections; import java.util.List; import java.util.Map; +import static org.labkey.api.util.DOM.Attribute.height; +import static org.labkey.api.util.DOM.Attribute.src; +import static org.labkey.api.util.DOM.Attribute.style; +import static org.labkey.api.util.DOM.Attribute.width; +import static org.labkey.api.util.DOM.IMG; +import static org.labkey.api.util.DOM.TABLE; +import static org.labkey.api.util.DOM.TD; +import static org.labkey.api.util.DOM.TR; +import static org.labkey.api.util.DOM.at; + /** * Renders a table with all the study's datasets, one per row, including the dataset's status - * User: jeckels - * Date: May 22, 2012 */ public class DatasetListWithStatusColumn extends DataColumn { @@ -82,35 +89,48 @@ private List getDatasets(RenderContext ctx) } @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { // Show an icon for the dataset status (if set) and the dataset name, one per row, in a table - oldWriter.write(""); - for (Dataset dataset : getDatasets(ctx)) + TABLE( + (DOM.Renderable) ret -> { + for (Dataset dataset : getDatasets(ctx)) + { + TR( + TD( + at(style, "width: 16px; border-style: none"), + body(dataset) + ), + TD( + at(style, "border-style: none"), + dataset.getLabel() + ) + ).appendTo(out); + } + return ret; + } + ).appendTo(out); + } + + private Object body(Dataset dataset) + { + Object status = ReportPropsManager.get().getPropertyValue(dataset.getEntityId(), dataset.getContainer(), DataViewProvider.EditInfo.Property.status.toString()); + if (status == null || "None".equalsIgnoreCase(status.toString())) { - Object status = ReportPropsManager.get().getPropertyValue(dataset.getEntityId(), dataset.getContainer(), DataViewProvider.EditInfo.Property.status.toString()); - oldWriter.write("\n"); } - oldWriter.write("
"); - if (status == null || "None".equalsIgnoreCase(status.toString())) + return HtmlString.NBSP; + } + else + { + String iconPath = ICON_PATHS.get(status.toString()); + if (iconPath != null) { - oldWriter.write(" "); + return IMG(at(src, iconPath).at(height, "16px").at(width, "16px")); } else { - String iconPath = ICON_PATHS.get(status.toString()); - if (iconPath != null) - { - oldWriter.write(""); - } - else - { - oldWriter.write(PageFlowUtil.filter(status)); - } + return status; } - oldWriter.write(""); - oldWriter.write(PageFlowUtil.filter(dataset.getLabel())); - oldWriter.write("
"); } @Override