Skip to content

Commit b7b76e9

Browse files
authored
lk-region-form -> data-region-form (#520)
1 parent 9c21409 commit b7b76e9

17 files changed

+196
-191
lines changed

lincs/src/org/labkey/lincs/LincsController.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
import org.labkey.api.view.ViewBackgroundInfo;
7979
import org.labkey.api.view.ViewContext;
8080
import org.labkey.api.view.WebPartView;
81+
import org.labkey.api.writer.HtmlWriter;
8182
import org.labkey.lincs.cromwell.CromwellConfig;
8283
import org.labkey.lincs.cromwell.CromwellException;
8384
import org.labkey.lincs.psp.LincsPspException;
@@ -95,7 +96,6 @@
9596
import java.io.FilenameFilter;
9697
import java.io.IOException;
9798
import java.io.InputStream;
98-
import java.io.Writer;
9999
import java.nio.file.Files;
100100
import java.nio.file.Path;
101101
import java.nio.file.StandardCopyOption;
@@ -114,6 +114,7 @@
114114

115115
import static org.labkey.api.util.DOM.BR;
116116
import static org.labkey.api.util.DOM.DIV;
117+
import static org.labkey.api.util.DOM.PRE;
117118

118119
public class LincsController extends SpringActionController
119120
{
@@ -161,11 +162,11 @@ public boolean accept(File dir, String name)
161162
// Copy both to the GCT folder
162163
for(File file: reportDirFiles)
163164
{
164-
if(file.getName().toLowerCase().equals("lincs.gct"))
165+
if(file.getName().equalsIgnoreCase("lincs.gct"))
165166
{
166167
Files.copy(file.toPath(), gct, StandardCopyOption.REPLACE_EXISTING);
167168
}
168-
else if(file.getName().toLowerCase().equals("console.txt"))
169+
else if(file.getName().equalsIgnoreCase("console.txt"))
169170
{
170171
Files.copy(file.toPath(), gctDir.resolve(outputFileBaseName + ".console.txt" ), StandardCopyOption.REPLACE_EXISTING);
171172
}
@@ -1280,13 +1281,15 @@ private static DataRegion getPspJobDetailsDataRegion()
12801281
SimpleDisplayColumn jsonCol = new SimpleDisplayColumn(){
12811282

12821283
@Override
1283-
public void renderDetailsCellContents(RenderContext ctx, Writer out) throws IOException
1284+
public void renderDetailsCellContents(RenderContext ctx, HtmlWriter out)
12841285
{
12851286
String json = ctx.get(FieldKey.fromParts("Json"), String.class);
1286-
if(!StringUtils.isBlank(json))
1287+
if (!StringUtils.isBlank(json))
12871288
{
12881289
JSONObject jsonObj = new JSONObject(json);
1289-
out.write("<pre>" + PageFlowUtil.filter(jsonObj.toString(2)) + "</pre>");
1290+
PRE(
1291+
jsonObj.toString(2)
1292+
).appendTo(out);
12901293
}
12911294
else
12921295
{
@@ -1379,7 +1382,7 @@ public ModelAndView getView(LincsPspJobForm form, BindException errors)
13791382
DOM.P("Status for job: " + pspJob.getId() +", PSP job Id: " + pspJob.getPspJobId() + ", Run Id: " + pspJob.getRunId()),
13801383
"JSON Output:",
13811384
DOM.BR(),
1382-
DOM.P(DOM.PRE(jsonStatus)))));
1385+
DOM.P(PRE(jsonStatus)))));
13831386
view.setTitle("PSP job status");
13841387
view.setFrame(WebPartView.FrameType.PORTAL);
13851388
return view;

lincs/src/org/labkey/lincs/LincsDataTable.java

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import org.apache.commons.lang3.StringUtils;
1919
import org.jetbrains.annotations.NotNull;
20+
import org.jetbrains.annotations.Nullable;
2021
import org.labkey.api.analytics.AnalyticsService;
2122
import org.labkey.api.data.ColumnInfo;
2223
import org.labkey.api.data.DataColumn;
@@ -33,10 +34,9 @@
3334
import org.labkey.api.util.Link;
3435
import org.labkey.api.util.PageFlowUtil;
3536
import org.labkey.api.view.ActionURL;
37+
import org.labkey.api.writer.HtmlWriter;
3638
import org.labkey.lincs.psp.LincsPspJob;
3739

38-
import java.io.IOException;
39-
import java.io.Writer;
4040
import java.nio.file.Files;
4141
import java.nio.file.Path;
4242
import java.util.ArrayList;
@@ -45,6 +45,10 @@
4545
import java.util.regex.Matcher;
4646
import java.util.regex.Pattern;
4747

48+
import static org.labkey.api.util.DOM.Attribute.style;
49+
import static org.labkey.api.util.DOM.SPAN;
50+
import static org.labkey.api.util.DOM.at;
51+
4852
/**
4953
* Created by vsharma on 8/21/2017.
5054
*/
@@ -72,17 +76,21 @@ public LincsDataTable(@NotNull TableInfo table, @NotNull UserSchema userSchema)
7276
addColumn(level1Col);
7377
level1Col.setDisplayColumnFactory(colInfo -> new DataColumn(colInfo){
7478
@Override
75-
public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
79+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
7680
{
7781
ActionURL downloadUrl = new ActionURL("targetedms", "DownloadDocument", getContainer());
7882
Integer runId = ctx.get(FieldKey.fromParts("Id"), Integer.class);
7983
downloadUrl.addParameter("id", runId);
80-
out.write("<nobr>");
81-
out.write(new Link.LinkBuilder("Download").iconCls("fa fa-download").href(downloadUrl).toString());
8284
ActionURL docDetailsUrl = new ActionURL("targetedms", "ShowPrecursorList", getContainer());
8385
docDetailsUrl.addParameter("id", runId);
84-
out.write("&nbsp;" + new Link.LinkBuilder("Skyline").href(docDetailsUrl).clearClasses().toString());
85-
out.write("</nobr>");
86+
87+
// <span style="white-space: nowrap;"> is recommended instead of deprecated <nobr></nobr>
88+
SPAN(
89+
at(style, "white-space: nowrap;"),
90+
new Link.LinkBuilder("Download").iconCls("fa fa-download").href(downloadUrl),
91+
HtmlString.NBSP,
92+
new Link.LinkBuilder("Skyline").href(docDetailsUrl).clearClasses()
93+
).appendTo(out);
8694
}
8795

8896
@Override
@@ -133,7 +141,7 @@ public boolean isFilterable()
133141
pspJobCol.setDisplayColumnFactory(colInfo -> new DataColumn(colInfo)
134142
{
135143
@Override
136-
public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
144+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
137145
{
138146
Integer runId = ctx.get(FieldKey.fromParts("Id"), Integer.class);
139147
if(runId == null)
@@ -150,7 +158,7 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
150158
ActionURL url = new ActionURL(LincsController.SubmitPspJobAction.class, getContainer());
151159
url.addParameter("runId", runId);
152160

153-
out.write(new Link.LinkBuilder(" [Submit Job]").href(url).usePost().toString());
161+
out.write(new Link.LinkBuilder(" [Submit Job]").href(url).usePost());
154162
}
155163
return;
156164
}
@@ -168,7 +176,7 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
168176
}
169177
ActionURL url = new ActionURL(LincsController.LincsPspJobDetailsAction.class, getContainer());
170178
url.addParameter("runId", pspJob.getRunId());
171-
out.write(PageFlowUtil.link(text).href(url).toString());
179+
out.write(PageFlowUtil.link(text).href(url));
172180
}
173181

174182
@Override
@@ -290,7 +298,7 @@ private String getAnalyticsScript(String eventAction, String fileName, boolean a
290298
return null;
291299
}
292300

293-
private String externalHeatmapViewerLink(String fileName, LincsModule.LincsAssay assayType)
301+
private HtmlString externalHeatmapViewerLink(String fileName, LincsModule.LincsAssay assayType)
294302
{
295303
String gctFileUrl = davUrl + "GCT/" + PageFlowUtil.encodePath(fileName);
296304
String morpheusUrl = getMorpheusUrl(gctFileUrl, assayType);
@@ -299,7 +307,9 @@ private String externalHeatmapViewerLink(String fileName, LincsModule.LincsAssay
299307
String onclickEvt = StringUtils.isBlank(analyticsScript) ? "" : "onclick=\"" + analyticsScript + "\"";
300308

301309
String imgUrl = AppProps.getInstance().getContextPath() + "/lincs/GENE-E_icon.png";
302-
return "[&nbsp;<a target=\"_blank\" " + onclickEvt + " href=\"" + morpheusUrl + "\">View in Morpheus</a> <img src=" + imgUrl + " width=\"13\", height=\"13\"/>&nbsp;]";
310+
311+
// TODO: Should use a LinkBuilder, etc.
312+
return HtmlString.unsafe("[&nbsp;<a target=\"_blank\" " + onclickEvt + " href=\"" + morpheusUrl + "\">View in Morpheus</a> <img src=" + imgUrl + " width=\"13\", height=\"13\"/>&nbsp;]");
303313
}
304314

305315
private String getMorpheusUrl(String gctFileUrl, LincsModule.LincsAssay assayType)
@@ -323,7 +333,7 @@ private String getMorpheusUrl(String gctFileUrl, LincsModule.LincsAssay assayTyp
323333
}
324334

325335
@Override
326-
public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
336+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
327337
{
328338
if(getAssayType() == null)
329339
{
@@ -333,7 +343,7 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
333343
String fileName = ctx.get(getDisplayColumn().getFieldKey(), String.class);
334344
if(fileName == null)
335345
{
336-
out.write("&nbsp");
346+
out.write(HtmlString.NBSP);
337347
return;
338348
}
339349

@@ -355,23 +365,25 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
355365

356366
String actionName = (getLevel() == LincsModule.LincsLevel.Config) ? "DownloadConfig" : "DownloadGCT";
357367
String analyticsScript = getAnalyticsScript(actionName, downloadFileName, true);
358-
String morpheusUrl = externalHeatmapViewerLink(downloadFileName, getAssayType(), getLevel());
368+
HtmlString morpheusUrl = externalHeatmapViewerLink(downloadFileName, getAssayType(), getLevel());
359369
String downloadText = (getLevel() == LincsModule.LincsLevel.Config) ? "CFG" : "GCT";
360-
renderGridCell(out, analyticsScript, getGctDavUrlUnencoded(downloadFileName), getGctDavUrl(downloadFileName), downloadText, morpheusUrl);
370+
renderGridCell(out, analyticsScript, getGctDavUrlUnencoded(downloadFileName), downloadText, morpheusUrl);
361371
}
362372

363-
private void renderGridCell(Writer out, String analyticsScript, String downloadUrl, String downloadUrlEncoded, String downloadText, String morpheusUrl) throws IOException
373+
private void renderGridCell(HtmlWriter out, String analyticsScript, String downloadUrl, String downloadText, HtmlString morpheusUrl)
364374
{
365-
out.write("<nobr>&nbsp;");
366-
out.write(new Link.LinkBuilder("Download").iconCls("fa fa-download").href(downloadUrl).onClick(analyticsScript).toString());
367-
out.write("&nbsp;");
368-
out.write(new Link.LinkBuilder(downloadText).href(downloadUrl).onClick(analyticsScript).clearClasses().toString());
369-
out.write("&nbsp;");
370-
if(morpheusUrl != null)
371-
{
372-
out.write("&nbsp;" + morpheusUrl + "&nbsp;");
373-
}
374-
out.write("</nobr>");
375+
// <span style="white-space: nowrap;"> is recommended instead of deprecated <nobr></nobr>
376+
SPAN(
377+
at(style, "white-space: nowrap;"),
378+
HtmlString.NBSP,
379+
new Link.LinkBuilder("Download").iconCls("fa fa-download").href(downloadUrl).onClick(analyticsScript),
380+
HtmlString.NBSP,
381+
new Link.LinkBuilder(downloadText).href(downloadUrl).onClick(analyticsScript).clearClasses(),
382+
HtmlString.NBSP,
383+
morpheusUrl != null ? HtmlString.NBSP : null,
384+
morpheusUrl,
385+
morpheusUrl != null ? HtmlString.NBSP : null
386+
).appendTo(out);
375387
}
376388

377389
private boolean fileAvailable(Integer runId, String downloadFileName)
@@ -396,7 +408,7 @@ private boolean fileAvailable(Integer runId, String downloadFileName)
396408
}
397409
}
398410

399-
String externalHeatmapViewerLink(String fileName, LincsModule.LincsAssay assayType, LincsModule.LincsLevel level)
411+
@Nullable HtmlString externalHeatmapViewerLink(String fileName, LincsModule.LincsAssay assayType, LincsModule.LincsLevel level)
400412
{
401413
if(level == LincsModule.LincsLevel.Config)
402414
{

lincs/src/org/labkey/lincs/LincsSchema.java

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,13 @@
2020
import org.jetbrains.annotations.Nullable;
2121
import org.json.JSONObject;
2222
import org.labkey.api.collections.CaseInsensitiveHashSet;
23-
import org.labkey.api.data.ColumnInfo;
2423
import org.labkey.api.data.Container;
2524
import org.labkey.api.data.ContainerFilter;
2625
import org.labkey.api.data.ContainerForeignKey;
2726
import org.labkey.api.data.DataColumn;
2827
import org.labkey.api.data.DbSchema;
2928
import org.labkey.api.data.DbSchemaType;
3029
import org.labkey.api.data.DisplayColumn;
31-
import org.labkey.api.data.DisplayColumnFactory;
3230
import org.labkey.api.data.RenderContext;
3331
import org.labkey.api.data.TableInfo;
3432
import org.labkey.api.data.dialect.SqlDialect;
@@ -48,13 +46,14 @@
4846
import org.labkey.api.security.UserPrincipal;
4947
import org.labkey.api.security.permissions.Permission;
5048
import org.labkey.api.view.ViewContext;
49+
import org.labkey.api.writer.HtmlWriter;
5150
import org.springframework.validation.BindException;
5251

53-
import java.io.IOException;
54-
import java.io.Writer;
5552
import java.util.List;
5653
import java.util.Set;
5754

55+
import static org.labkey.api.util.DOM.PRE;
56+
5857
public class LincsSchema extends UserSchema
5958
{
6059
public static final String SCHEMA_NAME = "lincs";
@@ -102,20 +101,16 @@ public TableInfo createTable(String name, ContainerFilter cf)
102101
ContainerForeignKey.initColumn(containerCol, this);
103102

104103
var jsonCol = result.getMutableColumn(FieldKey.fromParts("Json"));
105-
jsonCol.setDisplayColumnFactory(new DisplayColumnFactory()
106-
{
104+
jsonCol.setDisplayColumnFactory(colInfo -> new DataColumn(colInfo){
107105
@Override
108-
public DisplayColumn createRenderer(ColumnInfo colInfo)
106+
public void renderDetailsCellContents(RenderContext ctx, HtmlWriter out)
109107
{
110-
return new DataColumn(colInfo){
111-
@Override
112-
public void renderDetailsCellContents(RenderContext ctx, Writer out) throws IOException
113-
{
114-
String json = ctx.get(colInfo.getFieldKey(), String.class);
115-
JSONObject jsonObj = new JSONObject(json);
116-
out.write("<pre>" + jsonObj.toString(2) + "</pre>");
117-
}
118-
};
108+
String json = ctx.get(colInfo.getFieldKey(), String.class);
109+
JSONObject jsonObj = new JSONObject(json);
110+
111+
PRE(
112+
jsonObj.toString(2)
113+
).appendTo(out);
119114
}
120115
});
121116
return result;

panoramapublic/src/org/labkey/panoramapublic/query/CatalogEntryTableInfo.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.labkey.api.util.PageFlowUtil;
1414
import org.labkey.api.view.ActionURL;
1515
import org.labkey.api.view.ShortURLRecord;
16+
import org.labkey.api.writer.HtmlWriter;
1617
import org.labkey.panoramapublic.PanoramaPublicController;
1718
import org.labkey.panoramapublic.PanoramaPublicManager;
1819
import org.labkey.panoramapublic.PanoramaPublicSchema;
@@ -21,8 +22,6 @@
2122
import org.labkey.panoramapublic.view.publish.CatalogEntryWebPart;
2223
import org.labkey.panoramapublic.view.publish.ShortUrlDisplayColumnFactory;
2324

24-
import java.io.IOException;
25-
import java.io.Writer;
2625
import java.util.ArrayList;
2726
import java.util.List;
2827
import java.util.Set;
@@ -63,7 +62,7 @@ public Object getDisplayValue(RenderContext ctx)
6362
}
6463

6564
@Override
66-
public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
65+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
6766
{
6867
Object viewCatalogEntryUrl = getValue(ctx);
6968
if (viewCatalogEntryUrl instanceof ActionURL url)
@@ -108,18 +107,19 @@ public Object getDisplayValue(RenderContext ctx)
108107
}
109108

110109
@Override
111-
public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
110+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
112111
{
113112
String fileName = (String) getValue(ctx);
114113
ShortURLRecord shortUrl = ctx.get(_shortUrlFieldKey, ShortURLRecord.class);
115114
ExperimentAnnotations expAnnotations = shortUrl != null ? ExperimentAnnotationsManager.getExperimentForShortUrl(shortUrl) : null;
116115
if (fileName != null && expAnnotations != null)
117116
{
118117
ActionURL downloadLink = PanoramaPublicController.getCatalogImageDownloadUrl(expAnnotations, fileName);
119-
SPAN(at(style, "white-space: nowrap;"),
120-
fileName,
121-
PageFlowUtil.iconLink("fa fa-download", null).href(downloadLink).style("margin-left:10px;").build())
122-
.appendTo(out);
118+
SPAN(
119+
at(style, "white-space: nowrap;"),
120+
fileName,
121+
PageFlowUtil.iconLink("fa fa-download", null).href(downloadLink).style("margin-left:10px;").build()
122+
).appendTo(out);
123123
return;
124124
}
125125
super.renderGridCellContents(ctx, out);
@@ -157,7 +157,7 @@ public Object getDisplayValue(RenderContext ctx)
157157
reviewCol.setDisplayColumnFactory(colInfo -> new DataColumn(colInfo)
158158
{
159159
@Override
160-
public void renderGridCellContents(RenderContext ctx, Writer out)
160+
public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
161161
{
162162
Integer catalogEntryId = ctx.get(getColumnInfo().getFieldKey(), Integer.class);
163163
if (catalogEntryId != null && ctx.getViewContext().getUser().hasSiteAdminPermission())
@@ -166,9 +166,9 @@ public void renderGridCellContents(RenderContext ctx, Writer out)
166166
ExperimentAnnotations expAnnotations = ExperimentAnnotationsManager.getExperimentForShortUrl(entry.getShortUrl());
167167
if (expAnnotations != null)
168168
{
169-
DIV(CatalogEntryWebPart.changeStatusButtonBuilder(entry.getApproved(), expAnnotations.getId(), catalogEntryId, expAnnotations.getContainer())
170-
.build())
171-
.appendTo(out);
169+
DIV(
170+
CatalogEntryWebPart.changeStatusButtonBuilder(entry.getApproved(), expAnnotations.getId(), catalogEntryId, expAnnotations.getContainer())
171+
).appendTo(out);
172172
}
173173
}
174174
}

0 commit comments

Comments
 (0)