* @return the weak referenced listener.
*/
private static AncestorListener createAncestorListener(JComponent component, final WindowListener windowListener) {
final WeakReference<JComponent> weakReference = new WeakReference<JComponent>(component);
return new AncestorListener() {
public void ancestorAdded(AncestorEvent event) {
// TODO if the WeakReference's object is null, remove the
// WeakReference as an AncestorListener.
Window window = weakReference.get() == null ? null : SwingUtilities.getWindowAncestor(weakReference.get());