Class TLcyGXYCompositeLabelPlacementHintProvider
- All Implemented Interfaces:
ILcyGXYLabelPlacementHintProvider,Iterable<ILcyGXYLabelPlacementHintProvider>
ILcyGXYLabelPlacementHintProvider according to the composite
design pattern.
When creating a new TLcyCompositeLabelPlacementHintProvider using the default
constructor (see TLcyGXYCompositeLabelPlacementHintProvider()), the created instance will
only work on/with the ILcyGXYLabelPlacementHintProviders registered on this composite
instance (see addLabelPlacementHintProvider(com.luciad.lucy.map.labeling.ILcyGXYLabelPlacementHintProvider) and removeLabelPlacementHintProvider(com.luciad.lucy.map.labeling.ILcyGXYLabelPlacementHintProvider).
When creating a new TLcyCompositeLabelPlacementHintProvider using the constructor
specifying an ILcyLucyEnv instance (see TLcyGXYCompositeLabelPlacementHintProvider(ILcyLucyEnv),
the created instance will work on the Lucy back-end
services. It will use all registered ILcyGXYLabelPlacementHintProvider instances of the
Lucy back-end, adding and/or removing an ILcyLabelPlacementHintProvider will
add/remove the ILcyLabelPlacementHintProvider as service from Lucy, ... .
Creating a TLcyGXYLabelPlacementHint using the back-end based implementation can be done by
creating a new instance of this class:
//Create a new instance whenever you need it.
TLcyGXYCompositeLabelPlacementHintProvider provider = new TLcyGXYCompositeLabelPlacementHintProvider(aLucyEnv);
TLcyGXYLabelPlacementHint hint = provider.getLabelPlacementHint(aLayer);
// There is no need to keep a reference to the composite instance, you can create a new one
// the next time you would need it
provider = null;
- Since:
- 10.1
-
Field Summary
Fields inherited from class com.luciad.lucy.util.TLcyGenericComposite
PRIORITY_DEFAULT, PRIORITY_FALLBACK -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.Construct aTLcyCompositeLabelPlacementHintProviderworking on the Lucy back-end. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddLabelPlacementHintProvider(ILcyGXYLabelPlacementHintProvider aLabelPlacementHintProvider) Adds the givenILcyLabelPlacementHintProviderto the list of registered label placement hint providers.getLabelPlacementHint(ILcdGXYLayer aGXYLayer) Returns a label placement hint for the specified layer.getLabelPlacementHintProvider(int aIndex) Returns theILcyLabelPlacementHintProviderat indexaIndex.intReturns the number of registeredILcyLabelPlacementHintProviderinstances.voidremoveLabelPlacementHintProvider(ILcyGXYLabelPlacementHintProvider aLabelPlacementHintProvider) Removes the givenILcyLabelPlacementHintProviderfrom the list of registered label placement hint providers.Methods inherited from class com.luciad.lucy.util.TLcyGenericComposite
add, add, getList, getPriority, iterator, removeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
TLcyGXYCompositeLabelPlacementHintProvider
public TLcyGXYCompositeLabelPlacementHintProvider()Default constructor.The created instance will only work on the
ILcyLabelPlacementHintProviderinstances registered to it. If you want to use all registeredILcyLabelPlacementHintProviderinstances of the Lucy back-end, useTLcyGXYCompositeLabelPlacementHintProvider(ILcyLucyEnv)instead.- See Also:
-
TLcyGXYCompositeLabelPlacementHintProvider
Construct aTLcyCompositeLabelPlacementHintProviderworking on the Lucy back-end.It will use all
ILcyLabelPlacementHintProviderinstances registered to the back-end, and adding and/or removingILcyLabelPlacementHintProviders to/from thisTLcyCompositeLabelPlacementHintProviderwill respectively add/remove it as service from the back-end.If you want to create a
TLcyCompositeLabelPlacementHintProviderwhich does not use the back-end, useTLcyGXYCompositeLabelPlacementHintProvider()instead.- Parameters:
aLucyEnv- The Lucy back-end.- See Also:
-
-
Method Details
-
addLabelPlacementHintProvider
public void addLabelPlacementHintProvider(ILcyGXYLabelPlacementHintProvider aLabelPlacementHintProvider) Adds the givenILcyLabelPlacementHintProviderto the list of registered label placement hint providers.If the constructor specifying an
ILcyLucyEnvis used, theILcyLabelPlacementHintProviderwill be registered as a service on the Lucy back-end (seeILcyLucyEnv.addService(Object, int)). When callingILcyLucyEnv.getServices(Class)afterwards,aLabelPlacementHintProviderwill only be included in the returned list when the requested class wasILcyLabelPlacementHintProvider.class.Note: if you want to remove the registered
ILcyLabelPlacementHintProviderafterwards, useremoveLabelPlacementHintProvider(ILcyGXYLabelPlacementHintProvider)and notILcyLucyEnv.removeService(Object).- Parameters:
aLabelPlacementHintProvider- The label placement hint provider to add. Must not benull.- See Also:
-
removeLabelPlacementHintProvider
public void removeLabelPlacementHintProvider(ILcyGXYLabelPlacementHintProvider aLabelPlacementHintProvider) Removes the givenILcyLabelPlacementHintProviderfrom the list of registered label placement hint providers. Nothing will happen if the given factory was never added before.If the constructor specifying an
ILcyLucyEnvis used, theILcyLabelPlacementHintProviderwill be removed as service from the Lucy back-end (seeILcyLucyEnv.removeService(Object)).Note: it is only possible to remove
ILcyLabelPlacementHintProviderinstances which were registered using theaddLabelPlacementHintProvider(ILcyGXYLabelPlacementHintProvider)method.- Parameters:
aLabelPlacementHintProvider- The label placement hint provider to remove. Must not benull.- See Also:
-
getLabelPlacementHint
Description copied from interface:ILcyGXYLabelPlacementHintProviderReturns a label placement hint for the specified layer. If a label placement hint provider cannot determine a label placement hint for the specified layer,nullshould be returned.- Specified by:
getLabelPlacementHintin interfaceILcyGXYLabelPlacementHintProvider- Parameters:
aGXYLayer- the layer for which we wish to retrieve a label placement hint.- Returns:
- an label placement hint if the provider knows it,
nullotherwise. - See Also:
-
getLabelPlacementHintProviderCount
public int getLabelPlacementHintProviderCount()Returns the number of registeredILcyLabelPlacementHintProviderinstances.- Returns:
- the number of registered
ILcyLabelPlacementHintProviderinstances.
-
getLabelPlacementHintProvider
Returns the
ILcyLabelPlacementHintProviderat indexaIndex.- Parameters:
aIndex- The index: 0 <= aIndex <getLabelPlacementHintProviderCount()- Returns:
- the
ILcyLabelPlacementHintProviderat indexaIndex.
-