package database; import javax.swing.BoxLayout; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class BooleanDatabaseProperty extends DatabaseProperty { private boolean _value; private JCheckBox _editCheckBox; public BooleanDatabaseProperty(String name) { _name = name; _type = "Boolean"; _value = false; JPanel editUI = new JPanel(); editUI.setLayout(new BoxLayout(editUI, BoxLayout.X_AXIS)); JLabel editLabel = new JLabel(" " + _name + ":"); editUI.add(editLabel); _editCheckBox = new JCheckBox(); _editCheckBox.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { _value = _editCheckBox.isSelected(); } }); editUI.add(_editCheckBox); _editUI = editUI; } public void setValue(boolean value) { _value = value; _editCheckBox.setSelected(value); } @Override public void update(DatabaseModel model) { _editCheckBox.setSelected(_value); } @Override public Object getTableElement() { return (Boolean)_value; } @Override public void setTableElement(Object value) { _value = (Boolean)value; } @Override public boolean isTableElementEditable() { return true; } @Override public DatabaseProperty initializeInstance() { return new BooleanDatabaseProperty(_name); } @Override public String toXML() { String xml = "<BooleanProperty name=\"" + _name + "\" value=\"" + _value + "\"/>"; return xml; } }