Interface IVisualPart<V extends javafx.scene.Node>
-
- Type Parameters:
V- The visual node used by thisIVisualPart.
- All Superinterfaces:
IActivatable,IAdaptable,IAdaptable.Bound<IViewer>,IDisposable
- All Known Subinterfaces:
IBendableContentPart<V>,IContentPart<V>,IFeedbackPart<V>,IHandlePart<V>,IResizableContentPart<V>,IRootPart<V>,ITransformableContentPart<V>
- All Known Implementing Classes:
AbstractContentPart,AbstractFeedbackPart,AbstractHandlePart,AbstractSegmentHandlePart,AbstractVisualPart,CircleSegmentHandlePart,FocusFeedbackPart,HoverFeedbackPart,LayeredRootPart,RectangleSegmentHandlePart,SelectionFeedbackPart,SelectionLinkFeedbackPart,SnappingFeedbackPart,SquareSegmentHandlePart
public interface IVisualPart<V extends javafx.scene.Node> extends IAdaptable, IAdaptable.Bound<IViewer>, IActivatable, IDisposable
AnIVisualPartplays the controller role in the model-view-controller architecture. While it does not have to be bound to a model (actually onlyIContentParts are bound to model elements,IFeedbackParts andIHandleParts do not refer to model elements), anIVisualPartalways controls a visual.Within an
IViewer,IVisualPartare organized in a hierarchy via a[1:n]parent-children relationship (getParent(),getChildrenUnmodifiable()), which roots in anIRootPart. Furthermore a[n:m]anchorage-anchored relationship (getAnchoragesUnmodifiable(),getAnchoredsUnmodifiable()) may be established betweenIVisualParts located at arbitrary places within the hierarchy.An
IVisualPartis adaptable (IAdaptable). Usually,IPolicys andIBehaviors are adapted to it (but arbitrary adapters may indeed be registered as needed).IPolicys are usually required in case theIVisualPartis directly involved in user interaction (e.g. the user clicks on its controlled visual). They may be accessed type-safe byIGestures or otherIPolicys (IPolicys may delegate to otherIPolicys)).IBehaviors are used to react to changes of the attached model (in case of anIContentParts), the viewer models, or others sources (e.g. adapters of theIViewerorIDomain), thereby reacting to changes of the interactive state.IVisualParts areIActivatableactivatable, and an activation/deactivation of anIVisualPartwill result in the activation/deactivation of all registered adapters (i.e.IPolicys andIBehaviors).An
IVisualPartis responsible for registering itself for its visualization at theIViewer.getVisualPartMap()when it obtains a link to theIViewer. Equally, anIVisualPartis responsible for unregistering itself for its visualization from theIViewer.getVisualPartMap()when it loses a link to theIViewer.- Noimplement:
- This interface is not intended to be implemented by clients.
Instead,
AbstractVisualPartshould be subclassed.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.eclipse.gef.common.adapt.IAdaptable
IAdaptable.Bound<A extends IAdaptable>
-
Nested classes/interfaces inherited from interface org.eclipse.gef.common.adapt.IAdaptable.Bound
IAdaptable.Bound.Impl<T extends IAdaptable>
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringANCHORAGES_PROPERTYName of the property storing this part's anchorages.static java.lang.StringANCHOREDS_PROPERTYName of the property storing this part's anchoreds.static java.lang.StringCHILDREN_PROPERTYName of the property storing this part's children.static java.lang.StringPARENT_PROPERTYName of the property storing this part's parent.static java.lang.StringREFRESH_VISUAL_PROPERTYName of the property storing the refresh visual boolean property.-
Fields inherited from interface org.eclipse.gef.common.activate.IActivatable
ACTIVE_PROPERTY
-
Fields inherited from interface org.eclipse.gef.common.adapt.IAdaptable
ADAPTERS_PROPERTY
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description voidaddChild(IVisualPart<? extends javafx.scene.Node> child)Adds the given child to the list of this part's children.voidaddChild(IVisualPart<? extends javafx.scene.Node> child, int index)Adds the given child to the list of this part's children at the specified index.voidaddChildren(java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> children)Adds the given children to the list of this part's children.voidaddChildren(java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> children, int index)Adds the given children to the list of this part's children at the specified index.ReadOnlySetMultimapProperty<IVisualPart<? extends javafx.scene.Node>,java.lang.String>anchoragesUnmodifiableProperty()Returns a read-only set-multimap property containing this part's anchorages and their corresponding roles.ReadOnlyMultisetProperty<IVisualPart<? extends javafx.scene.Node>>anchoredsUnmodifiableProperty()Returns an unmodifiable read-only multiset property representing the anchoreds of thisIVisualPart.voidattachAnchored(IVisualPart<? extends javafx.scene.Node> anchored)Used by an anchoredIVisualPartto establish an anchorage-anchored relationship with this anchorageIVisualPart.voidattachToAnchorage(IVisualPart<? extends javafx.scene.Node> anchorage)Attaches the givenIVisualPartto the given anchorage under the "default" role.voidattachToAnchorage(IVisualPart<? extends javafx.scene.Node> anchorage, java.lang.String role)Attaches the givenIVisualPartto the given anchorage under the given role.javafx.beans.property.ReadOnlyListProperty<IVisualPart<? extends javafx.scene.Node>>childrenUnmodifiableProperty()Returns an unmodifiable read-only property containing the children of thisIVisualPart.voiddetachAnchored(IVisualPart<? extends javafx.scene.Node> anchored)Used by an anchoredIVisualPartto unestablish an anchorage-anchored relationship with this anchorageIVisualPart.voiddetachFromAnchorage(IVisualPart<? extends javafx.scene.Node> anchorage)Detaches thisIVisualPartfrom the given anchorageIVisualPartunder the 'default' role.voiddetachFromAnchorage(IVisualPart<? extends javafx.scene.Node> anchorage, java.lang.String role)Detaches thisIVisualPartfrom the given anchorageIVisualPartunder the given role.ObservableSetMultimap<IVisualPart<? extends javafx.scene.Node>,java.lang.String>getAnchoragesUnmodifiable()Returns an unmodifiableObservableSetMultimapof this part's anchorages and their corresponding roles.ObservableMultiset<IVisualPart<? extends javafx.scene.Node>>getAnchoredsUnmodifiable()Returns an unmodifiableObservableMultisetof this part's anchoreds.java.util.Map<AdapterKey<? extends IBehavior>,IBehavior>getBehaviors()Returns aMapof this part's behaviors and their correspondingAdapterKeys.javafx.collections.ObservableList<IVisualPart<? extends javafx.scene.Node>>getChildrenUnmodifiable()Returns an unmodifiableObservableListof this part's children.java.util.Map<AdapterKey<? extends org.eclipse.gef.mvc.fx.handlers.IHandler>,org.eclipse.gef.mvc.fx.handlers.IHandler>getHandlers()Returns aMapof this part's handlers and their correspondingAdapterKeys.IVisualPart<? extends javafx.scene.Node>getParent()Returns the parent of this part.java.util.Map<AdapterKey<? extends IPolicy>,IPolicy>getPolicies()Returns aMapof this part's policies and their correspondingAdapterKeys.IRootPart<? extends javafx.scene.Node>getRoot()Returns theIRootPart.default IViewergetViewer()Returns theIViewerthisIVisualPartis bound to.VgetVisual()Returns this part's visual.booleanisRefreshVisual()Returnstrueif this part is allowed to refresh its visualization based on its content.javafx.beans.property.ReadOnlyObjectProperty<IVisualPart<? extends javafx.scene.Node>>parentProperty()Returns a read-only property that refers to the parent of thisIVisualPart.voidrefreshVisual()Refreshes this part's visualization based on this part's content.javafx.beans.property.BooleanPropertyrefreshVisualProperty()A boolean property indicating whether thisIVisualPartshould refresh its visuals or not.voidremoveChild(IVisualPart<? extends javafx.scene.Node> child)Removes the givenIVisualPartfrom the list of this part's children.voidremoveChildren(java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> children)Removes the givenIVisualParts from the list of this part's children.voidreorderChild(IVisualPart<? extends javafx.scene.Node> child, int index)Swaps the givenIVisualPartwith the part at the given index position within this part's list of children.voidsetParent(IVisualPart<? extends javafx.scene.Node> parent)Used by a parentIVisualPartto establish/unestablish a parent-child relationship with this childIVisualPart.voidsetRefreshVisual(boolean refreshVisual)Allows to temporarily turnrefreshVisual()into a no-op operation.-
Methods inherited from interface org.eclipse.gef.common.activate.IActivatable
activate, activeProperty, deactivate, isActive
-
Methods inherited from interface org.eclipse.gef.common.adapt.IAdaptable
adaptersProperty, getAdapter, getAdapter, getAdapter, getAdapterKey, getAdapters, getAdapters, getAdapters, setAdapter, setAdapter, setAdapter, setAdapter, unsetAdapter
-
Methods inherited from interface org.eclipse.gef.common.adapt.IAdaptable.Bound
adaptableProperty, getAdaptable, setAdaptable
-
Methods inherited from interface org.eclipse.gef.common.dispose.IDisposable
dispose
-
-
-
-
Field Detail
-
PARENT_PROPERTY
static final java.lang.String PARENT_PROPERTY
Name of the property storing this part's parent.- See Also:
- Constant Field Values
-
CHILDREN_PROPERTY
static final java.lang.String CHILDREN_PROPERTY
Name of the property storing this part's children.- See Also:
- Constant Field Values
-
ANCHORAGES_PROPERTY
static final java.lang.String ANCHORAGES_PROPERTY
Name of the property storing this part's anchorages.- See Also:
- Constant Field Values
-
ANCHOREDS_PROPERTY
static final java.lang.String ANCHOREDS_PROPERTY
Name of the property storing this part's anchoreds.- See Also:
- Constant Field Values
-
REFRESH_VISUAL_PROPERTY
static final java.lang.String REFRESH_VISUAL_PROPERTY
Name of the property storing the refresh visual boolean property.- See Also:
- Constant Field Values
-
-
Method Detail
-
addChild
void addChild(IVisualPart<? extends javafx.scene.Node> child)
Adds the given child to the list of this part's children.- Parameters:
child- TheIVisualPartwhich is added to the list of this part's children.
-
addChild
void addChild(IVisualPart<? extends javafx.scene.Node> child, int index)
Adds the given child to the list of this part's children at the specified index.- Parameters:
child- TheIVisualPartwhich is added to the list of this part's children.index- The index at which the givenIVisualPartis inserted into this part's children list.
-
addChildren
void addChildren(java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> children)
Adds the given children to the list of this part's children.- Parameters:
children- TheIVisualParts which are added to the list of this part's children.
-
addChildren
void addChildren(java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> children, int index)
Adds the given children to the list of this part's children at the specified index.- Parameters:
children- TheIVisualParts which are added to the list of this part's children.index- The index at which the givenIVisualParts are inserted into this part's children list.
-
anchoragesUnmodifiableProperty
ReadOnlySetMultimapProperty<IVisualPart<? extends javafx.scene.Node>,java.lang.String> anchoragesUnmodifiableProperty()
Returns a read-only set-multimap property containing this part's anchorages and their corresponding roles.- Returns:
- A read-only set-multimap property named
ANCHORAGES_PROPERTY.
-
anchoredsUnmodifiableProperty
ReadOnlyMultisetProperty<IVisualPart<? extends javafx.scene.Node>> anchoredsUnmodifiableProperty()
Returns an unmodifiable read-only multiset property representing the anchoreds of thisIVisualPart.- Returns:
- An unmodifiable read-only multiset property named
ANCHOREDS_PROPERTY.
-
attachAnchored
void attachAnchored(IVisualPart<? extends javafx.scene.Node> anchored)
Used by an anchoredIVisualPartto establish an anchorage-anchored relationship with this anchorageIVisualPart.Clients should never call this operation directly but instead add the anchorage to its anchored via the
attachToAnchorage(IVisualPart)andattachToAnchorage(IVisualPart, String)operations, which will indirectly lead to a call here.- Parameters:
anchored- AnIVisualPartto attach to this anchorageIVisualPartas anchored.- Noreference:
- Clients should call
attachToAnchorage(IVisualPart),attachToAnchorage(IVisualPart, String)instead to establish an anchored-anchorage relationship.
-
attachToAnchorage
void attachToAnchorage(IVisualPart<? extends javafx.scene.Node> anchorage)
Attaches the givenIVisualPartto the given anchorage under the "default" role.- Parameters:
anchorage- The anchorageIVisualPartto attach this part to.
-
attachToAnchorage
void attachToAnchorage(IVisualPart<? extends javafx.scene.Node> anchorage, java.lang.String role)
Attaches the givenIVisualPartto the given anchorage under the given role.- Parameters:
anchorage- The anchorageIVisualPartto attach this part to.role- The role under which thisIVisualPartis attached to the given anchorage.null.
-
childrenUnmodifiableProperty
javafx.beans.property.ReadOnlyListProperty<IVisualPart<? extends javafx.scene.Node>> childrenUnmodifiableProperty()
Returns an unmodifiable read-only property containing the children of thisIVisualPart.- Returns:
- An unmodifiable read-only property named
CHILDREN_PROPERTY. - See Also:
getChildrenUnmodifiable(),addChild(IVisualPart),addChild(IVisualPart, int),addChildren(List),addChildren(List, int),removeChild(IVisualPart),removeChildren(List),reorderChild(IVisualPart, int)
-
detachAnchored
void detachAnchored(IVisualPart<? extends javafx.scene.Node> anchored)
Used by an anchoredIVisualPartto unestablish an anchorage-anchored relationship with this anchorageIVisualPart.Clients should never call this operation directly but instead remove the anchorage from its anchored via the
detachFromAnchorage(IVisualPart)ordetachFromAnchorage(IVisualPart, String)operations, which will indirectly lead to a call here.- Parameters:
anchored- AnIVisualPart(currently attached as anchored to this anchorageIVisualPart) to detach from this anchorageIVisualPartas anchored.- Noreference:
- Clients should call
detachFromAnchorage(IVisualPart)ordetachFromAnchorage(IVisualPart, String)instead to unestablish an anchored-anchorage relationship.
-
detachFromAnchorage
void detachFromAnchorage(IVisualPart<? extends javafx.scene.Node> anchorage)
Detaches thisIVisualPartfrom the given anchorageIVisualPartunder the 'default' role.- Parameters:
anchorage- The anchorageIVisualPartto detach this part from.
-
detachFromAnchorage
void detachFromAnchorage(IVisualPart<? extends javafx.scene.Node> anchorage, java.lang.String role)
Detaches thisIVisualPartfrom the given anchorageIVisualPartunder the given role.- Parameters:
anchorage- The anchorageIVisualPartto detach this part from.role- The role under which theIVisualPartcan be found in this part's anchorages.
-
getAnchoragesUnmodifiable
ObservableSetMultimap<IVisualPart<? extends javafx.scene.Node>,java.lang.String> getAnchoragesUnmodifiable()
Returns an unmodifiableObservableSetMultimapof this part's anchorages and their corresponding roles.- Returns:
- A
ObservableSetMultimapof this part's anchorages and their corresponding roles.
-
getAnchoredsUnmodifiable
ObservableMultiset<IVisualPart<? extends javafx.scene.Node>> getAnchoredsUnmodifiable()
Returns an unmodifiableObservableMultisetof this part's anchoreds.- Returns:
- An unmodifiable
ObservableMultisetof this part's anchoreds.
-
getBehaviors
java.util.Map<AdapterKey<? extends IBehavior>,IBehavior> getBehaviors()
Returns aMapof this part's behaviors and their correspondingAdapterKeys.- Returns:
- A
Mapof this part's behaviors and their correspondingAdapterKeys.
-
getChildrenUnmodifiable
javafx.collections.ObservableList<IVisualPart<? extends javafx.scene.Node>> getChildrenUnmodifiable()
Returns an unmodifiableObservableListof this part's children.- Returns:
- A
ObservableListof this part's children.
-
getHandlers
java.util.Map<AdapterKey<? extends org.eclipse.gef.mvc.fx.handlers.IHandler>,org.eclipse.gef.mvc.fx.handlers.IHandler> getHandlers()
Returns aMapof this part's handlers and their correspondingAdapterKeys.- Returns:
- A
Mapof this part's handlers and their correspondingAdapterKeys.
-
getParent
IVisualPart<? extends javafx.scene.Node> getParent()
Returns the parent of this part.- Returns:
- The parent of this part.
-
getPolicies
java.util.Map<AdapterKey<? extends IPolicy>,IPolicy> getPolicies()
Returns aMapof this part's policies and their correspondingAdapterKeys.- Returns:
- A
Mapof this part's policies and their correspondingAdapterKeys.
-
getRoot
IRootPart<? extends javafx.scene.Node> getRoot()
Returns theIRootPart. This method should only be called internally or by helpers such as edit policies. The root can be used to get the viewer.- Returns:
nullor theIRootPart
-
getViewer
default IViewer getViewer()
Returns theIViewerthisIVisualPartis bound to.- Returns:
- The
IViewerthisIVisualPartis attached to.
-
getVisual
V getVisual()
Returns this part's visual.- Returns:
- This part's visual.
-
isRefreshVisual
boolean isRefreshVisual()
Returnstrueif this part is allowed to refresh its visualization based on its content. Otherwise returnsfalse.- Returns:
trueif this part is allowed to refresh its visualization based on its content, otherwisefalse.
-
parentProperty
javafx.beans.property.ReadOnlyObjectProperty<IVisualPart<? extends javafx.scene.Node>> parentProperty()
Returns a read-only property that refers to the parent of thisIVisualPart.- Returns:
- A read-only property named
PARENT_PROPERTY. - See Also:
getParent(),setParent(IVisualPart)
-
refreshVisual
void refreshVisual()
Refreshes this part's visualization based on this part's content.
-
refreshVisualProperty
javafx.beans.property.BooleanProperty refreshVisualProperty()
A boolean property indicating whether thisIVisualPartshould refresh its visuals or not.- Returns:
- A boolean property named
REFRESH_VISUAL_PROPERTY. - See Also:
isRefreshVisual(),setRefreshVisual(boolean)
-
removeChild
void removeChild(IVisualPart<? extends javafx.scene.Node> child)
Removes the givenIVisualPartfrom the list of this part's children.- Parameters:
child- TheIVisualPartwhich is removed from the list of this part's children.
-
removeChildren
void removeChildren(java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> children)
Removes the givenIVisualParts from the list of this part's children.- Parameters:
children- TheIVisualParts which are removed from the list of this part's children.
-
reorderChild
void reorderChild(IVisualPart<? extends javafx.scene.Node> child, int index)
Swaps the givenIVisualPartwith the part at the given index position within this part's list of children.- Parameters:
child- TheIVisualPartwhich is reordered.index- The index to which the part is reordered.
-
setParent
void setParent(IVisualPart<? extends javafx.scene.Node> parent)
Used by a parentIVisualPartto establish/unestablish a parent-child relationship with this childIVisualPart.Clients should never call this operation directly but instead add the children to its parent via the
addChild(IVisualPart),addChild(IVisualPart, int),addChildren(List), oraddChildren(List, int)or remove it via theremoveChild(IVisualPart)orremoveChildren(List)operations, which will indirectly lead to a call here.- Parameters:
parent- The new parentIVisualPartornull.- Noreference:
- Clients should use
addChild(IVisualPart),addChild(IVisualPart, int),addChildren(List),addChildren(List, int),removeChild(IVisualPart), orremoveChildren(List)to establish/unestablish a parent-child relationship instead.
-
setRefreshVisual
void setRefreshVisual(boolean refreshVisual)
Allows to temporarily turnrefreshVisual()into a no-op operation. This may for instance be used to disable visual updates that are initiated by the model (in case ofIContentParts) while interacting with theIVisualPart.- Parameters:
refreshVisual- WhetherrefreshVisual()should perform updates of the visual (true) or behave like a no-op operation (false).
-
-