@@ -131,7 +131,7 @@ public void onZoomResize(ZoomResizeEvent event) {
131
131
if (clickGeneHandler != null )
132
132
geneViewer .addClickGeneHandler (clickGeneHandler );
133
133
134
- if (minZoomLevelForGenomeView >= (viewEnd - viewStart )) {
134
+ if (minZoomLevelForGenomeView >= (viewEnd - viewStart ) && ( viewEnd - viewStart ) > 0 ) {
135
135
toggleGenomeViewVisible (true );
136
136
geneViewer .redraw (true );
137
137
}
@@ -164,6 +164,9 @@ public void draw(DataTable dataTable,double max_value, int start,int end,double
164
164
geneViewer .setDataSource (datasource );
165
165
geneViewer .setSize (width - DYGRAPHOFFSET , geneViewerHeight );
166
166
this .drawScatterChart ();
167
+ if (minZoomLevelForGenomeView >= (viewEnd - viewStart )) {
168
+ toggleGenomeViewVisible (true );
169
+ }
167
170
if (selectHandler != null )
168
171
scatterChart .addSelectHandler (selectHandler );
169
172
scatterChart .addZoomHandler (new ZoomHandler () {
@@ -236,15 +239,17 @@ public void onUnderlay(UnderlayEvent event) {
236
239
for (int i =0 ;i <selections .length ();i ++)
237
240
{
238
241
Selection selection = selections .get (i );
239
- double posX = event .dygraph .toDomXCoord (dataTable .getValueInt (selection .getRow (), 0 ));
240
- double posY = event .dygraph .toDomYCoord (dataTable .getValueDouble (selection .getRow (), 1 ), 0 );
241
- event .canvas .save ();
242
- event .canvas .beginPath ();
243
- event .canvas .setFillStyle (gene_marker_color );
244
- event .canvas .fillRect (posX -0.5 , posY , 1 , event .area .getH ());
245
- event .canvas .arc (posX , posY , 3 , 0 , 2 *Math .PI , false );
246
- event .canvas .fill ();
247
- event .canvas .restore ();
242
+ if (selection != null ) {
243
+ double posX = event .dygraph .toDomXCoord (dataTable .getValueInt (selection .getRow (), 0 ));
244
+ double posY = event .dygraph .toDomYCoord (dataTable .getValueDouble (selection .getRow (), 1 ), 0 );
245
+ event .canvas .save ();
246
+ event .canvas .beginPath ();
247
+ event .canvas .setFillStyle (gene_marker_color );
248
+ event .canvas .fillRect (posX -0.5 , posY , 1 , event .area .getH ());
249
+ event .canvas .arc (posX , posY , 3 , 0 , 2 *Math .PI , false );
250
+ event .canvas .fill ();
251
+ event .canvas .restore ();
252
+ }
248
253
}
249
254
250
255
if (bonferroniThreshold != -1 ) {
@@ -361,4 +366,43 @@ public void setSnpPosX(int snpPosX) {
361
366
public void setGeneInfoUrl (String geneInfoUrl ) {
362
367
geneViewer .setGeneInfoUrl (geneInfoUrl );
363
368
}
369
+
370
+ public static Selection getSelectionFromPos (DataTable data ,int pos ) {
371
+ Selection selection = null ;
372
+ for (int i =0 ;i <data .getNumberOfRows ();i ++) {
373
+ if (data .getValueInt (i , 0 ) == pos ) {
374
+ selection = Selection .createRowSelection (i );
375
+ break ;
376
+ }
377
+ }
378
+ return selection ;
379
+ }
380
+
381
+ public void addSelection (Selection selection ) {
382
+ if (selection != null ) {
383
+ selections .set (selections .length (), selection );
384
+ }
385
+ }
386
+
387
+ public static Selection getTopSNP (DataTable data ) {
388
+ Selection selection = null ;
389
+ double top_pValue = -1 ;
390
+ for (int i =0 ;i <data .getNumberOfRows ();i ++) {
391
+ if (!data .isValueNull (i , 1 ))
392
+ {
393
+ double pValue = data .getValueDouble (i , 1 );
394
+ if ( pValue > top_pValue ) {
395
+ selection = Selection .createRowSelection (i );
396
+ top_pValue = pValue ;
397
+ }
398
+ }
399
+ }
400
+ return selection ;
401
+ }
402
+
403
+ public Selection getTopSNP () {
404
+ if (dataTable == null )
405
+ return null ;
406
+ return getTopSNP (dataTable );
407
+ }
364
408
}
0 commit comments