1 package rero.dck.items; 2 3 import java.awt.*; 4 import java.awt.event.*; 5 6 import javax.swing.*; 7 import javax.swing.event.*; 8 9 import rero.config.*; 10 import rero.dck.*; 11 12 public class FloatInput extends SuperInput implements ChangeListener 13 { 14 protected JLabel label; 15 protected JTextField text; 16 protected JSlider slider; 17 18 protected float value; 19 20 public FloatInput(String var, float _value, String _label) 21 { 22 variable = var; 23 value = _value; 24 25 setLayout(new BorderLayout(5, 5)); 26 27 label = new JLabel(_label); 28 29 add(label, BorderLayout.WEST); 30 31 int defValue = (int)(_value * 100); 32 33 slider = new JSlider(JSlider.HORIZONTAL, 0, 100, defValue); 34 slider.setMajorTickSpacing(25); 35 slider.setMinorTickSpacing(5); 36 slider.setPaintTicks(true); 37 slider.setPaintLabels(false); 38 39 slider.addChangeListener(this); 40 41 add(slider, BorderLayout.CENTER); 42 43 text = new JTextField(); 44 text.setEditable(false); 45 text.setColumns(4); 46 47 refresh(); 48 49 JPanel temp = new JPanel(); 50 temp.setLayout(new FlowLayout(FlowLayout.CENTER)); 51 52 temp.add(text); 53 54 add(temp, BorderLayout.EAST); 55 } 56 57 public void stateChanged(ChangeEvent ev) 58 { 59 if (slider.getValue() == 0) 60 { 61 text.setText("off"); 62 } 63 else 64 { 65 text.setText(slider.getValue()+"%"); 66 } 67 notifyParent(); 68 } 69 70 public void save() 71 { 72 ClientState.getClientState().setFloat(getVariable(), (float)slider.getValue() / 100f); 73 } 74 75 public int getEstimatedWidth() 76 { 77 return (int)label.getPreferredSize().getWidth(); 78 } 79 80 public void setAlignWidth(int width) 81 { 82 label.setPreferredSize(new Dimension(width, 0)); 83 revalidate(); 84 } 85 86 public JComponent getComponent() 87 { 88 return this; 89 } 90 91 public void refresh() 92 { 93 int defValue = (int)(ClientState.getClientState().getFloat(getVariable(), value) * 100); 94 slider.setValue(defValue); 95 96 if (defValue == 0) 97 { 98 text.setText("off"); 99 return; 100 } 101 102 text.setText(defValue + "%"); 103 } 104 } 105 106 107 | Popular Tags |