Edit C:\Program Files\Java\jdk1.8.0_121\javafx\event\WeakEventHandler.java
/* * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package javafx.event; import java.lang.ref.WeakReference; import javafx.beans.NamedArg; /** * Used in event handler registration in place of its associated event handler. * Its sole purpose is to break the otherwise strong reference between an event * handler container and its associated event handler. While the container still * holds strong reference to the registered {@code WeakEventHandler} proxy, the * proxy itself references the original handler only weakly and so doesn't * prevent it from being garbage collected. Until this weak reference is broken, * any event notification received by the proxy is forwarded to the original * handler. * * @param <T> the event class this handler can handle * @since JavaFX 8.0 */ public final class WeakEventHandler<T extends Event> implements EventHandler<T> { private final WeakReference<EventHandler<T>> weakRef; /** * Creates a new instance of {@code WeakEventHandler}. * * @param eventHandler the original event handler to which to forward event * notifications */ public WeakEventHandler(final @NamedArg("eventHandler") EventHandler<T> eventHandler) { weakRef = new WeakReference<EventHandler<T>>(eventHandler); } /** * Indicates whether the associated event handler has been garbage * collected. Used by containers to detect when the storage of corresponding * references to this {@code WeakEventHandler} is no longer necessary. * * @return {@code true} if the associated handler has been garbage * collected, {@code false} otherwise */ public boolean wasGarbageCollected() { return weakRef.get() == null; } /** * Forwards event notification to the associated event handler. * * @param event the event which occurred */ @Override public void handle(final T event) { final EventHandler<T> eventHandler = weakRef.get(); if (eventHandler != null) { eventHandler.handle(event); } } /* Used for testing. */ void clear() { weakRef.clear(); } }
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de