From 4714fbee007010645e7ef8b5200d68b00b96b233 Mon Sep 17 00:00:00 2001 From: bbimber Date: Sat, 15 Mar 2025 13:28:47 -0700 Subject: [PATCH 1/3] Finish renderGridCellContents migration --- .../query/DownloadSequenceDisplayColumnFactory.java | 10 ++++------ .../query/GenbankDisplayColumnFactory.java | 13 ++++++------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/DownloadSequenceDisplayColumnFactory.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/DownloadSequenceDisplayColumnFactory.java index eefded13a..9da6d7efb 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/DownloadSequenceDisplayColumnFactory.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/DownloadSequenceDisplayColumnFactory.java @@ -12,8 +12,6 @@ import org.labkey.api.view.template.ClientDependency; import org.labkey.api.writer.HtmlWriter; -import java.io.IOException; -import java.io.Writer; import java.util.Collections; import java.util.LinkedHashSet; import java.util.Map; @@ -39,12 +37,12 @@ public DisplayColumn createRenderer(ColumnInfo colInfo) private boolean _handlerRegistered = false; @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { - Object val = ctx.get(FieldKey.fromString(getBoundColumn().getFieldKey().getParent(), "rowId")); - oldWriter.write(PageFlowUtil.link("Download Sequence").attributes(Map.of( + Integer val = ctx.get(FieldKey.fromString(getBoundColumn().getFieldKey().getParent(), "rowId"), Integer.class); + out.write(PageFlowUtil.link("Download Sequence").attributes(Map.of( "data-rowid", val.toString() - )).addClass("sdc-row").toString()); + )).addClass("sdc-row")); if (!_handlerRegistered) { diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java index 98ec0cf9d..d00175445 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java @@ -24,26 +24,25 @@ public GenbankDisplayColumnFactory() @Override public DisplayColumn createRenderer(ColumnInfo colInfo) { - DataColumn ret = new DataColumn(colInfo) + return new DataColumn(colInfo) { @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { - Object val = ctx.get(getBoundColumn().getFieldKey()); + String val = ctx.get(getBoundColumn().getFieldKey(), String.class); if (val != null) { - String[] vals = String.valueOf(val).replaceAll("\\s+", "").split(";|,"); + String[] vals = val.replaceAll("\\s+", "").split("[;,]"); String delim = ""; for (String v : vals) { - oldWriter.write(delim + "" + PageFlowUtil.encode(v) + ""); + out.write(PageFlowUtil.link(v).href(getFormattedURL(v))); + out.write(delim); delim = "; "; } } } }; - - return ret; } protected String getFormattedURL(String v) From ff5e43082f0544e4c9832459be76c630e53e9a6c Mon Sep 17 00:00:00 2001 From: bbimber Date: Sat, 15 Mar 2025 13:56:01 -0700 Subject: [PATCH 2/3] Finish renderGridCellContents migration --- .../query/GenbankDisplayColumnFactory.java | 2 +- .../query/SequenceAnalysisCustomizer.java | 24 +++++++++++++------ .../query/SequenceAnalysisUserSchema.java | 22 ++++++++--------- 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java index d00175445..9fae8f90d 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java @@ -36,8 +36,8 @@ public void renderGridCellContents(RenderContext ctx, HtmlWriter out) String delim = ""; for (String v : vals) { - out.write(PageFlowUtil.link(v).href(getFormattedURL(v))); out.write(delim); + out.write(PageFlowUtil.link(v).href(getFormattedURL(v))); delim = "; "; } } diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisCustomizer.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisCustomizer.java index dd4fbeddf..86ea1bc0b 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisCustomizer.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisCustomizer.java @@ -26,6 +26,7 @@ import org.labkey.api.query.QueryForeignKey; import org.labkey.api.query.QueryService; import org.labkey.api.security.User; +import org.labkey.api.util.HtmlString; import org.labkey.api.util.PageFlowUtil; import org.labkey.api.view.ActionURL; import org.labkey.api.view.HttpView; @@ -33,8 +34,7 @@ import org.labkey.api.writer.HtmlWriter; import org.labkey.sequenceanalysis.SequenceAnalysisSchema; -import java.io.IOException; -import java.io.Writer; +import java.util.Arrays; import java.util.Collection; import java.util.Set; @@ -259,7 +259,7 @@ private FieldKey getBoundKey(String colName) } @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { Integer rowId = ctx.get(getBoundKey("rowId"), Integer.class); if (rowId != null) @@ -268,18 +268,28 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit if (value != null) { String[] tokens = value.split(","); - String delim = ""; + HtmlString delim = HtmlString.EMPTY_STRING; for (String token : tokens) { ActionURL url = QueryService.get().urlFor(ctx.getViewContext().getUser(), ctx.getContainer(), QueryAction.executeQuery, SequenceAnalysisSchema.SCHEMA_NAME, SequenceAnalysisSchema.TABLE_OUTPUTFILES); url.addParameter("query.fileSets~contains", token); - oldWriter.write(delim + "" + token + ""); - delim = ",
"; + out.write(delim); + out.write(PageFlowUtil.link(token).href(url)); + delim = HtmlString.join(Arrays.asList(HtmlString.of(","), HtmlString.BR), HtmlString.EMPTY_STRING); } } - oldWriter.write(""); + out.write(PageFlowUtil.link(""). + addClass("fa fa-pencil"). + addClass("lk-dr-action-icon"). + addClass("sfs-row"). + attributes(PageFlowUtil.map( + "data-tt", "tooltip", + "data-rowid", rowId.toString(), + "data-original-title", "add/edit" + )) + ); if (!_handlerRegistered) { diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisUserSchema.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisUserSchema.java index 40f865a44..ab3f41cf4 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisUserSchema.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisUserSchema.java @@ -31,14 +31,13 @@ import org.labkey.api.query.SimpleUserSchema; import org.labkey.api.security.User; import org.labkey.api.sequenceanalysis.pipeline.SequenceOutputHandler; +import org.labkey.api.util.HtmlString; import org.labkey.api.util.PageFlowUtil; import org.labkey.api.view.ActionURL; import org.labkey.api.writer.HtmlWriter; import org.labkey.sequenceanalysis.SequenceAnalysisSchema; import org.labkey.sequenceanalysis.SequenceAnalysisServiceImpl; -import java.io.IOException; -import java.io.Writer; import java.util.Arrays; import java.util.LinkedHashSet; @@ -260,7 +259,7 @@ public DisplayColumn createRenderer(ColumnInfo colInfo) return new DataColumn(colInfo) { @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { Object o = getValue(ctx); if (o != null) @@ -268,13 +267,11 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit ActionURL url = QueryService.get().urlFor(getUser(), ctx.getContainer(), QueryAction.executeQuery, SequenceAnalysisSchema.SCHEMA_NAME, SequenceAnalysisSchema.TABLE_READ_DATA); url.addFilter("query", FieldKey.fromString("readset"), CompareType.EQUAL, o); - oldWriter.write(""); - oldWriter.write("View File(s)"); - oldWriter.write(""); + out.write(PageFlowUtil.link("View File(s)").href(url).addClass("labkey-text-link")); } else { - oldWriter.write("No Files"); + out.write("No Files"); } } }; @@ -449,19 +446,20 @@ public DisplayColumn createRenderer(ColumnInfo colInfo) return new DataColumn(colInfo) { @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { String result = StringUtils.trimToNull(super.getFormattedHtml(ctx).toString()); - String delim = ""; + HtmlString delim = HtmlString.EMPTY_STRING; if (result != null) { String[] tokens = result.split(","); for (String token : tokens) { - String url = DetailsURL.fromString(_baseUrl + PageFlowUtil.encode(token), ctx.getContainer()).getActionURL().toString(); + ActionURL url = DetailsURL.fromString(_baseUrl + PageFlowUtil.encode(token), ctx.getContainer()).getActionURL(); - oldWriter.write(delim + "" + token + ""); - delim = "
"; + out.write(delim); + out.write(PageFlowUtil.link(token).href(url)); + delim = HtmlString.BR; } } } From 940a01d1a296c4cb7d9e75a509f68cc3e46070b5 Mon Sep 17 00:00:00 2001 From: bbimber Date: Sun, 16 Mar 2025 07:45:45 -0700 Subject: [PATCH 3/3] Finish renderGridCellContents migration --- .../query/DownloadSequenceDisplayColumnFactory.java | 6 +++--- .../query/GenbankDisplayColumnFactory.java | 3 ++- .../query/SequenceAnalysisCustomizer.java | 9 ++++++--- .../query/SequenceAnalysisUserSchema.java | 4 ++-- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/DownloadSequenceDisplayColumnFactory.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/DownloadSequenceDisplayColumnFactory.java index 9da6d7efb..b5cd00bd6 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/DownloadSequenceDisplayColumnFactory.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/DownloadSequenceDisplayColumnFactory.java @@ -40,9 +40,9 @@ public DisplayColumn createRenderer(ColumnInfo colInfo) public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { Integer val = ctx.get(FieldKey.fromString(getBoundColumn().getFieldKey().getParent(), "rowId"), Integer.class); - out.write(PageFlowUtil.link("Download Sequence").attributes(Map.of( - "data-rowid", val.toString() - )).addClass("sdc-row")); + out.write(PageFlowUtil.link("Download Sequence"). + attributes(Map.of("data-rowid", val.toString())). + addClass("sdc-row")); if (!_handlerRegistered) { diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java index 9fae8f90d..f35de5fa6 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java @@ -6,6 +6,7 @@ import org.labkey.api.data.DisplayColumnFactory; import org.labkey.api.data.RenderContext; import org.labkey.api.util.PageFlowUtil; +import org.labkey.api.util.URLHelper; import org.labkey.api.writer.HtmlWriter; import java.io.IOException; @@ -37,7 +38,7 @@ public void renderGridCellContents(RenderContext ctx, HtmlWriter out) for (String v : vals) { out.write(delim); - out.write(PageFlowUtil.link(v).href(getFormattedURL(v))); + out.write(PageFlowUtil.link(v).href(getFormattedURL(v)).clearClasses()); delim = "; "; } } diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisCustomizer.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisCustomizer.java index 86ea1bc0b..d19a0b445 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisCustomizer.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisCustomizer.java @@ -27,6 +27,7 @@ import org.labkey.api.query.QueryService; import org.labkey.api.security.User; import org.labkey.api.util.HtmlString; +import org.labkey.api.util.HtmlStringBuilder; import org.labkey.api.util.PageFlowUtil; import org.labkey.api.view.ActionURL; import org.labkey.api.view.HttpView; @@ -34,7 +35,6 @@ import org.labkey.api.writer.HtmlWriter; import org.labkey.sequenceanalysis.SequenceAnalysisSchema; -import java.util.Arrays; import java.util.Collection; import java.util.Set; @@ -43,6 +43,8 @@ */ public class SequenceAnalysisCustomizer implements TableCustomizer { + private static final HtmlString COMMA_NEWLINE = HtmlStringBuilder.of(",").append(HtmlString.BR).getHtmlString(); + @Override public void customize(TableInfo tableInfo) { @@ -275,12 +277,13 @@ public void renderGridCellContents(RenderContext ctx, HtmlWriter out) url.addParameter("query.fileSets~contains", token); out.write(delim); - out.write(PageFlowUtil.link(token).href(url)); - delim = HtmlString.join(Arrays.asList(HtmlString.of(","), HtmlString.BR), HtmlString.EMPTY_STRING); + out.write(PageFlowUtil.link(token, url).clearClasses()); + delim = COMMA_NEWLINE; } } out.write(PageFlowUtil.link(""). + clearClasses(). addClass("fa fa-pencil"). addClass("lk-dr-action-icon"). addClass("sfs-row"). diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisUserSchema.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisUserSchema.java index ab3f41cf4..27aa00773 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisUserSchema.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisUserSchema.java @@ -267,7 +267,7 @@ public void renderGridCellContents(RenderContext ctx, HtmlWriter out) ActionURL url = QueryService.get().urlFor(getUser(), ctx.getContainer(), QueryAction.executeQuery, SequenceAnalysisSchema.SCHEMA_NAME, SequenceAnalysisSchema.TABLE_READ_DATA); url.addFilter("query", FieldKey.fromString("readset"), CompareType.EQUAL, o); - out.write(PageFlowUtil.link("View File(s)").href(url).addClass("labkey-text-link")); + out.write(PageFlowUtil.link("View File(s)", url)); } else { @@ -458,7 +458,7 @@ public void renderGridCellContents(RenderContext ctx, HtmlWriter out) ActionURL url = DetailsURL.fromString(_baseUrl + PageFlowUtil.encode(token), ctx.getContainer()).getActionURL(); out.write(delim); - out.write(PageFlowUtil.link(token).href(url)); + out.write(PageFlowUtil.link(token, url).clearClasses()); delim = HtmlString.BR; } }