|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object bibliothek.gui.dock.station.AbstractDockStation bibliothek.gui.dock.ScreenDockStation
public class ScreenDockStation
A DockStation
which is the whole screen. Every child of this
station is a window. These windows can be moved and resized by the user.
This station tries to register a DockTitleVersion
with
the key TITLE_ID
.
Field Summary | |
---|---|
static PropertyKey<AttractorStrategy> |
ATTRACTOR_STRATEGY
the AttractorStrategy that tells whether two Dockable s attract each other |
static Path |
ATTRACTOR_STRATEGY_EXTENSION
Path of an ExtensionName for creating additional AttractorStrategy |
static PropertyKey<BoundaryRestriction> |
BOUNDARY_RESTRICTION
a key for a property telling which boundaries a ScreenDockWindow can have |
static String |
DISPLAYER_ID
This id is forwarded to Extension s which load additional DisplayerFactory s |
static PropertyKey<ScreenDropSizeStrategy> |
DROP_SIZE_STRATEGY
key for the ScreenDropSizeStrategy that is used when dropping a Dockable onto this station |
static PropertyKey<Boolean> |
EXPAND_ON_DOUBLE_CLICK
global setting to change the effect happening on a double click |
static String |
EXTENSION_PARAM
Name of a parameter of an ExtensionName pointing to this . |
static PropertyKey<ScreenDockFullscreenStrategy> |
FULL_SCREEN_STRATEGY
a key for a property telling how to handle fullscreen mode |
static PropertyKey<MagnetStrategy> |
MAGNET_STRATEGY
the MagnetStrategy decides how two ScreenDockWindow s attract each other |
static PropertyKey<Integer> |
PREVENT_FOCUS_STEALING_DELAY
time in milliseconds a ScreenDockWindow is prevented from stealing the focus after the owner of this station changed. |
static Path |
STATION_EXTENSION
Path of an ExtensionName for creating ScreenDockStationExtension s |
static String |
TITLE_ID
The key for the DockTitleVersion of this station |
static PropertyKey<ScreenDockWindowClosingStrategy> |
WINDOW_CLOSING_STRATEGY
strategy for closing ScreenDockWindow s, default is null |
static PropertyKey<ScreenDockWindowConfiguration> |
WINDOW_CONFIGURATION
A key for a property telling how to configure new windows. |
static PropertyKey<ScreenDockWindowFactory> |
WINDOW_FACTORY
a key for a property telling how to create new windows |
Fields inherited from class bibliothek.gui.dock.station.AbstractDockStation |
---|
listeners |
Constructor Summary | |
---|---|
ScreenDockStation(Window owner)
Constructs a new ScreenDockStation . |
|
ScreenDockStation(WindowProvider owner)
Constructs a new ScreenDockStation . |
Method Summary | |
---|---|
void |
addDockable(Dockable dockable,
Rectangle bounds)
Adds a Dockable on a newly created ScreenDockWindow to
the station. |
void |
addDockable(Dockable dockable,
Rectangle bounds,
boolean boundsIncludeWindow)
Adds a Dockable on a newly created ScreenDockWindow to
the station. |
protected void |
addDockable(Dockable dockable,
Rectangle bounds,
Path placeholder,
boolean boundsIncludeWindow)
Adds a Dockable on a newly created ScreenDockWindow to
the station. |
void |
addFullscreenFilter(ScreenDockFullscreenFilter filter)
Adds the new filter filter to this station. |
void |
addScreenDockStationListener(ScreenDockStationListener listener)
Adds listener to this station. |
Dockable |
asDockable()
Returns this if this is an instance of
Dockable . |
DockStation |
asDockStation()
Returns this if this is an instance of
DockStation . |
void |
aside(AsideRequest request)
Requests this DockStation to find a DockableProperty that is "aside" another
property. |
protected void |
callDockUiUpdateTheme()
Calls the method DockUI .DockUI.updateTheme(DockStation, DockFactory)
with this as the first argument, and an appropriate factory
as the second argument. |
boolean |
canDrag(Dockable dockable)
Tells whether dockable can be removed from this station or not. |
boolean |
canReplace(Dockable old,
Dockable next)
Tells whether its possible to replace the child old
with next where next is not a child of this station. |
void |
checkWindowBoundaries()
Checks the boundaries of all windows of this station |
void |
clearExpandOnDoubleClick()
Resets the expand-on-double-click property to its default value. |
void |
combine(Dockable lower,
Dockable upper)
Combines the lower and the upper Dockable
to one Dockable , and replaces the lower with
this new Dockable. |
void |
combine(Dockable lower,
Dockable upper,
DockableProperty property)
Combines the lower and the upper Dockable
to one Dockable , and replaces the lower with
this new Dockable. |
protected ListeningDockAction |
createFullscreenAction()
Creates an action which is added to all children
of this station. |
protected DockComponentRootHandler |
createRootHandler()
Creates a new DockComponentRootHandler which will be responsible for keeping track of
all the Component s of this station. |
protected ScreenDockWindow |
createWindow(WindowConfiguration configuration)
Creates a new window which is associated with this station. |
protected void |
deregister(Dockable dockable,
ScreenDockWindow window)
Invoked when a ScreenDockWindow is no longer needed. |
void |
drag(Dockable dockable)
Removes a child from this station. |
void |
drop(Dockable dockable)
Adds dockable to this station. |
boolean |
drop(Dockable dockable,
Dockable location)
Drops dockable at the same coordinates as location , a
direct child of this station. |
boolean |
drop(Dockable dockable,
DockableProperty property)
Tries to add dockable to this station such that the location
given by property is matched. |
boolean |
drop(Dockable dockable,
ScreenDockProperty property)
Tries to add the dockable to this station, and uses
the property to determine its location. |
boolean |
drop(Dockable dockable,
ScreenDockProperty property,
boolean boundsIncludeWindow)
Tries to add the dockable to this station, and uses
the property to determine its location. |
BoundaryRestriction |
getBoundaryRestriction()
Gets the currently used BoundaryRestriction . |
StationCombinerValue |
getCombiner()
Gets the Combiner that is used to merge two Dockables
on this station. |
protected WindowConfiguration |
getConfiguration(Dockable dockable)
Gets the WindowConfiguration which should be used to create a new ScreenDockWindow
for dockable . |
DockActionSource |
getDirectActionOffers(Dockable dockable)
Gets a list of actions which should be available for the user and affect the child dockable . |
DefaultDisplayerFactoryValue |
getDisplayerFactory()
Gets the DisplayerFactory that is used by this station
to create an underground for its children. |
DisplayerCollection |
getDisplayers()
Gets the current set of displayers used
on this station. |
Dockable |
getDockable(int index)
Gets the index'th child of this station. |
int |
getDockableCount()
Gets the number of children. |
DockableProperty |
getDockableProperty(Dockable dockable,
Dockable target)
Gets precise information about the location of a child of this station. |
double |
getDropOverRatio()
Tells the current overlapping two windows must have in order to be merged. |
String |
getFactoryID()
Gets the unique name of the DockFactory which can read
and write elements of this type. |
Dockable |
getFrontDockable()
Gets the favorite child of this station. |
Dockable[] |
getFullscreenChildren()
Gets a list of all children of this station that are currently in fullscreen mode. |
ScreenDockFullscreenStrategy |
getFullscreenStrategy()
Gets the current fullscreen strategy. |
DockActionSource |
getIndirectActionOffers(Dockable dockable)
Gets a list of actions which should be available for the user and affect dockable . |
DockStationDropLayer[] |
getLayers()
Gets a description of all the areas of the screen where this DockStation can handle a drop event.Everytime the mouse is moved or released during a drag & drop operation, this method is called for all DockStation s. |
ScreenDockProperty |
getLocation(Dockable dockable,
Dockable target)
Gets the location of dockable and its current state. |
MagnetController |
getMagnetController()
Gets the MagnetController of this station. |
Window |
getOwner()
Gets the owner of this station. |
DefaultStationPaintValue |
getPaint()
Gets the StationPaint for this station. |
PlaceholderMapping |
getPlaceholderMapping()
Allows access to the placeholders that are stored on this station. |
PlaceholderMap |
getPlaceholders()
Gets a snapshot of all placeholders that are currently stored in this DockStation . |
PlaceholderMap |
getPlaceholders(Map<Dockable,Integer> children)
Gets the placeholders of this station using a PlaceholderListItemConverter to
encode the children of this station. |
PlaceholderStrategy |
getPlaceholderStrategy()
Gets the PlaceholderStrategy that is currently in use. |
WindowProvider |
getProvider()
Gets the provider which delivers window owners for the windows of this station. |
Rectangle |
getStationBounds()
|
DockTitleVersion |
getTitleVersion()
Gets the DockTitleVersion used by this station to create
new DockTitle s. |
ScreenDockWindow |
getWindow(Dockable dockable)
Searches the ScreenDockWindow which displays the dockable . |
ScreenDockWindow |
getWindow(int index)
Gets the index 'th window of this station. |
ScreenDockWindowConfiguration |
getWindowConfiguration()
Gets the configuration which is currently used to create new windows. |
protected PropertyValue<ScreenDockWindowConfiguration> |
getWindowConfigurationProperty()
Gets the property which represents the window configuration. |
ScreenDockWindowFactory |
getWindowFactory()
Gets the factory that is currently used to create new windows for this station. |
protected PropertyValue<ScreenDockWindowFactory> |
getWindowFactoryProperty()
Gets the property which represents the window factory. |
int |
indexOf(Dockable dockable)
Gets the index of a Dockable that is shown on this
station. |
boolean |
isChildShowing(Dockable dockable)
Tells whether the child dockable is visible or not. |
boolean |
isExpandOnDoubleClick()
Tells whether children change their fullscreen mode if the user double clicks on them. |
boolean |
isFullscreen(Dockable dockable)
Tells whether dockable is currently shown in fullscreen mode. |
boolean |
isShowing()
Tells whether this station shows its children or not. |
boolean |
isStationShowing()
Tells whether this station shows its children. |
boolean |
isStationVisible()
Deprecated. |
boolean |
isVisible(Dockable dockable)
Deprecated. |
void |
move(Dockable dockable,
DockableProperty property)
Tries to move the child dockable in such a way, that
DockStation.getDockableProperty(Dockable, Dockable) would return a
DockableProperty that equals property .There is no need to give a guarantee that the move successes, and clients should always be prepared for the possibility that this DockStation
does nothing at all. |
StationDropOperation |
prepare(StationDropItem item,
boolean drop)
|
StationDragOperation |
prepareDrag(Dockable dockable)
Informs this station that a drag and drop operation is in progress and that dockable might
be removed from this station. |
StationDropOperation |
prepareDrop(StationDropItem item)
Prepares this station to get the new child dockable or to move around the known child dockable . |
protected ScreenDockWindowHandle |
register(Dockable dockable,
Path placeholder,
ScreenDockWindow window,
WindowConfiguration configuration)
Invoked after a new ScreenDockWindow has been created. |
void |
removeDockable(Dockable dockable)
Removes the dockable from this station.Note: clients may need to invoke DockController.freezeLayout()
and DockController.meltLayout() to ensure noone else adds or
removes Dockable s. |
void |
removeDockable(int index)
Removes the index 'th Dockable of this station.Note: clients may need to invoke DockController.freezeLayout()
and DockController.meltLayout() to ensure noone else adds or
removes Dockable s. |
void |
removeFullscreenFilter(ScreenDockFullscreenFilter filter)
Removes filter from this station. |
void |
removeScreenDockStationListener(ScreenDockStationListener listener)
Removes listener from this station. |
void |
replace(Dockable current,
Dockable other)
Replaces the child old by next which is
not yet a child of this station. |
void |
replace(Dockable current,
Dockable other,
boolean station)
|
void |
replace(DockStation old,
Dockable next)
Replaces the child old by next which is
not yet a child of this station. |
protected ScreenDockStationListener[] |
screenDockStationListeners()
Gets all the ScreenDockStationListener s that were added to this station. |
protected ScreenDockWindow |
searchCombineDockable(int x,
int y,
Dockable drop,
boolean combineArea)
Searches a window on the coordinates x/y which can be used to create a combination with drop . |
void |
setBoundaryRestriction(BoundaryRestriction restriction)
Changes the boundary restriction used to check the boundaries of the windows of this station. |
void |
setController(DockController controller)
Sets the controller of this station. |
void |
setDropOverRatio(double dropOverRatio)
Sets how much two windows must overlap in order to be merged. |
void |
setExpandOnDoubleClick(boolean expand)
Tells this station what to do on a double click on a child. |
void |
setFrontDockable(Dockable dockable)
Sets the most important child. |
void |
setFullscreen(Dockable dockable,
boolean fullscreen)
Changes the fullscreen mode of dockable . |
void |
setFullscreenAction(ListeningDockAction fullScreenAction)
Sets an action which allows to expand children. |
void |
setFullscreenStrategy(ScreenDockFullscreenStrategy strategy)
Sets the strategy used to handle fullscreen mode. |
void |
setPlaceholders(PlaceholderMap placeholders)
Sets an earlier snapshot of the placeholders of this station. |
void |
setPlaceholders(PlaceholderMap map,
Map<Integer,Dockable> children)
Sets a new layout on this station, this method assumes that map was created
using getPlaceholders(Map) . |
void |
setPlaceholderStrategy(PlaceholderStrategy strategy)
Sets the PlaceholderStrategy to use, null will set
the default strategy. |
void |
setShowing(boolean showing)
Sets the visibility of all windows of this station. |
void |
setWindowConfiguration(ScreenDockWindowConfiguration configuration)
Sets the configuration which should be used to create new windows. |
void |
setWindowFactory(ScreenDockWindowFactory factory)
Sets the factory that will be used to create new windows for this station, Calling this method will result in closing all existing windows and creating new windows. |
protected void |
updateWindows()
Called if getOwner() changed. |
protected void |
updateWindows(boolean force)
Update all windows either by calling ScreenDockWindowFactory.updateWindow(ScreenDockWindow, WindowConfiguration, ScreenDockStation)
or by calling ScreenDockWindowFactory.createWindow(ScreenDockStation, WindowConfiguration) . |
Methods inherited from class bibliothek.gui.dock.station.AbstractDockStation |
---|
accept, addDockStationListener, canCompare, changed, compare, delegate, getComponentConfiguration, getController, getRootHandler, getTheme, removeDockStationListener, requestChildDisplayer, requestChildDockTitle, setComponentConfiguration, updateTheme |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String TITLE_ID
DockTitleVersion
of this station
public static final String DISPLAYER_ID
Extension
s which load additional DisplayerFactory
s
public static final Path ATTRACTOR_STRATEGY_EXTENSION
ExtensionName
for creating additional AttractorStrategy
public static final Path STATION_EXTENSION
ExtensionName
for creating ScreenDockStationExtension
s
public static final String EXTENSION_PARAM
ExtensionName
pointing to this
.
public static final PropertyKey<BoundaryRestriction> BOUNDARY_RESTRICTION
ScreenDockWindow
can have
public static final PropertyKey<ScreenDockWindowFactory> WINDOW_FACTORY
public static final PropertyKey<ScreenDockWindowClosingStrategy> WINDOW_CLOSING_STRATEGY
ScreenDockWindow
s, default is null
public static final PropertyKey<ScreenDockWindowConfiguration> WINDOW_CONFIGURATION
public static final PropertyKey<ScreenDockFullscreenStrategy> FULL_SCREEN_STRATEGY
public static final PropertyKey<Boolean> EXPAND_ON_DOUBLE_CLICK
public static final PropertyKey<Integer> PREVENT_FOCUS_STEALING_DELAY
ScreenDockWindow
is prevented from stealing the focus after the owner
of this station changed. A value
of null
disables the focus stealing prevention.
public static final PropertyKey<MagnetStrategy> MAGNET_STRATEGY
MagnetStrategy
decides how two ScreenDockWindow
s attract each other
public static final PropertyKey<AttractorStrategy> ATTRACTOR_STRATEGY
AttractorStrategy
that tells whether two Dockable
s attract each other
public static final PropertyKey<ScreenDropSizeStrategy> DROP_SIZE_STRATEGY
ScreenDropSizeStrategy
that is used when dropping a Dockable
onto this station
Constructor Detail |
---|
public ScreenDockStation(Window owner)
ScreenDockStation
.
owner
- the window which will be used as parent for the
windows of this station, must not be null
public ScreenDockStation(WindowProvider owner)
ScreenDockStation
.
owner
- the window which will be used as parent for
the windows of this station, must not be null
Method Detail |
---|
protected DockComponentRootHandler createRootHandler()
AbstractDockStation
DockComponentRootHandler
which will be responsible for keeping track of
all the Component
s of this station.
createRootHandler
in class AbstractDockStation
protected ListeningDockAction createFullscreenAction()
action
which is added to all children
of this station. The action allows the user to expand a child to
fullscreen. The action is also added to subchildren, but the effect
does only affect direct children of this station.
null
if this feature should be
disabled, or the action is set later
public void addScreenDockStationListener(ScreenDockStationListener listener)
listener
to this station.
listener
- the new listenerpublic void removeScreenDockStationListener(ScreenDockStationListener listener)
listener
from this station.
listener
- the listener to removeprotected ScreenDockStationListener[] screenDockStationListeners()
ScreenDockStationListener
s that were added to this station.
public void setFullscreenAction(ListeningDockAction fullScreenAction)
action
which allows to expand children. This
method can only be invoked if there is not already set an action. It is
a condition that createFullscreenAction()
returns null
fullScreenAction
- the new action
IllegalStateException
- if there is already an action presentpublic DockActionSource getDirectActionOffers(Dockable dockable)
DockStation
dockable
.
dockable
- a child of this station
dockable
, can be null
public DockActionSource getIndirectActionOffers(Dockable dockable)
DockStation
dockable
. The argument dockable
can be a child of this station, or a child of any station which is
below this station.
dockable
- a child of this station or a child of another station
which is below this station
dockable
or null
public DefaultDisplayerFactoryValue getDisplayerFactory()
DisplayerFactory
that is used by this station
to create an underground for its children.
StationThemeItemValue.setDelegate(Object)
public DisplayerCollection getDisplayers()
displayers
used
on this station.
public StationCombinerValue getCombiner()
Combiner
that is used to merge two Dockables
on this station.
StationThemeItemValue.setDelegate(Object)
public DefaultStationPaintValue getPaint()
StationPaint
for this station. The paint is needed to
paint information on this station, when a Dockable
is dragged
or moved.
StationThemeItemValue.setDelegate(Object)
protected void callDockUiUpdateTheme() throws IOException
AbstractDockStation
DockUI
.DockUI.updateTheme(DockStation, DockFactory)
with this
as the first argument, and an appropriate factory
as the second argument.
callDockUiUpdateTheme
in class AbstractDockStation
IOException
- if the DockUI throws an exceptionpublic void setController(DockController controller)
DockStation
DockTitle
, then the titles have to be replaced
by new instances (assuming the controller is really new). The
title has to get new DockTitleVersions
through
the DockTitleManager
of controller
.null
means that this station is currently
not shown.
setController
in interface DockStation
setController
in class AbstractDockStation
controller
- the owner of this station, can be null
public int getDockableCount()
DockStation
public Dockable getDockable(int index)
DockStation
index
- a value between 0 (incl.) and DockStation.getDockableCount()
(excl.).
public int indexOf(Dockable dockable)
Dockable
that is shown on this
station. A call to getDockable(int)
with the result of this
method would return dockable
, if dockable
is on this station.
dockable
- the item to search
public PlaceholderMapping getPlaceholderMapping()
DockStation
PlaceholderMapping
to add or remove
placeholders from the station.
public PlaceholderMap getPlaceholders()
DockStation
DockStation
.
A DockStation
is free in the format it chooses to fill the map. The map is to be
created with the assumptions that DockStation.getDockableCount()
is 0
, meaning
any existing Dockable
gets replaced by its placeholder. The current
PlaceholderStrategy
should be used to convert Dockable
s to placeholders.DockStation.getPlaceholderMapping()
.
null
if this station does not support
placeholderspublic PlaceholderMap getPlaceholders(Map<Dockable,Integer> children)
PlaceholderListItemConverter
to
encode the children of this station. To be exact, the converter puts the following
parameters for each Dockable
into the map:
children
children
- a unique identifier for each child of this station
public void setPlaceholders(PlaceholderMap placeholders)
DockStation
DockStation.getDockableCount()
is 0
).placeholders
.
placeholders
- some set of placeholderspublic void setPlaceholders(PlaceholderMap map, Map<Integer,Dockable> children)
map
was created
using getPlaceholders(Map)
.
map
- the map to readchildren
- the new children of this stations
IllegalStateException
- if there are children left on this stationpublic PlaceholderStrategy getPlaceholderStrategy()
PlaceholderStrategy
that is currently in use.
null
public void setPlaceholderStrategy(PlaceholderStrategy strategy)
PlaceholderStrategy
to use, null
will set
the default strategy.
strategy
- the new strategy, can be null
public Dockable getFrontDockable()
DockStation
null
indicates that there are no children
at all, or that there is no favorite child (all children are equal important).DockController.setFocusedDockable(Dockable, boolean)
which will then call DockStation.setFrontDockable(Dockable)
. Note that the
DockController itself listens to the DockTitles, and maybe the station
doesn't need a logic to decide which child is important.
null
public void setFrontDockable(Dockable dockable)
DockStation
DockStation.getFrontDockable()
how stations can change
this property.
dockable
- the new favorite child, can be null
DockStation.getFrontDockable()
public DockStationDropLayer[] getLayers()
DockStation
DockStation
can handle a drop event.DockStation
s. The returned DockStationDropLayer
s are then filtered and ordered, the resulting
order defines the order in which the method DockStation.prepareDrop(StationDropItem)
is called.
null
, must not contain null
,
must not contain the same entry twice. The array or the DockStationDropLayer
s may be modified,
hence this method should always create new objects.public StationDropOperation prepareDrop(StationDropItem item)
DockStation
dockable
or to move around the known child dockable
.
The station can refuse dockable
, in this case this method just returns null
.
There are some constraints:
DockStation.accept(Dockable)
and Dockable.accept(DockStation)
or Dockable.accept(DockStation, Dockable)
to ensure that the desired
drop-location is valid.DockAcceptance
of its controller
(see DockController.getAcceptance()
) to ensure that the drop/location is valid.
item
- information about the dockable that is going to be dropped
Dockable
can be dropped or null
if
no drop operation is possiblepublic StationDragOperation prepareDrag(Dockable dockable)
DockStation
dockable
might
be removed from this station.
dockable
- the child that might be removed in the near future
null
public StationDropOperation prepare(StationDropItem item, boolean drop)
protected ScreenDockWindow searchCombineDockable(int x, int y, Dockable drop, boolean combineArea)
drop
.
x
- the x-coordinate on the screeny
- die y-coordinate on the screendrop
- the Dockable
which might be combined with a windowcombineArea
- whether the point x/y
must be over the
combine area
or just
over the window.
drop
.public void drop(Dockable dockable)
DockStation
dockable
to this station. The station can decide
by its own where to put dockable
.
dockable
- a new childpublic DockableProperty getDockableProperty(Dockable dockable, Dockable target)
DockStation
DockStation.drop(Dockable, DockableProperty)
.
dockable
- a child of this station, this childs location is askedtarget
- an optional hint telling for which dockable the location information
will be used, can be null
. This hint can be used to find a placeholder
that should be part of the result.
DockUtilities.getPropertyChain(DockStation, Dockable)
public ScreenDockProperty getLocation(Dockable dockable, Dockable target)
dockable
and its current state.
dockable
- some child of this stationtarget
- the final element for which the location is needd
null
public void aside(AsideRequest request)
DockStation
DockStation
to find a DockableProperty
that is "aside" another
property. What exactly the meaning of "aside" is, is left to the implementation. Usually
"aside" means on the same "stack" but with the next higher index.request
object contains information about the location whose neighbor is
searched, about a placeholder that should be used for the new location, and offers methods
to forward the call to the next DockStation
or Combiner
if there is a
successor
.answer
methods of request
with every
kind of information it finds.request
, then it just has to return without calling
any of the answer
methods.
request
- information about a location and methods to create the neighbor locationCombiner.aside(AsideRequest)
public ScreenDockWindow getWindow(Dockable dockable)
ScreenDockWindow
which displays the dockable
.
dockable
- the Dockable
to search
null
public ScreenDockWindow getWindow(int index)
index
'th window of this station. The number
of windows is identical to the number of Dockables
.
index
- the index of the window
public Dockable[] getFullscreenChildren()
null
public boolean isFullscreen(Dockable dockable)
dockable
is currently shown in fullscreen mode.
dockable
- the element to check
IllegalArgumentException
- if dockable
is not knownpublic void setFullscreen(Dockable dockable, boolean fullscreen)
dockable
.
dockable
- the element whose mode is to be changedfullscreen
- the new mode
IllegalArgumentException
- if dockable
is not known to this stationpublic void addFullscreenFilter(ScreenDockFullscreenFilter filter)
filter
to this station. The filter can deny Dockable
s the
possibility of being in fullscreen mode.
filter
- the new filter, not null
public void removeFullscreenFilter(ScreenDockFullscreenFilter filter)
filter
from this station.
filter
- the filter to removeaddFullscreenFilter(ScreenDockFullscreenFilter)
public void setExpandOnDoubleClick(boolean expand)
true
, then the childs fullscreen mode gets changed.
expand
- whether to react on double clickspublic void clearExpandOnDoubleClick()
setExpandOnDoubleClick(boolean)
public boolean isExpandOnDoubleClick()
public void move(Dockable dockable, DockableProperty property)
DockStation
dockable
in such a way, that
DockStation.getDockableProperty(Dockable, Dockable)
would return a
DockableProperty
that equals property
.DockStation
does nothing at all.
dockable
- a child of this stationproperty
- the preferred position of dockable
public boolean canDrag(Dockable dockable)
DockStation
dockable
can be removed from this station or not.
This method assumes that dockable
is a child of
this station, if not, then the behavior of this method is unspecified.
dockable
- a child of this station
true
if dockable
can be draggedpublic void drag(Dockable dockable)
DockStation
DockStation.canDrag(Dockable)
returned false
.DockController.freezeLayout()
and DockController.meltLayout()
to ensure noone else adds or
removes Dockable
s.
dockable
- the child to removepublic void addDockable(Dockable dockable, Rectangle bounds)
Dockable
on a newly created ScreenDockWindow
to
the station. If the station is visible
, the window
will be made visible too.
dockable
- the Dockable
to showbounds
- the bounds that the window will havepublic void addDockable(Dockable dockable, Rectangle bounds, boolean boundsIncludeWindow)
Dockable
on a newly created ScreenDockWindow
to
the station. If the station is visible
, the window
will be made visible too.
dockable
- the Dockable
to showbounds
- the bounds that the window will haveboundsIncludeWindow
- if true
, the bounds describe the size
of the resulting window. Otherwise the size of the window will be a bit larger
such that the title can be shown in the new spaceprotected void addDockable(Dockable dockable, Rectangle bounds, Path placeholder, boolean boundsIncludeWindow)
Dockable
on a newly created ScreenDockWindow
to
the station. If the station is visible
, the window
will be made visible too.
dockable
- the Dockable
to showbounds
- the bounds that the window will haveplaceholder
- the name of dockable
, used to associate a group of other dockables
to dockable
. Can be null
.boundsIncludeWindow
- if true
, the bounds describe the size
of the resulting window. Otherwise the size of the window will be a bit larger
such that the title can be shown in the new space
IllegalStateException
- if there is already a window associated with the group of placeholder
public boolean drop(Dockable dockable, DockableProperty property)
DockStation
dockable
to this station such that the location
given by property
is matched. If property
has a successor
and points to
another station, just call the drop
-method of this
child-station. Note that property
can be of any type and
contain invalid information.
dockable
- the new childproperty
- the location of the child, may be invalid data
true
if property
could be read
and dockable
was dropped, false
otherwise.public boolean drop(Dockable dockable, ScreenDockProperty property)
dockable
to this station, and uses
the property
to determine its location. If the preferred
location overlaps an existing window, then the Dockable
may be
added to a child-station of this station.
dockable
- the new Dockable
property
- the preferred location of the dockable
true
if the dockable could be added, false
otherwise.public boolean drop(Dockable dockable, ScreenDockProperty property, boolean boundsIncludeWindow)
dockable
to this station, and uses
the property
to determine its location. If the preferred
location overlaps an existing window, then the Dockable
may be
added to a child-station of this station.
dockable
- the new Dockable
property
- the preferred location of the dockableboundsIncludeWindow
- if true
, the bounds describe the size
of the resulting window. Otherwise the size of the window will be a bit larger
such that the title can be shown in the new space
true
if the dockable could be added, false
otherwise.public boolean drop(Dockable dockable, Dockable location)
dockable
at the same coordinates as location
, a
direct child of this station.
dockable
- a new dockablelocation
- a known dockable
public void combine(Dockable lower, Dockable upper)
lower
and the upper
Dockable
to one Dockable
, and replaces the lower
with
this new Dockable. There are no checks whether this station
accepts
the new child or the children
can be combined. The creation of the new Dockable
is done
by the combiner
.
lower
- a Dockable
which must be child of this stationupper
- a Dockable
which may be child of this stationpublic void combine(Dockable lower, Dockable upper, DockableProperty property)
lower
and the upper
Dockable
to one Dockable
, and replaces the lower
with
this new Dockable. There are no checks whether this station
accepts
the new child or the children
can be combined. The creation of the new Dockable
is done
by the combiner
.
lower
- a Dockable
which must be child of this stationupper
- a Dockable
which may be child of this stationproperty
- location information associated with upper
, may be null
public boolean canReplace(Dockable old, Dockable next)
DockStation
old
with next
where next is not a child of this station.
old
- a child of this stationnext
- the replacement of next
.
true
if the replacement is possiblepublic void replace(DockStation old, Dockable next)
DockStation
old
by next
which is
not yet a child of this station. This method should not be
called if canReplace
returned
false
. This method can assume that next
was
a child of old
but no longer is.
old
- a dockable station that is a child of this stationnext
- the replacement of old
public void replace(Dockable current, Dockable other)
DockStation
old
by next
which is
not yet a child of this station. This method should not be
called if canReplace
returned
false
.
current
- a childother
- the replacement of old
public void replace(Dockable current, Dockable other, boolean station)
public void removeDockable(Dockable dockable)
dockable
from this station.DockController.freezeLayout()
and DockController.meltLayout()
to ensure noone else adds or
removes Dockable
s.
dockable
- the Dockable
to removepublic void removeDockable(int index)
index
'th Dockable
of this station.DockController.freezeLayout()
and DockController.meltLayout()
to ensure noone else adds or
removes Dockable
s.
index
- the index of the Dockable
to removeprotected ScreenDockWindowHandle register(Dockable dockable, Path placeholder, ScreenDockWindow window, WindowConfiguration configuration)
ScreenDockWindow
has been created. This
method adds some listeners to the window. If the method is overridden,
it should be called from the subclass to ensure the correct function
of this station.
dockable
- the element for which window
will be usedplaceholder
- the name of dockable
, used to place the new
ScreenDockWindowHandle
at its correct position. Can be null
.window
- the window which was newly createdconfiguration
- the configuration that was used to create window
window
protected void deregister(Dockable dockable, ScreenDockWindow window)
ScreenDockWindow
is no longer needed. This
method removes some listeners from the window. If overridden
by a subclass, the subclass should ensure that this implementation
is invoked too.
dockable
- the element for which window
was usedwindow
- the old windowprotected WindowConfiguration getConfiguration(Dockable dockable)
WindowConfiguration
which should be used to create a new ScreenDockWindow
for dockable
.
dockable
- the element that is going to be shown
null
protected ScreenDockWindow createWindow(WindowConfiguration configuration)
configuration
- the configuration that should be used to set up the new window
protected void updateWindows()
getOwner()
changed. This method replaces existing ScreenDockWindow
by new windows created by ScreenDockWindowFactory.updateWindow(ScreenDockWindow, WindowConfiguration, ScreenDockStation)
.
protected void updateWindows(boolean force)
ScreenDockWindowFactory.updateWindow(ScreenDockWindow, WindowConfiguration, ScreenDockStation)
or by calling ScreenDockWindowFactory.createWindow(ScreenDockStation, WindowConfiguration)
.
force
- if true
, then createWindow
is used and all windows are replaced, if false
the factory is allowed to do optimizations.public Window getOwner()
getProvider()
public WindowProvider getProvider()
public ScreenDockWindowFactory getWindowFactory()
null
protected PropertyValue<ScreenDockWindowFactory> getWindowFactoryProperty()
public void setWindowFactory(ScreenDockWindowFactory factory)
factory
- the new factory, null
to set the default
valuepublic ScreenDockWindowConfiguration getWindowConfiguration()
null
protected PropertyValue<ScreenDockWindowConfiguration> getWindowConfigurationProperty()
null
public void setWindowConfiguration(ScreenDockWindowConfiguration configuration)
configuration
- the new configuration or null
to use the default configurationpublic ScreenDockFullscreenStrategy getFullscreenStrategy()
null
public void setFullscreenStrategy(ScreenDockFullscreenStrategy strategy)
strategy
- the new strategy, null
will reapply the default strategypublic boolean isShowing()
true
if the windows are visible, false
otherwisesetShowing(boolean)
public void setShowing(boolean showing)
showing
- true
if all windows should be visible,
false
otherwise.public boolean isStationShowing()
isShowing()
.
true
if the windows are visible, false
if not.isShowing()
@Deprecated @Todo(compatibility=BREAK_MAJOR, priority=ENHANCEMENT, target=VERSION_1_1_3, description="remove this method") public boolean isStationVisible()
DockStation
JFrame
is not visible if the frame is minimized.
public boolean isChildShowing(Dockable dockable)
DockStation
dockable
is visible or not. Visible
means that the component
of dockable
can be seen by the user. The result must be false
if
this station is not visible.
dockable
- the child whose visibility-state is questioned
dockable
is visible or notDockStation.isStationVisible()
@Deprecated @Todo(compatibility=BREAK_MAJOR, priority=ENHANCEMENT, target=VERSION_1_1_3, description="remove this method") public boolean isVisible(Dockable dockable)
DockStation
dockable
is visible or not. Visible
means that the component
of dockable
can be seen by the user. The result must be false
if
this station is not visible.
isVisible
in interface DockStation
isVisible
in class AbstractDockStation
dockable
- the child whose visibility-state is questioned
dockable
is visible or notDockStation.isStationVisible()
public Rectangle getStationBounds()
public Dockable asDockable()
DockElement
this
if this
is an instance of
Dockable
. Otherwise null
is returned.
this
or null
. Must not return null
if DockElement.asDockable()
already returns null
.public DockStation asDockStation()
DockElement
this
if this
is an instance of
DockStation
. Otherwise null
is returned.
this
or null
. Must not return null
if DockElement.asDockable()
already returns null
public String getFactoryID()
DockElement
DockFactory
which can read
and write elements of this type.
public DockTitleVersion getTitleVersion()
DockTitleVersion
used by this station to create
new DockTitle
s.
null
public BoundaryRestriction getBoundaryRestriction()
BoundaryRestriction
.
public void setBoundaryRestriction(BoundaryRestriction restriction)
restriction
- the new restriction or null
to reset
the default valuepublic void checkWindowBoundaries()
public MagnetController getMagnetController()
MagnetController
of this station. The MagnetController
controlls the
attraction between ScreenDockWindow
s.
null
public double getDropOverRatio()
setDropOverRatio(double)
public void setDropOverRatio(double dropOverRatio)
dropping
a Dockable
. A value of 0 means that
the windows don't have to overlap, a value of 1 indicates a perfect match. The default value is 0.75.
dropOverRatio
- the new ratio, a value between 0 and 1 inclusive
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |