Class TLcyViewshedGUIFactory

java.lang.Object
com.luciad.lucy.gui.ALcyGUIFactory<Component>
com.luciad.lucy.addons.tea.viewshed.TLcyViewshedGUIFactory

public class TLcyViewshedGUIFactory extends ALcyGUIFactory<Component>
Determines the GUI elements to add to the viewshed application pane. The GUI elements can read and write their run-time state from the properties that the factory has been initialized with.

Each GUI element can be replaced by overriding the respective create* method to return a custom element for the respective GUI ID. For example, to change the functionality of the layer update action, override the createAction(int, com.luciad.lucy.util.properties.ALcyProperties) method to return a custom action for the UPDATE_LAYER_ACTION ID.

Similarly, one can override the createGUIContent method to produce a customized layout for the GUI elements.

Since:
11.0
See Also:
  • Field Details

    • CREATE_LAYER_ACTION

      public static final int CREATE_LAYER_ACTION
      The id for creating the action that creates a new layer.
      See Also:
    • UPDATE_LAYER_ACTION

      public static final int UPDATE_LAYER_ACTION
      The id for creating the action the updates the active layer.
      See Also:
    • VIEWSHED_SETTINGS_PANEL

      public static final int VIEWSHED_SETTINGS_PANEL
      The id for creating the viewshed settings panel. It allows to choose the viewshed settings.
      See Also:
    • STYLE_PANEL

      public static final int STYLE_PANEL
      The id for creating the style panel. It allows to choose the style settings.
      See Also:
    • ACTION_PANEL

      public static final int ACTION_PANEL
      The id for creating the action panel. It shows the action components.
      See Also:
    • OPTIONS_PANEL

      public static final int OPTIONS_PANEL
      The id for the options panel. It shows the terrain sampling quality slider and the target offset height.
      See Also:
    • AREA_BOUNDS_LIST_PANEL

      public static final int AREA_BOUNDS_LIST_PANEL
      The id for the panel that contains the viewshed area list.
      See Also:
    • VIEWSHED_SETTINGS_PANEL_EYEPOINT_LIST_COMPONENT

      public static final int VIEWSHED_SETTINGS_PANEL_EYEPOINT_LIST_COMPONENT
      The id of the component that contains a list of eyepoints used in the viewshed calculations.
      See Also:
    • AREA_BOUNDS_LIST_COMPONENT

      public static final int AREA_BOUNDS_LIST_COMPONENT
      The id of the component that contains a list of area bounds used in the viewshed calculations
      See Also:
    • VIEWSHED_PANEL_SETTINGS_COMPONENT

      public static final int VIEWSHED_PANEL_SETTINGS_COMPONENT
      The id of the component that contains a list of settings for the currently selected eyepoint, such as altitude type, start arc, arc length, location and so on...
      See Also:
    • STYLE_PANEL_COLOR_MAP_COMPONENT

      public static final int STYLE_PANEL_COLOR_MAP_COMPONENT
      The id of the color map component used by the viewshed.
      See Also:
    • ACTION_PANEL_CREATE_LAYER_COMPONENT

      public static final int ACTION_PANEL_CREATE_LAYER_COMPONENT
      Part of ACTION_PANEL that shows the create layer button. It uses the CREATE_LAYER_ACTION to create that button.
      See Also:
    • ACTION_PANEL_UPDATE_LAYER_COMPONENT

      public static final int ACTION_PANEL_UPDATE_LAYER_COMPONENT
      Part of ACTION_PANEL that shows the update layer button. It uses the UPDATE_LAYER_ACTION to create that button.
      See Also:
    • ACTION_PANEL_AUTO_UPDATE_COMPONENT

      public static final int ACTION_PANEL_AUTO_UPDATE_COMPONENT
      Part of ACTION_PANEL that shows the auto-update component. It uses the UPDATE_LAYER_ACTION to create that component.
      See Also:
    • TERRAIN_CURRENT_QUALITY_COMPONENT

      public static final int TERRAIN_CURRENT_QUALITY_COMPONENT
      The id of the component that displays a label for the
      See Also:
    • TERRAIN_QUALITY_COMPONENT

      public static final int TERRAIN_QUALITY_COMPONENT
      The id of the component that represents a slider to adjust the terrain sampling quality.
      See Also:
    • VIEWSHED_FIXED_HEIGHT_OFFSET_COMPONENT

      public static final int VIEWSHED_FIXED_HEIGHT_OFFSET_COMPONENT
      The id of the component that is used to determine a fixed height offset to sample the viewshed raster on.
      See Also:
  • Constructor Details

    • TLcyViewshedGUIFactory

      public TLcyViewshedGUIFactory(ILcyLucyEnv aLucyEnv)
      Default constructor that builds all actions, component and panels.
      Parameters:
      aLucyEnv - the Lucy environment in which the GUI will be built
  • Method Details

    • createGUIContent

      protected Component createGUIContent(ALcyProperties aProperties)

      Retrieves all panels and lays them out in a java.awt.Component. Therefore, this method uses ALcyGUIFactory.getPanel(int) with all ID's that end in PANEL, and lays out those components in for example a javax.swing.JPanel.

      This function should be overridden when the global layout of the panel needs to be changed, for example when the main panels need to be rearranged, or when a new panel needs to be added.

      An example implementation could be:

      
       public Component createGUIContent( ALcyProperties aProperties ) {
         JPanel content = new JPanel( new BorderLayout() );
      
         Component somePanel = getPanel( SOME_PANEL );
         if ( somePanel != null ) content.add( somePanel, BorderLayout.NORTH );
      
         Component otherPanel = getPanel( OTHER_PANEL );
         if ( otherPanel != null ) content.add( otherPanel, BorderLayout.CENTER );
      
         return content;
        }
       

      Specified by:
      createGUIContent in class ALcyGUIFactory<Component>
      Parameters:
      aProperties - properties that define the default preferences and values of the GUI elements. The properties are also changed by the GUI elements, according to the property names defined in TLcyViewshedAddOn.
      Returns:
      the component containing all panels, layed out appropriately.
    • createAction

      protected ILcdAction createAction(int aID, ALcyProperties aProperties)
      Description copied from class: ALcyGUIFactory

      Creates an ILcdAction for the given ID.

      Note: if the action should be inserted in the configured action bars, the ID_KEY of the returned action must be set (see TLcyActionBarUtil.ID_KEY).

      Specified by:
      createAction in class ALcyGUIFactory<Component>
      Parameters:
      aID - the ID describing which action to create. This is normally a constant that ends with ACTION.
      aProperties - a properties object that can be used to tune the behavior of this factory.
      Returns:
      the newly created ILcdAction, or null.
      See Also:
    • createActiveSettable

      protected ILcyActiveSettable createActiveSettable(int aActiveSettableID, ALcyProperties aProperties)
      Description copied from class: ALcyGUIFactory

      Creates an ILcyActiveSettable for the given ID.

      Note: if the active settable should be inserted in the configured action bars, the ID_KEY of the returned active settable must be set (see TLcyActionBarUtil.ID_KEY).

      Specified by:
      createActiveSettable in class ALcyGUIFactory<Component>
      Parameters:
      aActiveSettableID - the ID describing which active settable to create. This is normally a constant that ends with ACTIVE_SETTABLE.
      aProperties - a properties object that can be used to tune the behavior of this factory.
      Returns:
      the newly created ILcyActiveSettable, or null.
    • createComponent

      protected Component createComponent(int aID, ALcyProperties aProperties)
      Description copied from class: ALcyGUIFactory

      Creates a widget for the given ID. It is safe to use the ALcyGUIFactory.getAction(int) and ALcyGUIFactory.getActiveSettable(int) methods in this method, to build widgets that use an action or active settable.

      These widgets might interact with the given properties object, to retrieve or store some state. Such a widget could for example be a check box whose 'selected' state is synchronized with some property.

      Specified by:
      createComponent in class ALcyGUIFactory<Component>
      Parameters:
      aID - the ID describing which component to create. This is normally a constant that ends with COMPONENT.
      aProperties - a properties object that can be used to tune the behavior of this factory. state.
      Returns:
      the newly created java.awt.Component, or null.
    • createPanel

      protected Component createPanel(int aID, ALcyProperties aProperties)
      Description copied from class: ALcyGUIFactory

      Creates a panel for the given ID. It is safe to use ALcyGUIFactory.getComponent(int) in this method, to build panels that are composed of components.

      An example implementation could be:

      
       protected Component createPanel( int aPanelID, ALcyProperties aProperties ) {
         if ( aPanelID == SOME_PANEL ) {
           JPanel content = new JPanel( new BorderLayout() );
      
           Component someComponent = getComponent( SOME_COMPONENT );
           if ( someComponent != null ) content.add( someComponent, BorderLayout.NORTH );
      
           Component otherComponent = getComponent( OTHER_COMPONENT );
           if ( otherComponent != null ) content.add( otherComponent, BorderLayout.CENTER );
      
           return content;
         }
         else if ( aPanelID == ... ) {
           ...
         }
       }
       

      Specified by:
      createPanel in class ALcyGUIFactory<Component>
      Parameters:
      aID - the ID describing which panel to create. This is normally a constant that ends with PANEL.
      aProperties - a properties object that can be used to tune the behavior of this factory.
      Returns:
      the newly created java.awt.Component, or null.