66import org .labkey .api .data .DisplayColumn ;
77import org .labkey .api .data .DisplayColumnFactory ;
88import org .labkey .api .data .RenderContext ;
9- import org .labkey .api .data .Sort ;
10- import org .labkey .api .data .UrlColumn ;
119import org .labkey .api .query .FieldKey ;
1210import org .labkey .api .util .PageFlowUtil ;
13- import org .labkey .api .util .StringExpression ;
14- import org .labkey .api .util .StringExpressionFactory ;
15- import org .labkey .api .util .URLHelper ;
11+ import org .labkey .api .view .HttpView ;
1612import org .labkey .api .view .template .ClientDependency ;
1713
1814import java .io .IOException ;
1915import java .io .Writer ;
20- import java .util .Arrays ;
2116import java .util .Collections ;
2217import java .util .LinkedHashSet ;
18+ import java .util .Map ;
2319import java .util .Set ;
2420
2521/**
@@ -39,11 +35,21 @@ public DisplayColumn createRenderer(ColumnInfo colInfo)
3935 {
4036 DataColumn ret = new DataColumn (colInfo )
4137 {
38+ private boolean _handlerRegistered = false ;
39+
4240 @ Override
4341 public void renderGridCellContents (RenderContext ctx , Writer out ) throws IOException
4442 {
4543 Object val = ctx .get (FieldKey .fromString (getBoundColumn ().getFieldKey ().getParent (), "rowId" ));
46- out .write (PageFlowUtil .link ("Download Sequence" ).onClick ("SequenceAnalysis.window.DownloadSequencesWindow.downloadSingle(" + val + ")" ).toString ());
44+ out .write (PageFlowUtil .link ("Download Sequence" ).attributes (Map .of (
45+ "data-rowid" , val .toString ()
46+ )).addClass ("sdc-row" ).toString ());
47+
48+ if (!_handlerRegistered )
49+ {
50+ HttpView .currentPageConfig ().addHandlerForQuerySelector ("a.sdc-row" , "click" , "SequenceAnalysis.window.DownloadSequencesWindow.downloadSingle(this.attributes.getNamedItem('data-rowid').value); return false;" );
51+ _handlerRegistered = true ;
52+ }
4753 }
4854
4955 @ Override
0 commit comments