diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/DownloadSequenceDisplayColumnFactory.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/DownloadSequenceDisplayColumnFactory.java
index 127f58fec..b5cd00bd6 100644
--- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/DownloadSequenceDisplayColumnFactory.java
+++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/DownloadSequenceDisplayColumnFactory.java
@@ -10,9 +10,8 @@
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.view.HttpView;
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;
@@ -38,12 +37,12 @@ public DisplayColumn createRenderer(ColumnInfo colInfo)
private boolean _handlerRegistered = false;
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
- Object val = ctx.get(FieldKey.fromString(getBoundColumn().getFieldKey().getParent(), "rowId"));
- out.write(PageFlowUtil.link("Download Sequence").attributes(Map.of(
- "data-rowid", val.toString()
- )).addClass("sdc-row").toString());
+ 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"));
if (!_handlerRegistered)
{
diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java
index 8f0d49a59..f35de5fa6 100644
--- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java
+++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/GenbankDisplayColumnFactory.java
@@ -6,6 +6,8 @@
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;
import java.io.Writer;
@@ -23,26 +25,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 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)
{
- out.write(delim + "" + PageFlowUtil.encode(v) + "");
+ out.write(delim);
+ out.write(PageFlowUtil.link(v).href(getFormattedURL(v)).clearClasses());
delim = "; ";
}
}
}
};
-
- return ret;
}
protected String getFormattedURL(String v)
diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisCustomizer.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisCustomizer.java
index f23070d67..d19a0b445 100644
--- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisCustomizer.java
+++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisCustomizer.java
@@ -26,14 +26,15 @@
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.HtmlStringBuilder;
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.view.ActionURL;
import org.labkey.api.view.HttpView;
import org.labkey.api.view.template.ClientDependency;
+import org.labkey.api.writer.HtmlWriter;
import org.labkey.sequenceanalysis.SequenceAnalysisSchema;
-import java.io.IOException;
-import java.io.Writer;
import java.util.Collection;
import java.util.Set;
@@ -42,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)
{
@@ -258,7 +261,7 @@ private FieldKey getBoundKey(String colName)
}
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
Integer rowId = ctx.get(getBoundKey("rowId"), Integer.class);
if (rowId != null)
@@ -267,18 +270,29 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
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);
- out.write(delim + "" + token + "");
- delim = ",
";
+ out.write(delim);
+ out.write(PageFlowUtil.link(token, url).clearClasses());
+ delim = COMMA_NEWLINE;
}
}
- out.write("");
+ out.write(PageFlowUtil.link("").
+ clearClasses().
+ 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 28aabfd54..27aa00773 100644
--- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisUserSchema.java
+++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisUserSchema.java
@@ -31,13 +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;
@@ -259,7 +259,7 @@ public DisplayColumn createRenderer(ColumnInfo colInfo)
return new DataColumn(colInfo)
{
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
Object o = getValue(ctx);
if (o != null)
@@ -267,9 +267,7 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
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("");
- out.write("View File(s)");
- out.write("");
+ out.write(PageFlowUtil.link("View File(s)", url));
}
else
{
@@ -448,19 +446,20 @@ public DisplayColumn createRenderer(ColumnInfo colInfo)
return new DataColumn(colInfo)
{
@Override
- public void renderGridCellContents(RenderContext ctx, Writer 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();
- out.write(delim + "" + token + "");
- delim = "
";
+ out.write(delim);
+ out.write(PageFlowUtil.link(token, url).clearClasses());
+ delim = HtmlString.BR;
}
}
}