package com.revolsys.swing.listener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.lang.ref.Reference;
import java.lang.ref.WeakReference;
public class WeakFocusListener implements FocusListener {
private final Reference<FocusListener> reference;
public WeakFocusListener(final FocusListener listener) {
this.reference = new WeakReference<>(listener);
}
@Override
public void focusGained(final FocusEvent e) {
final FocusListener listener = this.reference.get();
if (listener != null) {
listener.focusGained(e);
}
}
@Override
public void focusLost(final FocusEvent e) {
final FocusListener listener = this.reference.get();
if (listener != null) {
listener.focusLost(e);
}
}
}