This document describes which types of objects are currently supported and used by Lucy's service
mechanism out-of-the-box (see ILcyLucyEnv#addService(Object, int)
and ILcyLucyEnv#removeService(Object)
).
It is structured as follows:
The following list contains all objects which are registered by default as Lucy service, and describes whether:
ILcyLucyEnv#getService(Class)
instead of ILcyLucyEnv#getServices(Class)
.
When it is allowed to register multiple instances of a class, it is always possible to register
your own instance and this instance will be used by Lucy. For example if you have your own
ILcdGXYLayerFactory
,
you can register it to the Lucy back-end and it will be used when Lucy tries to create an ILcdGXYLayer
for an ILcdModel
(e.g. when using the File | Open action ).
com.luciad.lucy.model.ILcyModelContentTypeProvider
:
ALcyFormat#createModelContentTypeProvider()
ILcyGXYLayerOrderManager
to determine the model content type of a model.
com.luciad.model.ILcdModelFactory
:
ALcyFormat#createModelFactory()
TLcyFormatBarAddOn
and TLcyDrawingAddOn
to create new models.
com.luciad.lucy.model.TLcyModelDecoderHolder
:
ALcyFormat#createModelDecoders()
and the section about the holder objects.
ILcdModel
from a
certain source, e.g. when using the File | Open menu item.
Consult the "Loading data in Lucy" chapter in the Lucy Developer Guide for more information about data loading.
com.luciad.lucy.model.TLcyModelEncoderHolder
:
ALcyFormat#createModelEncoders()
and the section about the holder objects.
ILcdModel
from a
certain source, e.g. when using the File | Save menu item.
com.luciad.lucy.gui.customizer.ILcyCustomizerPanelFactory
:
ALcyFormat#createDomainObjectCustomizerPanelFactories()
,
ALcyFormat#createGXYLayerCustomizerPanelFactories()
,
ALcyFormat#createModelCustomizerPanelFactories()
and
ALcyFormat#createModelEncoderCustomizerPanelFactories()
.
com.luciad.lucy.util.context
package
or an instance of the TLcyLspCustomizableStyleContext
class.
Extended documentation on how to use the ILcyCustomizerPanel
s can be found in the
Lucy developer guide.
com.luciad.lucy.model.TLcyDataSourceHandlerHolder
:
ALcyFormat#createDataSourceHandlers()
and the section about the holder objects.
com.luciad.lucy.map.ILcyGXYLayerTypeProvider
:
ALcyFormat#createGXYLayerTypeProvider()
.
ILcyGXYLayerOrderManager
to determine the layer type of an ILcdGXYLayer
.
com.luciad.lucy.map.TLcyGXYLayerDecoderHolder
:
ALcyFormat#createGXYLayerDecoders()
and the section about the holder objects.
ILcdGXYLayer
when opening the layer using the File | Open menu action item.
com.luciad.lucy.map.TLcyGXYLayerEncoderHolder
:
ALcyFormat#createGXYLayerEncoders()
and the section about the holder objects.
com.luciad.lucy.map.asynchronous.ILcyAsynchronousPaintHintProvider
:
ALcyFormat#createAsynchronousPaintHintProvider()
.
TLcyAsynchronousPaintAddOn
to determine the paint hint for ILcdLayer
instances.
com.luciad.lucy.datatransfer.ALcyLayerSelectionTransferHandler
:
ALcyFormat#createGXYLayerSelectionTransferHandlers()
.
ALcyLayerSelectionTransferHandler
objects that may be registered. Consult the javadoc of TLcyCompositeLayerSelectionTransferHandler
for more information on these limitations.
com.luciad.view.gxy.ILcdGXYLayerFactory
:
ALcyFormat#createGXYLayerFactory()
.
ILcdGXYLayer
for an ILcdModel
when opening a data source, e.g. through the File | Open menu action.
com.luciad.lucy.map.ILcyLayerStyleProvider
:
ALcyFormat#createGXYLayerStyleProvider()
.
ILcdLayer
.
com.luciad.lucy.gui.formatbar.ALcyFormatBarFactory
:
ALcyFormat#createFormatBarFactory()
.
TLcyFormatBarAddOn
to create ALcyFormatBar
instances.
com.luciad.util.height.ILcdModelHeightProviderFactory
:
ALcyFormat#createModelHeightProviderFactory()
.
ILcdModel
s in the view, by the
com.luciad.lucy.util.height.TLcyViewHeightProvider
and by
TLcyVerticalViewAddOn
.
com.luciad.util.height.ILcdLayerHeightProviderFactory
:
ALcyFormat#createLayerHeightProviderFactory()
.
com.luciad.lucy.model.ALcyDefaultModelDescriptorFactory
:
ALcyFormat#createDefaultModelDescriptorFactories()
.
TLcyFormatBarAddOn
and TLcyDrawingAddOn
to create a default model descriptor (and a matching model)
to for example start drawing on it.
com.luciad.model.ILcdModelReferenceDecoder
:
TLcyDefaultDecodersAddOn
).
The TLcyModelReferenceAddOn
also registers an ILcdModelReferenceDecoder
which features a GUI allowing the user to choose the ILcdModelReference
.
ILcdModelReferenceDecoder
registered by the TLcyModelReferenceAddOn
is
for example used when a creating a new drawing layer with a custom model reference..
com.luciad.lucy.realtime.ILcySimulatorModelFactory
:
TLcyPreviewAddOn
to create preview layers
for ILcdModel
s.
javax.swing.event.HyperlinkListener
:
TLcyHyperlinkAddOn
.TLcyKML22AddOn
to resolve hyperlinks in KML balloons.com.luciad.view.swing.ILcdBalloonContentProvider
:
ALcyFormat#createBalloonContentProviders()
.TLcyKML22AddOn
to generate balloons for objects of its domain model.
com.luciad.io.ILcdInputStreamFactory
:
ALcyFormat
) using an ILcdModelDecoder
to load data.
com.luciad.io.ILcdOutputStreamFactory
:
ALcyFormat
) using an ILcdModelEncoder
to save data.
com.luciad.lucy.map.labeling.ILcyGXYLabelPlacementHintProvider
ALcyFormat#createLabelPlacementHintProvider()
.
ILcdGXYViewLabelPlacer
that is used to place labels.com.luciad.model.ILcdModelReferenceParser
TLcyModelReferenceAddOn
com.luciad.util.measure.ILcdModelMeasureProviderFactory
ALcyFormat#createModelMeasureProviderFactory()
.
com.luciad.util.measure.ILcdLayerMeasureProviderFactory
ALcyFormat#createLayerMeasureProviderFactory()
.
com.luciad.lucy.map.lightspeed.TLcyLspMapManager
TLcyLspMapAddOn
.TLcyMapManager
, and can be used by
everybody interested in the creation and removel of ILcyLspMapComponent
instances.
com.luciad.view.lightspeed.layer.ILspLayerFactory
ALcyLspFormat#createLayerFactory()
.ILspLayer
for an ILcdModel
when opening a data
source, e.g. through the File | Open
menu action.
com.luciad.lucy.map.TLcyLayerStyleCodecHolder
:
ALcyLspFormat#createLayerStyleCodecs()
and the section about the holder objects.
com.luciad.lucy.map.lightspeed.ALcyLspStyleRepository
:
TLcyLspStyleRepositoryAddOn
.com.luciad.lucy.map.cameralinking.ALcyCameraLinkerFactory
:
TLcyLspCameraLinkAddOn
.TLcyLspCameraLinkAddOn
, to create new tracking camera links which link
tracking cameras to a set of objects.
com.luciad.format.s52.TLcdS52DisplaySettings
:
TLcyS57DecoderAddOn
.com.luciad.lucy.map.TLcyGenericMapManager
TLcyCombinedMapManager
, or by asking a specific instance
directly (e.g. getService(TLcyLspMapManager.class)
.
com.luciad.ogc.ows.model.ILcdOWSTransport
ILcdOWSTransport
to communicate with the server. Plugging in your own instance allows you to for example provide
hardcoded credentials for a certain server.
com.luciad.fusion.core.ALfnEnvironment
TLcyFusionCoreAddOn#createFusionEnvironment()
.
com.luciad.fusion.client.TLfnClientFactory
TLcyFusionClientAddOn#createFusionClientFactory()
.
com.luciad.fusion.client.ALfnClientEnvironment
TLcyFusionClientAddOn#createFusionClientEnvironment()
.
com.luciad.fusion.tilestore.TLfnTileStoreProvider
TLcyFusionClientAddOn#createTileStoreProvider()
.
com.luciad.lucy.addons.tea.lineofsight.TLcyLOSManager
TLcyLOSAddOn
.com.luciad.lucy.addons.tea.shapevisibility.TLcyShapeVisibilityManager
TLcyShapeVisibilityAddOn
.Some of the service objects are associated to other objects. In order to maintain this association, those objects are registered to the back-end grouped into one so called 'holder object'. The table below lists the default holder objects and what they contain.
Note that the holder objects are public classes, so it is possible to register your own holder instance directly at the back-end. They will be picked up and used by Lucy.
Holder object | Contains |
---|---|
com.luciad.lucy.model.TLcyDataSourceHandlerHolder |
|
com.luciad.lucy.map.TLcyGXYLayerDecoderHolder |
|
com.luciad.lucy.map.TLcyGXYLayerEncoderHolder |
|
com.luciad.lucy.model.TLcyModelDecoderHolder |
|
com.luciad.lucy.model.TLcyModelEncoderHolder |
|
com.luciad.lucy.map.TLcyLayerStyleCodecHolder |
|
For almost all service objects which are registered by default, there exists a composite implementation working on those registered service objects (see the Lucy developer guide for an in-depth explanation of those composite implementations). The available implementations are listed below:
Service object | Composite implementation |
---|---|
com.luciad.lucy.model.ILcyModelContentTypeProvider | com.luciad.lucy.model.TLcyCompositeModelContentTypeProvider |
com.luciad.model.ILcdModelFactory | com.luciad.lucy.model.TLcyCompositeModelFactory |
com.luciad.lucy.model.TLcyModelDecoderHolder | com.luciad.lucy.model.TLcyCompositeModelDecoder |
com.luciad.lucy.model.TLcyModelEncoderHolder | com.luciad.lucy.model.TLcyCompositeModelEncoder |
com.luciad.lucy.gui.customizer.ILcyCustomizerPanelFactory | com.luciad.lucy.gui.customizer.TLcyCompositeCustomizerPanelFactory |
com.luciad.lucy.model.TLcyDataSourceHandlerHolder | com.luciad.lucy.model.TLcyCompositeDataSourceHandler |
com.luciad.lucy.map.ILcyGXYLayerTypeProvider | com.luciad.lucy.map.TLcyCompositeGXYLayerTypeProvider |
com.luciad.lucy.map.TLcyGXYLayerDecoderHolder | com.luciad.lucy.map.TLcyCompositeGXYLayerDecoder |
com.luciad.lucy.map.TLcyGXYLayerEncoderHolder | com.luciad.lucy.map.TLcyCompositeGXYLayerEncoder |
com.luciad.lucy.map.asynchronous.ILcyAsynchronousPaintHintProvider | com.luciad.lucy.map.asynchronous.TLcyCompositeAsynchronousPaintHintProvider |
com.luciad.lucy.datatransfer.ALcyLayerSelectionTransferHandler | com.luciad.lucy.datatransfer.TLcyCompositeLayerSelectionTransferHandler |
com.luciad.view.gxy.ILcdGXYLayerFactory | com.luciad.lucy.map.TLcyCompositeGXYLayerFactory |
com.luciad.lucy.map.ILcyLayerStyleProvider | com.luciad.lucy.map.TLcyCompositeLayerStyleProvider |
com.luciad.lucy.gui.formatbar.ALcyFormatBarFactory | com.luciad.lucy.gui.formatbar.TLcyCompositeFormatBarFactory |
com.luciad.util.height.ILcdModelHeightProviderFactory | com.luciad.lucy.util.height.TLcyCompositeModelHeightProviderFactory |
com.luciad.model.ILcdModelReferenceDecoder | com.luciad.lucy.model.TLcyCompositeModelReferenceDecoder |
com.luciad.lucy.realtime.ILcySimulatorModelFactory | com.luciad.lucy.realtime.TLcyCompositeSimulatorModelFactory |
javax.swing.event.HyperlinkListener | com.luciad.lucy.util.hyperlink.TLcyCompositeHyperlinkListener |
com.luciad.view.swing.ILcdBalloonContentProvider | com.luciad.lucy.gui.balloon.TLcyCompositeBalloonContentProvider |
com.luciad.io.ILcdInputStreamFactory | com.luciad.lucy.io.TLcyCompositeInputStreamFactory |
com.luciad.io.ILcdOutputStreamFactory | com.luciad.lucy.io.TLcyCompositeOutputStreamFactory |
com.luciad.lucy.map.labeling.ILcyGXYLabelPlacementHintProvider | com.luciad.lucy.map.labeling.TLcyGXYCompositeLabelPlacementHintProvider |
com.luciad.model.ILcdModelReferenceParser | com.luciad.lucy.model.TLcyCompositeModelReferenceParser |
com.luciad.util.measure.ILcdModelMeasureProviderFactory | com.luciad.lucy.util.measure.TLcyCompositeModelMeasureProviderFactory |
com.luciad.util.measure.ILcdLayerMeasureProviderFactory | com.luciad.lucy.util.measure.TLcyCompositeLayerMeasureProviderFactory |
com.luciad.view.lightspeed.layer.ILspLayerFactory | com.luciad.lucy.map.lightspeed.TLcyLspCompositeLayerFactory |
com.luciad.lucy.map.TLcyLayerStyleCodecHolder | com.luciad.lucy.map.TLcyCompositeLayerStyleCodec |
com.luciad.lucy.map.cameralinking.ALcyCameraLinkerFactory | com.luciad.lucy.map.cameralinking.TLcyCompositeCameraLinkerFactory |
com.luciad.ogc.ows.model.ILcdOWSTransport | com.luciad.lucy.io.TLcyCompositeOWSTransport |