Skip to content

Commit d77aef5

Browse files
authored
Migrate to renderGridCellContents(RenderContext, HtmlWriter) (#1077)
1 parent c2d1e4b commit d77aef5

5 files changed

Lines changed: 53 additions & 51 deletions

File tree

src/org/labkey/targetedms/TargetedMSSchema.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,6 @@
118118
import org.springframework.validation.BindException;
119119
import org.springframework.web.servlet.mvc.Controller;
120120

121-
import java.io.IOException;
122-
import java.io.Writer;
123121
import java.sql.SQLException;
124122
import java.util.ArrayList;
125123
import java.util.Arrays;
@@ -135,6 +133,8 @@
135133
import java.util.function.Consumer;
136134
import java.util.stream.Collectors;
137135

136+
import static org.labkey.api.util.DOM.EM;
137+
138138
public class TargetedMSSchema extends UserSchema
139139
{
140140
public static final String SCHEMA_NAME = "targetedms";
@@ -805,7 +805,6 @@ public DisplayColumn createRenderer(ColumnInfo colInfo)
805805
{
806806
return new DataColumn(colInfo)
807807
{
808-
809808
@Override
810809
public @NotNull Set<ClientDependency> getClientDependencies()
811810
{
@@ -815,7 +814,7 @@ public DisplayColumn createRenderer(ColumnInfo colInfo)
815814
}
816815

817816
@Override
818-
public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException
817+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
819818
{
820819
Long runId = ctx.get(this.getColumnInfo().getFieldKey(), Long.class);
821820
if (runId != null)
@@ -825,11 +824,11 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit
825824
if(run != null)
826825
{
827826
PopupMenu menu = TargetedMSController.createDownloadMenu(run);
828-
menu.render(oldWriter);
827+
menu.render(out);
829828
}
830829
else
831830
{
832-
oldWriter.write("<em>Not available</em>");
831+
EM("Not available").appendTo(out);
833832
}
834833
}
835834
}

src/org/labkey/targetedms/query/ChromatogramDisplayColumnFactory.java

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,27 +23,25 @@
2323
import org.labkey.api.data.RenderContext;
2424
import org.labkey.api.query.FieldKey;
2525
import org.labkey.api.util.GUID;
26-
import org.labkey.api.util.PageFlowUtil;
2726
import org.labkey.api.view.ActionURL;
2827
import org.labkey.api.view.HttpView;
2928
import org.labkey.api.writer.HtmlWriter;
3029
import org.labkey.targetedms.TargetedMSController;
3130
import org.labkey.targetedms.view.ChromatogramsDataRegion;
3231
import org.springframework.web.servlet.mvc.Controller;
3332

34-
import java.io.IOException;
35-
import java.io.Writer;
3633
import java.util.Set;
3734
import java.util.function.Consumer;
3835

36+
import static org.labkey.api.util.DOM.A;
37+
import static org.labkey.api.util.DOM.Attribute.alt;
38+
import static org.labkey.api.util.DOM.Attribute.name;
39+
import static org.labkey.api.util.DOM.Attribute.style;
40+
import static org.labkey.api.util.DOM.DIV;
41+
import static org.labkey.api.util.DOM.at;
3942
import static org.labkey.targetedms.view.ChromatogramsDataRegion.FRAGMENT_PREFIX;
4043
import static org.labkey.targetedms.view.ChromatogramsDataRegion.HIGHLIGHTED_CHROMATOGRAM_PARAMETER_NAME;
4144

42-
/**
43-
* User: vsharma
44-
* Date: 5/3/12
45-
* Time: 9:10 PM
46-
*/
4745
public class ChromatogramDisplayColumnFactory implements DisplayColumnFactory
4846
{
4947
private final Container _container;
@@ -156,8 +154,8 @@ public ChromatogramDisplayColumnFactory(Container container, Type type,
156154
@Override
157155
public DisplayColumn createRenderer(ColumnInfo colInfo)
158156
{
159-
return new DataColumn(colInfo) {
160-
157+
return new DataColumn(colInfo)
158+
{
161159
@Override
162160
public boolean isFilterable()
163161
{
@@ -171,7 +169,7 @@ public boolean isSortable()
171169
}
172170

173171
@Override
174-
public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException
172+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
175173
{
176174
Object id = getValue(ctx); // Primary key from the relevant table
177175
if(null == id)
@@ -204,13 +202,20 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit
204202

205203
ChromatogramsDataRegion dataRegion = (ChromatogramsDataRegion)ctx.getCurrentRegion();
206204

207-
String html = "<a name=\"" + FRAGMENT_PREFIX + id + "\"></a>";
208-
html += "<div alt=\"Chromatogram " + PageFlowUtil.filter(sampleName) + "\" style=\"border: " + (highlight ? "beige" : "white") +
209-
" solid 8px; width:" + (_chartWidth + 16) + "px; min-height:" + (_chart_height + 50) + "px\" id=\"" + PageFlowUtil.filter(domId) + "\"></div>" +
210-
"<div style=\"text-align: center\" id=\"" + PageFlowUtil.filter(domLabelId) + "\"></div>";
205+
A(at(name,FRAGMENT_PREFIX + id )).appendTo(out);
206+
DIV(
207+
at(
208+
alt, "Chromatogram " + sampleName,
209+
style, "border: " + (highlight ? "beige" : "white") + " solid 8px; width:" + (_chartWidth + 16) + "px; min-height:" + (_chart_height + 50) + "px"
210+
).id(domId)
211+
).appendTo(out);
212+
DIV(
213+
at(
214+
style, "text-align: center"
215+
).id(domLabelId)
216+
).appendTo(out);
211217

212218
dataRegion.addSVG(chromAction.getLocalURIString(), domId, domLabelId);
213-
oldWriter.write(html);
214219
}
215220

216221
@Override

src/org/labkey/targetedms/query/QCFolderDisplayColumnFactory.java

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,18 @@
99
import org.labkey.api.security.User;
1010
import org.labkey.api.security.permissions.ReadPermission;
1111
import org.labkey.api.targetedms.TargetedMSService;
12-
import org.labkey.api.util.PageFlowUtil;
12+
import org.labkey.api.util.LinkBuilder;
1313
import org.labkey.api.writer.HtmlWriter;
1414
import org.labkey.targetedms.TargetedMSManager;
1515
import org.labkey.targetedms.TargetedMSModule;
1616
import org.labkey.targetedms.TargetedMSRun;
1717

18-
import java.io.IOException;
19-
import java.io.Writer;
2018
import java.util.Objects;
2119
import java.util.Set;
2220
import java.util.TreeSet;
2321

22+
import static org.labkey.api.util.DOM.DIV;
23+
2424
public class QCFolderDisplayColumnFactory implements DisplayColumnFactory
2525
{
2626
public QCFolderDisplayColumnFactory()
@@ -33,7 +33,7 @@ public DisplayColumn createRenderer(ColumnInfo colInfo)
3333
return new DataColumn(colInfo)
3434
{
3535
@Override
36-
public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException
36+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
3737
{
3838
final User user = ctx.getViewContext().getUser();
3939
String serialNumber = String.valueOf(getBoundColumn().getValue(ctx));
@@ -50,22 +50,15 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit
5050
}
5151
}
5252
});
53-
StringBuilder sb = new StringBuilder();
5453
qcContainers.forEach(qcContainer -> {
5554
var url = qcContainer.getStartURL(user);
5655
if (null != currentRunId)
5756
{
5857
url.addParameter("RunId", currentRunId.toString());
5958
}
6059
url.addReturnUrl(ctx.getViewContext().getActionURL());
61-
sb.append("<div><a href=\"")
62-
.append(PageFlowUtil.filter(url))
63-
.append("\"")
64-
.append(">")
65-
.append(PageFlowUtil.filter(qcContainer.getName()))
66-
.append("</a></div>");
60+
DIV(LinkBuilder.simpleLink(qcContainer.getName(), url)).appendTo(out);
6761
});
68-
oldWriter.write(sb.toString());
6962
}
7063
};
7164
}

src/org/labkey/targetedms/query/RepresentativeStateDisplayColumn.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,10 @@
2121
import org.labkey.api.targetedms.RepresentativeDataState;
2222
import org.labkey.api.writer.HtmlWriter;
2323

24-
import java.io.IOException;
25-
import java.io.Writer;
24+
import static org.labkey.api.util.DOM.Attribute.style;
25+
import static org.labkey.api.util.DOM.SPAN;
26+
import static org.labkey.api.util.DOM.at;
2627

27-
/**
28-
* User: vsharma
29-
* Date: 8/5/13
30-
* Time: 8:32 PM
31-
*/
3228
public class RepresentativeStateDisplayColumn extends DataColumn
3329
{
3430
public RepresentativeStateDisplayColumn (ColumnInfo columnInfo)
@@ -37,23 +33,29 @@ public RepresentativeStateDisplayColumn (ColumnInfo columnInfo)
3733
}
3834

3935
@Override
40-
public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException
36+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
4137
{
4238
Object representativeState = getValue(ctx);
4339
if (representativeState == null)
4440
return;
4541

4642
if (RepresentativeDataState.Representative.getLabel().equals(representativeState.toString()))
4743
{
48-
oldWriter.write("<span style='color:green;'>" + representativeState.toString() + "</span>");
44+
SPAN(
45+
at(style, "color:green;"),
46+
representativeState.toString()
47+
).appendTo(out);
4948
}
5049
else if (RepresentativeDataState.Conflicted.getLabel().equals(representativeState.toString()))
5150
{
52-
oldWriter.write("<span style='color:red;'>" + representativeState.toString() + "</span>");
51+
SPAN(
52+
at(style, "color:red;"),
53+
representativeState.toString()
54+
).appendTo(out);
5355
}
5456
else
5557
{
56-
oldWriter.write(representativeState.toString());
58+
out.write(representativeState.toString());
5759
}
5860
}
5961
}

src/org/labkey/targetedms/query/SampleFileTable.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import org.labkey.api.security.permissions.ReadPermission;
5656
import org.labkey.api.targetedms.TargetedMSService;
5757
import org.labkey.api.util.ContainerContext;
58+
import org.labkey.api.util.HtmlString;
5859
import org.labkey.api.util.PageFlowUtil;
5960
import org.labkey.api.util.Pair;
6061
import org.labkey.api.view.ActionURL;
@@ -80,6 +81,8 @@
8081
import java.util.Map;
8182
import java.util.Set;
8283

84+
import static org.labkey.api.util.DOM.EM;
85+
8386
public class SampleFileTable extends TargetedMSTable
8487
{
8588
@Nullable
@@ -352,7 +355,7 @@ public DownloadLinkColumn(ColumnInfo col)
352355
}
353356

354357
@Override
355-
public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException
358+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
356359
{
357360
Long sampleFileId = ctx.get(this.getColumnInfo().getFieldKey(), Long.class);
358361
Container container = ctx.get(_containerFieldKey, Container.class);
@@ -370,21 +373,21 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit
370373
String size = dataSize != null ? FileUtils.byteCountToDisplaySize(dataSize) : "";
371374
ExpData expData = downloadInfo.getExpData();
372375
String url = expData.getWebDavURL(FileContentService.PathType.full).toString();
373-
if(!downloadInfo.isFile())
376+
if (!downloadInfo.isFile())
374377
{
375378
int idx = url.lastIndexOf('/');
376379
url = idx != -1 ? url.substring(0, idx) : url;
377380
url = url + "?method=zip&depth=-1&file=" + PageFlowUtil.encode(expData.getName()) + "&zipName=" + PageFlowUtil.encode(expData.getName());
378381
}
379382

380-
oldWriter.write(PageFlowUtil.iconLink("fa fa-download", null).href(url).toString());
381-
oldWriter.write("&nbsp;");
382-
oldWriter.write(PageFlowUtil.filter(size));
383+
out.write(PageFlowUtil.iconLink("fa fa-download", null).href(url));
384+
out.write(HtmlString.NBSP);
385+
out.write(size);
383386
return;
384387
}
385388
}
386389
}
387-
oldWriter.write("<em>Not available</em>");
390+
EM("Not available").appendTo(out);
388391
}
389392

390393
@Override

0 commit comments

Comments
 (0)