package com.microchip.mplab.ipelib.common; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; public class ChangeEventHandler { private PropertyChangeSupport pcs = null; private static ChangeEventHandler inst; private ChangeEventHandler.DeviceChangeListener devChangeListener = new ChangeEventHandler.DeviceChangeListener(); private ChangeEventHandler() { this.pcs = new PropertyChangeSupport(this); } public static void addPropertyChangeListener(PropertyChangeListener listener) { getSingleton().pcs.addPropertyChangeListener(listener); } public static void removePropertyChangeListener(PropertyChangeListener listener) { getSingleton().pcs.removePropertyChangeListener(listener); } public static ChangeEventHandler getSingleton() { if (inst != null) { return inst; } else { inst = new ChangeEventHandler(); return inst; } } public ChangeEventHandler.DeviceChangeListener getDeviceChangeListener() { return this.devChangeListener; } public class DeviceChangeListener { public void stateChanged(PropertyChangeEvent event) { if (event != null) { ChangeEventHandler.this.pcs.firePropertyChange(event); } } } }