@@ -102,6 +102,7 @@ public void load(final Runnable onLoad) throws ResourceException {
102
102
public void run () {
103
103
if (!processing .isLoaded ())
104
104
return ;
105
+ sinkEvents ();
105
106
processing .getInstance ().api_setSize (width , height );
106
107
processing .getInstance ().api_setViewRegion (viewStart , viewEnd );
107
108
processing .getInstance ().api_setChromosome (chromosome );
@@ -178,67 +179,56 @@ public boolean shouldDrawFeatures() {
178
179
return !(maximumZoom != -1 && maximumZoom <= currentZoom );
179
180
}
180
181
181
- protected final void sinkEvents (Event .Type <?> type ,EventHandler handler ) {
182
- String callback = "" ;
183
- EventCallback eventCallback = null ;
184
- if (type == MouseMoveEvent .getType ()) {
185
- eventCallback = new EventCallback <GeneViewerMouseMoveData >() {
186
- @ Override
187
- public void onCall (GeneViewerMouseMoveData data ) {
188
- fireEvent (new MouseMoveEvent (data ));
189
- }
190
- };
191
- callback = "mouseMoveEvent" ;
192
- }
193
- else if (type == ZoomResizeEvent .getType ()) {
194
- eventCallback = new EventCallback <Region >() {
195
- @ Override
196
- public void onCall (Region data ) {
197
- fireEvent (new ZoomResizeEvent (data .start ,data .end ));
198
- }
199
- };
200
- callback = "zoomResizeEvent" ;
201
- }
202
- else if (type == FetchGeneEvent .getType ()) {
203
- eventCallback = new EventCallback <Region >() {
204
- @ Override
205
- public void onCall (Region data ) {
206
- fireEvent (new FetchGeneEvent (data .start ,data .end ));
207
- }
208
- };
209
- callback = "fetchGeneEvent" ;
210
- }
211
- else if (type == HighlightGeneEvent .getType ()) {
212
- eventCallback = new EventCallback <GeneHighlightData >() {
213
- @ Override
214
- public void onCall (GeneHighlightData data ) {
215
- fireEvent (new HighlightGeneEvent (data .gene ,data .x ,data .y ));
216
- showGeneInfoPopup (data );
217
- }
218
- };
219
- callback = "highlightGeneEvent" ;
220
- }
221
- else if (type == UnhighlightGeneEvent .getType ()) {
222
- eventCallback = new EventCallback <Void >() {
223
- @ Override
224
- public void onCall (Void data ) {
225
- fireEvent (new UnhighlightGeneEvent ());
226
- if (showGeneInfoPopup ) {
227
- geneInfoPopup .hide ();
228
- }
229
- }
230
- };
231
- callback = "unhighlightGeneEvent" ;
232
- }
233
- else if (type == ClickGeneEvent .getType ()) {
234
- eventCallback = new EventCallback <Gene >() {
235
- @ Override
236
- public void onCall (Gene data ) {
237
- fireEvent (new ClickGeneEvent (data ));
182
+ private final void sinkEvents () {
183
+ sinkEvent (new EventCallback <GeneViewerMouseMoveData >() {
184
+ @ Override
185
+ public void onCall (GeneViewerMouseMoveData data ) {
186
+ fireEvent (new MouseMoveEvent (data ));
187
+ }
188
+ },"mouseMoveEvent" );
189
+
190
+
191
+ sinkEvent (new EventCallback <Region >() {
192
+ @ Override
193
+ public void onCall (Region data ) {
194
+ fireEvent (new ZoomResizeEvent (data .start ,data .end ));
195
+ }
196
+ },"zoomResizeEvent" );
197
+
198
+ sinkEvent (new EventCallback <Region >() {
199
+ @ Override
200
+ public void onCall (Region data ) {
201
+ fireEvent (new FetchGeneEvent (data .start ,data .end ));
202
+ }
203
+ },"fetchGeneEvent" );
204
+
205
+ sinkEvent (new EventCallback <GeneHighlightData >() {
206
+ @ Override
207
+ public void onCall (GeneHighlightData data ) {
208
+ fireEvent (new HighlightGeneEvent (data .gene ,data .x ,data .y ));
209
+ showGeneInfoPopup (data );
210
+ }
211
+ },"highlightGeneEvent" );
212
+
213
+ sinkEvent (new EventCallback <Void >() {
214
+ @ Override
215
+ public void onCall (Void data ) {
216
+ fireEvent (new UnhighlightGeneEvent ());
217
+ if (showGeneInfoPopup ) {
218
+ geneInfoPopup .hide ();
238
219
}
239
- };
240
- callback = "clickGeneEvent" ;
241
- }
220
+ }
221
+ },"unhighlightGeneEvent" );
222
+
223
+ sinkEvent (new EventCallback <Gene >() {
224
+ @ Override
225
+ public void onCall (Gene data ) {
226
+ fireEvent (new ClickGeneEvent (data ));
227
+ }
228
+ },"clickGeneEvent" );
229
+ }
230
+
231
+ private final void sinkEvent (EventCallback eventCallback ,String callback ) {
242
232
processing .getInstance ().api_addEventHandler (callback , eventCallback );
243
233
}
244
234
@@ -260,43 +250,37 @@ private void showGeneInfoPopup(GeneHighlightData data) {
260
250
261
251
@ Override
262
252
public HandlerRegistration addMouseMoveHandler (MouseMoveEvent .Handler handler ) {
263
- sinkEvents (MouseMoveEvent .getType (), handler );
264
253
return addHandler (handler ,MouseMoveEvent .getType ());
265
254
266
255
}
267
256
268
257
@ Override
269
258
public HandlerRegistration addZoomResizeHandler (ZoomResizeEvent .Handler handler ) {
270
- sinkEvents (ZoomResizeEvent .getType (), handler );
271
259
return addHandler (handler ,ZoomResizeEvent .getType ());
272
260
}
273
261
274
262
@ Override
275
263
public HandlerRegistration addFetchGeneHandler (FetchGeneEvent .Handler handler ) {
276
- sinkEvents (FetchGeneEvent .getType (), handler );
277
264
return addHandler (handler ,FetchGeneEvent .getType ());
278
265
}
279
266
280
267
281
268
@ Override
282
269
public HandlerRegistration addUnhighlightGeneHandlers (
283
270
UnhighlightGeneEvent .Handler handler ) {
284
- sinkEvents (UnhighlightGeneEvent .getType (), handler );
285
271
return addHandler (handler , UnhighlightGeneEvent .getType ());
286
272
}
287
273
288
274
289
275
290
276
@ Override
291
277
public HandlerRegistration addClickGeneHandler (ClickGeneEvent .Handler handler ) {
292
- sinkEvents (ClickGeneEvent .getType (), handler );
293
278
return addHandler (handler , ClickGeneEvent .getType ());
294
279
}
295
280
296
281
@ Override
297
282
public HandlerRegistration addHighlightGeneHandler (
298
283
HighlightGeneEvent .Handler handler ) {
299
- sinkEvents (HighlightGeneEvent .getType (), handler );
300
284
return addHandler (handler , HighlightGeneEvent .getType ());
301
285
}
302
286
@@ -315,6 +299,12 @@ public void onAttach() {
315
299
onResize ();
316
300
}
317
301
302
+ @ Override
303
+ protected void onDetach () {
304
+ geneInfoPopup .hide ();
305
+ super .onDetach ();
306
+ }
307
+
318
308
public void forceLayout () {
319
309
if (!isAttached () || !isVisible ())
320
310
return ;
0 commit comments