228 lines · 7.5 KB · Java
RawDownload
/* * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.  Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */package javax.swing.event; import java.awt.event.InputEvent;import java.util.EventObject;import java.net.URL;import javax.swing.text.Element;  /** * HyperlinkEvent is used to notify interested parties that * something has happened with respect to a hypertext link. * <p> * <strong>Warning:</strong> * Serialized objects of this class will not be compatible with * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing.  As of 1.4, support for long term storage * of all JavaBeans<sup><font size="-2">TM</font></sup> * has been added to the <code>java.beans</code> package. * Please see {@link java.beans.XMLEncoder}. * * @author  Timothy Prinzing */public class HyperlinkEvent extends EventObject {     /**     * Creates a new object representing a hypertext link event.     * The other constructor is preferred, as it provides more     * information if a URL could not be formed.  This constructor     * is primarily for backward compatibility.     *     * @param source the object responsible for the event     * @param type the event type     * @param u the affected URL     */    public HyperlinkEvent(Object source, EventType type, URL u) {        this(source, type, u, null);    }     /**     * Creates a new object representing a hypertext link event.     *     * @param source the object responsible for the event     * @param type the event type     * @param u the affected URL.  This may be null if a valid URL     *   could not be created.     * @param desc the description of the link.  This may be useful     *   when attempting to form a URL resulted in a MalformedURLException.     *   The description provides the text used when attempting to form the     *   URL.     */    public HyperlinkEvent(Object source, EventType type, URL u, String desc) {        this(source, type, u, desc, null);    }     /**     * Creates a new object representing a hypertext link event.     *     * @param source the object responsible for the event     * @param type the event type     * @param u the affected URL.  This may be null if a valid URL     *   could not be created.     * @param desc the description of the link.  This may be useful     *   when attempting to form a URL resulted in a MalformedURLException.     *   The description provides the text used when attempting to form the     *   URL.     * @param sourceElement Element in the Document representing the     *   anchor     * @since 1.4     */    public HyperlinkEvent(Object source, EventType type, URL u, String desc,                          Element sourceElement) {        super(source);        this.type = type;        this.u = u;        this.desc = desc;        this.sourceElement = sourceElement;    }     /**     * Creates a new object representing a hypertext link event.     *     * @param source the object responsible for the event     * @param type the event type     * @param u the affected URL.  This may be null if a valid URL     *   could not be created.     * @param desc the description of the link.  This may be useful     *   when attempting to form a URL resulted in a MalformedURLException.     *   The description provides the text used when attempting to form the     *   URL.     * @param sourceElement Element in the Document representing the     *   anchor     * @param inputEvent  InputEvent that triggered the hyperlink event     * @since 1.7     */    public HyperlinkEvent(Object source, EventType type, URL u, String desc,                          Element sourceElement, InputEvent inputEvent) {        super(source);        this.type = type;        this.u = u;        this.desc = desc;        this.sourceElement = sourceElement;        this.inputEvent = inputEvent;    }     /**     * Gets the type of event.     *     * @return the type     */    public EventType getEventType() {        return type;    }     /**     * Get the description of the link as a string.     * This may be useful if a URL can't be formed     * from the description, in which case the associated     * URL would be null.     */    public String getDescription() {        return desc;    }     /**     * Gets the URL that the link refers to.     *     * @return the URL     */    public URL getURL() {        return u;    }     /**     * Returns the <code>Element</code> that corresponds to the source of the     * event. This will typically be an <code>Element</code> representing     * an anchor. If a constructur that is used that does not specify a source     * <code>Element</code>, or null was specified as the source     * <code>Element</code>, this will return null.     *     * @return Element indicating source of event, or null     * @since 1.4     */    public Element getSourceElement() {        return sourceElement;    }     /**     * Returns the {@code InputEvent} that triggered the hyperlink event.     * This will typically be a {@code MouseEvent}.  If a constructor is used     * that does not specify an {@code InputEvent}, or @{code null}     * was specified as the {@code InputEvent}, this returns {@code null}.     *     * @return  InputEvent that triggered the hyperlink event, or null     * @since 1.7     */    public InputEvent getInputEvent() {        return inputEvent;    }     private EventType type;    private URL u;    private String desc;    private Element sourceElement;    private InputEvent inputEvent;      /**     * Defines the ENTERED, EXITED, and ACTIVATED event types, along     * with their string representations, returned by toString().     */    public static final class EventType {         private EventType(String s) {            typeString = s;        }         /**         * Entered type.         */        public static final EventType ENTERED = new EventType("ENTERED");         /**         * Exited type.         */        public static final EventType EXITED = new EventType("EXITED");         /**         * Activated type.         */        public static final EventType ACTIVATED = new EventType("ACTIVATED");         /**         * Converts the type to a string.         *         * @return the string         */        public String toString() {            return typeString;        }         private String typeString;    }}