bibliothek.gui.dock.station.screen
Class AbstractScreenDockWindow

java.lang.Object
  extended by bibliothek.gui.dock.station.screen.DisplayerScreenDockWindow
      extended by bibliothek.gui.dock.station.screen.AbstractScreenDockWindow
All Implemented Interfaces:
ScreenDockWindow
Direct Known Subclasses:
InternalDockDialog, ScreenDockDialog, ScreenDockFrame, SecureAbstractScreenDockWindow

public abstract class AbstractScreenDockWindow
extends DisplayerScreenDockWindow

This abstract implementation of ScreenDockWindow uses a DockableDisplayer to show the Dockable. It can operate with any window. Clients need to call init(Component, Container, boolean) to put this object onto some Container.

Author:
Benjamin Sigg

Nested Class Summary
 
Nested classes/interfaces inherited from class bibliothek.gui.dock.station.screen.DisplayerScreenDockWindow
DisplayerScreenDockWindow.Background
 
Constructor Summary
protected AbstractScreenDockWindow(ScreenDockStation station)
          Creates a new window.
  AbstractScreenDockWindow(ScreenDockStation station, java.awt.Component window, java.awt.Container contentParent, boolean resizeable)
          Creates a new window.
 
Method Summary
 void checkWindowBounds()
          Ensures the correctness of the boundaries of this window.
protected  void convertPointToScreen(java.awt.Point point, java.awt.Component component)
          Converts point which is relative to component to a point on the screen.
protected  SecureContainer createContent()
          Creates the component that will be used as content-pane.
 DockableDisplayer getDisplayer()
          Gets the displayer which is shown on this dialog.
protected  java.awt.Container getDisplayerParent()
          Gets the container on which the displayer is shown.
 java.awt.Insets getDockableInsets()
          Makes a guess how big the insets of the Dockable compared to the whole dialog are.
protected  javax.swing.Icon getTitleIcon()
          Gets the icon which should be used in the title.
protected  java.lang.String getTitleText()
          Gets the text which should be used in the title.
 java.awt.Rectangle getWindowBounds()
          Gets the boundaries of the window.
protected  java.awt.Component getWindowComponent()
          Gets the component on which ScreenDockWindow.setWindowBounds(java.awt.Rectangle, boolean) is applied.
protected  void init(java.awt.Component window, java.awt.Container contentParent, boolean resizeable)
          Initializes this window.
 void invalidate()
          Invalidates the layout of this window.
 boolean isVisible()
          Tells whether this window is visible or not.
protected  void setBackground(BackgroundAlgorithm background)
          Sets the algorithm that paints the background of this window.
 void setController(DockController controller)
          Sets the controller in whose realm this window will be used.
protected  void setCursor(java.awt.Cursor cursor)
          Sets the current cursor of this window
 void setDockable(Dockable dockable)
          Sets the Dockable which should be shown on this window.
 void setPaintCombining(CombinerTarget target)
          Sets whether this window should paint some additional markings which indicate that a Dockable is about to be dropped onto it.
 void setTitleIcon(javax.swing.Icon titleIcon)
          Explicitly sets the icon of the title.
 void setTitleText(java.lang.String titleText)
          Explicitly sets the text of the title.
 void setVisible(boolean visible)
          Changes the visibility state of this window.
 void setWindowBounds(java.awt.Rectangle bounds, boolean screenCoordinates)
          Sets the bounds the window is supposed to have.
protected  void showDisplayer(DockableDisplayer displayer)
          Forces the subclass of this window to show displayer.
protected  void updateTitleIcon()
          Called when the icon of the title should be updated.
protected  void updateTitleText()
          Called when the text of the title should be updated.
 void validate()
          Forces this window to update the boundaries of its children.
 
Methods inherited from class bibliothek.gui.dock.station.screen.DisplayerScreenDockWindow
addScreenDockWindowListener, contains, discardDisplayer, fireFullscreenChanged, fireShapeChanged, fireVisibilityChanged, getController, getDockable, getNormalBounds, getOffsetDrop, getOffsetMove, getStation, getTitleCenter, inCombineArea, inTitleArea, isFullscreen, isShowTitle, listeners, removeScreenDockWindowListener, setFullscreen, setFullscreenStrategy, setNormalBounds, setShowTitle
 
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.station.screen.ScreenDockWindow
destroy, toFront
 

Constructor Detail

AbstractScreenDockWindow

protected AbstractScreenDockWindow(ScreenDockStation station)
Creates a new window. Subclasses must call init(Component, Container, boolean) when using this constructor.

Parameters:
station - the owner of this window

AbstractScreenDockWindow

public AbstractScreenDockWindow(ScreenDockStation station,
                                java.awt.Component window,
                                java.awt.Container contentParent,
                                boolean resizeable)
Creates a new window.

Parameters:
station - the owner of this window
window - the root component of this window
contentParent - the container onto which the contents of this window will be put
resizeable - whether this window should create its own resizing system or not
See Also:
init(Component, Container, boolean)
Method Detail

init

protected void init(java.awt.Component window,
                    java.awt.Container contentParent,
                    boolean resizeable)
Initializes this window.

Parameters:
window - the component which represents the window. This component will be used when calling methods like setWindowBounds(Rectangle, boolean). It is the root of this whole window.
contentParent - the container which will be used as parent for the contents of this window. This method will change the LayoutManager and add a child to contentParent. This component can be the same as window.
resizeable - If true, then a new border is installed for the displayer parent, and some MouseListeners are installed. When the mouse is over the border it will change the cursor and the user can resize or move the window. If false nothing happens and the resizing system has to be implemented by the subclass.

setController

public void setController(DockController controller)
Description copied from interface: ScreenDockWindow
Sets the controller in whose realm this window will be used. This method will be called after the controller of the owning ScreenDockStation was set, so AbstractDockStation.getController() will always return the same value as controller. This also implies that any method of the station called from this method already uses the new controller.

Specified by:
setController in interface ScreenDockWindow
Overrides:
setController in class DisplayerScreenDockWindow
Parameters:
controller - the new controller, can be null

getWindowComponent

protected java.awt.Component getWindowComponent()
Description copied from class: DisplayerScreenDockWindow
Gets the component on which ScreenDockWindow.setWindowBounds(java.awt.Rectangle, boolean) is applied.

Specified by:
getWindowComponent in class DisplayerScreenDockWindow
Returns:
the base component

setBackground

protected void setBackground(BackgroundAlgorithm background)
Description copied from class: DisplayerScreenDockWindow
Sets the algorithm that paints the background of this window.

Specified by:
setBackground in class DisplayerScreenDockWindow
Parameters:
background - the algorithm, may be null

setDockable

public void setDockable(Dockable dockable)
Description copied from interface: ScreenDockWindow
Sets the Dockable which should be shown on this window.

Specified by:
setDockable in interface ScreenDockWindow
Overrides:
setDockable in class DisplayerScreenDockWindow
Parameters:
dockable - the new element, can be null to remove an old Dockable

showDisplayer

protected void showDisplayer(DockableDisplayer displayer)
Description copied from class: DisplayerScreenDockWindow
Forces the subclass of this window to show displayer. Only one displayer should be shown at any time. A new displayer replaces an old one.

Specified by:
showDisplayer in class DisplayerScreenDockWindow
Parameters:
displayer - the displayer to show or null to remove the current displayer

setTitleIcon

public void setTitleIcon(javax.swing.Icon titleIcon)
Explicitly sets the icon of the title.

Parameters:
titleIcon - the new icon or null to use the Dockables icon.

getTitleIcon

protected javax.swing.Icon getTitleIcon()
Gets the icon which should be used in the title.

Returns:
the icon

updateTitleIcon

protected void updateTitleIcon()
Called when the icon of the title should be updated.

See Also:
getTitleIcon()

setTitleText

public void setTitleText(java.lang.String titleText)
Explicitly sets the text of the title.

Parameters:
titleText - the new text or null to use the Dockables title text.

getTitleText

protected java.lang.String getTitleText()
Gets the text which should be used in the title.

Returns:
the text, might be null

updateTitleText

protected void updateTitleText()
Called when the text of the title should be updated.

See Also:
getTitleText()

getWindowBounds

public java.awt.Rectangle getWindowBounds()
Description copied from interface: ScreenDockWindow
Gets the boundaries of the window.

Returns:
the boundaries

setPaintCombining

public void setPaintCombining(CombinerTarget target)
Description copied from interface: ScreenDockWindow
Sets whether this window should paint some additional markings which indicate that a Dockable is about to be dropped onto it.
Subclasses should use ScreenDockStation.getPaint() to get an algorithm that paints.

Parameters:
target - if null then nothing should be painted, otherwise the method CombinerTarget.paint(java.awt.Graphics, java.awt.Component, bibliothek.gui.dock.station.StationPaint, Rectangle, Rectangle) should be called

setVisible

public void setVisible(boolean visible)
Description copied from interface: ScreenDockWindow
Changes the visibility state of this window.

Parameters:
visible - the new state

isVisible

public boolean isVisible()
Description copied from interface: ScreenDockWindow
Tells whether this window is visible or not.

Returns:
the visibility state

setWindowBounds

public void setWindowBounds(java.awt.Rectangle bounds,
                            boolean screenCoordinates)
Description copied from interface: ScreenDockWindow
Sets the bounds the window is supposed to have. This method should use ScreenDockStation.getBoundaryRestriction() to check the validity of the new bounds.

Parameters:
bounds - the new location and size
screenCoordinates - whether the location is relative to the real screen (true) or relative to the coordinate of this window (false).

checkWindowBounds

public void checkWindowBounds()
Description copied from interface: ScreenDockWindow
Ensures the correctness of the boundaries of this window. This method should use ScreenDockStation.getBoundaryRestriction() to do so.


invalidate

public void invalidate()
Invalidates the layout of this window.

See Also:
Component.invalidate()

validate

public void validate()
Description copied from interface: ScreenDockWindow
Forces this window to update the boundaries of its children.


setCursor

protected void setCursor(java.awt.Cursor cursor)
Sets the current cursor of this window

Parameters:
cursor - the cursor
See Also:
Component.setCursor(Cursor)

convertPointToScreen

protected void convertPointToScreen(java.awt.Point point,
                                    java.awt.Component component)
Converts point which is relative to component to a point on the screen.

Parameters:
point - the point to modify
component - specifies the coordinate system
See Also:
SwingUtilities.convertPointToScreen(Point, Component)

getDockableInsets

public java.awt.Insets getDockableInsets()
Makes a guess how big the insets of the Dockable compared to the whole dialog are.

Returns:
the insets, only a guess

createContent

protected SecureContainer createContent()
Creates the component that will be used as content-pane. This method is invoked by the constructor.

Returns:
the new content pane

getDisplayerParent

protected java.awt.Container getDisplayerParent()
Gets the container on which the displayer is shown.

Returns:
the parent of the displayer

getDisplayer

public DockableDisplayer getDisplayer()
Gets the displayer which is shown on this dialog.

Returns:
The displayer, may be null
See Also:
showDisplayer(DockableDisplayer)