public abstract class ALspStyleCollector extends Object
ILspStyler
to define the
style of a group of objects. It offers the implementer of ILspStyler
a variety of methods that can be used to define styling. Users that wish to
retrieve the style for a given object from an ILspStyler
need to
create a custom extension of this class specific to their needs.
The documentation of ILspStyler
provides more information for users
who wish to apply styling to objects.
ILspStyler.style(Collection, ALspStyleCollector, TLspContext)
Modifier | Constructor and Description |
---|---|
protected |
ALspStyleCollector(Collection<? extends Object> aObjectsToStyle)
Default constructor, the objects to be styled are provided, which allows
the collector to do basic error checking.
|
Modifier and Type | Method and Description |
---|---|
protected void |
destroy()
Cleanup method for style collector.
|
ALspStyleCollector |
geometry(ALspStyleTargetProvider aStyleTargetProvider)
Specifies an
ALspStyleTargetProvider that should be used to convert objects
into a collection of objects on which the style can be applied. |
ALspStyleCollector |
geometry(ILcdShape aGeometry)
Specifies the geometry
on which the style should be applied.
|
protected Collection<? extends Object> |
getObjects()
Returns the objects that have already been provided.
|
protected List<ALspStyle> |
getStyles()
Returns the styles that have been specified for the current set of objects.
|
protected ALspStyleTargetProvider |
getStyleTargetProvider()
Returns the style target provider that has been provided together with the
current set of objects.
|
ALspStyleCollector |
hide()
Hides the specified objects.
|
ALspStyleCollector |
object(Object aObject)
Specifies a single
Object to be styled. |
ALspStyleCollector |
objects(Collection<? extends Object> aObjects)
Specifies a collection of objects to be styled.
|
ALspStyleCollector |
style(ALspStyle aStyle)
Applies the given style to the specified objects.
|
ALspStyleCollector |
styles(ALspStyle... aStyles)
Applies the given list of styles to the specified objects.
|
ALspStyleCollector |
styles(List<? extends ALspStyle> aStyles)
Applies the given list of styles to the specified objects.
|
void |
submit()
Submits the currently specified objects and styles.
|
protected abstract void |
submitImpl()
This method is called by the
submit() method. |
protected ALspStyleCollector(Collection<? extends Object> aObjectsToStyle)
aObjectsToStyle
- The collection of objects for which this style collector will be
used. This has to be the collection of objects that is passed to
ILspStyler.style(Collection, ALspStyleCollector, TLspContext)
protected void destroy()
ILspStyler
.protected Collection<? extends Object> getObjects()
submitImpl()
. This Collection
is reset after
each call to submit()
.protected ALspStyleTargetProvider getStyleTargetProvider()
Returns the style target provider that has been provided together with the
current set of objects. Can be called from within submitImpl()
.
This will be cleared after every call to submit()
.
It is possible that this method returns null
. In that case the domain object itself is
used as the style target.
Null by default.
protected List<ALspStyle> getStyles()
submitImpl()
. This List
is reset after
each call to submit()
.protected abstract void submitImpl()
submit()
method. Implementers of this
class should not override submit()
directly, but should implement
this method instead.
The information that has been specified before calling submit()
, is
provided through a number of protected getters of this class. After the
call to submit()
, this information will be cleared.getObjects()
,
getStyleTargetProvider()
,
getStyles()
public ALspStyleCollector object(Object aObject)
Object
to be styled. Preferably, this method
should only be used if the given object uses a unique style, that is
different from the style of all other objects.
Example usage:myCollector.object(myILcdPoint).style(myIconStyle).submit()
The object must be an object that is part of the collection that has been
passed as an argument in
ILspStyler.style(Collection, ALspStyleCollector, TLspContext)
.
Specifying other objects after a call to this method will invalidate the
result of this call.aObject
- The object to style.public ALspStyleCollector objects(Collection<? extends Object> aObjects)
myCollector.objects(Arrays.asList(myILcdPoint1,myILcdPoint2)).style(myIconStyle).submit()
The objects must all be contained in the collection that has been passed as
an argument in
ILspStyler.style(Collection, ALspStyleCollector, TLspContext)
.
Specifying other objects after a call to this method will invalidate the
result of this call.aObjects
- The objects to style.public ALspStyleCollector geometry(ILcdShape aGeometry)
aGeometry
argument allows you to specify a particular geometry
to which the styling should be applied, that is different from the object
itself.
Example usage:myCollector.object(myObject).geometry(myObjectAsILcdPoint).style(myIconStyle).submit()
aGeometry
- The geometry to which the styling should be appliedpublic ALspStyleCollector geometry(ALspStyleTargetProvider aStyleTargetProvider)
ALspStyleTargetProvider
that should be used to convert objects
into a collection of objects on which the style can be applied. This method
can be used if multiple objects share the same style.
The ALspStyleTargetProvider
can be used in a number of cases:
myCollector.objects(Arrays.asList(myObject1,myObject2)).geometry(myObjectToPointConverter).style(myIconStyle).submit()
aStyleTargetProvider
- The target provider.public ALspStyleCollector hide()
object(Object)
or
objects(Collection)
.
Example usage:myCollector.object(myObject).hide().submit()
public ALspStyleCollector style(ALspStyle aStyle)
object(Object)
or objects(Collection)
.
Example usage:myCollector.object(myILcdPoint).style(myIconStyle).submit()
Specifying other styles after a call to this method will invalidate the
result of this call.aStyle
- The style to apply.public ALspStyleCollector styles(List<? extends ALspStyle> aStyles)
object(Object)
or objects(Collection)
.
Example usage:myCollector.object(myILcdPoint).styles(Arrays.asList(myIconStyle,myVerticalLineStyle)).submit()
Specifying other styles after a call to this method will invalidate the
result of this call.aStyles
- The styles to apply. This list should not be modified after using
it as an argument in this method.public ALspStyleCollector styles(ALspStyle... aStyles)
object(Object)
or objects(Collection)
.
Example usage:myCollector.object(myILcdPoint).styles(myIconStyle,myVerticalLineStyle).submit()
Specifying other styles after a call to this method will invalidate the
result of this call.aStyles
- The style to apply.public void submit()
style(ALspStyle)
or hide()
. This mandatory method submits
a part of the styling before specifying new objects and styles.
Example usage:myCollector.object(myILcdPoint1).style(myIconStyle1).submit();
myCollector.object(myILcdPoint2).style(myIconStyle2).submit();
When this method is called multiple times for the same objects, all specified styles from the different calls
will be applied.
Example to apply a line style to all objects and an additional fill style to one specific object:myCollector.objects(myObjects).style(myLineStyle).submit();
myCollector.object(myFirstObject).style(myFillStyle).submit();
Not calling this method will result in no styles being specified at all.
Calling any other method after already having provided objects and/or
styles will result in invalidating those previous calls.