/// <summary> /// Removes the specified <code>FlavorListener</code> so that it no longer /// receives <code>FlavorEvent</code>s from this <code>Clipboard</code>. /// This method performs no function, nor does it throw an exception, if /// the listener specified by the argument was not previously added to this /// <code>Clipboard</code>. /// If <code>listener</code> is <code>null</code>, no exception /// is thrown and no action is performed. /// </summary> /// <param name="listener"> the listener to be removed /// </param> /// <seealso cref= #addFlavorListener </seealso> /// <seealso cref= #getFlavorListeners </seealso> /// <seealso cref= FlavorListener </seealso> /// <seealso cref= FlavorEvent /// @since 1.5 </seealso> public virtual void RemoveFlavorListener(FlavorListener listener) { lock (this) { if (listener == null || FlavorListeners_Renamed == null) { return; } FlavorListeners_Renamed.remove(listener); } }
/// <summary> /// Registers the specified <code>FlavorListener</code> to receive /// <code>FlavorEvent</code>s from this clipboard. /// If <code>listener</code> is <code>null</code>, no exception /// is thrown and no action is performed. /// </summary> /// <param name="listener"> the listener to be added /// </param> /// <seealso cref= #removeFlavorListener </seealso> /// <seealso cref= #getFlavorListeners </seealso> /// <seealso cref= FlavorListener </seealso> /// <seealso cref= FlavorEvent /// @since 1.5 </seealso> public virtual void AddFlavorListener(FlavorListener listener) { lock (this) { if (listener == null) { return; } if (FlavorListeners_Renamed == null) { CurrentDataFlavors = AvailableDataFlavorSet; FlavorListeners_Renamed = new EventListenerAggregate(typeof(FlavorListener)); } FlavorListeners_Renamed.add(listener); } }
/// <summary> /// Checks change of the <code>DataFlavor</code>s and, if necessary, /// notifies all listeners that have registered interest for notification /// on <code>FlavorEvent</code>s. /// /// @since 1.5 /// </summary> private void FireFlavorsChanged() { if (FlavorListeners_Renamed == null) { return; } Set <DataFlavor> prevDataFlavors = CurrentDataFlavors; CurrentDataFlavors = AvailableDataFlavorSet; if (prevDataFlavors.Equals(CurrentDataFlavors)) { return; } FlavorListener[] flavorListenerArray = (FlavorListener[])FlavorListeners_Renamed.ListenersInternal; for (int i = 0; i < flavorListenerArray.Length; i++) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final FlavorListener listener = flavorListenerArray[i]; FlavorListener listener = flavorListenerArray[i]; EventQueue.InvokeLater(new RunnableAnonymousInnerClassHelper2(this, listener)); } }