| /* |
| * Copyright (c) 1997, 2014, 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™ |
| * has been added to the <code>java.beans</code> package. |
| * Please see {@link java.beans.XMLEncoder}. |
| * |
| * @author Timothy Prinzing |
| */ |
| @SuppressWarnings("serial") // Same-version serialization only |
| 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. |
| * |
| * @return the description of this link as a {@code String} |
| */ |
| 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 constructor 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; |
| } |
| } |