Skip to content

Commit af43593

Browse files
committed
Fixes synchronizing the value of the SliderBarPanel between its slider and text field.
1 parent 820ddd5 commit af43593

File tree

2 files changed

+26
-26
lines changed

2 files changed

+26
-26
lines changed

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

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import javax.swing.JOptionPane;
2525
import javax.swing.JSlider;
2626
import javax.swing.Timer;
27-
import javax.swing.event.ChangeEvent;
2827

2928
import org.baderlab.csplugins.enrichmentmap.AfterInjection;
3029
import org.baderlab.csplugins.enrichmentmap.actions.ShowEnrichmentMapDialogAction;
@@ -52,7 +51,6 @@
5251
import org.cytoscape.application.swing.CytoPanel;
5352
import org.cytoscape.application.swing.CytoPanelComponent;
5453
import org.cytoscape.model.CyEdge;
55-
import org.cytoscape.model.CyIdentifiable;
5654
import org.cytoscape.model.CyNetwork;
5755
import org.cytoscape.model.CyNode;
5856
import org.cytoscape.model.CyRow;
@@ -140,17 +138,14 @@ public void handleEvent(NetworkViewAddedEvent e) {
140138
SliderBarPanel sSliderPanel = viewPanel.getSimilaritySliderPanel();
141139

142140
if (pvSliderPanel != null)
143-
pvSliderPanel.getSlider().addChangeListener(evt ->
144-
onCutoffSliderChanged(evt, pvSliderPanel, viewPanel, map, netView, CyNode.class)
145-
);
141+
pvSliderPanel.addPropertyChangeListener("value",
142+
evt -> filterNodesAndEdges(viewPanel, map, netView));
146143
if (qvSliderPanel != null)
147-
qvSliderPanel.getSlider().addChangeListener(evt ->
148-
onCutoffSliderChanged(evt, pvSliderPanel, viewPanel, map, netView, CyNode.class)
149-
);
144+
qvSliderPanel.addPropertyChangeListener("value",
145+
evt -> filterNodesAndEdges(viewPanel, map, netView));
150146
if (sSliderPanel != null)
151-
sSliderPanel.getSlider().addChangeListener(evt ->
152-
onCutoffSliderChanged(evt, pvSliderPanel, viewPanel, map, netView, CyEdge.class)
153-
);
147+
sSliderPanel.addPropertyChangeListener("value",
148+
evt -> filterNodesAndEdges(viewPanel, map, netView));
154149

155150
viewPanel.getCheckboxListPanel().getCheckboxList().addListSelectionListener(evt -> {
156151
filterNodesAndEdges(viewPanel, map, netView);
@@ -344,17 +339,6 @@ private void showEdgeWidthDialog() {
344339
}
345340
}
346341

347-
public void onCutoffSliderChanged(ChangeEvent e, SliderBarPanel sliderPanel, EMViewControlPanel viewPanel,
348-
EnrichmentMap map, CyNetworkView netView, Class<? extends CyIdentifiable> targetType) {
349-
JSlider slider = (JSlider) e.getSource();
350-
351-
if (slider.getValueIsAdjusting())
352-
return;
353-
354-
sliderPanel.setValue(slider.getValue());
355-
filterNodesAndEdges(viewPanel, map, netView);
356-
}
357-
358342
private void filterNodesAndEdges(EMViewControlPanel viewPanel, EnrichmentMap map, CyNetworkView netView) {
359343
Timer timer = filterTimers.get(netView);
360344

@@ -375,9 +359,8 @@ private Set<CyNode> getFilteredInNodes(SliderBarPanel sliderPanel, EnrichmentMap
375359
Set<String> columnNames) {
376360
Set<CyNode> nodes = new HashSet<>();
377361

378-
JSlider slider = sliderPanel.getSlider();
379-
Double maxCutoff = slider.getValue() / sliderPanel.getPrecision();
380-
Double minCutoff = slider.getMinimum() / sliderPanel.getPrecision();
362+
Double maxCutoff = (double) sliderPanel.getValue() / sliderPanel.getPrecision();
363+
Double minCutoff = (double) sliderPanel.getMin() / sliderPanel.getPrecision();
381364

382365
CyNetwork network = networkView.getModel();
383366
CyTable table = network.getDefaultNodeTable();

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/view/util/SliderBarPanel.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,15 @@ private void initPanel() {
144144

145145
slider.setLabelTable(labelTable);
146146
slider.setPaintLabels(true);
147+
slider.addChangeListener(evt -> {
148+
if (!slider.getValueIsAdjusting())
149+
setValue(slider.getValue());
150+
});
147151

148152
textField = new BoundedTextField(initialValue, min, max, precision, decPrecision, smallNumber);
149153
textField.addPropertyChangeListener("value", evt -> {
150154
slider.setValue((int) evt.getNewValue());
155+
firePropertyChange("value", (int) evt.getOldValue(), (int) evt.getNewValue());
151156
});
152157

153158
makeSmall(label, slider, textField);
@@ -211,11 +216,23 @@ public void setEnabled(boolean enabled) {
211216
public void setValue(final int newValue) {
212217
textField.setValue(newValue);
213218
}
219+
220+
public int getValue() {
221+
return slider.getValue();
222+
}
223+
224+
public int getMin() {
225+
return min;
226+
}
227+
228+
public int getMax() {
229+
return max;
230+
}
214231

215232
public double getPrecision() {
216233
return textField.getPrecision();
217234
}
218-
235+
219236
//Methods are currently not used. If they become useful in the future need to add case for smallNumbers case
220237

221238
/*public double getMin() {

0 commit comments

Comments
 (0)