diff --git a/lincs/src/org/labkey/lincs/LincsController.java b/lincs/src/org/labkey/lincs/LincsController.java
index 4918de43..19dc19ad 100644
--- a/lincs/src/org/labkey/lincs/LincsController.java
+++ b/lincs/src/org/labkey/lincs/LincsController.java
@@ -78,6 +78,7 @@
import org.labkey.api.view.ViewBackgroundInfo;
import org.labkey.api.view.ViewContext;
import org.labkey.api.view.WebPartView;
+import org.labkey.api.writer.HtmlWriter;
import org.labkey.lincs.cromwell.CromwellConfig;
import org.labkey.lincs.cromwell.CromwellException;
import org.labkey.lincs.psp.LincsPspException;
@@ -95,7 +96,6 @@
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
-import java.io.Writer;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
@@ -114,6 +114,7 @@
import static org.labkey.api.util.DOM.BR;
import static org.labkey.api.util.DOM.DIV;
+import static org.labkey.api.util.DOM.PRE;
public class LincsController extends SpringActionController
{
@@ -161,11 +162,11 @@ public boolean accept(File dir, String name)
// Copy both to the GCT folder
for(File file: reportDirFiles)
{
- if(file.getName().toLowerCase().equals("lincs.gct"))
+ if(file.getName().equalsIgnoreCase("lincs.gct"))
{
Files.copy(file.toPath(), gct, StandardCopyOption.REPLACE_EXISTING);
}
- else if(file.getName().toLowerCase().equals("console.txt"))
+ else if(file.getName().equalsIgnoreCase("console.txt"))
{
Files.copy(file.toPath(), gctDir.resolve(outputFileBaseName + ".console.txt" ), StandardCopyOption.REPLACE_EXISTING);
}
@@ -1280,13 +1281,15 @@ private static DataRegion getPspJobDetailsDataRegion()
SimpleDisplayColumn jsonCol = new SimpleDisplayColumn(){
@Override
- public void renderDetailsCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderDetailsCellContents(RenderContext ctx, HtmlWriter out)
{
String json = ctx.get(FieldKey.fromParts("Json"), String.class);
- if(!StringUtils.isBlank(json))
+ if (!StringUtils.isBlank(json))
{
JSONObject jsonObj = new JSONObject(json);
- out.write("
" + PageFlowUtil.filter(jsonObj.toString(2)) + "
");
+ PRE(
+ jsonObj.toString(2)
+ ).appendTo(out);
}
else
{
@@ -1379,7 +1382,7 @@ public ModelAndView getView(LincsPspJobForm form, BindException errors)
DOM.P("Status for job: " + pspJob.getId() +", PSP job Id: " + pspJob.getPspJobId() + ", Run Id: " + pspJob.getRunId()),
"JSON Output:",
DOM.BR(),
- DOM.P(DOM.PRE(jsonStatus)))));
+ DOM.P(PRE(jsonStatus)))));
view.setTitle("PSP job status");
view.setFrame(WebPartView.FrameType.PORTAL);
return view;
diff --git a/lincs/src/org/labkey/lincs/LincsDataTable.java b/lincs/src/org/labkey/lincs/LincsDataTable.java
index 2bb76c16..3d2e8a57 100644
--- a/lincs/src/org/labkey/lincs/LincsDataTable.java
+++ b/lincs/src/org/labkey/lincs/LincsDataTable.java
@@ -17,6 +17,7 @@
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import org.labkey.api.analytics.AnalyticsService;
import org.labkey.api.data.ColumnInfo;
import org.labkey.api.data.DataColumn;
@@ -33,10 +34,9 @@
import org.labkey.api.util.Link;
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.view.ActionURL;
+import org.labkey.api.writer.HtmlWriter;
import org.labkey.lincs.psp.LincsPspJob;
-import java.io.IOException;
-import java.io.Writer;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
@@ -45,6 +45,10 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import static org.labkey.api.util.DOM.Attribute.style;
+import static org.labkey.api.util.DOM.SPAN;
+import static org.labkey.api.util.DOM.at;
+
/**
* Created by vsharma on 8/21/2017.
*/
@@ -72,17 +76,21 @@ public LincsDataTable(@NotNull TableInfo table, @NotNull UserSchema userSchema)
addColumn(level1Col);
level1Col.setDisplayColumnFactory(colInfo -> new DataColumn(colInfo){
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
ActionURL downloadUrl = new ActionURL("targetedms", "DownloadDocument", getContainer());
Integer runId = ctx.get(FieldKey.fromParts("Id"), Integer.class);
downloadUrl.addParameter("id", runId);
- out.write("");
- out.write(new Link.LinkBuilder("Download").iconCls("fa fa-download").href(downloadUrl).toString());
ActionURL docDetailsUrl = new ActionURL("targetedms", "ShowPrecursorList", getContainer());
docDetailsUrl.addParameter("id", runId);
- out.write(" " + new Link.LinkBuilder("Skyline").href(docDetailsUrl).clearClasses().toString());
- out.write("");
+
+ // is recommended instead of deprecated
+ SPAN(
+ at(style, "white-space: nowrap;"),
+ new Link.LinkBuilder("Download").iconCls("fa fa-download").href(downloadUrl),
+ HtmlString.NBSP,
+ new Link.LinkBuilder("Skyline").href(docDetailsUrl).clearClasses()
+ ).appendTo(out);
}
@Override
@@ -133,7 +141,7 @@ public boolean isFilterable()
pspJobCol.setDisplayColumnFactory(colInfo -> new DataColumn(colInfo)
{
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
Integer runId = ctx.get(FieldKey.fromParts("Id"), Integer.class);
if(runId == null)
@@ -150,7 +158,7 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
ActionURL url = new ActionURL(LincsController.SubmitPspJobAction.class, getContainer());
url.addParameter("runId", runId);
- out.write(new Link.LinkBuilder(" [Submit Job]").href(url).usePost().toString());
+ out.write(new Link.LinkBuilder(" [Submit Job]").href(url).usePost());
}
return;
}
@@ -168,7 +176,7 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
}
ActionURL url = new ActionURL(LincsController.LincsPspJobDetailsAction.class, getContainer());
url.addParameter("runId", pspJob.getRunId());
- out.write(PageFlowUtil.link(text).href(url).toString());
+ out.write(PageFlowUtil.link(text).href(url));
}
@Override
@@ -290,7 +298,7 @@ private String getAnalyticsScript(String eventAction, String fileName, boolean a
return null;
}
- private String externalHeatmapViewerLink(String fileName, LincsModule.LincsAssay assayType)
+ private HtmlString externalHeatmapViewerLink(String fileName, LincsModule.LincsAssay assayType)
{
String gctFileUrl = davUrl + "GCT/" + PageFlowUtil.encodePath(fileName);
String morpheusUrl = getMorpheusUrl(gctFileUrl, assayType);
@@ -299,7 +307,9 @@ private String externalHeatmapViewerLink(String fileName, LincsModule.LincsAssay
String onclickEvt = StringUtils.isBlank(analyticsScript) ? "" : "onclick=\"" + analyticsScript + "\"";
String imgUrl = AppProps.getInstance().getContextPath() + "/lincs/GENE-E_icon.png";
- return "[ View in Morpheus
]";
+
+ // TODO: Should use a LinkBuilder, etc.
+ return HtmlString.unsafe("[ View in Morpheus
]");
}
private String getMorpheusUrl(String gctFileUrl, LincsModule.LincsAssay assayType)
@@ -323,7 +333,7 @@ private String getMorpheusUrl(String gctFileUrl, LincsModule.LincsAssay assayTyp
}
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
if(getAssayType() == null)
{
@@ -333,7 +343,7 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
String fileName = ctx.get(getDisplayColumn().getFieldKey(), String.class);
if(fileName == null)
{
- out.write(" ");
+ out.write(HtmlString.NBSP);
return;
}
@@ -355,23 +365,25 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
String actionName = (getLevel() == LincsModule.LincsLevel.Config) ? "DownloadConfig" : "DownloadGCT";
String analyticsScript = getAnalyticsScript(actionName, downloadFileName, true);
- String morpheusUrl = externalHeatmapViewerLink(downloadFileName, getAssayType(), getLevel());
+ HtmlString morpheusUrl = externalHeatmapViewerLink(downloadFileName, getAssayType(), getLevel());
String downloadText = (getLevel() == LincsModule.LincsLevel.Config) ? "CFG" : "GCT";
- renderGridCell(out, analyticsScript, getGctDavUrlUnencoded(downloadFileName), getGctDavUrl(downloadFileName), downloadText, morpheusUrl);
+ renderGridCell(out, analyticsScript, getGctDavUrlUnencoded(downloadFileName), downloadText, morpheusUrl);
}
- private void renderGridCell(Writer out, String analyticsScript, String downloadUrl, String downloadUrlEncoded, String downloadText, String morpheusUrl) throws IOException
+ private void renderGridCell(HtmlWriter out, String analyticsScript, String downloadUrl, String downloadText, HtmlString morpheusUrl)
{
- out.write(" ");
- out.write(new Link.LinkBuilder("Download").iconCls("fa fa-download").href(downloadUrl).onClick(analyticsScript).toString());
- out.write(" ");
- out.write(new Link.LinkBuilder(downloadText).href(downloadUrl).onClick(analyticsScript).clearClasses().toString());
- out.write(" ");
- if(morpheusUrl != null)
- {
- out.write(" " + morpheusUrl + " ");
- }
- out.write("");
+ // is recommended instead of deprecated
+ SPAN(
+ at(style, "white-space: nowrap;"),
+ HtmlString.NBSP,
+ new Link.LinkBuilder("Download").iconCls("fa fa-download").href(downloadUrl).onClick(analyticsScript),
+ HtmlString.NBSP,
+ new Link.LinkBuilder(downloadText).href(downloadUrl).onClick(analyticsScript).clearClasses(),
+ HtmlString.NBSP,
+ morpheusUrl != null ? HtmlString.NBSP : null,
+ morpheusUrl,
+ morpheusUrl != null ? HtmlString.NBSP : null
+ ).appendTo(out);
}
private boolean fileAvailable(Integer runId, String downloadFileName)
@@ -396,7 +408,7 @@ private boolean fileAvailable(Integer runId, String downloadFileName)
}
}
- String externalHeatmapViewerLink(String fileName, LincsModule.LincsAssay assayType, LincsModule.LincsLevel level)
+ @Nullable HtmlString externalHeatmapViewerLink(String fileName, LincsModule.LincsAssay assayType, LincsModule.LincsLevel level)
{
if(level == LincsModule.LincsLevel.Config)
{
diff --git a/lincs/src/org/labkey/lincs/LincsSchema.java b/lincs/src/org/labkey/lincs/LincsSchema.java
index 971c20b1..338fd6c9 100644
--- a/lincs/src/org/labkey/lincs/LincsSchema.java
+++ b/lincs/src/org/labkey/lincs/LincsSchema.java
@@ -20,7 +20,6 @@
import org.jetbrains.annotations.Nullable;
import org.json.JSONObject;
import org.labkey.api.collections.CaseInsensitiveHashSet;
-import org.labkey.api.data.ColumnInfo;
import org.labkey.api.data.Container;
import org.labkey.api.data.ContainerFilter;
import org.labkey.api.data.ContainerForeignKey;
@@ -28,7 +27,6 @@
import org.labkey.api.data.DbSchema;
import org.labkey.api.data.DbSchemaType;
import org.labkey.api.data.DisplayColumn;
-import org.labkey.api.data.DisplayColumnFactory;
import org.labkey.api.data.RenderContext;
import org.labkey.api.data.TableInfo;
import org.labkey.api.data.dialect.SqlDialect;
@@ -48,13 +46,14 @@
import org.labkey.api.security.UserPrincipal;
import org.labkey.api.security.permissions.Permission;
import org.labkey.api.view.ViewContext;
+import org.labkey.api.writer.HtmlWriter;
import org.springframework.validation.BindException;
-import java.io.IOException;
-import java.io.Writer;
import java.util.List;
import java.util.Set;
+import static org.labkey.api.util.DOM.PRE;
+
public class LincsSchema extends UserSchema
{
public static final String SCHEMA_NAME = "lincs";
@@ -102,20 +101,16 @@ public TableInfo createTable(String name, ContainerFilter cf)
ContainerForeignKey.initColumn(containerCol, this);
var jsonCol = result.getMutableColumn(FieldKey.fromParts("Json"));
- jsonCol.setDisplayColumnFactory(new DisplayColumnFactory()
- {
+ jsonCol.setDisplayColumnFactory(colInfo -> new DataColumn(colInfo){
@Override
- public DisplayColumn createRenderer(ColumnInfo colInfo)
+ public void renderDetailsCellContents(RenderContext ctx, HtmlWriter out)
{
- return new DataColumn(colInfo){
- @Override
- public void renderDetailsCellContents(RenderContext ctx, Writer out) throws IOException
- {
- String json = ctx.get(colInfo.getFieldKey(), String.class);
- JSONObject jsonObj = new JSONObject(json);
- out.write("" + jsonObj.toString(2) + "
");
- }
- };
+ String json = ctx.get(colInfo.getFieldKey(), String.class);
+ JSONObject jsonObj = new JSONObject(json);
+
+ PRE(
+ jsonObj.toString(2)
+ ).appendTo(out);
}
});
return result;
diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/CatalogEntryTableInfo.java b/panoramapublic/src/org/labkey/panoramapublic/query/CatalogEntryTableInfo.java
index fd975bb2..df4e7037 100644
--- a/panoramapublic/src/org/labkey/panoramapublic/query/CatalogEntryTableInfo.java
+++ b/panoramapublic/src/org/labkey/panoramapublic/query/CatalogEntryTableInfo.java
@@ -13,6 +13,7 @@
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.view.ActionURL;
import org.labkey.api.view.ShortURLRecord;
+import org.labkey.api.writer.HtmlWriter;
import org.labkey.panoramapublic.PanoramaPublicController;
import org.labkey.panoramapublic.PanoramaPublicManager;
import org.labkey.panoramapublic.PanoramaPublicSchema;
@@ -21,8 +22,6 @@
import org.labkey.panoramapublic.view.publish.CatalogEntryWebPart;
import org.labkey.panoramapublic.view.publish.ShortUrlDisplayColumnFactory;
-import java.io.IOException;
-import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -63,7 +62,7 @@ public Object getDisplayValue(RenderContext ctx)
}
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
Object viewCatalogEntryUrl = getValue(ctx);
if (viewCatalogEntryUrl instanceof ActionURL url)
@@ -108,7 +107,7 @@ public Object getDisplayValue(RenderContext ctx)
}
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
String fileName = (String) getValue(ctx);
ShortURLRecord shortUrl = ctx.get(_shortUrlFieldKey, ShortURLRecord.class);
@@ -116,10 +115,11 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
if (fileName != null && expAnnotations != null)
{
ActionURL downloadLink = PanoramaPublicController.getCatalogImageDownloadUrl(expAnnotations, fileName);
- SPAN(at(style, "white-space: nowrap;"),
- fileName,
- PageFlowUtil.iconLink("fa fa-download", null).href(downloadLink).style("margin-left:10px;").build())
- .appendTo(out);
+ SPAN(
+ at(style, "white-space: nowrap;"),
+ fileName,
+ PageFlowUtil.iconLink("fa fa-download", null).href(downloadLink).style("margin-left:10px;").build()
+ ).appendTo(out);
return;
}
super.renderGridCellContents(ctx, out);
@@ -157,7 +157,7 @@ public Object getDisplayValue(RenderContext ctx)
reviewCol.setDisplayColumnFactory(colInfo -> new DataColumn(colInfo)
{
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out)
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
Integer catalogEntryId = ctx.get(getColumnInfo().getFieldKey(), Integer.class);
if (catalogEntryId != null && ctx.getViewContext().getUser().hasSiteAdminPermission())
@@ -166,9 +166,9 @@ public void renderGridCellContents(RenderContext ctx, Writer out)
ExperimentAnnotations expAnnotations = ExperimentAnnotationsManager.getExperimentForShortUrl(entry.getShortUrl());
if (expAnnotations != null)
{
- DIV(CatalogEntryWebPart.changeStatusButtonBuilder(entry.getApproved(), expAnnotations.getId(), catalogEntryId, expAnnotations.getContainer())
- .build())
- .appendTo(out);
+ DIV(
+ CatalogEntryWebPart.changeStatusButtonBuilder(entry.getApproved(), expAnnotations.getId(), catalogEntryId, expAnnotations.getContainer())
+ ).appendTo(out);
}
}
}
diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentAnnotationsTableInfo.java b/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentAnnotationsTableInfo.java
index 4c4df823..38d66ffb 100644
--- a/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentAnnotationsTableInfo.java
+++ b/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentAnnotationsTableInfo.java
@@ -58,15 +58,18 @@
import org.labkey.api.settings.AppProps;
import org.labkey.api.util.DOM;
import org.labkey.api.util.HtmlString;
+import org.labkey.api.util.JavaScriptFragment;
import org.labkey.api.util.Link;
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.util.SimpleNamedObject;
import org.labkey.api.util.StringExpressionFactory;
import org.labkey.api.util.UniqueID;
+import org.labkey.api.util.element.Input.InputBuilder;
import org.labkey.api.view.ActionURL;
import org.labkey.api.view.HttpView;
import org.labkey.api.view.template.ClientDependency;
import org.labkey.api.view.template.PageConfig;
+import org.labkey.api.writer.HtmlWriter;
import org.labkey.panoramapublic.PanoramaPublicController;
import org.labkey.panoramapublic.PanoramaPublicManager;
import org.labkey.panoramapublic.PanoramaPublicSchema;
@@ -77,8 +80,6 @@
import org.labkey.panoramapublic.view.publish.CatalogEntryWebPart;
import org.labkey.panoramapublic.view.publish.ShortUrlDisplayColumnFactory;
-import java.io.IOException;
-import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -86,10 +87,12 @@
import static org.labkey.api.util.DOM.Attribute.height;
import static org.labkey.api.util.DOM.Attribute.href;
import static org.labkey.api.util.DOM.Attribute.src;
+import static org.labkey.api.util.DOM.Attribute.style;
import static org.labkey.api.util.DOM.Attribute.title;
import static org.labkey.api.util.DOM.Attribute.width;
import static org.labkey.api.util.DOM.DIV;
import static org.labkey.api.util.DOM.IMG;
+import static org.labkey.api.util.DOM.SCRIPT;
import static org.labkey.api.util.DOM.at;
/**
@@ -132,8 +135,8 @@ public DisplayColumn createRenderer(ColumnInfo colInfo)
{
return new DataColumn(colInfo, true)
{
- private FieldKey _containerKey = new FieldKey(getColumnInfo().getFieldKey().getParent(), "container");
- private FieldKey _idKey = new FieldKey(getColumnInfo().getFieldKey().getParent(), "id");
+ private final FieldKey _containerKey = new FieldKey(getColumnInfo().getFieldKey().getParent(), "container");
+ private final FieldKey _idKey = new FieldKey(getColumnInfo().getFieldKey().getParent(), "id");
@Override
public @NotNull Set getClientDependencies()
@@ -146,22 +149,25 @@ public DisplayColumn createRenderer(ColumnInfo colInfo)
}
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
Integer id = ctx.get(_idKey, Integer.class);
Container container = ctx.get(_containerKey, Container.class);
- if(id != null && container != null)
+ if (id != null && container != null)
{
ActionURL detailsPage = PageFlowUtil.urlProvider(ProjectUrls.class).getBeginURL(container); // experiment container
PageConfig pageConfig = HttpView.currentPageConfig();
String spanId = pageConfig.makeId("expt_details_");
- DOM.SPAN(at(DOM.Attribute.id, spanId)
- .data("active", "false") // will be rendered as "data-active" attribute
- .data("loaded", "false"), // will be rendered as "data-loaded" attribute
- IMG(at(DOM.Attribute.id, "expandcontract-" + id)
- .at(src, PageFlowUtil.staticResourceUrl("_images/plus.gif"))),
- HtmlString.NBSP)
- .appendTo(out);
+ DOM.SPAN(
+ at(DOM.Attribute.id, spanId)
+ .data("active", "false") // will be rendered as "data-active" attribute
+ .data("loaded", "false"), // will be rendered as "data-loaded" attribute
+ IMG(
+ at(DOM.Attribute.id, "expandcontract-" + id)
+ .at(src, PageFlowUtil.staticResourceUrl("_images/plus.gif"))
+ ),
+ HtmlString.NBSP
+ ).appendTo(out);
pageConfig.addHandler(spanId, "click", "viewExperimentDetails(this,'" + container.getPath() + "', '" + id + "','" + detailsPage + "')");
}
super.renderGridCellContents(ctx, out);
@@ -188,16 +194,16 @@ public void addQueryFieldKeys(Set keys)
public @NotNull Set getClientDependencies()
{
return PageFlowUtil.set(
- ClientDependency.fromPath("PanoramaPublic/css/ExperimentAnnotations.css"),
- ClientDependency.fromPath("hopscotch/css/hopscotch.min.css"),
- ClientDependency.fromPath("PanoramaPublic/js/ExperimentAnnotations.js"),
- ClientDependency.fromPath("PanoramaPublic/js/clipboard.min.js"),
- ClientDependency.fromPath("hopscotch/js/hopscotch.min.js")
- );
+ ClientDependency.fromPath("PanoramaPublic/css/ExperimentAnnotations.css"),
+ ClientDependency.fromPath("hopscotch/css/hopscotch.min.css"),
+ ClientDependency.fromPath("PanoramaPublic/js/ExperimentAnnotations.js"),
+ ClientDependency.fromPath("PanoramaPublic/js/clipboard.min.js"),
+ ClientDependency.fromPath("hopscotch/js/hopscotch.min.js")
+ );
}
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
// Get the ExperimentAnnotations record
Integer experimentAnnotationsId = ctx.get(colInfo.getFieldKey(), Integer.class);
@@ -205,18 +211,14 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
String accessUrl = ExperimentAnnotationsManager.getExperimentShortUrl(expAnnotations);
- if(accessUrl == null)
- {
- out.write("");
- }
- else
+ if (accessUrl != null)
{
var link = new Link.LinkBuilder("Share")
- .clearClasses().addClass("button-small button-small-green")
- .style("margin:0px 5px 0px 2px;")
- .onClick("showShareLink(this, " + PageFlowUtil.jsString(accessUrl) + ");return false;");
- DIV(link.build()).appendTo(out);
+ .clearClasses().addClass("button-small button-small-green")
+ .style("margin:0px 5px 0px 2px;")
+ .onClick("showShareLink(this, " + PageFlowUtil.jsString(accessUrl) + ");return false;");
+ DIV(link).appendTo(out);
}
}
});
@@ -286,12 +288,12 @@ public String renderURL(RenderContext ctx)
return license != null ? license.getUrl() : null;
}
@Override
- public Class getValueClass()
+ public Class getValueClass()
{
return String.class;
}
@Override
- public Class getDisplayValueClass()
+ public Class getDisplayValueClass()
{
return String.class;
}
@@ -314,7 +316,7 @@ public Class getDisplayValueClass()
getMutableColumn("ModifiedBy").setFk(new UserIdQueryForeignKey(schema));
ExprColumn catalogEntryCol = getCatalogEntryCol();
- catalogEntryCol.setDisplayColumnFactory(colInfo -> new CatalogEntryIconColumn(colInfo));
+ catalogEntryCol.setDisplayColumnFactory(CatalogEntryIconColumn::new);
addColumn(catalogEntryCol);
List visibleColumns = new ArrayList<>();
@@ -700,7 +702,7 @@ public AutoCompleteColumn(ColumnInfo col, ActionURL autocompletionUrl, boolean p
}
@Override
- public void renderInputHtml(RenderContext ctx, Writer out, Object value) throws IOException
+ public void renderInputHtml(RenderContext ctx, HtmlWriter out, Object value)
{
String name = getFormFieldName(ctx);
String valueString = getStringValue(value, isDisabledInput(ctx));
@@ -710,20 +712,31 @@ public void renderInputHtml(RenderContext ctx, Writer out, Object value) throws
}
String renderId = getRenderId();
- StringBuilder sb = new StringBuilder();
-
- sb.append("\n");
- sb.append("");
- sb.append("").append(PageFlowUtil.filter(getHelpText(), true, false)).append("
");
- out.write(sb.toString());
+ SCRIPT(
+ JavaScriptFragment.unsafe(
+ "LABKEY.requiresScript([\"/PanoramaPublic/js/ExpAnnotAutoComplete.js\"], function() {\n" +
+ " Ext4.onReady(function(){\n" +
+ " initAutoComplete(" + _autoCompletionUrl + ", " + PageFlowUtil.jsString(renderId) + ", " + (_prefetch ? "true" : "false") + ");\n" +
+ " });" +
+ "});\n"
+ )
+ ).appendTo(out);
+
+ DIV(
+ at(style, "margin-top:5px;").id(renderId).cl("scrollable-dropdown-menu"),
+ new InputBuilder<>()
+ .type("text")
+ .className("tags")
+ .placeholder(_placeholderText)
+ .name(name)
+ .value(valueString)
+ ).appendTo(out);
+
+ DIV(
+ at(style, "font-size:11px"),
+ HtmlString.unsafe(PageFlowUtil.filter(getHelpText(), true, false))
+ ).appendTo(out);
}
@NotNull
@@ -740,19 +753,18 @@ String getHelpText()
private static class OrganismColumn extends AutoCompleteColumn
{
-
public OrganismColumn(ColumnInfo col, ActionURL autocompletionUrl, boolean prefetch, String placeHolderText)
{
super(col, autocompletionUrl, prefetch, placeHolderText);
}
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
String organismsStr = ctx.get(getColumnInfo().getFieldKey(), String.class);
if(!StringUtils.isBlank(organismsStr))
{
- out.write(PageFlowUtil.filter(ExperimentAnnotations.getOrganismsNoTaxId(organismsStr)));
+ out.write(ExperimentAnnotations.getOrganismsNoTaxId(organismsStr));
}
else
{
@@ -769,6 +781,7 @@ String getHelpText()
}
@Override
+ @NotNull
String getRenderId()
{
return "input-picker-div-organism";
@@ -777,13 +790,13 @@ String getRenderId()
private static class InstrumentColumn extends AutoCompleteColumn
{
-
public InstrumentColumn(ColumnInfo col, ActionURL autocompletionUrl, boolean prefetch, String placeHolderText)
{
super(col, autocompletionUrl, prefetch, placeHolderText);
}
@Override
+ @NotNull
String getRenderId()
{
return "input-picker-div-instrument";
@@ -799,12 +812,12 @@ public CatalogEntryIconColumn(ColumnInfo col)
}
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
User user = ctx.getViewContext().getUser();
if (user == null || user.isGuest())
{
- HtmlString.NBSP.appendTo(out);
+ out.write(HtmlString.NBSP);
return;
}
Integer catalogEntryId = ctx.get(getColumnInfo().getFieldKey(), Integer.class);
@@ -824,13 +837,16 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
ActionURL returnUrl = ctx.getViewContext().getActionURL().clone();
ActionURL catalogEntryLink = entry != null ? PanoramaPublicController.getViewCatalogEntryUrl(expAnnot, entry).addReturnUrl(returnUrl)
: PanoramaPublicController.getAddCatalogEntryUrl(expAnnot).addReturnUrl(returnUrl);
- DOM.A(at(href, catalogEntryLink.getLocalURIString(), title, PageFlowUtil.filter(imageTitle)),
- DOM.IMG(at(src, imageUrl, height, 22, width, 22)))
- .appendTo(out);
+ DOM.A(
+ at(href, catalogEntryLink.getLocalURIString(), title, PageFlowUtil.filter(imageTitle)),
+ DOM.IMG(
+ at(src, imageUrl, height, 22, width, 22)
+ )
+ ).appendTo(out);
return;
}
}
- HtmlString.NBSP.appendTo(out);
+ out.write(HtmlString.NBSP);
}
}
}
diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/PeptideMatchesDisplayColumnFactory.java b/panoramapublic/src/org/labkey/panoramapublic/query/PeptideMatchesDisplayColumnFactory.java
index f47f1dcc..e5582de5 100644
--- a/panoramapublic/src/org/labkey/panoramapublic/query/PeptideMatchesDisplayColumnFactory.java
+++ b/panoramapublic/src/org/labkey/panoramapublic/query/PeptideMatchesDisplayColumnFactory.java
@@ -11,9 +11,8 @@
import org.labkey.api.util.Link;
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.view.ActionURL;
+import org.labkey.api.writer.HtmlWriter;
-import java.io.IOException;
-import java.io.Writer;
import java.util.Set;
public class PeptideMatchesDisplayColumnFactory implements DisplayColumnFactory
@@ -37,7 +36,7 @@ public void addQueryFieldKeys(Set keys)
}
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
String proteinLabel = ctx.get(PEPTIDE_SEQUENCE, String.class);
String exactMatch = ctx.get(EXACT_MATCH, String.class);
@@ -48,8 +47,8 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
searchUrl.addParameter("peptideSequence", proteinLabel);
searchUrl.addParameter("exactMatch", exactMatch);
- out.write(new Link.LinkBuilder(String.valueOf(matches)).href(searchUrl).toString());
- out.write(PageFlowUtil.button("View").href(searchUrl).toString());
+ out.write(new Link.LinkBuilder(String.valueOf(matches)).href(searchUrl));
+ out.write(PageFlowUtil.button("View").href(searchUrl));
}
};
}
diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/ProteinMatchesDisplayColumnFactory.java b/panoramapublic/src/org/labkey/panoramapublic/query/ProteinMatchesDisplayColumnFactory.java
index 22b20a13..3821717e 100644
--- a/panoramapublic/src/org/labkey/panoramapublic/query/ProteinMatchesDisplayColumnFactory.java
+++ b/panoramapublic/src/org/labkey/panoramapublic/query/ProteinMatchesDisplayColumnFactory.java
@@ -11,14 +11,12 @@
import org.labkey.api.util.Link;
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.view.ActionURL;
+import org.labkey.api.writer.HtmlWriter;
-import java.io.IOException;
-import java.io.Writer;
import java.util.Set;
public class ProteinMatchesDisplayColumnFactory implements DisplayColumnFactory
{
-
private static final FieldKey PROTEIN_LABEL = FieldKey.fromParts("proteinLabel");
private static final FieldKey EXACT_MATCH = FieldKey.fromParts("exactMatch");
private static final FieldKey CONTAINER = FieldKey.fromParts("container");
@@ -38,7 +36,7 @@ public void addQueryFieldKeys(Set keys)
}
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
Integer matches = ctx.get(FieldKey.fromParts("Matches"), Integer.class);
String proteinLabel = ctx.get(PROTEIN_LABEL, String.class);
@@ -49,8 +47,8 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
searchUrl.addParameter("proteinLabel", proteinLabel);
searchUrl.addParameter("exactMatch", exactMatch);
- out.write(new Link.LinkBuilder(String.valueOf(matches)).href(searchUrl).toString());
- out.write(PageFlowUtil.button("View").href(searchUrl).toString());
+ out.write(new Link.LinkBuilder(String.valueOf(matches)).href(searchUrl));
+ out.write(PageFlowUtil.button("View").href(searchUrl));
}
};
}
diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/SmallMoleculesMatchesDisplayColumnFactory.java b/panoramapublic/src/org/labkey/panoramapublic/query/SmallMoleculesMatchesDisplayColumnFactory.java
index df45b586..ba06932b 100644
--- a/panoramapublic/src/org/labkey/panoramapublic/query/SmallMoleculesMatchesDisplayColumnFactory.java
+++ b/panoramapublic/src/org/labkey/panoramapublic/query/SmallMoleculesMatchesDisplayColumnFactory.java
@@ -11,9 +11,8 @@
import org.labkey.api.util.Link;
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.view.ActionURL;
+import org.labkey.api.writer.HtmlWriter;
-import java.io.IOException;
-import java.io.Writer;
import java.util.Set;
public class SmallMoleculesMatchesDisplayColumnFactory implements DisplayColumnFactory
@@ -37,7 +36,7 @@ public void addQueryFieldKeys(Set keys)
}
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
String smallMol= ctx.get(SMALL_MOLECULE, String.class);
String exactMatch = ctx.get(EXACT_MATCH, String.class);
@@ -48,8 +47,8 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
searchUrl.addParameter("smallMolecule", smallMol);
searchUrl.addParameter("exactMatch", exactMatch);
- out.write(new Link.LinkBuilder(String.valueOf(matches)).href(searchUrl).toString());
- out.write(PageFlowUtil.button("View").href(searchUrl).toString());
+ out.write(new Link.LinkBuilder(String.valueOf(matches)).href(searchUrl));
+ out.write(PageFlowUtil.button("View").href(searchUrl));
}
};
}
diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/SubmissionTableInfo.java b/panoramapublic/src/org/labkey/panoramapublic/query/SubmissionTableInfo.java
index 45b7fcac..4159b01b 100644
--- a/panoramapublic/src/org/labkey/panoramapublic/query/SubmissionTableInfo.java
+++ b/panoramapublic/src/org/labkey/panoramapublic/query/SubmissionTableInfo.java
@@ -14,6 +14,7 @@
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.panoramapublic.PanoramaPublicController;
import org.labkey.panoramapublic.PanoramaPublicManager;
import org.labkey.panoramapublic.PanoramaPublicSchema;
@@ -22,8 +23,6 @@
import org.labkey.panoramapublic.model.Submission;
import org.labkey.panoramapublic.view.publish.ShortUrlDisplayColumnFactory;
-import java.io.IOException;
-import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
@@ -157,7 +156,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)
{
Integer id = ctx.get(colInfo.getFieldKey(), Integer.class);
Submission s = SubmissionManager.getSubmission(id, ctx.getContainer());
@@ -165,7 +164,7 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
{
// Show the delete link only if the experiment has not yet been copied
_url.replaceParameter("id", id);
- out.write(PageFlowUtil.link("Delete").href(_url).toString());
+ out.write(PageFlowUtil.link("Delete").href(_url));
}
}
};
@@ -187,7 +186,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)
{
Integer id = ctx.get(colInfo.getFieldKey(), Integer.class);
Submission s = SubmissionManager.getSubmission(id, ctx.getContainer());
@@ -205,13 +204,13 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
{
ActionURL resubmitUrl = PanoramaPublicController.getResubmitExperimentURL(js.getExperimentAnnotationsId(), js.getJournalId(), _container, s.isKeepPrivate(),
true /*check if data is valid for PXD. Always do this check on a resubmit.*/);
- out.write(PageFlowUtil.link("Resubmit").href(resubmitUrl).toString());
+ out.write(PageFlowUtil.link("Resubmit").href(resubmitUrl));
}
}
else
{
ActionURL ediUrl = PanoramaPublicController.getUpdateSubmissionURL(js.getExperimentAnnotationsId(), js.getJournalId(), _container, s.isKeepPrivate(), true);
- out.write(PageFlowUtil.link("Edit").href(ediUrl).toString());
+ out.write(PageFlowUtil.link("Edit").href(ediUrl));
}
}
}
diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/modification/ModificationDocsDisplayColumnFactory.java b/panoramapublic/src/org/labkey/panoramapublic/query/modification/ModificationDocsDisplayColumnFactory.java
index 9c2cbfb1..2112e4c4 100644
--- a/panoramapublic/src/org/labkey/panoramapublic/query/modification/ModificationDocsDisplayColumnFactory.java
+++ b/panoramapublic/src/org/labkey/panoramapublic/query/modification/ModificationDocsDisplayColumnFactory.java
@@ -18,10 +18,9 @@
import org.labkey.api.util.HtmlString;
import org.labkey.api.util.Link;
import org.labkey.api.util.PageFlowUtil;
+import org.labkey.api.writer.HtmlWriter;
import org.labkey.panoramapublic.PanoramaPublicSchema;
-import java.io.IOException;
-import java.io.Writer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -54,7 +53,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)
{
String runIds = ctx.get(colInfo.getFieldKey(), String.class);
if (!StringUtils.isBlank(runIds))
@@ -66,7 +65,7 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
.collect(Collectors.toSet());
List runs = getRuns(ids, user);
- if (runs.size() > 0)
+ if (!runs.isEmpty())
{
Long modId = ctx.get(MOD_ID, Long.class);
List runPeptideLinks = new ArrayList<>();
@@ -81,7 +80,7 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
}
else
{
- out.write("No runs found for Ids: " + PageFlowUtil.filter(runIds));
+ out.write("No runs found for Ids: " + runIds);
}
}
}
diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/modification/UnimodIdDisplayColumnFactory.java b/panoramapublic/src/org/labkey/panoramapublic/query/modification/UnimodIdDisplayColumnFactory.java
index de303db5..e80dc387 100644
--- a/panoramapublic/src/org/labkey/panoramapublic/query/modification/UnimodIdDisplayColumnFactory.java
+++ b/panoramapublic/src/org/labkey/panoramapublic/query/modification/UnimodIdDisplayColumnFactory.java
@@ -5,10 +5,9 @@
import org.labkey.api.data.DisplayColumn;
import org.labkey.api.data.DisplayColumnFactory;
import org.labkey.api.data.RenderContext;
+import org.labkey.api.writer.HtmlWriter;
import org.labkey.panoramapublic.proteomexchange.UnimodModification;
-import java.io.Writer;
-
/**
* Displays a link to the Unimod page for a modification with the given Unimod Id.
* Example: https://www.unimod.org/modifications_view.php?editid1=4
@@ -21,7 +20,7 @@ public DisplayColumn createRenderer(ColumnInfo colInfo)
return new DataColumn(colInfo)
{
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out)
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
Integer unimodId = ctx.get(colInfo.getFieldKey(), Integer.class);
if (unimodId != null)
diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/modification/UnimodMatchDisplayColumnFactory.java b/panoramapublic/src/org/labkey/panoramapublic/query/modification/UnimodMatchDisplayColumnFactory.java
index c4be47be..a60698e4 100644
--- a/panoramapublic/src/org/labkey/panoramapublic/query/modification/UnimodMatchDisplayColumnFactory.java
+++ b/panoramapublic/src/org/labkey/panoramapublic/query/modification/UnimodMatchDisplayColumnFactory.java
@@ -14,13 +14,13 @@
import org.labkey.api.util.HtmlString;
import org.labkey.api.util.Link;
import org.labkey.api.view.ActionURL;
+import org.labkey.api.writer.HtmlWriter;
import org.labkey.panoramapublic.PanoramaPublicController;
import org.labkey.panoramapublic.model.ExperimentAnnotations;
import org.labkey.panoramapublic.proteomexchange.UnimodModification;
import org.labkey.panoramapublic.query.ExperimentAnnotationsManager;
import org.labkey.panoramapublic.query.ModificationInfoManager;
-import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -48,7 +48,7 @@ public DisplayColumn createRenderer(ColumnInfo colInfo)
return new DataColumn(colInfo)
{
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out)
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
Integer unimodId = ctx.get(colInfo.getFieldKey(), Integer.class);
diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/speclib/EditLibInfoDisplayColumnFactory.java b/panoramapublic/src/org/labkey/panoramapublic/query/speclib/EditLibInfoDisplayColumnFactory.java
index df5d46a7..0019af9b 100644
--- a/panoramapublic/src/org/labkey/panoramapublic/query/speclib/EditLibInfoDisplayColumnFactory.java
+++ b/panoramapublic/src/org/labkey/panoramapublic/query/speclib/EditLibInfoDisplayColumnFactory.java
@@ -10,12 +10,11 @@
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.util.URLHelper;
import org.labkey.api.view.ActionURL;
+import org.labkey.api.writer.HtmlWriter;
import org.labkey.panoramapublic.PanoramaPublicController;
import org.labkey.panoramapublic.model.ExperimentAnnotations;
import org.labkey.panoramapublic.query.ExperimentAnnotationsManager;
-import java.io.IOException;
-import java.io.Writer;
import java.util.Set;
public class EditLibInfoDisplayColumnFactory implements DisplayColumnFactory
@@ -31,7 +30,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)
{
if (ctx.getContainer().hasPermission(ctx.getViewContext().getUser(), UpdatePermission.class))
{
@@ -58,18 +57,16 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
}
ActionURL editUrl = PanoramaPublicController.getEditSpecLibInfoURL(experimentAnnotationsId, specLibId, specLibInfoId, ctx.getContainer());
editUrl.addReturnUrl(returnUrl);
- out.write(PageFlowUtil.link(specLibInfoId != null ? "Edit" : "Add").href(editUrl).toString());
+ out.write(PageFlowUtil.link(specLibInfoId != null ? "Edit" : "Add").href(editUrl));
if (specLibInfoId != null)
{
ActionURL deleteUrl = PanoramaPublicController.getDeleteSpecLibInfoURL(experimentAnnotationsId, specLibInfoId, ctx.getContainer());
deleteUrl.addReturnUrl(returnUrl);
- out.write(PageFlowUtil.link("Delete").href(deleteUrl).usePost("Are you sure you want to delete the spectral library information?").toString());
+ out.write(PageFlowUtil.link("Delete").href(deleteUrl).usePost("Are you sure you want to delete the spectral library information?"));
}
- return;
}
}
}
- out.write("");
}
@Override
diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/speclib/LibraryDocsDisplayColumnFactory.java b/panoramapublic/src/org/labkey/panoramapublic/query/speclib/LibraryDocsDisplayColumnFactory.java
index fa9cbf5d..f6c594c9 100644
--- a/panoramapublic/src/org/labkey/panoramapublic/query/speclib/LibraryDocsDisplayColumnFactory.java
+++ b/panoramapublic/src/org/labkey/panoramapublic/query/speclib/LibraryDocsDisplayColumnFactory.java
@@ -10,12 +10,10 @@
import org.labkey.api.query.FieldKey;
import org.labkey.api.security.User;
import org.labkey.api.util.DOM;
-import org.labkey.api.util.PageFlowUtil;
+import org.labkey.api.writer.HtmlWriter;
import org.labkey.panoramapublic.model.speclib.SpectralLibrary;
import org.labkey.panoramapublic.query.SpecLibInfoManager;
-import java.io.IOException;
-import java.io.Writer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -40,7 +38,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)
{
String specLibIds = ctx.get(colInfo.getFieldKey(), String.class);
if (!StringUtils.isBlank(specLibIds))
@@ -51,7 +49,7 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
.filter(l -> l != 0)
.collect(Collectors.toSet());
List libraries = SpecLibInfoManager.getLibraries(ids, user);
- if (libraries.size() > 0)
+ if (!libraries.isEmpty())
{
Integer specLibInfoId = ctx.get(SPECLIB_INFO_ID, Integer.class);
List runLibraryLinks = new ArrayList<>();
@@ -69,7 +67,7 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
}
else
{
- out.write("No libraries found for Ids: " + PageFlowUtil.filter(specLibIds));
+ out.write("No libraries found for Ids: " + specLibIds);
}
}
}
diff --git a/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PanoramaWebPublicSearchTest.java b/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PanoramaWebPublicSearchTest.java
index 87f764ce..3fb9c64b 100644
--- a/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PanoramaWebPublicSearchTest.java
+++ b/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PanoramaWebPublicSearchTest.java
@@ -118,7 +118,7 @@ public void testExperimentSearch()
}
catch (StaleElementReferenceException e)
{
- shortWait().until(ExpectedConditions.stalenessOf(Locator.tagWithAttribute("form", "lk-region-form", "Targeted MS Experiment List").findElement(getDriver())));
+ shortWait().until(ExpectedConditions.stalenessOf(Locator.tagWithAttribute("form", "data-region-form", "Targeted MS Experiment List").findElement(getDriver())));
}
checker().verifyEquals("Incorrect search results", 3, table.getDataRowCount());
checker().verifyEquals("Incorrect values for experiment title", Arrays.asList(" Test experiment for search improvements", " Experiment for small molecule search", " Submitter Experiment"),
@@ -135,7 +135,7 @@ public void testExperimentSearch()
}
catch (StaleElementReferenceException e)
{
- shortWait().until(ExpectedConditions.stalenessOf(Locator.tagWithAttribute("form", "lk-region-form", "Targeted MS Experiment List").findElement(getDriver())));
+ shortWait().until(ExpectedConditions.stalenessOf(Locator.tagWithAttribute("form", "data-region-form", "Targeted MS Experiment List").findElement(getDriver())));
}
checker().verifyEquals("Incorrect search results", 1, table.getDataRowCount());
checker().verifyEquals("Incorrect values for experiment title", Arrays.asList(" Submitter Experiment"),
diff --git a/pwebdashboard/src/org/labkey/pwebdashboard/ProjectAdminsTable.java b/pwebdashboard/src/org/labkey/pwebdashboard/ProjectAdminsTable.java
index 85fa71bf..d5d360f1 100644
--- a/pwebdashboard/src/org/labkey/pwebdashboard/ProjectAdminsTable.java
+++ b/pwebdashboard/src/org/labkey/pwebdashboard/ProjectAdminsTable.java
@@ -31,12 +31,12 @@
import org.labkey.api.security.roles.RoleManager;
import org.labkey.api.security.roles.SiteAdminRole;
import org.labkey.api.util.HtmlString;
+import org.labkey.api.util.HtmlStringBuilder;
import org.labkey.api.util.Link;
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.view.ActionURL;
+import org.labkey.api.writer.HtmlWriter;
-import java.io.IOException;
-import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -135,7 +135,7 @@ private String getCommaSeparatedAdmins(Container container)
String space = "";
- if (allAdmins.size() > 0)
+ if (!allAdmins.isEmpty())
{
for(UserPrincipal user: allAdmins)
{
@@ -150,8 +150,10 @@ private String getCommaSeparatedAdmins(Container container)
return null;
}
+ private static final HtmlString COMMA_SPACE = HtmlStringBuilder.of(",").append(HtmlString.NBSP).getHtmlString();
+
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
String entityId = ctx.get(getColumnInfo().getFieldKey(), String.class);
Container container = ContainerManager.getForId(entityId);
@@ -160,28 +162,18 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
{
List allAdmins = getAdmins(container);
- StringBuilder display = new StringBuilder();
-
- String space = "";
+ HtmlString space = HtmlString.EMPTY_STRING;
- if (allAdmins.size() > 0)
+ if (!allAdmins.isEmpty())
{
for(UserPrincipal user: allAdmins)
{
- display.append(space);
- display.append(getUserDetails(container, user));
- space = ", ";
-
+ out.write(space);
+ out.write(getUserDetails(container, user));
+ space = COMMA_SPACE;
}
-
- out.write(display.toString());
- return;
}
}
- else
- {
- out.write("");
- }
}
@NotNull
diff --git a/signup/src/org/labkey/signup/SignUpSchema.java b/signup/src/org/labkey/signup/SignUpSchema.java
index ca6bbf28..0edda9bc 100644
--- a/signup/src/org/labkey/signup/SignUpSchema.java
+++ b/signup/src/org/labkey/signup/SignUpSchema.java
@@ -40,9 +40,8 @@
import org.labkey.api.security.User;
import org.labkey.api.security.permissions.AdminPermission;
import org.labkey.api.view.ActionURL;
+import org.labkey.api.writer.HtmlWriter;
-import java.io.IOException;
-import java.io.Writer;
import java.util.Set;
public class SignUpSchema extends UserSchema
@@ -91,7 +90,7 @@ public TableInfo createTable(String name, ContainerFilter containerFilter)
oldgroup.setDisplayColumnFactory(colInfo -> new DataColumn(colInfo)
{
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
Group old = org.labkey.api.security.SecurityManager.getGroup(Integer.parseInt(String.valueOf(ctx.get(FieldKey.fromParts("oldgroup")))));
out.write(old.getName());
@@ -100,7 +99,7 @@ public void renderGridCellContents(RenderContext ctx, Writer out) throws IOExcep
newgroup.setDisplayColumnFactory(colInfo -> new DataColumn(colInfo)
{
@Override
- public void renderGridCellContents(RenderContext ctx, Writer out) throws IOException
+ public void renderGridCellContents(RenderContext ctx, HtmlWriter out)
{
Group old = org.labkey.api.security.SecurityManager.getGroup(Integer.parseInt(String.valueOf(ctx.get(FieldKey.fromParts("newgroup")))));
out.write(old.getName());
@@ -120,7 +119,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)
{
Container container = ContainerManager.getForId(String.valueOf(ctx.get(FieldKey.fromParts("Container"))));
String email = String.valueOf(ctx.get(FieldKey.fromParts("email")));