content: /*
   *    This program is free software; you can redistribute it and/or modify
   *    it under the terms of the GNU General Public License as published by
   *    the Free Software Foundation; either version 2 of the License, or
   *    (at your option) any later version.
   *
   *    This program is distributed in the hope that it will be useful,
   *    but WITHOUT ANY WARRANTY; without even the implied warranty of
   *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   *    GNU General Public License for more details.
   *
   *    You should have received a copy of the GNU General Public License
   *    along with this program; if not, write to the Free Software
   *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   */
  
  /*
   *    BeanCustomizer.java
   *    Copyright (C) 2011 University of Waikato, Hamilton, New Zealand
   *
   */
  
  package weka.gui.beans;
  
  import java.beans.Customizer;
  
  /**
   * Extends java.beans.Customizer and provides a method to register
   * a listener interested in notification about whether the customizer
   * has modified the object that it is customizing. Typically, an implementation
   * would notify the listener about the modification state when it's window
   * is closed.
   * 
   * @author Mark Hall (mhall{[at]}penthao{[dot]}com)
   * @version $Revision: 7124 $
   *
   */
  public interface BeanCustomizer extends Customizer {
    
    /**
     * Interface for something that is interested in the modified status
     * of a source object (typically a BeanCustomizer that is editing an
     * object)
     * 
     * @author mhall
     *
     */
    public interface ModifyListener {
      
      /**
       * Tell the listener about the modified status of the source object.
       * 
       * @param source the source object
       * @param modified true if the source object has been modified
       */
      void setModifiedStatus(Object source, boolean modified);
    }
    
    /**
     * Set a listener to be notified about the modified status of this
     * object
     * 
     * @param l the ModifiedListener
     */
    void setModifiedListener(ModifyListener l);  
  }
  