Class TLcyPopupMenu

java.lang.Object
com.luciad.lucy.gui.ALcyActionBar
com.luciad.lucy.gui.TLcyPopupMenu
All Implemented Interfaces:
ILcyActionBar, ILcyPopupMenu

public class TLcyPopupMenu extends ALcyActionBar implements ILcyPopupMenu
Extension of ALcyActionBarSW that represents a popup menu. Creates JMenuItems, JCheckBoxMenuItem or JRadioButtonMenuItem to represent the ILcdActions or ILcyActiveSettables. Creates JMenus for the submenus. Uses default menu bar separators.

Uses the name of the actions or active settables as the button text. The short description is used as a tool tip.

  • Constructor Details

    • TLcyPopupMenu

      public TLcyPopupMenu()
      Creates a new TLcyPopupMenu, ready to be used.
    • TLcyPopupMenu

      public TLcyPopupMenu(ALcyHelpManager aHelpManager)
      Creates a new TLcyPopupMenu, ready to be used.
      Parameters:
      aHelpManager - The help manager.
    • TLcyPopupMenu

      public TLcyPopupMenu(JPopupMenu aPopupMenu)
      Creates a new TLcyPopupMenu, ready to be used.
      Parameters:
      aPopupMenu - The (empty) JPopupMenu to which the menu items will be added.
    • TLcyPopupMenu

      public TLcyPopupMenu(ALcyHelpManager aHelpManager, JPopupMenu aPopupMenu)
      Creates a new TLcyPopupMenu, ready to be used.
      Parameters:
      aHelpManager - The help manager.
      aPopupMenu - The (empty) JPopupMenu to which the menu items will be added.
  • Method Details

    • getComponent

      public Component getComponent()
      Description copied from interface: ILcyActionBar

      Returns the visual component representing this action bar, so that it can be added to the application UI.

      Components should not be added to it or removed from it directly using Swing. Use the various insert methods instead.

      Specified by:
      getComponent in interface ILcyActionBar
      Returns:
      the visual component representing this action bar.
    • show

      public void show(Component aInvoker, int aX, int aY)
      Description copied from interface: ILcyPopupMenu
      Displays the popup menu at the position (x,y) in the coordinate space of the invoker.
      Specified by:
      show in interface ILcyPopupMenu
      Parameters:
      aInvoker - the component in whose space the popup menu will appear.
      aX - the x coordinate.
      aY - the y coordinate.
    • getChildren

      protected Component[] getChildren(Container aParent)
      Description copied from class: ALcyActionBar
      Returns all children of a given parent, including separators etc.

      This implementation returns aParent.getComponents(), but subclasses using for instance JMenus should be aware that they should return ( ( JMenu ) aParent ).getMenuComponents() when the given parent is a JMenu.

      Overrides:
      getChildren in class ALcyActionBar
      Parameters:
      aParent - The parent to retrieve the children from.
      Returns:
      An array containing all children of the given parent.
    • getParent

      protected Container getParent(Component aComponent)
      Description copied from class: ALcyActionBar
      Returns the parent of a given component.

      This implementation returns aComponent.getParent(), but subclasses using for instance JPopupMenus (these are used for example by JMenus) must return ( ( JPopupMenu ) aComponent ).getInvoker() when the given component is a JPopupMenu.

      Overrides:
      getParent in class ALcyActionBar
      Parameters:
      aComponent - The component to retrieve the parent for.
      Returns:
      The parent of the given component, or null.
    • insertSeparator

      protected void insertSeparator(int aIndex, Container aContainerSFCT)
      Description copied from class: ALcyActionBar
      Inserts a separator at the given index into the given component.

      Implementation can be left empty, but if and only if implementation of ALcyActionBar.removeSeparator(int, java.awt.Container) is left empty as well.

      Specified by:
      insertSeparator in class ALcyActionBar
      Parameters:
      aIndex - The index of where to insert the separator. -1 means insert it at the end.
      aContainerSFCT - The container to insert the separator into.
    • removeSeparator

      protected void removeSeparator(int aIndex, Container aContainerSFCT)
      Description copied from class: ALcyActionBar
      Removes the separator at the given index from the given component.

      Implementation can be left empty, but if and only if implementation of ALcyActionBar.insertSeparator(int, java.awt.Container) is left empty as well.

      Specified by:
      removeSeparator in class ALcyActionBar
      Parameters:
      aIndex - The index where to remove the separator from the given component.
      aContainerSFCT - The container to remove the separator from.
    • createItem

      protected Component createItem(ILcdAction aAction, TLcyGroupDescriptor aGroupDescriptor, String[] aMenus, TLcyGroupDescriptor[] aMenuGroupDescriptors)
      Description copied from class: ALcyActionBar
      Creates a gui widget to represent the given action. E.g. a menu bar could create a JMenuItem to represent the given action. A toolbar could create a JButton to represent the given action.
      Specified by:
      createItem in class ALcyActionBar
      Parameters:
      aAction - The action to create a gui widget for.
      aGroupDescriptor - The group descriptor, for information only.
      aMenus - The menus, for information only.
      aMenuGroupDescriptors - The menu group descriptors, for information only.
      Returns:
      The created gui widget.
    • createItem

      protected Component createItem(ILcyActiveSettable aActiveSettable, TLcyGroupDescriptor aGroupDescriptor, String[] aMenus, TLcyGroupDescriptor[] aMenuGroupDescriptors, boolean aDeactivatePossible)
      Description copied from class: ALcyActionBar
      Creates a gui widget to represent the given active settable. E.g. a menu bar could create a JCheckBoxMenuItem to represent the given action or a JRadioButtonMenuItem when aDeactivatePossible is false. A toolbar could create a JToggleButton to represent the given active settable.
      Specified by:
      createItem in class ALcyActionBar
      Parameters:
      aActiveSettable - The active settable to create a gui widget for.
      aGroupDescriptor - The group descriptor, for information only.
      aMenus - The menus, for information only.
      aMenuGroupDescriptors - The menu group descriptors, for information only.
      aDeactivatePossible - True means the active settable can be deactivated using the created gui widget (e.g. a checkbox), false means it cannot be deactivated by the created gui widget, probably only by another widget (e.g. radio button).
      Returns:
      The created gui widget.
    • getItemContainer

      protected Container getItemContainer(String[] aMenus, TLcyGroupDescriptor[] aMenuGroupDescriptors)
      Description copied from class: ALcyActionBar
      Retrieves the (sub)menu container that contains the actions or active settables at the given (sub)menus. If no such container exists, null is returned. If the aMenus is null or an empty array, it shall not return null but it must return the top level container.

      Specified by:
      getItemContainer in class ALcyActionBar
      Parameters:
      aMenus - The (sub)menus to retrieve the container for. If null or an empty array, the top level container should be returned.
      aMenuGroupDescriptors - The menu group descriptors, just for information. Could be null, or the length of the array can possibly mismatch the length of the menus.
      Returns:
      the container that contains the actions or active settables at the given (sub)menus.
    • createItemContainer

      protected Container createItemContainer(String[] aMenus, TLcyGroupDescriptor[] aMenuGroupDescriptors)
      Description copied from class: ALcyActionBar
      Creates a new container for the given (sub)menus. The actions and active settables that need to be added to the given (sub)menus will be added to the created container. The created menu must not be inserted into its parent.

      An example implemention could look like this:

      return new JMenu( aMenus[ aMenus.length - 1 ] )
      Specified by:
      createItemContainer in class ALcyActionBar
      Parameters:
      aMenus - The (sub)menus to create the menu item container for. Is never null and length of array is at least 1.
      aMenuGroupDescriptors - The menu group descriptors for the menus. Could be null, or the length of the array can possibly mismatch the length of the menus.
      Returns:
      a new container for the given (sub)menus.