Skip to content

Commit a2c270c

Browse files
committed
Migrate to renderGridCellContents(RenderContext, HtmlWriter)
1 parent 3d14963 commit a2c270c

File tree

2 files changed

+29
-38
lines changed

2 files changed

+29
-38
lines changed

ehr/src/org/labkey/ehr/table/DefaultEHRCustomizer.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@
6464
import org.labkey.api.study.DatasetTable;
6565
import org.labkey.api.study.Study;
6666
import org.labkey.api.study.StudyService;
67-
import org.labkey.api.util.PageFlowUtil;
6867
import org.labkey.api.util.logging.LogHelper;
6968
import org.labkey.api.view.HttpView;
7069
import org.labkey.api.view.NavTree;
@@ -73,25 +72,23 @@
7372
import org.labkey.ehr.EHRModule;
7473
import org.labkey.ehr.EHRSchema;
7574

76-
import java.io.IOException;
77-
import java.io.Writer;
7875
import java.util.ArrayList;
7976
import java.util.Arrays;
8077
import java.util.Calendar;
8178
import java.util.Collections;
82-
import java.util.Date;
8379
import java.util.HashMap;
8480
import java.util.HashSet;
8581
import java.util.LinkedHashSet;
8682
import java.util.List;
8783
import java.util.Map;
8884
import java.util.Set;
8985

90-
/**
91-
* User: bimber
92-
* Date: 12/7/12
93-
* Time: 2:29 PM
94-
*/
86+
import static org.labkey.api.util.DOM.A;
87+
import static org.labkey.api.util.DOM.Attribute.style;
88+
import static org.labkey.api.util.DOM.SPAN;
89+
import static org.labkey.api.util.DOM.at;
90+
import static org.labkey.api.util.DOM.cl;
91+
9592
public class DefaultEHRCustomizer extends AbstractTableCustomizer
9693
{
9794
public static final String ID_COL = "Id";
@@ -825,13 +822,18 @@ public DisplayColumn createRenderer(final ColumnInfo colInfo)
825822
return new DataColumn(colInfo)
826823
{
827824
@Override
828-
public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException
825+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
829826
{
830-
Object objectid = ctx.get("objectid");
831-
Date date = (Date) ctx.get("date");
832827
Object id = ctx.get(ID_COL);
833828

834-
oldWriter.write("<span style=\"white-space:nowrap\"><a class=\"labkey-text-link anm-history\" data-id=\"" + PageFlowUtil.filter(id) + "\">[Show Hx]</a></span>");
829+
SPAN(
830+
at(style, "white-space:nowrap"),
831+
A(
832+
cl("labkey-text-link anm-history").data("id", id),
833+
"[Show Hx]"
834+
)
835+
).appendTo(out);
836+
835837
if (!_clickHandlerAdded)
836838
{
837839
HttpView.currentPageConfig().addHandlerForQuerySelector("a.anm-history", "click", "EHR.window.ClinicalHistoryWindow.showClinicalHistory(null , this.attributes.getNamedItem('data-id').value, null, this);");

ehr/src/org/labkey/ehr/table/SNOMEDCodesDisplayColumn.java

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,24 @@
1616
package org.labkey.ehr.table;
1717

1818
import org.apache.commons.lang3.StringUtils;
19-
import org.apache.logging.log4j.Logger;
2019
import org.apache.logging.log4j.LogManager;
20+
import org.apache.logging.log4j.Logger;
2121
import org.jetbrains.annotations.NotNull;
22+
import org.labkey.api.collections.LabKeyCollectors;
2223
import org.labkey.api.data.ColumnInfo;
2324
import org.labkey.api.data.DataColumn;
2425
import org.labkey.api.data.RenderContext;
2526
import org.labkey.api.query.FieldKey;
27+
import org.labkey.api.util.HtmlString;
28+
import org.labkey.api.util.HtmlStringBuilder;
2629
import org.labkey.api.view.template.ClientDependency;
2730
import org.labkey.api.writer.HtmlWriter;
2831

29-
import java.io.IOException;
30-
import java.io.Writer;
3132
import java.util.Collections;
3233
import java.util.Map;
3334
import java.util.Set;
3435
import java.util.TreeMap;
3536

36-
/**
37-
* User: bimber
38-
* Date: 10/23/13
39-
* Time: 3:49 PM
40-
*/
4137
public class SNOMEDCodesDisplayColumn extends DataColumn
4238
{
4339
private static final Logger _log = LogManager.getLogger(SNOMEDCodesDisplayColumn.class);
@@ -48,48 +44,41 @@ public SNOMEDCodesDisplayColumn(ColumnInfo col)
4844
}
4945

5046
@Override
51-
public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException
47+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
5248
{
5349
Object o = getValue(ctx);
5450
if (o != null)
5551
{
5652
String val = o.toString();
5753
String[] parts = val.split("\\n");
58-
Map<Integer, String> ret = new TreeMap<>();
54+
Map<Integer, HtmlStringBuilder> ret = new TreeMap<>();
5955
for (String part : parts)
6056
{
61-
part = StringUtils.trimToNull(part);
57+
part = StringUtils.trimToNull(part); // TODO: trimToEmpty()? null means an NPE on the next line!
6258
String[] tokens = part.split(": ");
6359
if (tokens.length == 2 && StringUtils.trimToNull(tokens[0]) != null)
6460
{
6561
Integer sort = Integer.parseInt(tokens[0]);
6662
if (ret.containsKey(sort))
6763
{
6864
Object objectid = ctx.get(FieldKey.fromString("objectid"));
69-
_log.error("Duplicate sort for snomed: " + sort + (objectid == null ? "" : ". objectid: " + objectid));
70-
ret.put(sort, ret.get(sort) + "<br>" + part);
65+
_log.error("Duplicate sort for snomed: {}{}", sort, objectid == null ? "" : ". objectid: " + objectid);
66+
ret.get(sort).append(HtmlString.BR).append(part);
7167
}
7268
else
7369
{
74-
ret.put(sort, part);
70+
ret.put(sort, HtmlStringBuilder.of(part));
7571
}
76-
7772
}
7873
else
7974
{
80-
_log.error("Invalid SNOMED string: " + val);
75+
_log.error("Invalid SNOMED string: {}", val);
8176
}
8277
}
8378

84-
String text;
85-
String delim = "";
86-
for (Integer sort : ret.keySet())
87-
{
88-
text = ret.get(sort).replaceAll("\\r?\\n", "<br>");
89-
oldWriter.write(delim);
90-
delim = "<br>";
91-
oldWriter.write(text);
92-
}
79+
out.write(ret.values().stream()
80+
.map(HtmlStringBuilder::getHtmlString)
81+
.collect(LabKeyCollectors.joining(HtmlString.BR)));
9382
}
9483
}
9584

0 commit comments

Comments
 (0)