/* * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package javafx.scene.control; import javafx.beans.NamedArg; import javafx.event.Event; import javafx.event.EventTarget; import javafx.event.EventType; /** * Event related to dialog showing/hiding actions. In particular, this event is * used exclusively by the following methods: * * * * @see Dialog * @since JavaFX 8u40 */ public class DialogEvent extends Event { private static final long serialVersionUID = 20140716L; /** * Common supertype for all dialog event types. */ public static final EventType ANY = new EventType(Event.ANY, "DIALOG"); /** * This event occurs on dialog just before it is shown. */ public static final EventType DIALOG_SHOWING = new EventType(DialogEvent.ANY, "DIALOG_SHOWING"); /** * This event occurs on dialog just after it is shown. */ public static final EventType DIALOG_SHOWN = new EventType(DialogEvent.ANY, "DIALOG_SHOWN"); /** * This event occurs on dialog just before it is hidden. */ public static final EventType DIALOG_HIDING = new EventType(DialogEvent.ANY, "DIALOG_HIDING"); /** * This event occurs on dialog just after it is hidden. */ public static final EventType DIALOG_HIDDEN = new EventType(DialogEvent.ANY, "DIALOG_HIDDEN"); /** * This event is delivered to a * dialog when there is an external request to close that dialog. If the * event is not consumed by any installed dialog event handler, the default * handler for this event closes the corresponding dialog. */ public static final EventType DIALOG_CLOSE_REQUEST = new EventType(DialogEvent.ANY, "DIALOG_CLOSE_REQUEST"); /** * Construct a new {@code Event} with the specified event source, target * and type. If the source or target is set to {@code null}, it is replaced * by the {@code NULL_SOURCE_TARGET} value. * * @param source the event source which sent the event * @param eventType the event type */ public DialogEvent(final @NamedArg("source") Dialog source, final @NamedArg("eventType") EventType eventType) { super(source, source, eventType); } /** * Returns a string representation of this {@code DialogEvent} object. * @return a string representation of this {@code DialogEvent} object. */ @Override public String toString() { final StringBuilder sb = new StringBuilder("DialogEvent ["); sb.append("source = ").append(getSource()); sb.append(", target = ").append(getTarget()); sb.append(", eventType = ").append(getEventType()); sb.append(", consumed = ").append(isConsumed()); return sb.append("]").toString(); } @Override public DialogEvent copyFor(Object newSource, EventTarget newTarget) { return (DialogEvent) super.copyFor(newSource, newTarget); } /** * Creates a copy of the given event with the given fields substituted. * @param newSource the new source of the copied event * @param newTarget the new target of the copied event * @param type the new eventType * @return the event copy with the fields substituted */ public DialogEvent copyFor(Object newSource, EventTarget newTarget, EventType type) { DialogEvent e = copyFor(newSource, newTarget); e.eventType = type; return e; } @SuppressWarnings("unchecked") @Override public EventType getEventType() { return (EventType) super.getEventType(); } }