Class TLcyLspDrawingAddOn


public class TLcyLspDrawingAddOn extends ALcyLspFormatAddOn

This add-on registers the Lightspeed related functionality of the TLcyDrawingAddOn. It creates a TLcyLspDrawingFormat which creates the necessary factories. This format can be modified by overriding the createBaseFormat() method.

Customizing the format bar

Through the configuration file

All the actions and active settables available in the format bar are configured through the configuration file of this add-on. This allows for the regular customizations:
  • Changing icons, names, tool tips, ...
  • Changing the location of the entries
  • Removing entries

Through the API

The API allows for more elaborate customizations. The actual contents of the format bar is created by an ALcyGUIFactory, which is exposed in TLcyLspDrawingFormat.createGUIFactory(). The default ALcyGUIFactory is the TLcyLspDrawingToolBarFactory, which can be extended as starting point for a custom implementation.

Replacing this GUI factory with a custom one (possibly extending from TLcyLspDrawingToolBarFactory) can be done by:


   @Override
   protected TLcyLspDrawingFormat createBaseFormat(){
     TLcyDrawingFormat gxyFormat = getLucyEnv().retrieveAddOnByClass(TLcyDrawingAddOn.class).getDrawingFormat();
     return new TLcyLspDrawingFormat(gxyFormat, getPreferences(), getLongPrefix(), getShortPrefix(), this){
       @Override
       protected ALcyGUIFactory<Component> createGUIFactory() {
         return new CustomGUIFactory();
       }
     }
   }
 

Note: The format bar factory provided by this add-on is only used for Lightspeed maps. The one for GXY maps is created in the TLcyDrawingAddOn.

Since:
2012.1
  • Constructor Details

    • TLcyLspDrawingAddOn

      public TLcyLspDrawingAddOn()
      Create a new TLcyLspDrawingAddOn.
  • Method Details

    • plugInto

      public void plugInto(ILcyLucyEnv aLucyEnv)
      Description copied from class: ALcyLspFormatAddOn
      Creates and plugs in the add-on's format and preferences tool.
      Overrides:
      plugInto in class ALcyLspFormatAddOn
      Parameters:
      aLucyEnv - the Lucy environment to plug into
      See Also:
    • createBaseFormat

      protected TLcyLspDrawingFormat createBaseFormat()
      Description copied from class: ALcyLspFormatAddOn

      Returns a new data format for this add-on. Override this method to extend the default format with new functionality.

      For example, to alter the icon of the layers of this format, you can decorate the layer factory created in the format:

      
       @Override
       protected ALcyLspFormat createBaseFormat() {
         return new ALcyLspFormatWrapper(super.createBaseFormat()){
           @Override
           protected ILspLayerFactory createLayerFactory(){
             final ILspLayerFactory delegate = super.createLayerFactory();
             return new ILspLayerFactory(){
               @Override
               public boolean canCreateLayers(ILcdModel aModel){
                 return delegate.canCreateLayers(aModel);
               }
      
               @Override
               public Collection<ILspLayer> createLayers(ILcdModel aModel){
                 Collection<ILspLayer> layers = delegate.createLayers(aModel);
                 for(ILspLayer layer : layers){
                   ILcdIcon icon = ...;
                   layer.setIcon(icon)
                 }
                 return layers;
               }
             }
           }
         }
       }
       
      Specified by:
      createBaseFormat in class ALcyLspFormatAddOn
      Returns:
      a new format for this add-on
    • createFormatWrapper

      protected final ALcyLspFormat createFormatWrapper(ALcyLspFormat aBaseFormat)
      Description copied from class: ALcyLspFormatAddOn

      Returns a new data format wrapper for this add-on. A format wrapper extends the base format with aspects such as safe guarding, etc.

      Overriding this method of an existing add-on should be done with extreme care as add-ons typically rely on the wrappers that should be present (e.g. a safe guard).

      Specified by:
      createFormatWrapper in class ALcyLspFormatAddOn
      Parameters:
      aBaseFormat - the base format to wrap
      Returns:
      a new format for this add-on
      See Also:
    • createPreferencesTool

      protected TLcyPreferencesTool createPreferencesTool()
      Description copied from class: ALcyPreferencesAddOn

      Creates the TLcyPreferencesTool to be used by this add-on. Overwriting this method for example allows to register additional ILcyPropertyConverters for (complex) custom properties, to make sure they are correctly decoded from the add-on's configuration file and/or saved to the workspace. Note that this isn't required for simple properties such as String, int, double, etc.

      The default implementation creates a new tool based on the ALcyAddOn.getConfigSourceName() and the add-on's prefixes.

      Overrides:
      createPreferencesTool in class ALcyPreferencesAddOn
      Returns:
      the created TLcyPreferencesTool.
    • getDrawingFormat

      public final TLcyLspDrawingFormat getDrawingFormat()
      Returns the TLcyLspDrawingFormat created in the createBaseFormat() method.
      Returns:
      the TLcyLspDrawingFormat created in the createBaseFormat() method
    • getDrawingAddOn

      public final TLcyDrawingAddOn getDrawingAddOn()
      Returns the GXY drawing add-on
      Returns:
      the GXY drawing add-on
    • getDrawingSettingsForMap

      public TLcyLspDrawingSettings getDrawingSettingsForMap(ILcdView aView)
      Method to retrieve the drawing settings for a certain view.
      Parameters:
      aView - the view for which the drawing settings must be retrieved
      Returns:
      the drawing settings for the view aView