public class TLcdGXYAsynchronousLayerWrapper extends Object implements ILcdGXYLayer, ILcdGXYAsynchronousLayerWrapper
ILcdGXYAsynchronousLayerWrapper
for ILcdGXYLayer
instances,
wrapping and protecting the latter interface's state.
Note that for ILcdGXYEditableLabelsLayer
implementations such as TLcdGXYLayer
,
you should use TLcdGXYAsynchronousEditableLabelsLayerWrapper
, to allow
LuciadLightspeed to transparently access the labeling functionality of this interface.Constructor and Description |
---|
TLcdGXYAsynchronousLayerWrapper(ILcdGXYLayer aDecoratedLayer)
Creates a layer decorator that delegates painting to an asynchronous paint queue.
|
TLcdGXYAsynchronousLayerWrapper(ILcdGXYLayer aDecoratedLayer,
ILcdGXYAsynchronousPaintQueue aPaintQueue)
Creates a layer decorator that delegates painting to an asynchronous paint queue.
|
Modifier and Type | Method and Description |
---|---|
void |
addPropertyChangeListener(PropertyChangeListener aPropertyChangeListener)
Registers the given
PropertyChangeListener to be notified when this object's
properties change. |
void |
addSelectionListener(ILcdSelectionListener<Object> aSelectionListener)
Adds a listener to this selection.
|
int |
applyOnInteract(ILcdFunction aFunction,
Rectangle aBounds,
boolean aStrictInteract,
ILcdGXYView aGXYView)
Applies the function to (at the least) all objects that are contained (partially or completely) in the bounds of the view.
|
void |
clearSelection(int aDispatchEventMode)
Deselect all the Objects in this
ILcdLayer , i.e., the selection of
this ILcdLayer is empty afterward. |
void |
fireCollectedSelectionChanges()
Fires a
TLcdSelectionChangedEvent that contains all the
selection changes appended by successively calling
selectObject(Object, boolean, ILcdFireEventMode.FIRE_LATER) . |
protected void |
firePropertyChangeEvent(PropertyChangeEvent aEvent)
Notifies all registered property listeners of the given property change.
|
ILcdGXYLayerChangeTracker |
getAsynchronousGXYLayerChangeTracker()
Returns a state change synchronizer for the wrapped layer.
|
ILcdBounds |
getBounds(int aMode,
ILcdGXYView aGXYView)
Returns the view bounds of this
ILcdGXYLayer content,
the bounds of all the drawings (for the supplied mode) that represent the Objects contained in
the ILcdModel of this ILcdGXYLayer . |
ILcdGXYAsynchronousPaintQueue |
getGXYAsynchronousPaintQueue()
Returns the paint queue handling the asynchronous paints.
|
ILcdGXYEditor |
getGXYEditor(Object aObject)
Returns a clone of the wrapped layer's GXYEditor, or the editor itself if the associated
paint queue is empty.
|
ILcdGXYLabelPainter |
getGXYLabelPainter(Object aObject)
Returns a clone of the wrapped layer's GXYLabelPainter, or the painter itself if the associated
paint queue is empty.
|
ILcdGXYLayer |
getGXYLayer()
Returns the layer that contains the actual paint logic.
|
ILcdGXYPainter |
getGXYPainter(Object aObject)
Returns a clone of the wrapped layer's GXYPainter, or the painter itself if the associated
paint queue is empty.
|
ILcdGXYPen |
getGXYPen()
Returns the pen to use when performing basic painting operations for objects in this layers model.
|
ILcdIcon |
getIcon()
Returns a visual indication of the contents of this layer.
|
String |
getLabel()
A short textual representation of this
ILcdLayer . |
TLcdDimensionInterval<TLcdMapScale> |
getLabelMapScaleRange()
Returns the map ratio scale range for which to display labels for elements of the model.
|
ILcdInterval |
getLabelScaleRange()
Returns the toolkit scale range for which to display labels for elements of the model.
|
TLcdDimensionInterval<TLcdMapScale> |
getMapScaleRange()
Returns the map ratio scale range for which to display elements of the model.
|
ILcdModel |
getModel() |
Class |
getModelXYWorldTransfoClass()
Returns the transformation class that to use to transform points and bounds from model space to world space and
back.
|
ILcdInterval |
getScaleRange()
Returns the toolkit scale range for which to display elements of the model.
|
int |
getSelectionCount()
Returns the number of objects in this selection.
|
ILcdGXYLayerChangeTracker |
getSynchronousGXYLayerChangeTracker()
Returns a state change synchronizer for this wrapper.
|
void |
invokeAndWaitOnGXYLayer(ILcdGXYAsynchronousLayerRunnable aInvocation)
Executes the given layer runnable so that the invocation does not interfere with the asynchronous painting.
|
void |
invokeLaterOnGXYLayer(ILcdGXYAsynchronousLayerRunnable aInvocation)
Executes the given layer runnable so that the invocation does not interfere with the asynchronous painting.
|
void |
invokeLaterOnGXYLayerInEDT(ILcdGXYAsynchronousLayerRunnable aInvocation)
Executes the given layer runnable so that the invocation does not interfere with the asynchronous painting.
|
void |
invokeNowOnGXYLayer(ILcdGXYAsynchronousLayerRunnable aInvocation)
Executes the given layer runnable so that the invocation does not interfere with state synchronization.
|
boolean |
isAsynchronous()
Returns whether the wrapped layer is configured to be painted asynchronously.
|
boolean |
isEditable()
Returns whether the layer allows editing the content that it visualizes.
|
boolean |
isEditableSupported()
Returns
true if the layer supports editing its objects. |
boolean |
isLabeled()
Returns whether objects should be represented as text.
|
boolean |
isLabeledSupported()
Returns whether this layer supports representing objects as text.
|
boolean |
isSelectable()
Returns whether the layer's objects can be selected, for example, by clicking on them.
|
boolean |
isSelectableSupported()
Returns
true if this layer supports selecting objects, false otherwise. |
boolean |
isSelected(Object aObject)
Checks whether the given
Object is currently in the set of
selected objects. |
boolean |
isTraceOn()
Deprecated.
This method has been deprecated. It is recommended to use the
standard Java logging framework directly.
|
boolean |
isVisible()
Returns whether or not the layer's content is painted.
|
void |
paint(Graphics aGraphics,
int aMode,
ILcdGXYView aView)
Paints the layer asynchronously or synchronously, depending on
isAsynchronous . |
void |
removePropertyChangeListener(PropertyChangeListener aPropertyChangeListener)
De-registers the given
PropertyChangeListener from receiving property change events
for this object. |
void |
removeSelectionListener(ILcdSelectionListener<Object> aSelectionListener)
Removes an
ILcdSelectionListener from this ILcdSelection . |
Enumeration<Object> |
selectedObjects()
Returns the objects in this selection.
|
void |
selectObject(Object aObject,
boolean aSelection,
int aDispatchEventMode)
Changes the selection state of any element contained in the
ILcdModel this ILcdLayer refers to. |
void |
setAsynchronous(boolean aAsynchronous)
Disables or enables the asynchronous drawing.
|
void |
setEditable(boolean aEditable)
Sets whether the layer should allow editing the content that it visualizes.
|
void |
setGXYAsynchronousPaintQueue(ILcdGXYAsynchronousPaintQueue aQueue)
Sets the paint queue to delegate asynchronous paint requests to.
|
void |
setIcon(ILcdIcon aIcon)
Sets a visual indication of the contents of this layer.
|
void |
setLabel(String aLabel)
Sets the textual representation of this
ILcdLayer . |
void |
setLabeled(boolean aLabeled)
Sets whether objects should be represented as text.
|
void |
setSelectable(boolean aSelectable)
Sets the Selectable property of this
ILcdLayer . |
void |
setTraceOn(boolean aTraceOn)
Deprecated.
This method has been deprecated. It is recommended to use the
standard Java logging framework directly.
|
void |
setVisible(boolean aVisible)
Sets whether or not the layer's content is painted.
|
void |
stopPainting()
Inform the layer that it should terminate the current paint operation.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
create
getSelectedObjects
public TLcdGXYAsynchronousLayerWrapper(ILcdGXYLayer aDecoratedLayer)
setGXYAsynchronousPaintQueue(ILcdGXYAsynchronousPaintQueue)
For thread safety, the given layers should operate synchronously. Hence, a
TLcdGXYAsynchronousLayerWrapper
should not wrap another
ILcdGXYAsynchronousLayerWrapper
.aDecoratedLayer
- the synchronous layer to decorate. State changes are propagated to and from the wrapper.public TLcdGXYAsynchronousLayerWrapper(ILcdGXYLayer aDecoratedLayer, ILcdGXYAsynchronousPaintQueue aPaintQueue)
aDecoratedLayer
- the layer to decorate. State changes are propagated to and from the wrapper.aPaintQueue
- the paint queue that handles the asynchronous paint callspublic void setTraceOn(boolean aTraceOn)
true
or false
as argument automatically turns
off tracing for all other class instances for which
setTraceOn
has not been called.
If the argument is false
then only the informative, warning
and error log messages are recorded.aTraceOn
- if true then all log messages are recorded for this
instance. If false, then only the informative, warning and
error log messages are recorded.public boolean isTraceOn()
true
if tracing is enabled for this class.public ILcdGXYAsynchronousPaintQueue getGXYAsynchronousPaintQueue()
ILcdGXYAsynchronousLayerWrapper
getGXYAsynchronousPaintQueue
in interface ILcdGXYAsynchronousLayerWrapper
public ILcdGXYLayer getGXYLayer()
ILcdGXYAsynchronousLayerWrapper
ILcdGXYAsynchronousLayerWrapper.invokeAndWaitOnGXYLayer(ILcdGXYAsynchronousLayerRunnable)
and ILcdGXYAsynchronousLayerWrapper.invokeLaterOnGXYLayer(ILcdGXYAsynchronousLayerRunnable)
provide safe alternatives.getGXYLayer
in interface ILcdGXYAsynchronousLayerWrapper
public void setAsynchronous(boolean aAsynchronous) throws InterruptedException
ILcdGXYAsynchronousLayerWrapper
setAsynchronous
in interface ILcdGXYAsynchronousLayerWrapper
aAsynchronous
- if false, paints synchronously, if true, paints asynchronouslyInterruptedException
- when the thread is interrupted while waiting for the asynchronous paint to completepublic boolean isAsynchronous()
ILcdGXYAsynchronousLayerWrapper
isAsynchronous
in interface ILcdGXYAsynchronousLayerWrapper
public void setGXYAsynchronousPaintQueue(ILcdGXYAsynchronousPaintQueue aQueue)
ILcdGXYAsynchronousLayerWrapper
setGXYAsynchronousPaintQueue
in interface ILcdGXYAsynchronousLayerWrapper
aQueue
- the asynchronous paint queue responsible for executing the paint calls.public void paint(Graphics aGraphics, int aMode, ILcdGXYView aView)
isAsynchronous
.
Asynchronous painting is delegated to the layer's paint queue.paint
in interface ILcdGXYLayer
aGraphics
- the Graphics to paint on.aMode
- indicates what should be painted and how it should be painted.aView
- the view to paint for.ILcdGXYLayer.getGXYPainter(Object)
,
ILcdGXYLayer.getGXYLabelPainter(Object)
,
ILcdGXYLayer.getScaleRange()
,
ILcdGXYLayer.getLabelScaleRange()
,
ILcdGXYLayer.stopPainting()
public void addSelectionListener(ILcdSelectionListener<Object> aSelectionListener)
ILcdSelection
ILcdSelection
,
you can use a ALcdWeakSelectionListener
instance as selection listener.addSelectionListener
in interface ILcdSelection<Object>
aSelectionListener
- the ILcdSelectionListener
to be added.public void removeSelectionListener(ILcdSelectionListener<Object> aSelectionListener)
ILcdSelection
ILcdSelectionListener
from this ILcdSelection
.removeSelectionListener
in interface ILcdSelection<Object>
aSelectionListener
- the ILcdSelectionListener
to be removed.public void addPropertyChangeListener(PropertyChangeListener aPropertyChangeListener)
ILcdPropertyChangeSource
Registers the given PropertyChangeListener
to be notified when this object's
properties change.
In case you need to register a listener which keeps a reference to an object with a shorter life-time than this change source,
you can use a ALcdWeakPropertyChangeListener
instance as property change listener.
addPropertyChangeListener
in interface ILcdPropertyChangeSource
aPropertyChangeListener
- The listener to be notifiedALcdWeakPropertyChangeListener
,
ILcdPropertyChangeSource.removePropertyChangeListener(java.beans.PropertyChangeListener)
public void removePropertyChangeListener(PropertyChangeListener aPropertyChangeListener)
ILcdPropertyChangeSource
De-registers the given PropertyChangeListener
from receiving property change events
for this object.
If the listener was added more than once, it will be notified one less time after being
removed.
If the listener is null
, or was never added, no exception is thrown and no action is taken.
removePropertyChangeListener
in interface ILcdPropertyChangeSource
aPropertyChangeListener
- the listener that should no longer be notified of changes of
this object's propertiesILcdPropertyChangeSource.addPropertyChangeListener(java.beans.PropertyChangeListener)
protected void firePropertyChangeEvent(PropertyChangeEvent aEvent)
aEvent
- the event describing the property changepublic void clearSelection(int aDispatchEventMode)
ILcdLayer
ILcdLayer
, i.e., the selection of
this ILcdLayer
is empty afterward.clearSelection
in interface ILcdLayer
aDispatchEventMode
- shall be one among ILcdFireEventMode.FIRE_NOW
,
ILcdFireEventMode.FIRE_LATER
, ILcdFireEventMode.NO_EVENT
ILcdFireEventMode
public void fireCollectedSelectionChanges()
ILcdLayer
TLcdSelectionChangedEvent
that contains all the
selection changes appended by successively calling
selectObject(Object, boolean, ILcdFireEventMode.FIRE_LATER)
.fireCollectedSelectionChanges
in interface ILcdLayer
public int getSelectionCount()
ILcdSelection
getSelectionCount
in interface ILcdSelection<Object>
ILcdSelection
.public boolean isSelected(Object aObject)
ILcdSelection
Object
is currently in the set of
selected objects.isSelected
in interface ILcdSelection<Object>
aObject
- the Object
to be checked.true
if the Object
is in this ILcdSelection
,
false otherwise.public Enumeration<Object> selectedObjects()
ILcdSelection
selectedObjects
in interface ILcdSelection<Object>
ILcdSelection
.public void selectObject(Object aObject, boolean aSelection, int aDispatchEventMode)
ILcdLayer
ILcdModel
this ILcdLayer
refers to. This method
shall have an effect only if isSelectableSupported and isSelectable return
true.selectObject
in interface ILcdLayer
aObject
- the Object
to select or deselect. The object should be in the model
of this layer. The implementation of this method is not responsible for checking this.aSelection
- the selection state, true
to select, false
to deselect.aDispatchEventMode
- shall be one among ILcdFireEventMode.FIRE_NOW
,
ILcdFireEventMode.FIRE_LATER
, ILcdFireEventMode.NO_EVENT
ILcdFireEventMode
public boolean isSelectableSupported()
ILcdLayer
true
if this layer supports selecting objects, false
otherwise.isSelectableSupported
in interface ILcdLayer
true
if this ILcdLayer
supports the
selectable property, false
otherwise. I.e. if this
ILcdLayer
can be put or not in a selectable mode.ILcdLayer.setSelectable(boolean)
,
ILcdLayer.selectObject(java.lang.Object, boolean, int)
public int applyOnInteract(ILcdFunction aFunction, Rectangle aBounds, boolean aStrictInteract, ILcdGXYView aGXYView)
ILcdGXYLayer
The function shall be applied successively to all objects in the bounds as long as the function returns
true
for an object. This allows developers to indicate a stop condition. Note that the order in
which the objects are passed to the function is not specified.
When strict interaction is required, only objects whose representation lies within the given bounds, completely or partially, are candidates to be passed to the function. An object whose representation does not interact with the bounds should not be passed to the function. Applying non strict interaction can be useful to avoid heavy computations to determine whether an objects representation lies within the bounds.
This method behaves similar to the paint method, and as such is allowed to omit small or invisible objects for performance reasons.
applyOnInteract
in interface ILcdGXYLayer
aFunction
- the function to apply. When the function returns false, no more objects should be passed to
the function.aBounds
- all objects who lie partially or completely in this area in the view are candidates to be passed to
the function.aStrictInteract
- if true
, the ILcdFunction
shall be applied only to the objects
interacting with the given bounds. When false is passed, other objects may be taken into account too.
When applying the function to an object consumes less time than checking whether an objects representation
interacts with the bounds, non-strict interaction is generally faster.aGXYView
- the view in whose bounds the objects representations should be in order to be passed to the
function.public ILcdBounds getBounds(int aMode, ILcdGXYView aGXYView) throws TLcdNoBoundsException
ILcdGXYLayer
ILcdGXYLayer
content,
the bounds of all the drawings (for the supplied mode) that represent the Objects contained in
the ILcdModel
of this ILcdGXYLayer
.
For this operation, this ILcdGXYLayer
is to be considered
as part of aGXYView
.
Outside of the layers bounds no interaction with any object of the layer via its representation is possible. Note that these bounds do not necessarily encompass the representation of all objects in the model, only the objects for which there is a representation in the view.
getBounds
in interface ILcdGXYLayer
aMode
- a bitwise combination of ALL or SELECTION and one or more of BODIES and HANDLES.
The ILcdGXYLayer.LABELS
mode is not supported.aGXYView
- the view in which the layer could be placed. This enables taking into account the views settings,
for example the scale.TLcdNoBoundsException
- if the layer doesn't have any valid bounds,
for example when none of the elements have a representation for the views current settings.public ILcdGXYPainter getGXYPainter(Object aObject)
getGXYPainter
in interface ILcdGXYLayer
aObject
- the object to find a painter for.public ILcdGXYEditor getGXYEditor(Object aObject)
getGXYEditor
in interface ILcdGXYLayer
aObject
- the object to find an editor for.public ILcdGXYLabelPainter getGXYLabelPainter(Object aObject)
getGXYLabelPainter
in interface ILcdGXYLayer
aObject
- the object to find a label painter for.public ILcdModel getModel()
public boolean isEditableSupported()
ILcdLayer
true
if the layer supports editing its objects.isEditableSupported
in interface ILcdLayer
true
if the layer supports editing, false
otherwise.ILcdLayer.setEditable(boolean)
public boolean isLabeledSupported()
ILcdGXYLayer
isLabeledSupported
in interface ILcdGXYLayer
public void stopPainting()
ILcdGXYLayer
Thread
and needs to be
stopped in a safe state from another Thread.stopPainting
in interface ILcdGXYLayer
paint
public ILcdGXYPen getGXYPen()
ILcdGXYLayer
getGXYPen
in interface ILcdGXYLayer
public ILcdIcon getIcon()
ILcdLayer
public String getLabel()
ILcdLayer
ILcdLayer
.public ILcdInterval getLabelScaleRange()
ILcdGXYLayer
view.getScale()
< getLabelScaleRange().getMin()
or
view.getScale()
>= getLabelScaleRange().getMax()
.
This does not imply that labels for all objects in the model should be painted when the scale is inside this range
as other restrictions may apply. For example, a layer may decide not to paint any labels for objects whose body is
not painted.
For most use cases, we recommended using the unitless map scale range
instead.
This property is mutually exclusive with the label map scale range:
only one of them has a non-null
value.getLabelScaleRange
in interface ILcdGXYLayer
ILcdInterval
containing the minimum and maximum value of view scales for which
labels should be rendered, excluding the maximum.
null
if the scale constraints are determined by ILcdGXYLayer.getLabelMapScaleRange()
The scales are expressed in toolkit pixels/world unit.ILcdGXYLayer.getLabelMapScaleRange()
public TLcdDimensionInterval<TLcdMapScale> getLabelMapScaleRange()
ILcdGXYLayer
map scale range
and inside the given map label scale range.
This does not imply that labels for all objects in the model should be painted when the scale is inside this range
as other restrictions may apply. For example, a layer may decide not to paint any labels for objects whose body is
not painted.
This property is mutually exclusive with the toolkit label scale range
:
only one of them has a non-null
value.getLabelMapScaleRange
in interface ILcdGXYLayer
null
if the scale constraints are determined by ILcdGXYLayer.getScaleRange()
public Class getModelXYWorldTransfoClass()
ILcdGXYLayer
getModelXYWorldTransfoClass
in interface ILcdGXYLayer
public ILcdInterval getScaleRange()
ILcdGXYLayer
view.getScale()
< getScaleRange().getMin()
or
view.getScale()
>= getScaleRange().getMax()
.
This does not imply that all objects in the model should be painted when the scale is inside this range as
other restrictions may apply. For example, a layer may have a filter which defines which objects should be painted.
For most use cases, we recommended using the unitless map scale range
instead.
This property is mutually exclusive with the map scale range:
only one of them has a non-null
value.getScaleRange
in interface ILcdGXYLayer
ILcdInterval
containing the minimum and maximum value of view scales for which objects
should be rendered, excluding the maximum. null
if the scale constraints are determined by ILcdGXYLayer.getMapScaleRange()
.
The scales are expressed in toolkit pixels/world unit.ILcdGXYLayer.getMapScaleRange()
public TLcdDimensionInterval<TLcdMapScale> getMapScaleRange()
ILcdGXYLayer
The paint method won't render objects in a view if the view's map scale is outside the scale range.
This does not imply that all objects in the model should be painted when the scale is inside this range as other restrictions may apply. For example, a layer may have a filter which defines which objects should be painted.
This property is mutually exclusive with thetoolkit scale range
:
only one of them has a non-null
value.getMapScaleRange
in interface ILcdGXYLayer
null
if the scale constraints are determined by ILcdGXYLayer.getScaleRange()
public void setIcon(ILcdIcon aIcon)
ILcdLayer
setIcon
in interface ILcdLayer
aIcon
- a visual indication of the contents of this layer.ILcdLayer.getIcon()
public void setLabel(String aLabel)
ILcdLayer
ILcdLayer
.public boolean isEditable()
ILcdLayer
isEditable
in interface ILcdLayer
true
if this ILcdLayer
is editable,
false
otherwiseILcdLayer.setEditable(boolean)
public void setEditable(boolean aEditable)
ILcdLayer
isEditableSupported
to see if the layer supports editing.setEditable
in interface ILcdLayer
aEditable
- true if the layer content can be editedILcdLayer.isEditableSupported()
,
ILcdLayer.isEditable()
public boolean isLabeled()
ILcdGXYLayer
ILcdGXYLayer.isLabeledSupported()
returns false.isLabeled
in interface ILcdGXYLayer
ILcdGXYLayer.isLabeledSupported()
public void setLabeled(boolean aLabeled)
ILcdGXYLayer
ILcdGXYLayer.isLabeledSupported()
returns false.setLabeled
in interface ILcdGXYLayer
aLabeled
- true to have a textual representation of the objects in the model, false to have no such
representation.public boolean isSelectable()
ILcdLayer
isSelectable
in interface ILcdLayer
true
if the layer allows selection, false
otherwise.ILcdSelection
,
ILcdLayer.setSelectable(boolean)
public void setSelectable(boolean aSelectable)
ILcdLayer
ILcdLayer
.
Check isSelectableSupported
to see if the layer supports selection.setSelectable
in interface ILcdLayer
aSelectable
- true
if the layer allows selection, false
otherwise.ILcdLayer.isSelectable()
,
ILcdLayer.isSelectableSupported()
public boolean isVisible()
ILcdLayer
isVisible
in interface ILcdLayer
true
if the layer is visible, false
otherwise.ILcdLayer.setVisible(boolean)
public void setVisible(boolean aVisible)
ILcdLayer
setVisible
in interface ILcdLayer
aVisible
- true
if the layer should be visible, false
otherwise.ILcdLayer.isVisible()
public ILcdGXYLayerChangeTracker getSynchronousGXYLayerChangeTracker()
ILcdGXYAsynchronousLayerWrapper
getSynchronousGXYLayerChangeTracker
in interface ILcdGXYAsynchronousLayerWrapper
public ILcdGXYLayerChangeTracker getAsynchronousGXYLayerChangeTracker()
ILcdGXYAsynchronousLayerWrapper
getAsynchronousGXYLayerChangeTracker
in interface ILcdGXYAsynchronousLayerWrapper
public void invokeLaterOnGXYLayer(ILcdGXYAsynchronousLayerRunnable aInvocation)
ILcdGXYAsynchronousLayerWrapper
The invocation should take care when waiting for another thread: if that thread in turn waits for asynchronous painting to complete, a deadlock will occur.
To avoid concurrency problems with property change listeners, layer property changes will be fired on the event dispatch thread, not on the asynchronous paint thread.
invokeLaterOnGXYLayer
in interface ILcdGXYAsynchronousLayerWrapper
aInvocation
- the invocation to run. The invocation will pass the original layer.public void invokeLaterOnGXYLayerInEDT(ILcdGXYAsynchronousLayerRunnable aInvocation)
ILcdGXYAsynchronousLayerWrapper
invokeLaterOnGXYLayerInEDT
in interface ILcdGXYAsynchronousLayerWrapper
aInvocation
- the invocation to run. The invocation will pass the original layer.public void invokeNowOnGXYLayer(ILcdGXYAsynchronousLayerRunnable aInvocation)
ILcdGXYAsynchronousLayerWrapper
invokeNowOnGXYLayer
in interface ILcdGXYAsynchronousLayerWrapper
aInvocation
- the invocation to run. The invocation will pass the original layer.public void invokeAndWaitOnGXYLayer(ILcdGXYAsynchronousLayerRunnable aInvocation) throws InterruptedException
ILcdGXYAsynchronousLayerWrapper
invokeAndWaitOnGXYLayer
in interface ILcdGXYAsynchronousLayerWrapper
aInvocation
- the invocation to run. The invocation will pass the original layer.InterruptedException
- when the thread is interrupted while waiting for the asynchronous painting
to complete