Skip to content

Commit 975ae4b

Browse files
committed
Make sure UI updates style correctly.
Refs #451
1 parent 5016679 commit 975ae4b

File tree

6 files changed

+38
-12
lines changed

6 files changed

+38
-12
lines changed

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/commands/ChartCommandTask.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import org.baderlab.csplugins.enrichmentmap.style.ChartOptions;
1010
import org.baderlab.csplugins.enrichmentmap.style.ChartType;
1111
import org.baderlab.csplugins.enrichmentmap.style.ColorScheme;
12+
import org.baderlab.csplugins.enrichmentmap.style.EMStyleBuilder.StyleUpdateScope;
13+
import org.baderlab.csplugins.enrichmentmap.task.ApplyEMStyleTask;
1214
import org.baderlab.csplugins.enrichmentmap.view.control.ControlPanelMediator;
1315
import org.baderlab.csplugins.enrichmentmap.view.control.io.ViewParams;
1416
import org.cytoscape.view.model.CyNetworkView;
@@ -21,7 +23,7 @@
2123
public class ChartCommandTask extends AbstractTask {
2224

2325
@Inject private ControlPanelMediator controlPanelMediator;
24-
26+
@Inject private ApplyEMStyleTask.Factory applyStyleTaskFactory;
2527

2628
@ContainsTunables @Inject
2729
public NetworkTunable networkTunable;
@@ -57,7 +59,7 @@ public void run(TaskMonitor taskMonitor) {
5759
Map<Long,ViewParams> viewParamsMap = controlPanelMediator.getAllViewParams();
5860
ViewParams params = viewParamsMap.get(networkView.getSUID());
5961
params.setChartOptions(options);
60-
controlPanelMediator.reset(params);
62+
controlPanelMediator.reset(params, StyleUpdateScope.ONLY_CHARTS);
6163
}
6264

6365
}

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/commands/DatasetShowCommandTask.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.baderlab.csplugins.enrichmentmap.commands.tunables.DatasetListTunable;
88
import org.baderlab.csplugins.enrichmentmap.commands.tunables.NetworkTunable;
99
import org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap;
10+
import org.baderlab.csplugins.enrichmentmap.style.EMStyleBuilder.StyleUpdateScope;
1011
import org.baderlab.csplugins.enrichmentmap.view.control.ControlPanelMediator;
1112
import org.baderlab.csplugins.enrichmentmap.view.control.io.ViewParams;
1213
import org.cytoscape.view.model.CyNetworkView;
@@ -61,7 +62,7 @@ public void run(TaskMonitor taskMonitor) throws Exception {
6162
}
6263

6364
params.setFilteredOutDataSets(filteredOutNames);
64-
controlPanelMediator.reset(params);
65+
controlPanelMediator.reset(params, StyleUpdateScope.ONLY_DATASETS);
6566
}
6667

6768
}

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/style/EMStyleBuilder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,10 @@ else if(scope == ONLY_CHARTS) {
231231
}
232232
else if(scope == ONLY_DATASETS) {
233233
setEdgePaint(vs, options);
234+
setNodeChartDefaults(vs, chartType);
235+
setNodeShapes(vs, options, chartType);
236+
setNodeSize(vs, options, chartType);
237+
setNodeChart(vs, chart);
234238
setNodeColors(vs, options);
235239
}
236240
else if(scope == PUBLICATION_READY) {

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/view/control/ControlPanelMediator.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ public ListenableFuture<Void> reset() {
237237
return future;
238238
}
239239

240-
public void reset(ViewParams params) {
240+
public void reset(ViewParams params, StyleUpdateScope updateScope) {
241241
long netViewID = params.getNetworkViewID();
242242

243243
invokeOnEDT(() -> {
@@ -252,6 +252,8 @@ public void reset(ViewParams params) {
252252
return;
253253

254254
try {
255+
updating = true;
256+
255257
// Update Filters
256258
if (params.getPValue() != null && viewPanel.getPValueSliderPanel() != null)
257259
viewPanel.getPValueSliderPanel().setValue(params.getPValue());
@@ -275,18 +277,21 @@ else if (params.getNodeCutoffParam() == CutoffParam.Q_VALUE)
275277
// Update Style options
276278
ChartOptions chartOptions = params.getChartOptions();
277279
viewPanel.getChartDataCombo().setSelectedItem(chartOptions != null ? chartOptions.getData() : null);
280+
viewPanel.updateChartCombos();
278281
viewPanel.getChartTypeCombo().setSelectedItem(chartOptions != null ? chartOptions.getType() : null);
279282
viewPanel.getChartColorsCombo().setSelectedItem(chartOptions != null ? chartOptions.getColorScheme() : null);
280283
viewPanel.getShowChartLabelsCheck().setSelected(chartOptions != null && chartOptions.isShowLabels());
281284
viewPanel.getPublicationReadyCheck().setSelected(params.isPublicationReady());
282-
283285
viewPanel.updateChartDataCombo();
284-
285-
updateVisualStyle(map, viewPanel, StyleUpdateScope.ALL);
286-
filterNodesAndEdges(viewPanel, map);
287286
} finally {
288287
updating = false;
289288
}
289+
290+
if(updateScope != null) {
291+
updateVisualStyle(map, viewPanel, updateScope);
292+
filterNodesAndEdges(viewPanel, map);
293+
}
294+
290295
});
291296
}
292297

@@ -492,7 +497,7 @@ private void addListeners(EMViewControlPanel viewPanel, EnrichmentMap map) {
492497
updateStyle = updateStyle || oldSize > 0 && newSize == 0;
493498

494499
if (updateStyle) {
495-
updateVisualStyle(map, viewPanel, StyleUpdateScope.ALL);
500+
updateVisualStyle(map, viewPanel, StyleUpdateScope.ONLY_DATASETS);
496501
heatMapMediatorProvider.get().reset();
497502
} else {
498503
netView.updateView();
@@ -785,7 +790,7 @@ private void updateVisualStyle(EnrichmentMap map, EMViewControlPanel viewPanel,
785790
applyVisualStyle(options, scope);
786791
}
787792

788-
private void applyVisualStyle(EMStyleOptions options, StyleUpdateScope scope) {
793+
public void applyVisualStyle(EMStyleOptions options, StyleUpdateScope scope) {
789794
ApplyEMStyleTask task = applyStyleTaskFactory.create(options, scope);
790795
dialogTaskManager.execute(new TaskIterator(task), TaskUtil.allFinished(finishStatus -> {
791796
EMViewControlPanel viewPanel = getControlPanel().getViewControlPanel(options.getNetworkView());

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/view/control/io/SessionViewIO.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public void restoreView(CySession session) {
8181

8282
if (params != null) {
8383
params.setNetworkViewID(netView.getSUID());
84-
controlPanelMediatorProvider.get().reset(params);
84+
controlPanelMediatorProvider.get().reset(params, null);
8585
}
8686
}
8787
}

EnrichmentMapPlugin/src/test/java/org/baderlab/csplugins/enrichmentmap/style/ApplyStyleTest.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,12 @@ public void applyStyle_ONLY_DATASETS(
284284
DiscreteMapping<String,Paint> nodeColorMapping = mock(DiscreteMapping.class);
285285
when(dmFactory.createVisualMappingFunction(Columns.NODE_GS_TYPE.with(prefix), String.class, NODE_FILL_COLOR)).thenReturn(nodeColorMapping);
286286

287+
DiscreteMapping<String,NodeShape> nodeShapeMapping = mock(DiscreteMapping.class);
288+
when(dmFactory.createVisualMappingFunction(Columns.NODE_GS_TYPE.with(prefix), String.class, NODE_SHAPE)).thenReturn(nodeShapeMapping);
289+
290+
ContinuousMapping<Integer,Double> nodeSizeMapping = mock(ContinuousMapping.class);
291+
when(cmFactory.createVisualMappingFunction(Columns.NODE_GS_SIZE.with(prefix), Integer.class, NODE_SIZE)).thenReturn(nodeSizeMapping);
292+
287293
// Create the style
288294
VisualStyle vs = mock(VisualStyle.class);
289295
CyNetworkView netView = mock(CyNetworkView.class);
@@ -298,12 +304,20 @@ public void applyStyle_ONLY_DATASETS(
298304
verify(edgeStrokeUnselectedPaintMapping).putMapValue("DataSet1", Color.BLUE);
299305
verify(edgeStrokeUnselectedPaintMapping).putMapValue("DataSet2", Color.RED);
300306

307+
// setNodeShapes()
308+
verify(nodeShapeMapping).putMapValue(Columns.NODE_GS_TYPE_ENRICHMENT, NodeShapeVisualProperty.ELLIPSE);
309+
verify(nodeShapeMapping).putMapValue(Columns.NODE_GS_TYPE_SIGNATURE, NodeShapeVisualProperty.DIAMOND);
310+
311+
// setNodeSize()
312+
verify(nodeSizeMapping).addPoint(2, new BoundaryRangeValues<>(20.0, 20.0, 20.0));
313+
verify(nodeSizeMapping).addPoint(500, new BoundaryRangeValues<>(60.0, 60.0, 60.0));
314+
301315
// setNodeColors()
302316
verify(nodeColorMapping).putMapValue(Columns.NODE_GS_TYPE_ENRICHMENT, Colors.DEF_NODE_COLOR);
303317
verify(nodeColorMapping).putMapValue(Columns.NODE_GS_TYPE_SIGNATURE, Colors.SIG_NODE_COLOR);
304318

305319
// Verify that nothing else was updated
306-
verify(vs, times(3)).addVisualMappingFunction(any());
320+
verify(vs, times(5)).addVisualMappingFunction(any());
307321
verify(vs).addVisualMappingFunction(edgeUnselectedPaintMapping);
308322
verify(vs).addVisualMappingFunction(edgeStrokeUnselectedPaintMapping);
309323
verify(vs).addVisualMappingFunction(nodeColorMapping);

0 commit comments

Comments
 (0)