package ij.gui;
import ij.*;
import java.awt.AWTEvent;
/**
* PlugIns or PlugInFilters that want to listen to changes in a GenericDialog
* without adding listeners for each dialog field should implementthis method.
* The dialogItemChanged method of a PlugIn or PlugInFilter can and should read
* the various dialog items by the appropriate GenericDialog methods like
* getNextNumber (items that are not read in the dialogItemChanged method will
* not be recorded by the Macro recorder).
*
* The PlugIn or PlugInFilter has to be added to the GenericDialog by
* its addDialogListener method:
* gd.addDialogListener(this);
*
*/
public interface DialogListener {
/**
* This method is invoked by a Generic Dialog if any of the inputs have changed
* (CANCEL does not trigger it; OK and running the dialog from a macro only
* trigger the first DialogListener added to a GenericDialog).
*
* @param e The event that has been generated by the user action in the dialog.
* Note that <code>e</code> is <code>null</code> if the
* dialogItemChanged method is called after the user has pressed the
* OK button or if the GenericDialog has read its parameters from a
* macro.
* @param gd A reference to the GenericDialog.
* @return Should be true if the dialog input is valid. False disables the
* OK button and preview (if any).
*/
boolean dialogItemChanged(GenericDialog gd, AWTEvent e);
}