VR
- The visual root node of the UI toolkit this IVisualPart
is
used in, e.g. javafx.scene.Node in case of JavaFX.V
- The visual node used by this IVisualPart
.public interface IVisualPart<VR,V extends VR> extends IAdaptable, IActivatable, IPropertyChangeNotifier, IDisposable
IVisualPart
plays the controller role in the model-view-controller
architecture. While it does not have to bound to a model (actually only
IContentPart
s are bound to model elements, IFeedbackPart
s and
IHandlePart
s do not refer to model elements), an IVisualPart
controls a visual and is responsible of handling user interaction.
Within an IViewer
, IVisualPart
are organized in a hierarchy
via a [1:n]
parent-children relationship (getParent()
,
getChildren()
), which roots in an IRootPart
. Furthermore a
[n:m]
anchorage-anchored relationship ( getAnchorages()
, getAnchoreds()
) may be established between IVisualPart
s
located at arbitrary places within the hierarchy.
An IVisualPart
is adaptable (IAdaptable
). Usually,
IPolicy
s and IBehavior
s are adapted to it (but arbitrary
adapters may indeed be registered as needed). IPolicy
s are usually
required in case the IVisualPart
is directly involved in user
interaction (e.g. the user clicks on its controlled visual). They may be
accessed type-safe by ITool
s or other IPolicy
s (
IPolicy
s may delegate to other IPolicy
s) via their class key
(see IAdaptable
). IBehavior
s are used to react to changes of
the attached model (in case of an IContentPart
s), the viewer models,
or others sources (e.g. adapters of the IViewer
or IDomain
),
thereby reacting to changes of the interactive state.
IVisualPart
s are activatable (IActivatable
), and an
activation/deactivation of an IVisualPart
will result in the
activation/deactivation of all registered adapters (i.e. IPolicy
s and
IBehavior
s).
AbstractVisualPart
should be subclassed.IAdaptable.Bound<A extends IAdaptable>
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ANCHORAGES_PROPERTY |
static java.lang.String |
ANCHOREDS_PROPERTY |
static java.lang.String |
CHILDREN_PROPERTY |
static java.lang.String |
PARENT_PROPERTY |
ADAPTERS_PROPERTY
ACTIVE_PROPERTY
Modifier and Type | Method and Description |
---|---|
void |
addAnchorage(IVisualPart<VR,? extends VR> anchorage) |
void |
addAnchorage(IVisualPart<VR,? extends VR> anchorage,
java.lang.String role) |
void |
addAnchored(IVisualPart<VR,? extends VR> anchored)
Used by an anchored
IVisualPart to establish an
anchorage-anchored relationship with this anchorage IVisualPart . |
void |
addChild(IVisualPart<VR,? extends VR> child) |
void |
addChild(IVisualPart<VR,? extends VR> child,
int index) |
void |
addChildren(java.util.List<? extends IVisualPart<VR,? extends VR>> children) |
void |
addChildren(java.util.List<? extends IVisualPart<VR,? extends VR>> children,
int index) |
com.google.common.collect.SetMultimap<IVisualPart<VR,? extends VR>,java.lang.String> |
getAnchorages() |
com.google.common.collect.Multiset<IVisualPart<VR,? extends VR>> |
getAnchoreds() |
java.util.Map<AdapterKey<? extends IBehavior<VR>>,IBehavior<VR>> |
getBehaviors() |
java.util.List<IVisualPart<VR,? extends VR>> |
getChildren() |
IVisualPart<VR,? extends VR> |
getParent() |
java.util.Map<AdapterKey<? extends IPolicy<VR>>,IPolicy<VR>> |
getPolicies() |
IRootPart<VR,? extends VR> |
getRoot()
Returns the
IRootPart . |
V |
getVisual() |
boolean |
isRefreshVisual() |
void |
refreshVisual() |
void |
removeAnchorage(IVisualPart<VR,? extends VR> anchorage) |
void |
removeAnchorage(IVisualPart<VR,? extends VR> anchorage,
java.lang.String role) |
void |
removeAnchored(IVisualPart<VR,? extends VR> anchored)
Used by an anchored
IVisualPart to unestablish an
anchorage-anchored relationship with this anchorage IVisualPart . |
void |
removeChild(IVisualPart<VR,? extends VR> child) |
void |
removeChildren(java.util.List<? extends IVisualPart<VR,? extends VR>> children) |
void |
reorderChild(IVisualPart<VR,? extends VR> child,
int index) |
void |
setParent(IVisualPart<VR,? extends VR> parent)
Used by a parent
IVisualPart to establish/unestablish a
parent-child relationship with this child IVisualPart . |
void |
setRefreshVisual(boolean refreshVisual)
Allows to temporarily turn
refreshVisual() into a no-op
operation. |
getAdapter, getAdapter, getAdapter, getAdapters, getAdapters, setAdapter, setAdapter, setAdapter, unsetAdapter
activate, deactivate, isActive
addPropertyChangeListener, removePropertyChangeListener
dispose
static final java.lang.String PARENT_PROPERTY
static final java.lang.String CHILDREN_PROPERTY
static final java.lang.String ANCHORAGES_PROPERTY
static final java.lang.String ANCHOREDS_PROPERTY
void addAnchorage(IVisualPart<VR,? extends VR> anchorage)
void addAnchorage(IVisualPart<VR,? extends VR> anchorage, java.lang.String role)
void addAnchored(IVisualPart<VR,? extends VR> anchored)
IVisualPart
to establish an
anchorage-anchored relationship with this anchorage IVisualPart
.
Clients should never call this operation directly but instead add the
anchorage to its anchored via the addAnchorage(IVisualPart)
and
addAnchorage(IVisualPart, String)
operations, which will
indirectly lead to a call here.
anchored
- An IVisualPart
to attach to this anchorage
IVisualPart
as anchored.addAnchorage(IVisualPart)
,
addAnchorage(IVisualPart, String)
instead to
establish an anchored-anchorage relationship.void addChild(IVisualPart<VR,? extends VR> child)
void addChild(IVisualPart<VR,? extends VR> child, int index)
void addChildren(java.util.List<? extends IVisualPart<VR,? extends VR>> children)
void addChildren(java.util.List<? extends IVisualPart<VR,? extends VR>> children, int index)
com.google.common.collect.SetMultimap<IVisualPart<VR,? extends VR>,java.lang.String> getAnchorages()
com.google.common.collect.Multiset<IVisualPart<VR,? extends VR>> getAnchoreds()
java.util.Map<AdapterKey<? extends IBehavior<VR>>,IBehavior<VR>> getBehaviors()
java.util.List<IVisualPart<VR,? extends VR>> getChildren()
IVisualPart<VR,? extends VR> getParent()
java.util.Map<AdapterKey<? extends IPolicy<VR>>,IPolicy<VR>> getPolicies()
IRootPart<VR,? extends VR> getRoot()
IRootPart
. This method should only be called
internally or by helpers such as edit policies. The root can be used to
get the viewer.null
or the IRootPart
V getVisual()
boolean isRefreshVisual()
void refreshVisual()
void removeAnchorage(IVisualPart<VR,? extends VR> anchorage)
void removeAnchorage(IVisualPart<VR,? extends VR> anchorage, java.lang.String role)
void removeAnchored(IVisualPart<VR,? extends VR> anchored)
IVisualPart
to unestablish an
anchorage-anchored relationship with this anchorage IVisualPart
.
Clients should never call this operation directly but instead remove the
anchorage from its anchored via the removeAnchorage(IVisualPart)
or removeAnchorage(IVisualPart, String)
operations, which will
indirectly lead to a call here.
anchored
- An IVisualPart
(currently attached as anchored to this
anchorage IVisualPart
) to detach from this anchorage
IVisualPart
as anchored.removeAnchorage(IVisualPart)
or
removeAnchorage(IVisualPart, String)
instead to
unestablish an anchored-anchorage relationship.void removeChild(IVisualPart<VR,? extends VR> child)
void removeChildren(java.util.List<? extends IVisualPart<VR,? extends VR>> children)
void reorderChild(IVisualPart<VR,? extends VR> child, int index)
void setParent(IVisualPart<VR,? extends VR> parent)
IVisualPart
to establish/unestablish a
parent-child relationship with this child IVisualPart
.
Clients should never call this operation directly but instead add the
children to its parent via the addChild(IVisualPart)
,
addChild(IVisualPart, int)
, addChildren(List)
, or
addChildren(List, int)
or remove it via the
removeChild(IVisualPart)
or removeChildren(List)
operations, which will indirectly lead to a call here.
parent
- The new parent IVisualPart
or null
.addChild(IVisualPart)
,
addChild(IVisualPart, int)
,
addChildren(List)
, addChildren(List, int)
,
removeChild(IVisualPart)
, or
removeChildren(List)
to establish/unestablish a
parent-child relationship instead.void setRefreshVisual(boolean refreshVisual)
refreshVisual()
into a no-op
operation. This may for instance be used to disable visual updates that
are initiated by the model (in case of IContentPart
s) while
interacting with the IVisualPart
.refreshVisual
- Whether refreshVisual()
should perform updates of the
visual (true
) or behave like a no-op operation (
false
).Copyright (c) 2014 itemis AG and others. All rights reserved.