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 SelectInput extends SuperInput implements ItemListener 13 { 14 protected JLabel label; 15 protected int defaultVal; 16 17 protected JComboBox select; 18 19 public SelectInput(String var, int _defaultVal, String values[], String _label, char mnemonic, int rightGap) 20 { 21 label = new JLabel(_label); 22 23 setLayout(new BorderLayout()); 24 25 select = new JComboBox(values); 26 27 add(label, BorderLayout.WEST); 28 add(select, BorderLayout.CENTER); 29 30 if (rightGap > 0) 31 { 32 JPanel temp = new JPanel(); 33 temp.setPreferredSize(new Dimension(rightGap, 0)); 34 35 add(temp, BorderLayout.EAST); 36 } 37 38 label.setDisplayedMnemonic(mnemonic); 39 select.addItemListener(this); 40 41 variable = var; 42 43 defaultVal = _defaultVal; 44 } 45 46 public void setEnabled(boolean b) 47 { 48 Component[] blah = getComponents(); 49 for (int x = 0; x < blah.length; x++) 50 { 51 blah[x].setEnabled(b); 52 } 53 54 super.setEnabled(b); 55 } 56 57 public void setModel(ComboBoxModel model) 58 { 59 select.setModel(model); 60 } 61 62 public void save() 63 { 64 ClientState.getClientState().setInteger(getVariable(), select.getSelectedIndex()); 65 } 66 67 public int getEstimatedWidth() 68 { 69 return (int)label.getPreferredSize().getWidth(); 70 } 71 72 public void setAlignWidth(int width) 73 { 74 label.setPreferredSize(new Dimension(width, 0)); 75 revalidate(); 76 } 77 78 public JComponent getComponent() 79 { 80 return this; 81 } 82 83 public void refresh() 84 { 85 select.setSelectedIndex(ClientState.getClientState().getInteger(getVariable(), defaultVal)); 86 } 87 88 public void itemStateChanged(ItemEvent ev) 89 { 90 notifyParent(); 91 } 92 } 93 94 95 | Popular Tags |