public class TLspMS2525bLayerBuilder extends ALspLayerBuilder
MS2525 shapes
.
The layer will contain two paint representations that can be controlled separately:
TLspPaintRepresentation.BODY
: the main bodyTLspPaintRepresentation.LABEL
: the labels
For non-line symbols, the body visualisation consists of an icon.
For line
symbols, the
body visualisation depends on the symbol. It typically consists of a line or area.
Basic customization of the visualization is possible using an ILcdMS2525bStyled.
If the domain object implements ILcdMS2525bStyled, then the style will be retrieved from it.
Otherwise, a default style
is used.
Other customization of the visualization is possible by setting a custom body
or label
styler. This layer builder installs a TLspMS2525bSymbolStyler by default. This styler
recognizes domain objects which implement ILcdMS2525bCoded and
ILcdMS2525bStyled. Replacing the default
styler with a custom one allows MS2525 symbology to be used on domain objects which do not
implement these interfaces, as well as making all sorts of other customizations possible
(e.g. additional decorations or labels on symbols).
ILcdMS2525bShape
Modifier and Type | Method and Description |
---|---|
TLspMS2525bLayerBuilder |
bodyEditable(boolean aEditable)
Sets whether the body of the symbols should be editable.
|
TLspMS2525bLayerBuilder |
bodyMapScaleRange(TLcdDimensionInterval<TLcdMapScale> aBodyScaleRange)
Sets the scale range for the body of the layer in unitless map scale ratios.
|
TLspMS2525bLayerBuilder |
bodyScaleRange(ILcdInterval aBodyScaleRange)
Sets the scale range for the body of the symbols.
|
TLspMS2525bLayerBuilder |
bodyStyler(TLspPaintState aPaintState,
ILspStyler aStyler)
Sets the given body styler for the given paint state.
The styler can specify a
TLspMS2525bSymbolStyle to paint the object as an MS2525
symbol. |
ILspInteractivePaintableLayer |
build()
Creates and returns a new MIL-STD 2525 b layer based on the current parameters of this builder.
|
TLspMS2525bLayerBuilder |
culling(boolean aUseCulling)
Sets whether objects outside the visible view portion are culled and not painted.
|
TLspMS2525bLayerBuilder |
defaultStyle(ILcdMS2525bStyle aDefaultStyle)
Sets the default symbology style that will be used if a domain object does not itself contain
any styling.
|
TLspMS2525bLayerBuilder |
filter(ILcdDynamicFilter aFilter)
Sets a filter that will be used to filter objects to prevent them from
being painted by the layer.
|
TLspMS2525bLayerBuilder |
icon(ILcdIcon aIcon)
Sets the icon of the layer.
|
TLspMS2525bLayerBuilder |
iconProvider(TLcdMS2525bObjectIconProvider aIconProvider)
Override the default icon provider.
|
TLspMS2525bLayerBuilder |
label(String aLabel)
Sets the label of the layer.
|
TLspMS2525bLayerBuilder |
labelMapScaleRange(TLcdDimensionInterval<TLcdMapScale> aLabelScaleRange)
Sets the scale range for the labels of the layer in unitless map scale ratios.
|
TLspMS2525bLayerBuilder |
labelScaleRange(ILcdInterval aLabelScaleRange)
Sets the scale range for the labels of the symbols.
|
TLspMS2525bLayerBuilder |
labelStyler(TLspPaintState aPaintState,
ILspStyler aStyler)
Sets the given label styler for the given paint state.
The styler can specify a
TLspMS2525bSymbolStyle to paint the standard MS2525 symbol
labels. |
TLspMS2525bLayerBuilder |
layerStyle(TLspLayerStyle aLayerStyle)
Set a layer style to be used during the rendering of the layer.
|
TLspMS2525bLayerBuilder |
layerType(ILspLayer.LayerType aLayerType)
Sets the layer type of the layer.
|
TLspMS2525bLayerBuilder |
model(ILcdModel aModel)
Sets the model of the layer.
|
static TLspMS2525bLayerBuilder |
newBuilder() |
TLspMS2525bLayerBuilder |
objectViewMargin(double aObjectViewMargin)
Sets the largest possible difference (in pixels) between an object's model bounds and its
painted representation's bounds that should be taken into account.
|
TLspMS2525bLayerBuilder |
objectWorldMargin(double aObjectWorldMargin)
Sets the largest possible difference (in meters) between an object's model bounds and its
painted representation's bounds that should be taken into account.
|
TLspMS2525bLayerBuilder |
selectable(boolean aSelectable)
Sets whether the symbols should be selectable.
|
getIcon, getLabel, getLayerStyle, getLayerType, getModel
public static TLspMS2525bLayerBuilder newBuilder()
public ILspInteractivePaintableLayer build()
build
in class ALspLayerBuilder
public TLspMS2525bLayerBuilder bodyStyler(TLspPaintState aPaintState, ILspStyler aStyler)
TLspMS2525bSymbolStyle
to paint the object as an MS2525
symbol.
You can also specify the following styles to paint custom geometry or decorations:
TLspFillStyle
: can be applied to closed shapes such as circles or polygonsTLspLineStyle
: can be applied to closed and non-closed shapes such as arcs and polylinesTLspComplexStrokedLineStyle
: can be applied to closed and non-closed shapes such as arcs and polylinesTLspWorldSizedLineStyle
: can be applied to closed and non-closed shapes such as arcs and polylinesTLspIconStyle
: can be applied to point shapes and point listsTLsp3DIconStyle
: can be applied to point shapes and point listsTLspVerticalLineStyle
: can be applied to point shapes and point listsILcdMS2525bShape
as
geometry to get the visualization as specified by the standard. Other ILcdShape
's are
also supported as geometry for most symbols.
Note that the created layer will not have the specified styler directly as its body styler.aPaintState
- the paint state for which to set the body styleraStyler
- the new body styler for the layerthis
public TLspMS2525bLayerBuilder labelStyler(TLspPaintState aPaintState, ILspStyler aStyler)
TLspMS2525bSymbolStyle
to paint the standard MS2525 symbol
labels.
You can also specify the following styles to paint custom labels:
TLspTextStyle
to get text with a specific font, font color, size, halo etc.TLspIconStyle
to get custom images.ALspLabelTextProviderStyle
to specify which text to use (default is toString()
). See also TLspDataObjectLabelTextProviderStyle
.TLspLabelBoxStyle
to specify fill color or framesTLspLabelOpacityStyle
to specify the opacity and modulation color.TLspPinLineStyle
to draw pins for the labels (see
TLspLabelPainter
)ILcdMS2525bShape
as
geometry to get the visualization as specified by the standard. Other ILcdShape
's are
also supported as geometry for most symbols.
Note that the created layer will not have the specified styler directly as its label styler.aPaintState
- the paint state for which to set the label styleraStyler
- the new label styler for the layerthis
public TLspMS2525bLayerBuilder defaultStyle(ILcdMS2525bStyle aDefaultStyle)
aDefaultStyle
- The default stylepublic TLspMS2525bLayerBuilder iconProvider(TLcdMS2525bObjectIconProvider aIconProvider)
aIconProvider
- The new icon providerpublic TLspMS2525bLayerBuilder layerType(ILspLayer.LayerType aLayerType)
ALspLayerBuilder
ILspLayer.LayerType.EDITABLE
.layerType
in class ALspLayerBuilder
aLayerType
- the layer typeILspLayer.getLayerType()
public TLspMS2525bLayerBuilder bodyEditable(boolean aEditable)
aEditable
- whether the body of the symbols should be editablepublic TLspMS2525bLayerBuilder bodyScaleRange(ILcdInterval aBodyScaleRange)
aBodyScaleRange
- the scale range for the body of the symbolspublic TLspMS2525bLayerBuilder bodyMapScaleRange(TLcdDimensionInterval<TLcdMapScale> aBodyScaleRange)
aBodyScaleRange
- the scale range for the body of the layerthis
public TLspMS2525bLayerBuilder culling(boolean aUseCulling)
aUseCulling
- whether the layer should use culling or notpublic TLspMS2525bLayerBuilder filter(ILcdDynamicFilter aFilter)
aFilter
- the filterthis
public TLspMS2525bLayerBuilder icon(ILcdIcon aIcon)
ALspLayerBuilder
null
.icon
in class ALspLayerBuilder
aIcon
- the iconILcdLayer.getIcon()
public TLspMS2525bLayerBuilder layerStyle(TLspLayerStyle aLayerStyle)
ALspLayerBuilder
TLspLayerStyle
is used to style the layer as a whole. Layer style can for example modify the
transparency of a layer. Also, layer style can be modified after building the layer by calling
ILspLayer.setLayerStyle(TLspLayerStyle)
.layerStyle
in class ALspLayerBuilder
aLayerStyle
- the layer style. Must not be null
. If you want to set the default layer style, set TLspLayerStyle.newBuilder().build()
ILspLayer.getLayerStyle()
,
ILspLayer.setLayerStyle(TLspLayerStyle)
public TLspMS2525bLayerBuilder label(String aLabel)
ALspLayerBuilder
null
.label
in class ALspLayerBuilder
aLabel
- the labelILcdLayer.getLabel()
public TLspMS2525bLayerBuilder labelScaleRange(ILcdInterval aLabelScaleRange)
aLabelScaleRange
- the scale range for the labels of the symbols. If aLabelScaleRange is null, labels will always be displayed.public TLspMS2525bLayerBuilder labelMapScaleRange(TLcdDimensionInterval<TLcdMapScale> aLabelScaleRange)
aLabelScaleRange
- the scale range for the labels of the layerthis
public TLspMS2525bLayerBuilder model(ILcdModel aModel)
ALspLayerBuilder
null
.model
in class ALspLayerBuilder
aModel
- a modelILcdLayer.getModel()
public TLspMS2525bLayerBuilder selectable(boolean aSelectable)
aSelectable
- whether the symbols should be selectablepublic TLspMS2525bLayerBuilder objectViewMargin(double aObjectViewMargin)
culling
is enabled). It ensures, for example, that a model element is still painted if its visual
representation falls inside the view, but its model bounds do not.
If for example view-sized icons are used to represent points on the map, the icon could be 16
by 16 pixels, whereas the object itself is a point, having a zero size. Depending on where the
point is located in the icon, the required margin for this example can be up to 16 pixels.
The drawback of setting a too large value is a performance loss. The drawback of setting a too
small value is that objects (e.g. icons) disappear when they are located partly outside the
view.
You can also configure a maximum distance in meters
.
The default value is 32
.aObjectViewMargin
- the maximum difference (in pixels)this
public TLspMS2525bLayerBuilder objectWorldMargin(double aObjectWorldMargin)
culling
is enabled). It ensures, for example, that a model element is still painted if its visual
representation falls inside the view, but its model bounds do not.
If for example circles are used to represent points on the map, the circle could have a radius
of 1km, whereas the object itself is a point, having a zero size. The required margin for this
example is 1000 meters.
The drawback of setting a too large value is a performance loss. The drawback of setting a too
small value is that objects (e.g. icons) disappear when they are located partly outside the
view.
You can also configure a maximum distance in pixels
.
The default value is 0
.aObjectWorldMargin
- the maximum difference in metersthis