53
53
import org .baderlab .csplugins .enrichmentmap .model .EnrichmentMapManager ;
54
54
import org .baderlab .csplugins .enrichmentmap .model .ExpressionCache ;
55
55
import org .baderlab .csplugins .enrichmentmap .model .ExpressionData ;
56
- import org .baderlab .csplugins .enrichmentmap .model .LegacySupport ;
57
56
import org .baderlab .csplugins .enrichmentmap .model .Transform ;
58
57
import org .baderlab .csplugins .enrichmentmap .model .Uncompressed ;
59
58
import org .baderlab .csplugins .enrichmentmap .style .AssociatedStyleOptions ;
@@ -292,27 +291,53 @@ public Map<Long, ViewParams> getAllViewParams() {
292
291
Map <Long , ViewParams > map = new HashMap <>();
293
292
294
293
getControlPanel ().getAllControlPanels ().forEach ((suid , panel ) -> {
295
- CutoffParam cuttofParam = panel .getPValueRadio ().isSelected () ? CutoffParam .P_VALUE : CutoffParam .Q_VALUE ;
296
- Double pVal = panel .getPValueSliderPanel () != null ? panel .getPValueSliderPanel ().getValue () : null ;
297
- Double qVal = panel .getQValueSliderPanel () != null ? panel .getQValueSliderPanel ().getValue () : null ;
298
- Double sCoeff = panel .getSimilaritySliderPanel () != null ? panel .getSimilaritySliderPanel ().getValue () : null ;
299
-
300
- Set <AbstractDataSet > uncheckedDataSets = panel .getUncheckedDataSets ();
301
- Set <String > filteredDataSets = uncheckedDataSets .stream ()
302
- .map (AbstractDataSet ::getName )
303
- .collect (Collectors .toSet ());
304
-
305
- EMStyleOptions options = createStyleOptions (panel .getNetworkView ());
306
- ChartOptions chartOptions = options != null ? options .getChartOptions () : null ;
307
- boolean pubReady = panel .getPublicationReadyCheck ().isSelected ();
308
- ViewParams params = new ViewParams (suid , cuttofParam , pVal , qVal , sCoeff , filteredDataSets , chartOptions , pubReady );
309
-
294
+ ViewParams params = createViewParams (suid , panel );
310
295
map .put (suid , params );
311
296
});
312
297
313
298
return map ;
314
299
}
315
300
301
+ public ViewParams getViewParams (Long networkViewSuid ) {
302
+ EMViewControlPanel panel = getControlPanel ().getAllControlPanels ().get (networkViewSuid );
303
+ return createViewParams (networkViewSuid , panel );
304
+ }
305
+
306
+ private ViewParams createViewParams (Long networkViewSuid , EMViewControlPanel panel ) {
307
+ CutoffParam cuttofParam = panel .getPValueRadio ().isSelected () ? CutoffParam .P_VALUE : CutoffParam .Q_VALUE ;
308
+ Double pVal = panel .getPValueSliderPanel () != null ? panel .getPValueSliderPanel ().getValue () : null ;
309
+ Double qVal = panel .getQValueSliderPanel () != null ? panel .getQValueSliderPanel ().getValue () : null ;
310
+ Double sCoeff = panel .getSimilaritySliderPanel () != null ? panel .getSimilaritySliderPanel ().getValue () : null ;
311
+
312
+ Set <AbstractDataSet > uncheckedDataSets = panel .getUncheckedDataSets ();
313
+ Set <String > filteredDataSets = uncheckedDataSets .stream ()
314
+ .map (AbstractDataSet ::getName )
315
+ .collect (Collectors .toSet ());
316
+
317
+ EMStyleOptions options = createStyleOptions (panel .getNetworkView ());
318
+ ChartOptions chartOptions = options != null ? options .getChartOptions () : null ;
319
+ boolean pubReady = panel .getPublicationReadyCheck ().isSelected ();
320
+ ViewParams params = new ViewParams (networkViewSuid , cuttofParam , pVal , qVal , sCoeff , filteredDataSets , chartOptions , pubReady );
321
+
322
+ return params ;
323
+ }
324
+
325
+ public double [] getPValueSliderValues (Long networkSuid ) {
326
+ EMViewControlPanel panel = getControlPanel ().getAllControlPanels ().get (networkSuid );
327
+ SliderBarPanel sliderPanel = panel .getPValueSliderPanel ();
328
+ if (sliderPanel == null )
329
+ return null ;
330
+ return new double [] { sliderPanel .getMin (), sliderPanel .getValue (), sliderPanel .getMax () };
331
+ }
332
+
333
+ public double [] getQValueSliderValues (Long networkSuid ) {
334
+ EMViewControlPanel panel = getControlPanel ().getAllControlPanels ().get (networkSuid );
335
+ SliderBarPanel sliderPanel = panel .getQValueSliderPanel ();
336
+ if (sliderPanel == null )
337
+ return null ;
338
+ return new double [] { sliderPanel .getMin (), sliderPanel .getValue (), sliderPanel .getMax () };
339
+ }
340
+
316
341
public void updateDataSetList (CyNetworkView netView ) {
317
342
EMViewControlPanel viewPanel = getControlPanel ().getViewControlPanel (netView );
318
343
viewPanel .updateDataSetSelector ();
@@ -412,38 +437,36 @@ else if (viewPanel instanceof AssociatedViewControlPanel)
412
437
private void addListeners (EMViewControlPanel viewPanel , EnrichmentMap map ) {
413
438
CyNetworkView netView = viewPanel .getNetworkView ();
414
439
440
+ Runnable updateFilters = () -> {
441
+ if (!updating ) {
442
+ filterNodesAndEdges (viewPanel , map );
443
+ ChartData data = (ChartData ) viewPanel .getChartDataCombo ().getSelectedItem ();
444
+ if (data == ChartData .DATA_SET ) {
445
+ updateVisualStyle (map , viewPanel , true );
446
+ }
447
+ }
448
+ };
449
+
415
450
viewPanel .getQValueRadio ().addActionListener (evt -> {
416
451
viewPanel .updateFilterPanel ();
417
-
418
- if (!updating )
419
- filterNodesAndEdges (viewPanel , map );
452
+ updateFilters .run ();
420
453
});
421
454
viewPanel .getPValueRadio ().addActionListener (evt -> {
422
455
viewPanel .updateFilterPanel ();
423
-
424
- if (!updating )
425
- filterNodesAndEdges (viewPanel , map );
456
+ updateFilters .run ();
426
457
});
427
458
428
459
SliderBarPanel pvSliderPanel = viewPanel .getPValueSliderPanel ();
429
460
SliderBarPanel qvSliderPanel = viewPanel .getQValueSliderPanel ();
430
461
SliderBarPanel sSliderPanel = viewPanel .getSimilaritySliderPanel ();
431
462
463
+
432
464
if (pvSliderPanel != null )
433
- pvSliderPanel .addChangeListener (evt -> {
434
- if (!updating )
435
- filterNodesAndEdges (viewPanel , map );
436
- });
465
+ pvSliderPanel .addChangeListener (e -> updateFilters .run ());
437
466
if (qvSliderPanel != null )
438
- qvSliderPanel .addChangeListener (evt -> {
439
- if (!updating )
440
- filterNodesAndEdges (viewPanel , map );
441
- });
467
+ qvSliderPanel .addChangeListener (e -> updateFilters .run ());
442
468
if (sSliderPanel != null )
443
- sSliderPanel .addChangeListener (evt -> {
444
- if (!updating )
445
- filterNodesAndEdges (viewPanel , map );
446
- });
469
+ sSliderPanel .addChangeListener (e -> updateFilters .run ());
447
470
448
471
viewPanel .getDataSetSelector ().addPropertyChangeListener ("checkedData" , evt -> {
449
472
if (!updating ) {
@@ -878,7 +901,7 @@ private void filterNodesAndEdges(EMViewControlPanel viewPanel, EnrichmentMap map
878
901
timer .stop ();
879
902
}
880
903
881
- timer .setInitialDelay (350 );
904
+ timer .setInitialDelay (400 );
882
905
timer .start ();
883
906
}
884
907
@@ -1050,14 +1073,12 @@ private Set<CyNode> getFilteredInNodes(Set<AbstractDataSet> selectedDataSets) {
1050
1073
1051
1074
// Only p or q value, but not both!
1052
1075
if (viewPanel .getPValueSliderPanel () != null && viewPanel .getPValueSliderPanel ().isVisible ()) {
1053
- Set <String > columnNames = getFilteredColumnNames (params .getPValueColumnNames (), selectedDataSets );
1054
-
1076
+ Set <String > columnNames = FilterUtil .getColumnNames (params .getPValueColumnNames (), selectedDataSets );
1055
1077
return getFilteredInNodes (viewPanel .getPValueSliderPanel (), map , netView , columnNames , dataSetNodes );
1056
1078
}
1057
1079
1058
1080
if (viewPanel .getQValueSliderPanel () != null && viewPanel .getQValueSliderPanel ().isVisible ()) {
1059
- Set <String > columnNames = getFilteredColumnNames (params .getQValueColumnNames (), selectedDataSets );
1060
-
1081
+ Set <String > columnNames = FilterUtil .getColumnNames (params .getQValueColumnNames (), selectedDataSets );
1061
1082
return getFilteredInNodes (viewPanel .getQValueSliderPanel (), map , netView , columnNames , dataSetNodes );
1062
1083
}
1063
1084
@@ -1123,7 +1144,7 @@ private Set<CyNode> getFilteredInNodes(SliderBarPanel sliderPanel, EnrichmentMap
1123
1144
show = false ;
1124
1145
} else if (table .getColumn (prefix + NODE_GS_TYPE ) != null
1125
1146
&& NODE_GS_TYPE_ENRICHMENT .equalsIgnoreCase (row .get (prefix + NODE_GS_TYPE , String .class ))) {
1126
- show = showElement (columnNames , table , row , maxCutoff , minCutoff );
1147
+ show = FilterUtil . passesFilter (columnNames , table , row , maxCutoff , minCutoff );
1127
1148
}
1128
1149
1129
1150
if (show )
@@ -1153,7 +1174,7 @@ private Set<CyEdge> getFilteredInEdges(SliderBarPanel sliderPanel, EnrichmentMap
1153
1174
1154
1175
boolean show ;
1155
1176
if (EDGE_DATASET_VALUE_COMPOUND .equals (dataset )) { // compound edge
1156
- show = showElement (columnNames , table , row , maxCutoff , minCutoff );
1177
+ show = FilterUtil . passesFilter (columnNames , table , row , maxCutoff , minCutoff );
1157
1178
}
1158
1179
else { // discrete edge
1159
1180
if (dataSetEdges != null && !dataSetEdges .contains (e .getSUID ())) {
@@ -1163,7 +1184,7 @@ private Set<CyEdge> getFilteredInEdges(SliderBarPanel sliderPanel, EnrichmentMap
1163
1184
if (EDGE_INTERACTION_VALUE_SIG .equals (interaction )) {
1164
1185
show = true ;
1165
1186
} else {
1166
- show = showElement (columnNames , table , row , maxCutoff , minCutoff );
1187
+ show = FilterUtil . passesFilter (columnNames , table , row , maxCutoff , minCutoff );
1167
1188
}
1168
1189
}
1169
1190
}
@@ -1174,52 +1195,5 @@ private Set<CyEdge> getFilteredInEdges(SliderBarPanel sliderPanel, EnrichmentMap
1174
1195
1175
1196
return edges ;
1176
1197
}
1177
-
1178
- private boolean showElement (Set <String > columnNames , CyTable table , CyRow row , Double maxCutoff , Double minCutoff ) {
1179
- boolean show = true ;
1180
- for (String colName : columnNames ) {
1181
- if (table .getColumn (colName ) == null )
1182
- continue ; // Ignore this column name (maybe the user deleted it)
1183
-
1184
- Double value = row .get (colName , Double .class );
1185
-
1186
- // Possible that there isn't value for this interaction
1187
- if (value == null )
1188
- continue ;
1189
-
1190
- if (value >= minCutoff && value <= maxCutoff ) {
1191
- show = true ;
1192
- break ;
1193
- } else {
1194
- show = false ;
1195
- }
1196
- }
1197
- return show ;
1198
- }
1199
-
1200
- private Set <String > getFilteredColumnNames (Set <String > columnNames , Collection <AbstractDataSet > dataSets ) {
1201
- Set <String > filteredNames = new HashSet <>();
1202
-
1203
- for (String name : columnNames ) {
1204
- for (AbstractDataSet ds : dataSets ) {
1205
- if (ds .getMap ().isLegacy ()) {
1206
- if (LegacySupport .DATASET1 .equals (ds .getName ()) && name .endsWith ("dataset1" )) {
1207
- filteredNames .add (name );
1208
- break ;
1209
- }
1210
- if (LegacySupport .DATASET2 .equals (ds .getName ()) && name .endsWith ("dataset2" )) {
1211
- filteredNames .add (name );
1212
- break ;
1213
- }
1214
- }
1215
- if (name .endsWith (" (" + ds .getName () + ")" )) {
1216
- filteredNames .add (name );
1217
- break ;
1218
- }
1219
- }
1220
- }
1221
-
1222
- return filteredNames ;
1223
- }
1224
1198
}
1225
1199
}
0 commit comments