package ddddbb.gen; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Vector; import javax.swing.AbstractButton; import javax.swing.JCheckBoxMenuItem; import javax.swing.JToggleButton; public class BoolModel extends Model { private static final long serialVersionUID = -5154608494749418813L; public String name; public boolean value; public boolean defaultValue; public boolean enabled = true; public Vector<AbstractButton> buttons = new Vector<AbstractButton>(); public Vector<AbstractButton> trueButtons = new Vector<AbstractButton>(); public Vector<AbstractButton> falseButtons = new Vector<AbstractButton>(); public BoolModel(boolean _defaultValue,String _name) { defaultValue = _defaultValue; value = defaultValue; name = _name; } public boolean isSelected() { return value; } public void setSelected(boolean _value) { value = _value; changed(); } public void addButton(AbstractButton b) { buttons.add(b); if (b.getText().equals("")) { b.setText(name); } b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { value = ((AbstractButton)e.getSource()).isSelected(); changed(); }}); b.setSelected(value); } public void addTrueButton(AbstractButton b) { trueButtons.add(b); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { value = true; changed(); } }); b.setSelected(value); } public void addFalseButton(AbstractButton b) { falseButtons.add(b); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { value = false; changed(); } }); b.setSelected(!value); } public void addAsCheckBoxMenuItem(Container c) { JCheckBoxMenuItem item = new JCheckBoxMenuItem(name); addButton(item); c.add(item); } public void addAsJToggleButton(Container c) { JToggleButton item = new JToggleButton(name); addButton(item); c.add(item); } public boolean isEnabled() { return enabled; } public void setEnabled(boolean _enabled) { enabled = _enabled; changed(); } public void setToDefault() { setSelected(defaultValue); } protected void updateButtons() { for (AbstractButton b:buttons) { b.setSelected(value); b.setEnabled(enabled); } for (AbstractButton b:trueButtons) { b.setSelected(value); b.setEnabled(enabled); } for (AbstractButton b:falseButtons) { b.setSelected(!value); b.setEnabled(enabled); } } public void changed() { super.changed(); updateButtons(); } public ActionListener toggleAction = new ActionListener() { public void actionPerformed(ActionEvent e) { setSelected(!isSelected()); } }; }