base/common/src/main/com/thesett/common/state/BaseState.java
protected void firePropertyChange(PropertyChangeEvent evt)
    {
        /*log.fine("firePropertyChange: called");*/

        // Take a copy of the event as a final variable so that it can be used in an inner class
        final PropertyChangeEvent finalEvent = evt;

        Iterator it;

        // Check if the list of listeners is empty
        if (listeners == null)
        {
            // There are no listeners so simply return without doing anything
            return;
        }

        // synchronize on the list of listeners to prevent comodification
        synchronized (listeners)
        {
            // Cycle through all listeners and notify them
            it = listeners.iterator();

            while (it.hasNext())
            {
                // Get the next listener from the list
                final PropertyChangeListener l = (PropertyChangeListener) it.next();

                // Notify the listener of the property change event
                Runnable r =
                    new Runnable()
                    {
                        public void run()
                        {
                            // Fire a property change event
                            l.propertyChange(finalEvent);
                        }
                    };

                // Run the property change event in the Swing event queue
                SwingUtilities.invokeLater(r);
            }
        }
    }
protected void firePropertyChange(PropertyChangeEvent evt)
    {
        /*log.fine("firePropertyChange: called");*/

        // Take a copy of the event as a final variable so that it can be used in an inner class
        final PropertyChangeEvent finalEvent = evt;

        Iterator it;

        // Check if the list of listeners is empty
        if (listeners == null)
        {
            // There are no listeners so simply return without doing anything
            return;
        }

        // synchronize on the list of listeners to prevent comodification
        synchronized (listeners)
        {
            // Cycle through all listeners and notify them
            it = listeners.iterator();

            while (it.hasNext())
            {
                // Get the next listener from the list
                final PropertyChangeListener l = (PropertyChangeListener) it.next();

                // Notify the listener of the property change event
                Runnable r =
                    new Runnable()
                    {
                        public void run()
                        {
                            // Fire a property change event
                            l.propertyChange(finalEvent);
                        }
                    };

                // Run the property change event in the Swing event queue
                SwingUtilities.invokeLater(r);
            }
        }
    }
Notifies all property change listeners of the given PropertyChangeEvent.

@param evt The property change event to pass to all listeners.