Class StateMonitor

java.lang.Object
se.datadosen.component.StateMonitor
All Implemented Interfaces:
ItemListener, PropertyChangeListener, EventListener, ChangeListener, DocumentListener, ListDataListener
Direct Known Subclasses:
StateMonitor.StateMonitorImpl

public abstract class StateMonitor extends Object implements ItemListener, DocumentListener, PropertyChangeListener, ChangeListener, ListDataListener
Convenience "master listener" class that allows you to monitor component state events in a uniform and syntactically short way. When a change occurs to any of the added components, onChange is called on the implementing subclass. This class also contains convenient methods for enabling and disabling groups of components Example:

 import se.datadosen.component.*;

 ControlPanel ui = new ControlPanel() {
 JCheckBox homepageLinking = new JCheckBox("Add Copyright");
 JTextField text = new JTextField("",20);
 JTextField url = new JTextField("",20);
 JColorSelector color = new JColorSelector("Link text color", new JTextField(6));

 // Layout controls easily similar to how text is added in a word processor
 add("br", homepageLinking);
 add("br", new JLabel("Link text"));
 add("tab", text);
 add("br", new JLabel("Link URL"));
 add("tab", url);
 add("br", new JLabel("Link color"));
 add("tab", color);
 add(color.getTextComponent());

 new StateMonitor() {
 public void onChange() {
 // make "text" editable only if "homepageLinking" is ticked.
 text.setEditable(homepageLinking.isSelected());
 // Make "color" enabled only if there is text entered and "homepageLinking" is ticked
 color.setEnabled(text.getText().length() > 0
 && homepageLinking.isSelected());
 }
 }.add(homepageLinking).add(text).done();
 };

 window.setSkinUI(ui); // Installs this user interface in jAlbum's skin section

 
Since:
8.5