Class TLcyLspStyleCustomizerPanelFactories

java.lang.Object
com.luciad.lucy.gui.customizer.lightspeed.TLcyLspStyleCustomizerPanelFactories

public final class TLcyLspStyleCustomizerPanelFactories extends Object

A factory class which creates all kinds of ILcyCustomizerPanelFactory instances, each capable of creating customizer panels which offer a user interface capable of adjusting a specific kind of style.
Note that before an ALspStyle is provided to a customizer panel it should be wrapped inside a TLspCustomizableStyle, which in turn should be wrapped in a TLcyLspCustomizableStyleContext. This way some additional information is provided to be used by the customizer panels created by the this class's factories.

All the factories can create customizer panels which can handle both a single compatible TLcyLspCustomizableStyleContext object or an array containing at least one compatible TLcyLspCustomizableStyleContext object. In case such an array is provided, all compatible TLcyLspCustomizableStyleContext instances will be affected by the customizer panels. All incompatible instances will be ignored.

This class can create customizer panel factories for the following ALspStyle types:

Since:
2012.0
  • Method Details

    • createLineStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createLineStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapped around a TLspCustomizableStyle containing a TLspLineStyle.

      The customizer panel create by this factory only supports TLspLineStyle.DashPattern instances where the stipple pattern is one of the predefined patterns in TLspLineStyle.DashPattern.

      Note that the panel accepts both a single instance of a valid TLcyLspCustomizableStyleContext as an array containing one or more valid TLcyLspCustomizableStyleContext instances.

      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for line styles.
    • createFillStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createFillStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapped around a TLspCustomizableStyle containing a TLspFillStyle.

      Note that the panel accepts both a single instance of a valid TLcyLspCustomizableStyleContext as an array containing one or more valid TLcyLspCustomizableStyleContext instances.

      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for fill styles.
    • createIconStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createIconStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapped aroundTLspCustomizableStyleableStyle containing a TLspIconStyle.

      Note that the panel accepts both a single instance of a valid TLcyLspCustomizableStyleContext as an array containing one or more valid TLcyLspCustomizableStyleContext instances.

      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for icon styles.
    • createTextStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createTextStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapped around a TLspCustomizableStyle containing a TLspTextStyle.

      Note that the panel accepts both a single instance of a valid TLcyLspCustomizableStyleContext as an array containing one or more valid TLcyLspCustomizableStyleContext instances.

      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for text styles.
    • createRasterStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createRasterStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapped around a TLspCustomizableStyle containing a TLspRasterStyle.

      Note that the panel accepts both a single instance of a valid TLcyLspCustomizableStyleContext as an array containing one or more valid TLcyLspCustomizableStyleContext instances.

      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for raster styles.
    • createLabelStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createLabelStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapped around a TLspCustomizableStyle containing a TLspLabelBoxStyle.

      Note that the panel accepts both a single instance of a valid TLcyLspCustomizableStyleContext as an array containing one or more valid TLcyLspCustomizableStyleContext instances.

      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for label styles.
    • createPinLineStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createPinLineStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapped around a TLspCustomizableStyle containing a TLspPinLineStyle.

      The customizer panel create by this factory only supports TLspLineStyle.DashPattern instances where the stipple pattern is one of the predefined patterns in TLspLineStyle.DashPattern.

      Note that the panel accepts both a single instance of a valid TLcyLspCustomizableStyleContext as an array containing one or more valid TLcyLspCustomizableStyleContext instances.

      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for pin line styles.
    • createDataObjectLabelTextProviderStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createDataObjectLabelTextProviderStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapped around a TLspCustomizableStyle containing a TLspDataObjectLabelTextProviderStyle.

      Note that the panel accepts both a single instance of a valid TLcyLspCustomizableStyleContext as an array containing one or more valid TLcyLspCustomizableStyleContext instances.

      Also note that in case of an array, all TLcyLspCustomizableStyleContext instances which contain a TLspDataObjectLabelTextProviderStyle and which contain layers with the same data model will be affected by the customizer panel created by this factory. If these multiple TLspDataObjectLabelTextProviderStyle contexts contain layers with different data models, no compatible ILcyCustomizerPanelFactory can be created.

      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for data object label text provider styles.
    • createImageProcessingStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createImageProcessingStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapped around a TLspCustomizableStyle containing a TLspImageProcessingStyle.

      The panel allows the user to manually perform band selection, or choose from a predefined set of band selection configurations for layers which are created by a TLcyLspRasterFormat.

      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      a customizer panel factory capable of creating customizer panels for very specific image processing styles.
      Since:
      2017.1
    • createDensityLineStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createDensityLineStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapped around a TLspCustomizableStyle containing a TLspDensityLineStyle.

      Note that the panel accepts both a single instance of a valid TLcyLspCustomizableStyleContext as an array containing one or more valid TLcyLspCustomizableStyleContext instances.

      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for density line styles.
      Since:
      2017.1
    • createDensityFillStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createDensityFillStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapped around a TLspCustomizableStyle containing a TLspDensityFillStyle.

      Note that the panel accepts both a single instance of a valid TLcyLspCustomizableStyleContext as an array containing one or more valid TLcyLspCustomizableStyleContext instances.

      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for density fill styles.
      Since:
      2017.1
    • createDensityPointStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createDensityPointStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapped around a TLspCustomizableStyle containing a TLspDensityPointStyle.

      Note that the panel accepts both a single instance of a valid TLcyLspCustomizableStyleContext as an array containing one or more valid TLcyLspCustomizableStyleContext instances.

      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for density point styles.
      Since:
      2017.1
    • createIndexColorModelStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createIndexColorModelStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapped around a TLspCustomizableStyle containing a TLspIndexColorModelStyle.

      Note that the panel accepts both a single instance of a valid TLcyLspCustomizableStyleContext as an array containing one or more valid TLcyLspCustomizableStyleContext instances.

      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for index color model styles.
      Since:
      2017.1
    • createParameterizedLineStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createParameterizedLineStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapper around a TLspCustomizableStyle containing a TLspParameterizedLineStyle.

      The panel does not work with arrays, only with single instances.

      Prerequisites

      Currently, the panel only supports two types of expressions for the color, and is only available for layers with a specific data model.

      Model requirements:

      Expression requirements:

      There are two types of expressions that are supported:
      • When the data model contains a color property, this color property can be used in an attribute expression.
        
               import static com.luciad.util.expression.TLcdExpressionFactory.*;
        
               //This expression will use the color present in the data model to style the domain object with
               TLcdDataProperty colorProperty = ...;
               ILcdExpression<Color> colorExpression = attribute(Color.class, colorProperty);
             
      • When the data model contains a numeric property, this numeric property can be used in combination with a color map to determine a color for each domain object, based on the value of the numeric property.
        
               import static com.luciad.util.expression.TLcdExpressionFactory.*;
        
               //This expression will use the numeric value of the property to determine a color based on a TLcdColorMap
               TLcdDataProperty numericProperty = ...;
               TLcdColorMap colorMap = ...;
               ILcdExpression<Color> colorExpression = mixmap(toFloat(attribute((Class<? extends Number>) numericProperty.getType().getInstanceClass(), aDataProperty)), colorMap);
             
      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for parameterized line styles.
      Since:
      2018.0
    • createParameterizedFillStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createParameterizedFillStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapper around a TLspCustomizableStyle containing a TLspParameterizedFillStyle.

      The panel does not work with arrays, only with single instances.

      Prerequisites

      Currently, the panel only supports two types of expressions for the color, and is only available for layers with a specific data model.

      Model requirements:

      Expression requirements:

      There are two types of expressions that are supported:
      • When the data model contains a color property, this color property can be used in an attribute expression.
        
               import static com.luciad.util.expression.TLcdExpressionFactory.*;
        
               //This expression will use the color present in the data model to style the domain object with
               TLcdDataProperty colorProperty = ...;
               ILcdExpression<Color> colorExpression = attribute(Color.class, colorProperty);
             
      • When the data model contains a numeric property, this numeric property can be used in combination with a color map to determine a color for each domain object, based on the value of the numeric property.
        
               import static com.luciad.util.expression.TLcdExpressionFactory.*;
        
               //This expression will use the numeric value of the property to determine a color based on a TLcdColorMap
               TLcdDataProperty numericProperty = ...;
               TLcdColorMap colorMap = ...;
               ILcdExpression<Color> colorExpression = mixmap(toFloat(attribute((Class<? extends Number>) numericProperty.getType().getInstanceClass(), aDataProperty)), colorMap);
             
      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for parameterized fill styles.
      Since:
      2018.0
    • createParameterizedIconStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createParameterizedIconStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapper around a TLspCustomizableStyle containing a TLspParameterizedIconStyle.

      The panel does not work with arrays, only with single instances.

      Prerequisites

      Currently, the panel only supports two types of expressions for the color, and is only available for layers with a specific data model.

      Model requirements:

      Expression requirements:

      There are two types of expressions that are supported:
      • When the data model contains a color property, this color property can be used in an attribute expression.
        
               import static com.luciad.util.expression.TLcdExpressionFactory.*;
        
               //This expression will use the color present in the data model to style the domain object with
               TLcdDataProperty colorProperty = ...;
               ILcdExpression<Color> colorExpression = attribute(Color.class, colorProperty);
             
      • When the data model contains a numeric property, this numeric property can be used in combination with a color map to determine a color for each domain object, based on the value of the numeric property.
        
               import static com.luciad.util.expression.TLcdExpressionFactory.*;
        
               //This expression will use the numeric value of the property to determine a color based on a TLcdColorMap
               TLcdDataProperty numericProperty = ...;
               TLcdColorMap colorMap = ...;
               ILcdExpression<Color> colorExpression = mixmap(toFloat(attribute((Class<? extends Number>) numericProperty.getType().getInstanceClass(), aDataProperty)), colorMap);
             
      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for parameterized icon styles.
      Since:
      2018.0
    • createPointCloudStyleCustomizerPanelFactory

      public static ILcyCustomizerPanelFactory createPointCloudStyleCustomizerPanelFactory(ILcyLucyEnv aLucyEnv)

      Create a new ILcyCustomizerPanelFactory which can create an ILcyCustomizerPanel for a TLcyLspCustomizableStyleContext wrapper around a TLspCustomizableStyle containing a TLspPointCloudStyle.

      The panel does not work with arrays, only with single instances.

      Prerequisites

      Currently, the panel only supports two types of expressions for the color and scale, and is only available for layers with a specific data model. The panel also supports adjusting the visibility of the objects for specific expressions.

      Model requirements:

      Color expression requirements (see TLspPointCloudStyle.getColor()):

      There are two types of expressions that are supported:
      • When the data model contains a color property, this color property can be used in an attribute expression.
        
               import static com.luciad.util.expression.TLcdExpressionFactory.*;
        
               //This expression will use the color present in the data model to style the domain object with
               TLcdDataProperty colorProperty = ...;
               ILcdExpression<Color> colorExpression = attribute(Color.class, colorProperty);
             
      • When the data model contains a numeric property, this numeric property can be used in combination with a color map to determine a color for each domain object, based on the value of the numeric property.
        
               import static com.luciad.util.expression.TLcdExpressionFactory.*;
        
               //This expression will use the numeric value of the property to determine a color based on a TLcdColorMap
               TLcdDataProperty numericProperty = ...;
               TLcdColorMap colorMap = ...;
               ILcdExpression<Color> colorExpression = mixmap(toFloat(attribute((Class<? extends Number>) numericProperty.getType().getInstanceClass(), aDataProperty)), colorMap);
             

      Scale expression requirements (see TLspPointCloudStyle.getScale())

      The only supported scale expression is a constant:
      
         import static com.luciad.util.expression.TLcdExpressionFactory.*;
      
         ILcdExpression<Float> scaleExpression = constant(0.5);
       

      Visibility expression requirements (see TLspPointCloudStyle.getVisibility())

      Adjusting the visibility is only supported for numeric properties. There are three types of visibility expressions that are supported for such properties:
      • Only define an upper limit:
        
               import static com.luciad.util.expression.TLcdExpressionFactory.*;
        
               //Only accept objects for which the property value is less than or equal to a certain value
               TLcdDataProperty numericProperty = ...;
               Number upperLimit = ...;
               ILcdExpression<Boolean> visibilityExpression =
                  lte(attribute((Class<? extends Number>) numericProperty.getType().getInstanceClass(), aDataProperty), upperLimit);
             
      • Only define a lower limit:
        
               import static com.luciad.util.expression.TLcdExpressionFactory.*;
        
               //Only accept objects for which the property value is greater than or equal to a certain value
               TLcdDataProperty numericProperty = ...;
               Number lowerLimit = ...;
               ILcdExpression<Boolean> visibilityExpression =
                  gte(attribute((Class<? extends Number>) numericProperty.getType().getInstanceClass(), aDataProperty), lowerLimit);
             
      • Define an upper and lower limit for the same property:
        
              import static com.luciad.util.expression.TLcdExpressionFactory.*;
        
              //Only accept objects for which the property value is between an upper and lower limit
              TLcdDataProperty numericProperty = ...;
              ILcdExpression<? extends Number> numericPropertyExpression =
                attribute((Class<? extends Number>) numericProperty.getType().getInstanceClass(), aDataProperty);
              Number lowerLimit = ...;
              Number upperLimit = ...;
              ILcdExpression<Boolean> visibilityExpression =
                 and(lte(numericPropertyExpression, upperLimit),
                     gte(numericPropertyExpression, lowerLimit));
            
      Parameters:
      aLucyEnv - The Lucy back-end
      Returns:
      A customizer panel factory capable of creating customizer panels for point cloud styles.
      Since:
      2018.0