Skip to content

Commit ba9f85f

Browse files
authored
Migrate to renderGridCellContents(RenderContext, HtmlWriter) (#226)
1 parent 927122f commit ba9f85f

File tree

2 files changed

+52
-36
lines changed

2 files changed

+52
-36
lines changed

hdrl/src/org/labkey/hdrl/query/HDRLQuerySchema.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.labkey.hdrl.query;
1818

1919
import org.apache.commons.lang3.StringUtils;
20+
import org.jetbrains.annotations.NotNull;
2021
import org.jetbrains.annotations.Nullable;
2122
import org.labkey.api.data.Container;
2223
import org.labkey.api.data.ContainerFilter;
@@ -53,8 +54,6 @@
5354
import org.labkey.hdrl.HDRLSchema;
5455
import org.springframework.validation.BindException;
5556

56-
import java.io.IOException;
57-
import java.io.Writer;
5857
import java.util.HashMap;
5958
import java.util.HashSet;
6059
import java.util.List;
@@ -186,7 +185,7 @@ public Set<String> getTableNames()
186185
}
187186

188187
@Override
189-
public QueryView createView(ViewContext context, QuerySettings settings, BindException errors)
188+
public @NotNull QueryView createView(ViewContext context, QuerySettings settings, BindException errors)
190189
{
191190
String queryName = settings.getQueryName();
192191
if (TABLE_INBOUND_REQUEST.equalsIgnoreCase(queryName))
@@ -196,11 +195,10 @@ public QueryView createView(ViewContext context, QuerySettings settings, BindExc
196195
@Override
197196
protected void addDetailsAndUpdateColumns(List<DisplayColumn> ret, TableInfo table)
198197
{
199-
200198
SimpleDisplayColumn actionColumn = new SimpleDisplayColumn()
201199
{
202200
@Override
203-
public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException
201+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
204202
{
205203
Container c = ContainerManager.getForId(ctx.get(FieldKey.fromParts("container")).toString());
206204

@@ -217,18 +215,17 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit
217215
{
218216
FieldKey requestFieldKey = FieldKey.fromParts("RequestId");
219217
ActionURL actionUrl = new ActionURL(HDRLController.EditRequestAction.class, c).addParameter("requestId", (Integer)ctx.get(requestFieldKey));
220-
oldWriter.write(LinkBuilder.labkeyLink("Edit", actionUrl).toString());
218+
out.write(LinkBuilder.labkeyLink("Edit", actionUrl));
221219
}
222220
else
223221
{
224222
ActionURL actionUrl = new ActionURL(HDRLController.RequestDetailsAction.class, c);
225223
actionUrl.addParameter("requestId", (Integer) ctx.get("requestId"));
226-
oldWriter.write(LinkBuilder.labkeyLink("View", actionUrl).toString());
224+
out.write(LinkBuilder.labkeyLink("View", actionUrl));
227225
}
228226
}
229227
};
230228
ret.add(actionColumn);
231-
232229
}
233230
};
234231
}
@@ -243,20 +240,19 @@ else if (TABLE_INBOUND_SPECIMEN.equalsIgnoreCase(settings.getQueryName()) || TAB
243240

244241
QueryView queryView = new QueryView(this, settings, errors)
245242
{
246-
247243
@Override
248244
protected void addDetailsAndUpdateColumns(List<DisplayColumn> ret, TableInfo table)
249245
{
250246
SimpleDisplayColumn downloadColumn = new SimpleDisplayColumn()
251247
{
252248
@Override
253-
public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException
249+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
254250
{
255251
Integer specimenId = (Integer) ctx.get(FieldKey.fromParts("RowId"));
256252
if (HDRLManager.get().hasClinicalReport(specimenId, getUser(), getContainer()))
257253
{
258254
// download button displayed
259-
oldWriter.write(PageFlowUtil.button("Download").href(new ActionURL(HDRLController.DownloadClinicalReportAction.class, getContainer()).addParameter("specimenId", specimenId)).toString());
255+
out.write(PageFlowUtil.button("Download").href(new ActionURL(HDRLController.DownloadClinicalReportAction.class, getContainer()).addParameter("specimenId", specimenId)));
260256
}
261257
}
262258
};

viscstudies/src/org/labkey/viscstudies/DatasetListWithStatusColumn.java

Lines changed: 45 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,26 @@
2727
import org.labkey.api.study.Dataset;
2828
import org.labkey.api.study.Study;
2929
import org.labkey.api.study.StudyService;
30-
import org.labkey.api.util.PageFlowUtil;
30+
import org.labkey.api.util.DOM;
31+
import org.labkey.api.util.HtmlString;
3132
import org.labkey.api.writer.HtmlWriter;
3233

33-
import java.io.IOException;
34-
import java.io.Writer;
3534
import java.util.Collections;
3635
import java.util.List;
3736
import java.util.Map;
3837

38+
import static org.labkey.api.util.DOM.Attribute.height;
39+
import static org.labkey.api.util.DOM.Attribute.src;
40+
import static org.labkey.api.util.DOM.Attribute.style;
41+
import static org.labkey.api.util.DOM.Attribute.width;
42+
import static org.labkey.api.util.DOM.IMG;
43+
import static org.labkey.api.util.DOM.TABLE;
44+
import static org.labkey.api.util.DOM.TD;
45+
import static org.labkey.api.util.DOM.TR;
46+
import static org.labkey.api.util.DOM.at;
47+
3948
/**
4049
* Renders a table with all the study's datasets, one per row, including the dataset's status
41-
* User: jeckels
42-
* Date: May 22, 2012
4350
*/
4451
public class DatasetListWithStatusColumn extends DataColumn
4552
{
@@ -82,35 +89,48 @@ private List<? extends Dataset> getDatasets(RenderContext ctx)
8289
}
8390

8491
@Override
85-
public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException
92+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
8693
{
8794
// Show an icon for the dataset status (if set) and the dataset name, one per row, in a table
88-
oldWriter.write("<table>");
89-
for (Dataset dataset : getDatasets(ctx))
95+
TABLE(
96+
(DOM.Renderable) ret -> {
97+
for (Dataset dataset : getDatasets(ctx))
98+
{
99+
TR(
100+
TD(
101+
at(style, "width: 16px; border-style: none"),
102+
body(dataset)
103+
),
104+
TD(
105+
at(style, "border-style: none"),
106+
dataset.getLabel()
107+
)
108+
).appendTo(out);
109+
}
110+
return ret;
111+
}
112+
).appendTo(out);
113+
}
114+
115+
private Object body(Dataset dataset)
116+
{
117+
Object status = ReportPropsManager.get().getPropertyValue(dataset.getEntityId(), dataset.getContainer(), DataViewProvider.EditInfo.Property.status.toString());
118+
if (status == null || "None".equalsIgnoreCase(status.toString()))
90119
{
91-
Object status = ReportPropsManager.get().getPropertyValue(dataset.getEntityId(), dataset.getContainer(), DataViewProvider.EditInfo.Property.status.toString());
92-
oldWriter.write("<tr><td style=\"width: 16px; border-style: none\">");
93-
if (status == null || "None".equalsIgnoreCase(status.toString()))
120+
return HtmlString.NBSP;
121+
}
122+
else
123+
{
124+
String iconPath = ICON_PATHS.get(status.toString());
125+
if (iconPath != null)
94126
{
95-
oldWriter.write("&nbsp;");
127+
return IMG(at(src, iconPath).at(height, "16px").at(width, "16px"));
96128
}
97129
else
98130
{
99-
String iconPath = ICON_PATHS.get(status.toString());
100-
if (iconPath != null)
101-
{
102-
oldWriter.write("<img src=\"" + PageFlowUtil.filter(iconPath) + "\" height=\"16px\" width=\"16px\" />");
103-
}
104-
else
105-
{
106-
oldWriter.write(PageFlowUtil.filter(status));
107-
}
131+
return status;
108132
}
109-
oldWriter.write("</td><td style=\"border-style: none\">");
110-
oldWriter.write(PageFlowUtil.filter(dataset.getLabel()));
111-
oldWriter.write("</td></tr>\n");
112133
}
113-
oldWriter.write("</table>");
114134
}
115135

116136
@Override

0 commit comments

Comments
 (0)