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