Class TLcdBingMapsLogoIcon

java.lang.Object
com.luciad.format.bingmaps.copyright.TLcdBingMapsLogoIcon
All Implemented Interfaces:
ILcdIcon, ILcdChangeSource, ILcdCloneable, Serializable, Cloneable

public final class TLcdBingMapsLogoIcon extends Object implements ILcdIcon, ILcdChangeSource
Icon representing the Bing Maps logo when there are visible Bing Map layers in the view. Depending on the Bing Maps terms of use, it may be required to display the logo of the displayed content.

Usually the icon is displayed in conjunction with the copyright information (see TLcdBingMapsCopyrightIcon).

Example

Adding the logo and copyright icon to the overlay panel of a Swing/AWT view:
    //The Bing Maps terms of use require to display the icon and copyright information on the map
    //Here we add them to the overlay component of an ILspAWTView
    TLcdBingMapsLogoIcon logoIcon = new TLcdBingMapsLogoIcon(view);
    view.getOverlayComponent().add(logoIcon.asComponent(), TLcdOverlayLayout.Location.NORTH_WEST);

    TLspBingMapsCopyrightIcon copyrightIcon = new TLspBingMapsCopyrightIcon(view);
    copyrightIcon.setAlignment(ELcdHorizontalAlignment.RIGHT);
    view.getOverlayComponent().add(copyrightIcon.asComponent(), TLcdOverlayLayout.Location.NORTH_WEST);

Adding the logo and copyright icon to the overlay panel of an FX view:

    TLcdBingMapsLogoIcon logoIcon = new TLcdBingMapsLogoIcon(view);
    Node logoNode = new TLcdFXIcon(logoIcon);

    TLspBingMapsCopyrightIcon copyrightIcon = new TLspBingMapsCopyrightIcon(view);
    Node copyrightNode = new TLcdFXIcon(copyrightIcon);

    FXUtil.findOverlayPane(view).ifPresent(overlayPane -> {
      HBox box = new HBox(logoNode, copyrightNode);
      overlayPane.add(box, TLcdOverlayPane.Location.SOUTH_WEST);
    });
Since:
2019.0
See Also:
  • Constructor Details

    • TLcdBingMapsLogoIcon

      public TLcdBingMapsLogoIcon(ILcdTreeLayered aView)
      Create a new icon showing the Bing Maps logo when the view contains visible Bing Map layers.
      Parameters:
      aView - The view
  • Method Details

    • paintIcon

      public void paintIcon(Component aComponent, Graphics aGraphics, int aX, int aY)
      Description copied from interface: ILcdIcon
      Draw the ILcdIcon at the specified location. ILcdIcon implementations may use the Component argument to get properties useful for painting, e.g. the foreground or background color.
      Specified by:
      paintIcon in interface ILcdIcon
      Parameters:
      aComponent - a Component to retrieve properties from.
      aGraphics - the Graphics on which the icon will be painted.
      aX - the x position where the icon will be painted. x is the first coordinate of the top left corner point of the icon.
      aY - the y position where the icon will be painted. y is the second coordinate of the top left corner point of the icon.
    • getIconWidth

      public int getIconWidth()
      Description copied from interface: ILcdIcon
      Returns the fixed width of the icon.
      Specified by:
      getIconWidth in interface ILcdIcon
      Returns:
      the fixed width of the icon.
    • getIconHeight

      public int getIconHeight()
      Description copied from interface: ILcdIcon
      Returns the fixed height of the icon.
      Specified by:
      getIconHeight in interface ILcdIcon
      Returns:
      the fixed height of the icon.
    • addChangeListener

      public void addChangeListener(ILcdChangeListener aListener)
      Description copied from interface: ILcdChangeSource

      Registers the given listener so it will receive change events from this source.

      In case you need to register a listener which keeps a reference to an object with a shorter life-time than this change source, you can use a ALcdWeakChangeListener instance as change listener.

      Specified by:
      addChangeListener in interface ILcdChangeSource
      Parameters:
      aListener - The listener to be notified when a change has happened.
      See Also:
    • removeChangeListener

      public void removeChangeListener(ILcdChangeListener aListener)
      Description copied from interface: ILcdChangeSource
      Removes the specified listener so it is no longer notified.
      Specified by:
      removeChangeListener in interface ILcdChangeSource
      Parameters:
      aListener - The listener to remove.
    • asComponent

      public JComponent asComponent()

      Returns a JComponent representing this icon which can be added to a Swing container. The component will repaint itself each time the logo is updated. Typically this component is added to the overlay panel of the view.

      Example usage:

          //The Bing Maps terms of use require to display the icon and copyright information on the map
          //Here we add them to the overlay component of an ILspAWTView
          TLcdBingMapsLogoIcon logoIcon = new TLcdBingMapsLogoIcon(view);
          view.getOverlayComponent().add(logoIcon.asComponent(), TLcdOverlayLayout.Location.NORTH_WEST);
      
          TLspBingMapsCopyrightIcon copyrightIcon = new TLspBingMapsCopyrightIcon(view);
          copyrightIcon.setAlignment(ELcdHorizontalAlignment.RIGHT);
          view.getOverlayComponent().add(copyrightIcon.asComponent(), TLcdOverlayLayout.Location.NORTH_WEST);
      
      Returns:
      a JComponent representing this icon
    • clone

      public Object clone()
      Description copied from interface: ILcdCloneable

      Makes Object.clone() public.

      When for example extending from java.lang.Object, it can be implemented like this:
      
       public Object clone() {
         try {
           return super.clone();
         } catch ( CloneNotSupportedException e ) {
           // Cannot happen: extends from Object and implements Cloneable (see also Object.clone)
           throw new RuntimeException( e );
         }
       }
       
      Specified by:
      clone in interface ILcdCloneable
      Overrides:
      clone in class Object
      See Also: