Package org.eclipse.gef.mvc.fx.parts
Class AbstractContentPart<V extends javafx.scene.Node>
- java.lang.Object
-
- org.eclipse.gef.mvc.fx.parts.AbstractVisualPart<V>
-
- org.eclipse.gef.mvc.fx.parts.AbstractContentPart<V>
-
- Type Parameters:
V
- The visualNode
used by thisAbstractContentPart
.
- All Implemented Interfaces:
IActivatable
,IAdaptable
,IAdaptable.Bound<IViewer>
,IDisposable
,IContentPart<V>
,IVisualPart<V>
public abstract class AbstractContentPart<V extends javafx.scene.Node> extends AbstractVisualPart<V> implements IContentPart<V>
TheAbstractContentPart
is anIContentPart
implementation that binds the VR type parameter (visual root type) toNode
.
-
-
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 inherited from interface org.eclipse.gef.common.activate.IActivatable
ACTIVE_PROPERTY
-
Fields inherited from interface org.eclipse.gef.common.adapt.IAdaptable
ADAPTERS_PROPERTY
-
Fields inherited from interface org.eclipse.gef.mvc.fx.parts.IContentPart
CONTENT_ANCHORAGES_PROPERTY, CONTENT_CHILDREN_PROPERTY, CONTENT_PROPERTY
-
Fields inherited from interface org.eclipse.gef.mvc.fx.parts.IVisualPart
ANCHORAGES_PROPERTY, ANCHOREDS_PROPERTY, CHILDREN_PROPERTY, PARENT_PROPERTY, REFRESH_VISUAL_PROPERTY
-
-
Constructor Summary
Constructors Constructor Description AbstractContentPart()
Creates a newAbstractContentPart
.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addContentChild(java.lang.Object contentChild, int index)
Inserts the given contentChild as a child to this part's content, so that it will be returned by subsequent calls toIContentPart.getContentChildrenUnmodifiable()
.void
attachToContentAnchorage(java.lang.Object contentAnchorage, java.lang.String role)
Attaches this part's content to the given contentAnchorage under the specified role, so that it will be returned by subsequent calls toIContentPart.getContentAnchoragesUnmodifiable()
.ReadOnlySetMultimapProperty<java.lang.Object,java.lang.String>
contentAnchoragesUnmodifiableProperty()
Returns an unmodifiable read-only set-multimap property containing the content anchorages.javafx.beans.property.ReadOnlyListProperty<java.lang.Object>
contentChildrenUnmodifiableProperty()
Returns an unmodfiable read-only property containing the content children.javafx.beans.property.ObjectProperty<java.lang.Object>
contentProperty()
A writable property representing theIContentPart
's content.void
detachFromContentAnchorage(java.lang.Object contentAnchorage, java.lang.String role)
Detaches this part's content from the given contentAnchorage under the specified role, so that it will no longer be returned by subsequent calls toIContentPart.getContentAnchoragesUnmodifiable()
.protected void
doAddContentChild(java.lang.Object contentChild, int index)
Adds the given contentChild to this part's content children, so that it will no longer be returned by subsequent calls todoGetContentChildren()
.protected void
doAttachToContentAnchorage(java.lang.Object contentAnchorage, java.lang.String role)
Attaches this part's content to the given contentAnchorage under the specified role, so that it will be returned by subsequent calls todoGetContentAnchorages()
.protected void
doDetachFromContentAnchorage(java.lang.Object contentAnchorage, java.lang.String role)
Detaches this part's content from the given contentAnchorage under the specified role, so that it will no longer be returned by subsequent calls todoGetContentAnchorages()
.protected abstract SetMultimap<? extends java.lang.Object,java.lang.String>
doGetContentAnchorages()
Hook method to return the current list of content anchorages.protected abstract java.util.List<? extends java.lang.Object>
doGetContentChildren()
Hook method to return the current list of content children.protected void
doRemoveContentChild(java.lang.Object contentChild)
Removes the given contentChild from this part's content children, so that it will no longer be returned by subsequent calls todoGetContentChildren()
.protected void
doReorderContentChild(java.lang.Object contentChild, int newIndex)
Rearranges the given contentChild to the new index position.java.lang.Object
getContent()
Returns this part's content.ObservableSetMultimap<java.lang.Object,java.lang.String>
getContentAnchoragesUnmodifiable()
Returns an unmodifiableObservableSetMultimap
that contains the content objects that are to be regarded as anchorages of thisIContentPart
's content (IContentPart.getContent()
) with an (optional) role qualifier for each anchorage-anchored link that has to be established.javafx.collections.ObservableList<java.lang.Object>
getContentChildrenUnmodifiable()
Returns an unmodifiableObservableList
that contains the content children.boolean
isFocusable()
Returnstrue
if policies and other parts of the application are allowed to assign focus to this part by changing theFocusModel
.boolean
isSelectable()
Returnstrue
if policies and other parts of the application are allowed to add this part to the selection maintained by theSelectionModel
.void
refreshContentAnchorages()
Triggers a re-computation of the content anchorages of thisIContentPart
.void
refreshContentChildren()
Triggers a re-computation of the content children of thisIContentPart
.protected void
register(IViewer viewer)
Called when a link to theIViewer
is obtained.protected void
registerAtContentPartMap(IViewer viewer, java.lang.Object content)
Registers the model in theIViewer.getContentPartMap()
.void
removeContentChild(java.lang.Object contentChild)
Removes the given contentChild from this part's content children, so that it will no longer be returned by subsequent calls toIContentPart.getContentChildrenUnmodifiable()
.void
reorderContentChild(java.lang.Object contentChild, int newIndex)
Rearranges the given contentChild to the new index position.void
setContent(java.lang.Object content)
Set the primary content object that this EditPart represents.protected void
unregister(IViewer viewer)
Called when the link to theIViewer
is lost.protected void
unregisterFromContentPartMap(IViewer viewer, java.lang.Object content)
Unregisters the model in theIViewer.getContentPartMap()
.-
Methods inherited from class org.eclipse.gef.mvc.fx.parts.AbstractVisualPart
activate, activateAdapters, activateChildren, activeProperty, adaptableProperty, adaptersProperty, addChild, addChild, addChildren, addChildren, anchoragesUnmodifiableProperty, anchoredsUnmodifiableProperty, attachAnchored, attachToAnchorage, attachToAnchorage, childrenUnmodifiableProperty, deactivate, deactivateAdapters, deactivateChildren, detachAnchored, detachFromAnchorage, detachFromAnchorage, determineViewer, dispose, doActivate, doAddChildVisual, doAttachToAnchorageVisual, doCreateVisual, doDeactivate, doDetachFromAnchorageVisual, doRefreshVisual, doRemoveChildVisual, getAdaptable, getAdapter, getAdapter, getAdapter, getAdapterKey, getAdapters, getAdapters, getAdapters, getAnchoragesUnmodifiable, getAnchoredsUnmodifiable, getBehaviors, getChildrenUnmodifiable, getHandlers, getParent, getPolicies, getRoot, getVisual, isActive, isRefreshVisual, parentProperty, refreshVisual, refreshVisualProperty, registerAtVisualPartMap, removeChild, removeChildren, reorderChild, setAdaptable, setAdapter, setAdapter, setAdapter, setAdapter, setParent, setRefreshVisual, unregisterFromVisualPartMap, unsetAdapter
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
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
-
Methods inherited from interface org.eclipse.gef.mvc.fx.parts.IVisualPart
addChild, addChild, addChildren, addChildren, anchoragesUnmodifiableProperty, anchoredsUnmodifiableProperty, attachAnchored, attachToAnchorage, attachToAnchorage, childrenUnmodifiableProperty, detachAnchored, detachFromAnchorage, detachFromAnchorage, getAnchoragesUnmodifiable, getAnchoredsUnmodifiable, getBehaviors, getChildrenUnmodifiable, getHandlers, getParent, getPolicies, getRoot, getViewer, getVisual, isRefreshVisual, parentProperty, refreshVisual, refreshVisualProperty, removeChild, removeChildren, reorderChild, setParent, setRefreshVisual
-
-
-
-
Constructor Detail
-
AbstractContentPart
public AbstractContentPart()
Creates a newAbstractContentPart
.
-
-
Method Detail
-
addContentChild
public final void addContentChild(java.lang.Object contentChild, int index)
Inserts the given contentChild as a child to this part's content, so that it will be returned by subsequent calls toIContentPart.getContentChildrenUnmodifiable()
.Delegates to
doAddContentChild(Object, int)
, which is to be overwritten by subclasses.- Specified by:
addContentChild
in interfaceIContentPart<V extends javafx.scene.Node>
- Parameters:
contentChild
- AnObject
which should be added as a child to this part's content.index
- The index at which the contentChild should be added.
-
attachToContentAnchorage
public final void attachToContentAnchorage(java.lang.Object contentAnchorage, java.lang.String role)
Attaches this part's content to the given contentAnchorage under the specified role, so that it will be returned by subsequent calls toIContentPart.getContentAnchoragesUnmodifiable()
.Delegates to
doAttachToContentAnchorage(Object, String)
, which is to be overwritten by subclasses.- Specified by:
attachToContentAnchorage
in interfaceIContentPart<V extends javafx.scene.Node>
- Parameters:
contentAnchorage
- AnObject
to which this part's content should be attached to.role
- The role under which the attachment is to be established.
-
contentAnchoragesUnmodifiableProperty
public ReadOnlySetMultimapProperty<java.lang.Object,java.lang.String> contentAnchoragesUnmodifiableProperty()
Description copied from interface:IContentPart
Returns an unmodifiable read-only set-multimap property containing the content anchorages.- Specified by:
contentAnchoragesUnmodifiableProperty
in interfaceIContentPart<V extends javafx.scene.Node>
- Returns:
- An unmodifiable read-only set-multimap property.
- See Also:
IContentPart.getContentAnchoragesUnmodifiable()
,IContentPart.attachToContentAnchorage(Object, String)
,IContentPart.detachFromContentAnchorage(Object, String)
-
contentChildrenUnmodifiableProperty
public javafx.beans.property.ReadOnlyListProperty<java.lang.Object> contentChildrenUnmodifiableProperty()
Description copied from interface:IContentPart
Returns an unmodfiable read-only property containing the content children.- Specified by:
contentChildrenUnmodifiableProperty
in interfaceIContentPart<V extends javafx.scene.Node>
- Returns:
- An unmodifiable read-only property named
IContentPart.CONTENT_CHILDREN_PROPERTY
.
-
contentProperty
public final javafx.beans.property.ObjectProperty<java.lang.Object> contentProperty()
Description copied from interface:IContentPart
A writable property representing theIContentPart
's content.- Specified by:
contentProperty
in interfaceIContentPart<V extends javafx.scene.Node>
- Returns:
- A writable property named
IContentPart.CONTENT_PROPERTY
.
-
detachFromContentAnchorage
public final void detachFromContentAnchorage(java.lang.Object contentAnchorage, java.lang.String role)
Detaches this part's content from the given contentAnchorage under the specified role, so that it will no longer be returned by subsequent calls toIContentPart.getContentAnchoragesUnmodifiable()
.Delegates to
doDetachFromContentAnchorage(Object, String)
, which is to be overwritten by subclasses.- Specified by:
detachFromContentAnchorage
in interfaceIContentPart<V extends javafx.scene.Node>
- Parameters:
contentAnchorage
- AnObject
from which this part's content should be detached from.role
- The role under which the attachment is established.
-
doAddContentChild
protected void doAddContentChild(java.lang.Object contentChild, int index)
Adds the given contentChild to this part's content children, so that it will no longer be returned by subsequent calls todoGetContentChildren()
.- Parameters:
contentChild
- AnObject
which should be removed from this part's content children.index
- The index of the contentChild that is removed.
-
doAttachToContentAnchorage
protected void doAttachToContentAnchorage(java.lang.Object contentAnchorage, java.lang.String role)
Attaches this part's content to the given contentAnchorage under the specified role, so that it will be returned by subsequent calls todoGetContentAnchorages()
.- Parameters:
contentAnchorage
- AnObject
to which this part's content should be attached to.role
- The role under which the attachment is to be established.
-
doDetachFromContentAnchorage
protected void doDetachFromContentAnchorage(java.lang.Object contentAnchorage, java.lang.String role)
Detaches this part's content from the given contentAnchorage under the specified role, so that it will no longer be returned by subsequent calls todoGetContentAnchorages()
.- Parameters:
contentAnchorage
- AnObject
from which this part's content should be detached from.role
- The role under which the attachment is established.
-
doGetContentAnchorages
protected abstract SetMultimap<? extends java.lang.Object,java.lang.String> doGetContentAnchorages()
Hook method to return the current list of content anchorages. Has to be overwritten by clients.- Returns:
- The current list of content anchorages.
-
doGetContentChildren
protected abstract java.util.List<? extends java.lang.Object> doGetContentChildren()
Hook method to return the current list of content children. Has to be overwritten by clients.- Returns:
- The current list of content children.
-
doRemoveContentChild
protected void doRemoveContentChild(java.lang.Object contentChild)
Removes the given contentChild from this part's content children, so that it will no longer be returned by subsequent calls todoGetContentChildren()
.- Parameters:
contentChild
- AnObject
which should be removed from this part's content children.
-
doReorderContentChild
protected void doReorderContentChild(java.lang.Object contentChild, int newIndex)
Rearranges the given contentChild to the new index position.- Parameters:
contentChild
- TheObject
which is to be reordered.newIndex
- The index to which the content child is to be reordered.
-
getContent
public java.lang.Object getContent()
Description copied from interface:IContentPart
Returns this part's content.- Specified by:
getContent
in interfaceIContentPart<V extends javafx.scene.Node>
- Returns:
- This part's content.
- See Also:
IContentPart.getContent()
-
getContentAnchoragesUnmodifiable
public ObservableSetMultimap<java.lang.Object,java.lang.String> getContentAnchoragesUnmodifiable()
Description copied from interface:IContentPart
Returns an unmodifiableObservableSetMultimap
that contains the content objects that are to be regarded as anchorages of thisIContentPart
's content (IContentPart.getContent()
) with an (optional) role qualifier for each anchorage-anchored link that has to be established.In case of a connection, one anchorage could have the "START" role, and another the "END" role. Using the role mechanism, the same anchorage may also have both roles, which can, for instance, be used for self connections.
- Specified by:
getContentAnchoragesUnmodifiable
in interfaceIContentPart<V extends javafx.scene.Node>
- Returns:
- An unmodifiable
ObservableSetMultimap
of the content anchorages with a role to qualify each anchorage-anchored link. If there is only a single anchorage-anchored link to a respective anchorage, its role may be left undefined (i.e. the map will contain an entry of the form (anchorage,null
)).
-
getContentChildrenUnmodifiable
public javafx.collections.ObservableList<java.lang.Object> getContentChildrenUnmodifiable()
Description copied from interface:IContentPart
Returns an unmodifiableObservableList
that contains the content children.- Specified by:
getContentChildrenUnmodifiable
in interfaceIContentPart<V extends javafx.scene.Node>
- Returns:
- A
List
of all of this part's content children.
-
isFocusable
public boolean isFocusable()
Description copied from interface:IContentPart
Returnstrue
if policies and other parts of the application are allowed to assign focus to this part by changing theFocusModel
. Otherwise returnsfalse
.- Specified by:
isFocusable
in interfaceIContentPart<V extends javafx.scene.Node>
- Returns:
true
if policies and other parts of the application are allowed to assign focus to this part by changing theFocusModel
, otherwisefalse
.
-
isSelectable
public boolean isSelectable()
Description copied from interface:IContentPart
Returnstrue
if policies and other parts of the application are allowed to add this part to the selection maintained by theSelectionModel
. Otherwise returnsfalse
.- Specified by:
isSelectable
in interfaceIContentPart<V extends javafx.scene.Node>
- Returns:
true
if policies and other parts of the application are allowed to add this part to the selection maintained by theSelectionModel
, otherwisefalse
.
-
refreshContentAnchorages
public void refreshContentAnchorages()
Description copied from interface:IContentPart
Triggers a re-computation of the content anchorages of thisIContentPart
.- Specified by:
refreshContentAnchorages
in interfaceIContentPart<V extends javafx.scene.Node>
-
refreshContentChildren
public void refreshContentChildren()
Description copied from interface:IContentPart
Triggers a re-computation of the content children of thisIContentPart
.- Specified by:
refreshContentChildren
in interfaceIContentPart<V extends javafx.scene.Node>
-
register
protected void register(IViewer viewer)
Description copied from class:AbstractVisualPart
Called when a link to theIViewer
is obtained. Registers thisIVisualPart
for its "main" visual (i.e. the one returned byAbstractVisualPart.getVisual()
) at theIViewer.getVisualPartMap()
of the givenIViewer
. To simplify matters, thisIVisualPart
only has to register itself for its "main" visual, i.e. if the "main" visual contains a number of children visuals, it does not need to register itself for those children visuals. Therefore, if the visualization changes dynamically, the registration at the visual-part-map does not need to be updated. Consequently, when looking up anIVisualPart
for a given visual in the visual-part-map, it is required to walk up the visual hierarchy until a registered visual is found.- Overrides:
register
in classAbstractVisualPart<V extends javafx.scene.Node>
- Parameters:
viewer
- TheIViewer
to register at.
-
registerAtContentPartMap
protected void registerAtContentPartMap(IViewer viewer, java.lang.Object content)
Registers the model in theIViewer.getContentPartMap()
. Subclasses should only extend this method if they need to register this EditPart in additional ways.- Parameters:
viewer
- The viewer to register at.content
- The content to register.
-
removeContentChild
public final void removeContentChild(java.lang.Object contentChild)
Removes the given contentChild from this part's content children, so that it will no longer be returned by subsequent calls toIContentPart.getContentChildrenUnmodifiable()
.Delegates to
doRemoveContentChild(Object)
, which is to be overwritten by subclasses.- Specified by:
removeContentChild
in interfaceIContentPart<V extends javafx.scene.Node>
- Parameters:
contentChild
- AnObject
which should be removed from this part's content children.
-
reorderContentChild
public void reorderContentChild(java.lang.Object contentChild, int newIndex)
Rearranges the given contentChild to the new index position. Fires property change events usingIContentPart.CONTENT_CHILDREN_PROPERTY
asproperty name
.Delegates to
doReorderContentChild(Object, int)
, which is to be overwritten by subclasses.- Specified by:
reorderContentChild
in interfaceIContentPart<V extends javafx.scene.Node>
- Parameters:
contentChild
- TheObject
which is to be reordered.newIndex
- The index to which the content child is to be reordered.
-
setContent
public void setContent(java.lang.Object content)
Set the primary content object that this EditPart represents. This method is used by anIContentPartFactory
when creating anIContentPart
.- Specified by:
setContent
in interfaceIContentPart<V extends javafx.scene.Node>
- Parameters:
content
- The new content for this part.- See Also:
IContentPart.setContent(Object)
-
unregister
protected void unregister(IViewer viewer)
Description copied from class:AbstractVisualPart
Called when the link to theIViewer
is lost. Unregisters thisIVisualPart
for its "main" visual (i.e. the one returned byAbstractVisualPart.getVisual()
) from theIViewer.getVisualPartMap()
of the givenIViewer
. To simplify matters, thisIVisualPart
only has to unregister itself for its "main" visual, i.e. if the "main" visual contains a number of children visuals, it does not need to unregister itself for those children visuals. Therefore, if the visualization changes dynamically, the registration at the visual-part-map does not need to be updated. Consequently, when looking up anIVisualPart
for a given visual in the visual-part-map, it is required to walk up the visual hierarchy until a registered visual is found.- Overrides:
unregister
in classAbstractVisualPart<V extends javafx.scene.Node>
- Parameters:
viewer
- TheIViewer
to unregister from.
-
unregisterFromContentPartMap
protected void unregisterFromContentPartMap(IViewer viewer, java.lang.Object content)
Unregisters the model in theIViewer.getContentPartMap()
. Subclasses should only extend this method if they need to unregister this EditPart in additional ways.- Parameters:
viewer
- The viewer to unregister from.content
- The content to unregister.
-
-