root / trunk / libraries / libTopology / src / com / vividsolutions / jcs / plugin / conflate / polygonmatch / ColorSliderPanel.java @ 22873
History | View | Annotate | Download (2.86 KB)
1 |
package com.vividsolutions.jcs.plugin.conflate.polygonmatch; |
---|---|
2 |
|
3 |
import java.awt.BorderLayout; |
4 |
import java.text.DecimalFormat; |
5 |
|
6 |
import javax.swing.JLabel; |
7 |
import javax.swing.JPanel; |
8 |
import javax.swing.JSlider; |
9 |
import javax.swing.SwingConstants; |
10 |
import javax.swing.event.ChangeEvent; |
11 |
import javax.swing.event.ChangeListener; |
12 |
|
13 |
import com.vividsolutions.jump.workbench.WorkbenchContext; |
14 |
import com.vividsolutions.jump.workbench.model.Layer; |
15 |
import com.vividsolutions.jump.workbench.model.LayerManager; |
16 |
import java.awt.Color; |
17 |
|
18 |
public class ColorSliderPanel extends JPanel { |
19 |
private BorderLayout borderLayout1 = new BorderLayout(); |
20 |
private JSlider slider = new JSlider(); |
21 |
private WorkbenchContext context;
|
22 |
|
23 |
public JSlider getSlider() { |
24 |
return slider;
|
25 |
} |
26 |
private LayerManager dummyLayerManager = new LayerManager(); |
27 |
private JLabel label = new JLabel(); |
28 |
public ColorSliderPanel(WorkbenchContext context) {
|
29 |
this.context = context;
|
30 |
try {
|
31 |
jbInit(); |
32 |
} catch (Exception ex) { |
33 |
ex.printStackTrace(); |
34 |
} |
35 |
label.setToolTipText(slider.getToolTipText()); |
36 |
ChangeListener changeListener = new ChangeListener() { |
37 |
private DecimalFormat formatter = new DecimalFormat("0.00"); |
38 |
public void stateChanged(ChangeEvent e) { |
39 |
label.setText(formatter.format( |
40 |
Math.round(getThreshold() * 100) / 100.0)); |
41 |
if (slider.getValueIsAdjusting()) {
|
42 |
return;
|
43 |
} |
44 |
Layer layer = layerManager().getLayer(MatchPlugIn.MATCH_PAIR_LAYER_NAME); |
45 |
if (layer == null) { |
46 |
return;
|
47 |
} |
48 |
((MatchPairStyle) layer.getStyle(MatchPairStyle.class)).setThreshold(getThreshold()); |
49 |
layer.fireAppearanceChanged(); |
50 |
} |
51 |
}; |
52 |
slider.addChangeListener(changeListener); |
53 |
changeListener.stateChanged(null);
|
54 |
} |
55 |
|
56 |
private LayerManager layerManager() {
|
57 |
return (context.getLayerManager() == null) |
58 |
? dummyLayerManager |
59 |
: context.getLayerManager(); |
60 |
} |
61 |
void jbInit() throws Exception { |
62 |
this.setLayout(borderLayout1);
|
63 |
slider.setOrientation(SwingConstants.VERTICAL);
|
64 |
slider.setToolTipText("Matches below this score will be drawn with a paler color");
|
65 |
label.setForeground(Color.blue);
|
66 |
label.setHorizontalAlignment(SwingConstants.CENTER);
|
67 |
label.setText("0.0");
|
68 |
this.add(slider, BorderLayout.CENTER); |
69 |
this.add(label, BorderLayout.SOUTH); |
70 |
slider.setValue(0);
|
71 |
} |
72 |
public double getThreshold() { |
73 |
return slider.getValue() / 100.0; |
74 |
} |
75 |
public void setThreshold(double threshold) { |
76 |
slider.setValue((int) (threshold * 100)); |
77 |
} |
78 |
public void addChangeListener(ChangeListener l) { |
79 |
slider.addChangeListener(l); |
80 |
} |
81 |
|
82 |
} |