public abstract class AbstractAnchor extends java.lang.Object implements IAnchor
AbstractAnchor is the abstract base implementation for
IAnchors. It provides the facility to bind an anchor to an anchorage
Node (anchorageProperty()), to attach and detach
Nodes via AnchorKeys, and to provide positions (
positionProperty()) for the attached AnchorKeys.
It also registers the necessary listeners at the anchorage Node and
the attached Nodes as well as relevant ancestor Nodes, to
trigger the (re-)computation of positions.
The actual computation of positions for attached nodes is delegated to
computePosition(AnchorKey), thus left to subclasses. If a subclass
needs additional information to compute positions for attached
AnchorKeys, it may request that an IAdaptable info gets
passed into attach(AnchorKey, IAdaptable) and
detach(AnchorKey, IAdaptable), and may overwrite both methods to get
access to it.
| Type | Property and Description |
|---|---|
javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.Node> |
anchorage
Provides a read-only property with the anchorage
Node this
IAnchor is bound to. |
javafx.beans.property.ReadOnlyMapProperty<AnchorKey,Point> |
position
Provides a read-only (map) property with positions (in local coordinates
of the anchored
Nodes) for all attached AnchorKeys. |
| Constructor and Description |
|---|
AbstractAnchor(javafx.scene.Node anchorage)
Creates a new
AbstractAnchor for the given anchorage
Node. |
| Modifier and Type | Method and Description |
|---|---|
javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.Node> |
anchorageProperty()
Provides a read-only property with the anchorage
Node this
IAnchor is bound to. |
void |
attach(AnchorKey key,
IAdaptable info)
|
protected abstract Point |
computePosition(AnchorKey key)
Computes and returns the position for the given
AnchorKey. |
void |
detach(AnchorKey key,
IAdaptable info)
|
javafx.scene.Node |
getAnchorage()
Gets the value of the property anchorage.
|
protected java.util.Map<javafx.scene.Node,java.util.Set<AnchorKey>> |
getKeys()
|
Point |
getPosition(AnchorKey key)
Provides a position for the given
AnchorKey. |
boolean |
isAttached(AnchorKey key)
|
javafx.beans.property.ReadOnlyMapProperty<AnchorKey,Point> |
positionProperty()
Provides a read-only (map) property with positions (in local coordinates
of the anchored
Nodes) for all attached AnchorKeys. |
protected void |
registerVCL(javafx.scene.Node anchored)
Registers a
VisualChangeListener for the given anchored
Node. |
protected void |
registerVCLs()
Registers
VisualChangeListeners for all anchored Nodes,
or schedules their registration if the VCL cannot be registered yet. |
protected void |
setAnchorage(javafx.scene.Node anchorage)
Sets the anchorage of this
AbstractAnchor to the given value. |
protected void |
unregisterVCL(javafx.scene.Node anchored)
Unregisters the
VisualChangeListeners for the given anchored
Node. |
protected void |
unregisterVCLs()
Unregisters the
VisualChangeListeners for all anchored
Nodes. |
protected void |
updatePosition(AnchorKey key)
Updates the position for the given
AnchorKey, i.e. |
public javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.Node> anchorageProperty
anchorageProperty in interface IAnchorNode.getAnchorage(),
setAnchorage(Node)public javafx.beans.property.ReadOnlyMapProperty<AnchorKey,Point> positionProperty
positionProperty in interface IAnchorAnchorKeys.public AbstractAnchor(javafx.scene.Node anchorage)
AbstractAnchor for the given anchorage
Node.anchorage - The anchorage Node for this AbstractAnchor.public javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.Node> anchorageProperty()
IAnchorNode this
IAnchor is bound to. The property value may be
null in case this IAnchor is not bound to an
anchorage Node.anchorageProperty in interface IAnchorNode.getAnchorage(),
setAnchorage(Node)public void attach(AnchorKey key, IAdaptable info)
IAnchorprotected abstract Point computePosition(AnchorKey key)
AnchorKey.public void detach(AnchorKey key, IAdaptable info)
IAnchorpublic javafx.scene.Node getAnchorage()
getAnchorage in interface IAnchorIAnchor.anchorageProperty().protected java.util.Map<javafx.scene.Node,java.util.Set<AnchorKey>> getKeys()
Map which stores the registered AnchorKeys
per Node by reference.public Point getPosition(AnchorKey key)
IAnchorAnchorKey. The provided
AnchorKey has to be attached to this IAnchor (see
IAnchor.attach(AnchorKey, IAdaptable)).getPosition in interface IAnchorkey - The AnchorKey to retrieve a position for. It has to be
attached (IAnchor.attach(AnchorKey, IAdaptable)) to this
IAnchor before.AnchorKey within local
coordinates of the AnchorKey's anchored Node.public boolean isAttached(AnchorKey key)
IAnchorisAttached in interface IAnchorkey - The AnchorKey to test.true if the given key is attached, otherwise
false.public javafx.beans.property.ReadOnlyMapProperty<AnchorKey,Point> positionProperty()
IAnchorNodes) for all attached AnchorKeys. The
positions will be updated for all attached AnchorKeys if the
attached Nodes or the anchorage Node, the
IAnchor is bound to, or any of their ancestors changes in a way
that will effect the positions (within the local coordinate space of the
attached Nodes).positionProperty in interface IAnchorAnchorKeys.protected void registerVCL(javafx.scene.Node anchored)
VisualChangeListener for the given anchored
Node.anchored - The anchored Node to register a
VisualChangeListener at.protected void registerVCLs()
VisualChangeListeners for all anchored Nodes,
or schedules their registration if the VCL cannot be registered yet.protected void setAnchorage(javafx.scene.Node anchorage)
AbstractAnchor to the given value.anchorage - The new anchorage for this AbstractAnchor.protected void unregisterVCL(javafx.scene.Node anchored)
VisualChangeListeners for the given anchored
Node.anchored - The anchored Node to unregister a VisualChangeListener
from.protected void unregisterVCLs()
VisualChangeListeners for all anchored
Nodes.protected void updatePosition(AnchorKey key)
AnchorKey, i.e.
positionProperty()key - The AnchorKey for which the position is updated.Copyright (c) 2014 itemis AG and others. All rights reserved.