From 51490080cb950a7d4106c1958de55dba212da449 Mon Sep 17 00:00:00 2001 From: Adam Rauch Date: Thu, 5 Jun 2025 06:59:07 -0700 Subject: [PATCH 1/2] Migrate WebPartView.renderView() to HtmlWriter --- .../targetedms/TargetedMSController.java | 65 +++++++++++++------ 1 file changed, 46 insertions(+), 19 deletions(-) diff --git a/src/org/labkey/targetedms/TargetedMSController.java b/src/org/labkey/targetedms/TargetedMSController.java index b2e725d2e..5d9ff6c54 100644 --- a/src/org/labkey/targetedms/TargetedMSController.java +++ b/src/org/labkey/targetedms/TargetedMSController.java @@ -146,6 +146,7 @@ import org.labkey.api.util.ConfigurationException; import org.labkey.api.util.ContainerContext; import org.labkey.api.util.DOM; +import org.labkey.api.util.DOM.Renderable; import org.labkey.api.util.DateUtil; import org.labkey.api.util.FileUtil; import org.labkey.api.util.HelpTopic; @@ -174,6 +175,7 @@ import org.labkey.api.view.WebPartView; import org.labkey.api.view.template.ClientDependency; import org.labkey.api.view.template.PageConfig; +import org.labkey.api.writer.HtmlWriter; import org.labkey.targetedms.chart.ChromatogramChartMakerFactory; import org.labkey.targetedms.chart.ComparisonChartMaker; import org.labkey.targetedms.chromlib.ChromatogramLibraryUtils; @@ -276,7 +278,6 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.io.PrintWriter; import java.io.StringWriter; import java.net.URI; import java.net.URISyntaxException; @@ -313,8 +314,10 @@ import static org.labkey.api.util.DOM.A; 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.id; import static org.labkey.api.util.DOM.Attribute.method; 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.width; import static org.labkey.api.util.DOM.DIV; import static org.labkey.api.util.DOM.SPAN; @@ -5022,19 +5025,32 @@ public ModelAndView getView(IdForm form, BindException errors) VBox result = new VBox(); // Summary for this sample file - DOM.Renderable renderable = DOM.TABLE(cl("lk-fields-table"), - TR(TD(cl("labkey-form-label"), "Sample Identifier"), - TD(materialURL == null ? sampleRow.get(SampleFileTable.SAMPLE_FIELD_KEY) : A(at(href, materialURL), _sampleFile.getSampleName()))), - TR(TD(cl("labkey-form-label"), "File Path"), - TD(_sampleFile.getFilePath())), - TR(TD(cl("labkey-form-label"), "Acquired Time"), - TD(DateUtil.formatDateTime(getContainer(), _sampleFile.getAcquiredTime()))), - TR(TD(cl("labkey-form-label"), "Modified Time"), - TD(DateUtil.formatDateTime(getContainer(), _sampleFile.getModifiedTime()))), - TR(TD(cl("labkey-form-label"), "Instrument Serial Number"), - TD(_sampleFile.getInstrumentSerialNumber())), - TR(TD(cl("labkey-form-label"), "Replicate Name"), - TD(replicate.getName())) + Renderable renderable = DOM.TABLE( + cl("lk-fields-table"), + TR( + TD(cl("labkey-form-label"), "Sample Identifier"), + TD(materialURL == null ? sampleRow.get(SampleFileTable.SAMPLE_FIELD_KEY) : A(at(href, materialURL), _sampleFile.getSampleName())) + ), + TR( + TD(cl("labkey-form-label"), "File Path"), + TD(_sampleFile.getFilePath()) + ), + TR( + TD(cl("labkey-form-label"), "Acquired Time"), + TD(DateUtil.formatDateTime(getContainer(), _sampleFile.getAcquiredTime())) + ), + TR( + TD(cl("labkey-form-label"), "Modified Time"), + TD(DateUtil.formatDateTime(getContainer(), _sampleFile.getModifiedTime())) + ), + TR( + TD(cl("labkey-form-label"), "Instrument Serial Number"), + TD(_sampleFile.getInstrumentSerialNumber()) + ), + TR( + TD(cl("labkey-form-label"), "Replicate Name"), + TD(replicate.getName()) + ) ); HtmlView summaryView = new HtmlView(renderable); @@ -5168,12 +5184,23 @@ public ModelAndView getView(final ProteinForm form, BindException errors) ChromatogramGridView chromatogramView = new ChromatogramGridView(chromatogramRegion, errors) { @Override - public void renderView(RenderContext model, PrintWriter out) throws IOException + public void renderView(RenderContext model, HtmlWriter out) { - out.write("
\n"); - out.write("
\n"); - super.renderView(model, out); - out.write("
\n"); + DIV(at(style, "display: inline-block")).appendTo(out); + DIV( + at(id, "groupChromatogramLegend"), + (Renderable) ret -> { + try + { + super.renderView(model, out); + } + catch (IOException e) + { + throw new RuntimeException(e); + } + return ret; + } + ).appendTo(out); } }; From d4cb808d69159951eff69880b6bbb8bbe1edb833 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Fri, 6 Jun 2025 16:18:29 -0700 Subject: [PATCH 2/2] Fix rendering of chromatogram grid --- src/org/labkey/targetedms/TargetedMSController.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/org/labkey/targetedms/TargetedMSController.java b/src/org/labkey/targetedms/TargetedMSController.java index 5d9ff6c54..bf7ab970f 100644 --- a/src/org/labkey/targetedms/TargetedMSController.java +++ b/src/org/labkey/targetedms/TargetedMSController.java @@ -5186,9 +5186,8 @@ public ModelAndView getView(final ProteinForm form, BindException errors) @Override public void renderView(RenderContext model, HtmlWriter out) { - DIV(at(style, "display: inline-block")).appendTo(out); - DIV( - at(id, "groupChromatogramLegend"), + DIV(at(style, "display: inline-block"), + DIV(at(id, "groupChromatogramLegend")), (Renderable) ret -> { try {