import java.beans.*; import utilities.beans.*; public class PlugNPray extends VisibleCanvas { private int irqNum; // not protected since no-one in the world private int dmaNum; // can override the design of these guys! private int ioAddress; protected String expansionType; // type of expansion card // we support a set of bound properties, so.. protected PropertyChangeSupport butler; //------------------------------------------------------------------- // PlugNPray Constructor //------------------------------------------------------------------- public PlugNPray() { this("ISA 300 Baud Modem",1,0,300 ); // default expansion card } public PlugNPray(String name, int IRQ, int DMA, int IOBase) { this.irqNum = IRQ; this.dmaNum = DMA; this.ioAddress = IOBase; this.expansionType = name; butler = new PropertyChangeSupport(this); } //------------------------------------------------------------------- // set()/get() for 'IRQ' property //------------------------------------------------------------------- public void setIRQ(int value) { int oldValue = irqNum; butler.firePropertyChange("IRQ", new Integer(oldValue), new Integer(value)); irqNum = value; } public int getIRQ() { return irqNum; } //------------------------------------------------------------------- // set()/get() for 'DMA' property //------------------------------------------------------------------- public void setDMA(int value) { int oldValue = dmaNum; butler.firePropertyChange("DMA", new Integer(oldValue), new Integer(value)); dmaNum = value; } public int getDMA() { return dmaNum; } //------------------------------------------------------------------- // set()/get() for 'IOBase' property //------------------------------------------------------------------- public void setIOBase(int value) { int oldValue = ioAddress; butler.firePropertyChange("IOBase", new Integer(oldValue), new Integer(value)); ioAddress = value; } public int getIOBase() { return ioAddress; } //------------------------------------------------------------------- // set()/get() for 'ExpansionType' property //------------------------------------------------------------------- public void setExpansionType(String value) { String oldValue = expansionType; butler.firePropertyChange("expansionType", oldValue, value); expansionType = value; } public String getExpansionType() { return expansionType; } //------------------------------------------------------------------- // PropertyChange Listener management methods //------------------------------------------------------------------- public void addPropertyChangeListener(PropertyChangeListener listener) { butler.addPropertyChangeListener(listener); } public void removePropertyChangeListener(PropertyChangeListener listener) { butler.removePropertyChangeListener(listener); } } // End of Class/Bean PlugNPray