|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object bibliothek.gui.dock.station.screen.magnet.MagnetController
public class MagnetController
Each ScreenDockStation
uses one MagnetController
to calculate attractions
between its children. The MagnetController
makes use of a MagnetStrategy
and of several AttractorStrategy
s to modify the location and size of the currently
moved ScreenDockWindow
.
ScreenDockWindow
s have to call start(ScreenDockWindow)
when they start
moving or resizing.
Constructor Summary | |
---|---|
MagnetController(ScreenDockStation station)
Creates a new MagnetController . |
Method Summary | |
---|---|
int |
distance(ScreenDockWindow windowA,
MagnetRequest.Side sideA,
ScreenDockWindow windowB,
MagnetRequest.Side sideB,
boolean initialBoundaries)
Calculates the distance between sideA of windowA to sideB of windowB . |
ScreenDockWindow[] |
getAttracted(ScreenDockWindow window)
Gets all the ScreenDockWindow s of the station that are attracted to window . |
AttractorStrategy.Attraction |
getAttraction(Dockable moved,
Dockable fixed)
Tells whether fixed and moved attract each other. |
AttractorStrategy |
getAttractorStrategy()
Gets the currently used AttractorStrategy . |
DockController |
getController()
Gets the DockController that is currently used by this MagnetController . |
ScreenDockWindow |
getCurrent()
Gets the window that is currently moved. |
ScreenDockStation |
getStation()
Gets the ScreenDockStation which is using this MagnetController . |
AttractorStrategy.Attraction |
getStickiness(Dockable moved,
Dockable fixed)
Tells whether fixed and moved stick to each other. |
MagnetStrategy |
getStrategy()
Gets the MagnetStrategy that is currently used by this controller. |
int |
getValue(Rectangle rectangle,
MagnetRequest.Side side)
Gets the location of the side side of rectangle . |
int |
getValue(ScreenDockWindow window,
MagnetRequest.Side side,
boolean initialBoundaries)
Gets the location of the side side of window . |
ScreenDockWindow[] |
getWindows()
Gets an array containing all the ScreenDockWindow s that are currently shown by the station . |
boolean |
intersectHorizontally(ScreenDockWindow windowA,
ScreenDockWindow windowB,
boolean initialBoundaries)
Tells whether the y coordinate and the height of windowA and windowB
are such that they have at least one pixel at the same height. |
boolean |
intersectVertically(ScreenDockWindow windowA,
ScreenDockWindow windowB,
boolean initialBoundaries)
Tells whether the x coordinate and the width of windowA and windowB
are such that they have at least one pixel at the same width. |
void |
setAttractorStrategy(AttractorStrategy strategy)
Sets the AttractorStrategy to use. |
void |
setController(DockController controller)
Sets the DockController which is to be used by this MagnetController . |
void |
setStrategy(MagnetStrategy strategy)
Sets the MagnetStrategy that is to be used by this controller. |
MagnetizedOperation |
start(ScreenDockWindow window)
Starts a move or resize operation that involves window . |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public MagnetController(ScreenDockStation station)
MagnetController
.
station
- the station using this controller, not null
Method Detail |
---|
@FrameworkOnly public void setController(DockController controller)
DockController
which is to be used by this MagnetController
.
controller
- the controller to use or null
public DockController getController()
DockController
that is currently used by this MagnetController
.
null
public ScreenDockStation getStation()
ScreenDockStation
which is using this MagnetController
.
null
public MagnetizedOperation start(ScreenDockWindow window)
window
. Only
one operation can be running at the same time.
window
- the window which is moved or resized
window
further
changes position or sizepublic AttractorStrategy.Attraction getAttraction(Dockable moved, Dockable fixed)
fixed
and moved
attract each other.
moved
- the dockable that has movedfixed
- the dockable that has not moved
AttractorStrategy
spublic AttractorStrategy.Attraction getStickiness(Dockable moved, Dockable fixed)
fixed
and moved
stick to each other.
moved
- the dockable that has movedfixed
- the dockable that has not moved
AttractorStrategy
spublic ScreenDockWindow getCurrent()
null
public ScreenDockWindow[] getWindows()
ScreenDockWindow
s that are currently shown by the station
.
public ScreenDockWindow[] getAttracted(ScreenDockWindow window)
ScreenDockWindow
s of the station
that are attracted to window
.
window
- the window that has moved and whose partners are searched
null
, does not contain window
public int distance(ScreenDockWindow windowA, MagnetRequest.Side sideA, ScreenDockWindow windowB, MagnetRequest.Side sideB, boolean initialBoundaries)
sideA
of windowA
to sideB
of windowB
.
If either window is the current
window, then its base boundaries
are used instead of its current boundaires.
windowA
- the first windowsideA
- the side of the window to checkwindowB
- the second windowsideB
- the side of the second window to checkinitialBoundaries
- if true
, then the initial boundaries of window
is used
IllegalArgumentException
- if sideA
and sideB
are neither equal nor oppositepublic boolean intersectHorizontally(ScreenDockWindow windowA, ScreenDockWindow windowB, boolean initialBoundaries)
y
coordinate and the height
of windowA
and windowB
are such that they have at least one pixel at the same height.
windowA
- the first windowwindowB
- the second windowinitialBoundaries
- if true
, then the initial boundaries of window
is used
true
if both windows have at least one pixel on the same heightpublic boolean intersectVertically(ScreenDockWindow windowA, ScreenDockWindow windowB, boolean initialBoundaries)
x
coordinate and the width
of windowA
and windowB
are such that they have at least one pixel at the same width.
windowA
- the first windowwindowB
- the second windowinitialBoundaries
- if true
, then the initial boundaries of window
is used
true
if both windows have at least one pixel on the same widthpublic int getValue(ScreenDockWindow window, MagnetRequest.Side side, boolean initialBoundaries)
side
of window
. If window
is the
current window
, then its base boundaries
are used
to calculate the coordinates, otherwise ScreenDockWindow.getWindowBounds()
is used.
window
- some windowside
- the side to readinitialBoundaries
- if true
, then the initial boundaries of window
is used
side
public int getValue(Rectangle rectangle, MagnetRequest.Side side)
side
of rectangle
.
rectangle
- some rectangleside
- the side to read
side
public MagnetStrategy getStrategy()
MagnetStrategy
that is currently used by this controller.
null
if no DockController
is setpublic void setStrategy(MagnetStrategy strategy)
MagnetStrategy
that is to be used by this controller.
strategy
- the strategy, a value of null
reinstalles the default strategypublic AttractorStrategy getAttractorStrategy()
AttractorStrategy
.
Dockable
s attract each otherpublic void setAttractorStrategy(AttractorStrategy strategy)
AttractorStrategy
to use.
strategy
- the strategy, a value of null
reinstalles the default strategy
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |