Class MenuBar

All Implemented Interfaces:
Animation, Editable, ActionListener, StyleListener, Iterable<Component>
Direct Known Subclasses:
SideMenuBar

public class MenuBar extends Container implements ActionListener
This class represents the Form MenuBar. This class is responsible to show the Form Commands and to handle device soft keys, back key, clear key, etc... This class can be overridden and replaced in the LookAndFeel
  • Constructor Details

    • MenuBar

      public MenuBar()
  • Method Details

    • initMenuBar

      protected void initMenuBar(Form parent)

      Initialize the MenuBar

      Parameters
      • parent: the associated Form
    • removeEmptySoftbuttons

      public void removeEmptySoftbuttons()
      This method removes empty J2ME softbuttons that don't have a command
    • getCommandBehavior

      public int getCommandBehavior()
    • getDefaultCommand

      public Command getDefaultCommand()

      Default command is invoked when a user presses fire, this functionality works well in some situations but might collide with elements such as navigation and combo boxes. Use with caution.

      Returns

      the command to treat as default

    • setDefaultCommand

      public void setDefaultCommand(Command defaultCommand)

      Default command is invoked when a user presses fire, this functionality works well in some situations but might collide with elements such as navigation and combo boxes. Use with caution.

      Parameters
      • defaultCommand: the command to treat as default
    • getClearCommand

      public Command getClearCommand()

      Indicates the command that is defined as the clear command in this form. A clear command can be used both to map to a "clear" hardware button if such a button exists.

      Returns

      the command to treat as the clear Command

    • setClearCommand

      public void setClearCommand(Command clearCommand)

      Indicates the command that is defined as the clear command in this form. A clear command can be used both to map to a "clear" hardware button if such a button exists.

      Parameters
      • clearCommand: the command to treat as the clear Command
    • findCommandComponent

      public Button findCommandComponent(Command c)

      Find the command component instance if such an instance exists

      Parameters
      • c: the command instance
      Returns

      the button instance

    • getBackCommand

      public Command getBackCommand()

      Indicates the command that is defined as the back command out of this form. A back command can be used both to map to a hardware button (e.g. on the Sony Ericsson devices) and by elements such as transitions etc. to change the behavior based on direction (e.g. slide to the left to enter screen and slide to the right to exit with back).

      Returns

      the command to treat as the back Command

    • setBackCommand

      public void setBackCommand(Command backCommand)

      Indicates the command that is defined as the back command out of this form. A back command can be used both to map to a hardware button (e.g. on the Sony Ericsson devices) and by elements such as transitions etc. to change the behavior based on direction (e.g. slide to the left to enter screen and slide to the right to exit with back).

      Parameters
      • backCommand: the command to treat as the back Command
    • getSelectCommand

      public Command getSelectCommand()

      The selectCommand is the command to invoke when a Component has foucs in Third Soft Button state.

      Returns

      the select command

    • setSelectCommand

      public void setSelectCommand(Command selectCommand)

      Sets the select command

      Parameters
      • selectCommand
    • actionPerformed

      public void actionPerformed(ActionEvent evt)
      Invoked when a softbutton is pressed
      Specified by:
      actionPerformed in interface ActionListener
    • createSoftButton

      protected Button createSoftButton(String uiid)

      Creates a soft button Component

      Returns

      the softbutton component

    • setUnselectedStyle

      public void setUnselectedStyle(Style style)

      Changes the Component Style by replacing the Component Style with the given Style

      Parameters
      • style: the component Style object
      Overrides:
      setUnselectedStyle in class Component
    • calcPreferredSize

      protected Dimension calcPreferredSize()
      Prevents scaling down of the menu when there is no text on the menu bar
      Overrides:
      calcPreferredSize in class Container
    • setTransitions

      public void setTransitions(Transition transitionIn, Transition transitionOut)
      Sets the menu transitions for showing/hiding the menu, can be null...
    • isMenuShowing

      public boolean isMenuShowing()

      This method will return true if the menu dialog is currently displaying

      Returns

      true of the menu dialog is displaying

    • showMenu

      public void showMenu()
      This method shows the menu on the Form. The method creates a Dialog with the commands and calls showMenuDialog. The method blocks until the user dispose the dialog.
    • createBackCommandButton

      protected Button createBackCommandButton()
    • addCommand

      public void addCommand(Command cmd)

      Adds a Command to the MenuBar

      Parameters
      • cmd: Command to add
    • getCommand

      public Command getCommand(int index)

      Returns the command occupying the given index

      Parameters
      • index: offset of the command
      Returns

      the command at the given index

    • getCommandCount

      public int getCommandCount()

      Returns number of commands

      Returns

      number of commands

    • addCommand

      protected void addCommand(Command cmd, int index)

      Add a Command to the MenuBar

      Parameters
      • cmd: Command to Add

      • index: determines the order of the added commands

    • installMenuBar

      protected void installMenuBar()
      Adds the MenuBar on the parent Form
    • unInstallMenuBar

      protected void unInstallMenuBar()
      Removes the MenuBar from the parent Form
    • removeAllCommands

      protected void removeAllCommands()
      Remove all commands from the menuBar
    • removeCommand

      protected void removeCommand(Command cmd)

      Removes a Command from the MenuBar

      Parameters
      • cmd: Command to remove
    • createSelectCommand

      protected Command createSelectCommand()

      Factory method that returns the Form select Command. This Command is used when Display.getInstance().isThirdSoftButton() returns true. This method can be overridden to customize the Command on the Form.

      Returns

      Command

    • createMenuSelectCommand

      protected Command createMenuSelectCommand()

      Factory method that returns the Form Menu select Command. This method can be overridden to customize the Command on the Form.

      Returns

      Command

    • createMenuCancelCommand

      protected Command createMenuCancelCommand()

      Factory method that returns the Form Menu cancel Command. This method can be overridden to customize the Command on the Form.

      Returns

      Command

    • setMenuCellRenderer

      public void setMenuCellRenderer(ListCellRenderer menuCellRenderer)

      The MenuBar default implementation shows the menu commands in a List contained in a Dialog. This method replaces the menu ListCellRenderer of the Menu List.

      Parameters
      • menuCellRenderer
    • getMenuStyle

      public Style getMenuStyle()

      Returns the Menu Dialog Style

      Returns

      Menu Dialog Style

    • handlesKeycode

      public boolean handlesKeycode(int keyCode)

      This method returns true if the MenuBar should handle the given keycode.

      Parameters
      • keyCode: to determine if the MenuBar is responsible for.
      Returns
      Returns:
      true if the keycode is a MenuBar related keycode such as softkey, back button, clear button, ...
    • keyPressed

      public void keyPressed(int keyCode)

      If this Component is focused, the key pressed event will call this method

      Parameters
      • keyCode: the key code value to indicate a physical key.
      Overrides:
      keyPressed in class Container
    • keyReleased

      public void keyReleased(int keyCode)

      If this Component is focused, the key released event will call this method

      Parameters
      • keyCode: the key code value to indicate a physical key.
      Overrides:
      keyReleased in class Container
    • refreshTheme

      public void refreshTheme(boolean merge)

      Makes sure the component is up to date with the current theme, ONLY INVOKE THIS METHOD IF YOU CHANGED THE THEME!

      Parameters
      • merge: indicates if the current styles should be merged with the new styles
      Overrides:
      refreshTheme in class Container
    • showMenuDialog

      protected Command showMenuDialog(Dialog menu)

      A menu is implemented as a dialog, this method allows you to override dialog display in order to customize the dialog menu in various ways

      Parameters
      • menu: a dialog containing menu options that can be customized
      Returns
      Returns:
      the command selected by the user in the dialog (not menu) Select or Cancel
    • isReverseSoftButtons

      protected boolean isReverseSoftButtons()

      Allows an individual form to reverse the layout direction of the softbuttons, this method is RTL sensitive and might reverse the result based on RTL state

      Returns

      The value of UIManager.getInstance().getLookAndFeel().isReverseSoftButtons()

    • calculateTouchCommandGridColumns

      protected int calculateTouchCommandGridColumns(Container grid)

      Calculates the amount of columns to give to the touch commands within the grid

      Parameters
      • grid: @param grid container that will be arranged in the grid containing the components
      Returns

      an integer representing the touch command grid size

    • setCommandUIID

      public void setCommandUIID(Command cmd, String uiid)

      Sets the command UIID to the given UIID, notice that this won't work for all menu types since some menu types might be implemented natively or as a list in which case the UIID won't apply!

      Parameters
      • cmd: the command

      • uiid: the uiid for the given command

    • createTouchCommandButton

      protected Button createTouchCommandButton(Command c)

      Creates a touch command for use as a touch menu item

      Parameters
      • c: command to map into the returned button
      Returns

      a button that would fire the touch command appropriately

    • createCommandComponent

      protected Component createCommandComponent(Vector commands)

      Creates the component containing the commands within the given vector used for showing the menu dialog, this method calls the createCommandList method by default however it allows more elaborate menu creation.

      Parameters
      • commands: list of command objects
      Returns

      Component that will result in the parent menu dialog recieving a command event

    • getCommands

      protected Vector getCommands()

      This method returns a Vector of Command objects

      Returns

      Vector of Command objects

    • createCommandList

      protected List createCommandList(Vector commands)

      Creates the list component containing the commands within the given vector used for showing the menu dialog

      Parameters
      • commands: list of command objects
      Returns

      List object

    • getSelectMenuItem

      protected Command getSelectMenuItem()

      This method returns the select menu item, when a menu is opened

      Returns

      select Command

    • getCancelMenuItem

      protected Command getCancelMenuItem()

      This method returns the cancel menu item, when a menu is opened

      Returns

      cancel Command

    • isMinimizeOnBack

      public boolean isMinimizeOnBack()

      When set to true the physical back button will minimize the application

      Returns

      the minimizeOnBack

    • setMinimizeOnBack

      public void setMinimizeOnBack(boolean minimizeOnBack)

      When set to true the physical back button will minimize the application

      Parameters
      • minimizeOnBack: the minimizeOnBack to set
    • getDragRegionStatus

      protected int getDragRegionStatus(int x, int y)

      Indicates if the section within the X/Y area is a "drag region" where we expect people to drag or press in which case we can instantly start dragging making perceived performance faster. This is invoked by the implementation code to optimize drag start behavior

      Parameters
      • x: x location for the touch

      • y: y location for the touch

      Returns

      one of the DRAG_REGION_* values

      Overrides:
      getDragRegionStatus in class Component
    • getTitleAreaContainer

      protected Container getTitleAreaContainer()

      Returns the parent Form title area

      Returns

      the title area Container

    • getTitleComponent

      protected Component getTitleComponent()

      Gets the Form titleComponent

      Returns

      titleComponent