001 package sale.events;
002
003 import java.util.EventObject;
004
005 import sale.FormSheet;
006 import sale.Display;
007
008 /**
009 * An EventObject describing a FormSheet that was set or closed at a Display.
010 *
011 * @see sale.FormSheet
012 * @see sale.Display
013 *
014 * @author Steffen Zschaler
015 * @version 2.0 27/05/1999
016 * @since v2.0
017 */
018 public class FormSheetEvent extends EventObject {
019
020 /**
021 * The FormSheet that was affected by the event.
022 *
023 * @serial
024 */
025 private FormSheet m_fsFormSheet;
026
027 /**
028 * Was the event caused by an explicit call to the responsible method or was it caused indirectly?
029 *
030 * @serial
031 */
032 private boolean m_fExplicit;
033
034 /**
035 * Create a new FormSheetEvent.
036 *
037 * @param src the Display originating the event.
038 * @param fs the FormSheet that was affected by the event.
039 * @param fExplicit was the event caused by a direct call to the originating method or indirectly?
040 */
041 public FormSheetEvent(Display src, FormSheet fs, boolean fExplicit) {
042 super(src);
043
044 m_fsFormSheet = fs;
045 m_fExplicit = fExplicit;
046 }
047
048 /**
049 * Get the affected FormSheet.
050 *
051 * @override Never
052 */
053 public FormSheet getFormSheet() {
054 return m_fsFormSheet;
055 }
056
057 /**
058 * Was the event caused by a direct call to the originating method or indirectly?
059 *
060 * <p><code>formSheetSet</code> events are always considered explicit. In contrast,
061 * <code>formSheetRemoved</code> events are explicit only if they were originated as the consequence
062 * of a call to <code>closeFormSheet</code> or <code>setFormSheet (<b>null</b>)</code>. FormSheet
063 * removals that were caused by setting another FormSheet are not considered explicit.</p>
064 *
065 * @override Never
066 */
067 public boolean isExplicit() {
068 return m_fExplicit;
069 }
070 }