bibliothek.gui.dock.util
Class AbstractWindowProvider

java.lang.Object
  extended by bibliothek.gui.dock.util.AbstractWindowProvider
All Implemented Interfaces:
WindowProvider
Direct Known Subclasses:
ComponentWindowProvider, DirectWindowProvider, FocusedWindowProvider

public abstract class AbstractWindowProvider
extends Object
implements WindowProvider

An implementation of WindowProvider which adds support for WindowProviderListeners. This provider also observes the visibility state of the associated window. If subclasses should either call fireWindowChanged(Window) or updateVisibility() as soon as the window changes.

Author:
Benjamin Sigg

Field Summary
protected  List<WindowProviderListener> listeners
          list of known listeners
 
Constructor Summary
AbstractWindowProvider()
           
 
Method Summary
 void addWindowProviderListener(WindowProviderListener listener)
          Adds a new listener to this provider.
protected  void fireVisibilityChanged(boolean showing)
          Calls WindowProviderListener.visibilityChanged(WindowProvider, boolean) on all listeners known to this provider.
protected  void fireWindowChanged(Window window)
          Calls WindowProviderListener.windowChanged(WindowProvider, Window) on all listeners known to this provider.
protected  boolean hasListeners()
          Tells whether at least one WindowProviderListener is registered.
 boolean isShowing()
          Tells whether this WindowProvider represents a window that is visible.
protected  WindowProviderListener[] listeners()
          Gets a list of all known listeners.
 void removeWindowProviderListener(WindowProviderListener listener)
          Removes a listener from this provider
protected  void updateVisibility()
          Updates the visibility state and listeners that observe the visibility state.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface bibliothek.gui.dock.util.WindowProvider
searchWindow
 

Field Detail

listeners

protected List<WindowProviderListener> listeners
list of known listeners

Constructor Detail

AbstractWindowProvider

public AbstractWindowProvider()
Method Detail

updateVisibility

protected void updateVisibility()
Updates the visibility state and listeners that observe the visibility state.


fireWindowChanged

protected void fireWindowChanged(Window window)
Calls WindowProviderListener.windowChanged(WindowProvider, Window) on all listeners known to this provider.

Parameters:
window - the new window, might be null

fireVisibilityChanged

protected void fireVisibilityChanged(boolean showing)
Calls WindowProviderListener.visibilityChanged(WindowProvider, boolean) on all listeners known to this provider.

Parameters:
showing - the new state

listeners

protected WindowProviderListener[] listeners()
Gets a list of all known listeners.

Returns:
the list of listeners

hasListeners

protected boolean hasListeners()
Tells whether at least one WindowProviderListener is registered.

Returns:
whether this provider is monitored

addWindowProviderListener

public void addWindowProviderListener(WindowProviderListener listener)
Description copied from interface: WindowProvider
Adds a new listener to this provider. The listener should be called when the window provided by this object changes.

Specified by:
addWindowProviderListener in interface WindowProvider
Parameters:
listener - the new listener

removeWindowProviderListener

public void removeWindowProviderListener(WindowProviderListener listener)
Description copied from interface: WindowProvider
Removes a listener from this provider

Specified by:
removeWindowProviderListener in interface WindowProvider
Parameters:
listener - the listener to remove

isShowing

public boolean isShowing()
Description copied from interface: WindowProvider
Tells whether this WindowProvider represents a window that is visible. Under normal circumstances this method would return:
Window window = sarchWindow();
return window == null ? false : window.isShowing();

This method is explicitly allowed to return any value it likes. The result of this method does not have to correspond with reality.

Specified by:
isShowing in interface WindowProvider
Returns:
whether this providers window is visible or not