public class Toolbar

  1. Object
  2. Component
  3. Container
  4. Toolbar

ImplementsAnimation, Editable, Iterable<Component>, StyleListener

Toolbar replaces the default title area with a powerful abstraction that allows functionality ranging from side menus (hamburger) to title animations and any arbitrary component type. Toolbar allows customizing the Form title with different commands on the title area, within the side menu or the overflow menu.

The Toolbar allows placing components in one of 4 positions as illustrated by the sample below:

Toolbar.setGlobalToolbar(true);

Form hi = new Form("Toolbar", new BoxLayout(BoxLayout.Y_AXIS));
Style s = UIManager.getInstance().getComponentStyle("TitleCommand");
FontImage icon = FontImage.createMaterial(FontImage.MATERIAL_WARNING, s);
hi.getToolbar().addCommandToLeftBar("Left", icon, (e) -> Log.p("Clicked"));
hi.getToolbar().addCommandToRightBar("Right", icon, (e) -> Log.p("Clicked"));
hi.getToolbar().addCommandToOverflowMenu("Overflow", icon, (e) -> Log.p("Clicked"));
hi.getToolbar().addCommandToSideMenu("Sidemenu", icon, (e) -> Log.p("Clicked"));
hi.show();

Toolbar supports a search mode that implicitly replaces the title with a search field/magnifying glass effect. The code below demonstrates searching thru the contacts using this API:

Image duke = null;
try {
    duke = Image.createImage("/duke.png");
} catch(IOException err) {
    Log.e(err);
}
int fiveMM = Display.getInstance().convertToPixels(5);
final Image finalDuke = duke.scaledWidth(fiveMM);
Toolbar.setGlobalToolbar(true);
Form hi = new Form("Search", BoxLayout.y());
hi.add(new InfiniteProgress());
Display.getInstance().scheduleBackgroundTask(()-> {
    // this will take a while...
    Contact[] cnts = Display.getInstance().getAllContacts(true, true, true, true, false, false);
    Display.getInstance().callSerially(() -> {
        hi.removeAll();
        for(Contact c : cnts) {
            MultiButton m = new MultiButton();
            m.setTextLine1(c.getDisplayName());
            m.setTextLine2(c.getPrimaryPhoneNumber());
            Image pic = c.getPhoto();
            if(pic != null) {
                m.setIcon(fill(pic, finalDuke.getWidth(), finalDuke.getHeight()));
            } else {
                m.setIcon(finalDuke);
            }
            hi.add(m);
        }
        hi.revalidate();
    });
});

hi.getToolbar().addSearchCommand(e -> {
    String text = (String)e.getSource();
    if(text == null || text.length() == 0) {
        // clear search
        for(Component cmp : hi.getContentPane()) {
            cmp.setHidden(false);
            cmp.setVisible(true);
        }
        hi.getContentPane().animateLayout(150);
    } else {
        text = text.toLowerCase();
        for(Component cmp : hi.getContentPane()) {
            MultiButton mb = (MultiButton)cmp;
            String line1 = mb.getTextLine1();
            String line2 = mb.getTextLine2();
            boolean show = line1 != null && line1.toLowerCase().indexOf(text) > -1 ||
                    line2 != null && line2.toLowerCase().indexOf(text) > -1;
            mb.setHidden(!show);
            mb.setVisible(show);
        }
        hi.getContentPane().animateLayout(150);
    }
}, 4);

hi.show();

The following code also demonstrates search with a more custom UX where the title area was replaced dynamically. This code predated the builtin search support above. Notice that the TextField and its hint are styled to look like the title.

Toolbar.setGlobalToolbar(true);
Style s = UIManager.getInstance().getComponentStyle("Title");

Form hi = new Form("Toolbar", BoxLayout.y());
TextField searchField = new TextField("", "Toolbar Search");
searchField.getHintLabel().setUIID("Title");
searchField.setUIID("Title");
searchField.getAllStyles().setAlignment(Component.LEFT);
hi.getToolbar().setTitleComponent(searchField);

FontImage searchIcon = FontImage.createMaterial(FontImage.MATERIAL_SEARCH, s);
hi.getToolbar().addCommandToRightBar("", searchIcon, e -> searchField.startEditingAsync());

hi.addAll(new Label("A Game of Thrones"), new Label("A Clash Of Kings"), new Label("A Storm Of Swords"));
searchField.addDataChangedListener((type, index) -> {
    String text = searchField.getText().toLowerCase();
    for (Component cmp : hi.getContentPane()) {
        Label l = (Label) cmp;
        boolean show = text.length() == 0 || l.getText().toLowerCase().indexOf(text) > -1;
        cmp.setHidden(!show);
        cmp.setVisible(show);
    }
    hi.getContentPane().animateLayout(250);
});
hi.show();

This sample code show off title animations that allow a title to change (and potentially shrink) as the user scrolls down the UI. The 3 frames below show a step by step process in the change.

Toolbar.setGlobalToolbar(true);

Form hi = new Form("Toolbar", new BoxLayout(BoxLayout.Y_AXIS));
EncodedImage placeholder = EncodedImage.createFromImage(Image.createImage(hi.getWidth(), hi.getWidth() / 5, 0xffff0000), true);
URLImage background = URLImage.createToStorage(placeholder, "400px-AGameOfThrones.jpg",
        "http://awoiaf.westeros.org/images/thumb/9/93/AGameOfThrones.jpg/400px-AGameOfThrones.jpg");
background.fetch();
Style stitle = hi.getToolbar().getTitleComponent().getUnselectedStyle();
stitle.setBgImage(background);
stitle.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL);
stitle.setPaddingUnit(Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS);
stitle.setPaddingTop(15);
SpanButton credit = new SpanButton("This excerpt is from A Wiki Of Ice And Fire. Please check it out by clicking here!");
credit.addActionListener((e) -> Display.getInstance().execute("http://awoiaf.westeros.org/index.php/A_Game_of_Thrones"));
hi.add(new SpanLabel("A Game of Thrones is the first of seven planned novels in A Song of Ice and Fire, an epic fantasy series by American author George R. R. Martin. It was first published on 6 August 1996. The novel was nominated for the 1998 Nebula Award and the 1997 World Fantasy Award,[1] and won the 1997 Locus Award.[2] The novella Blood of the Dragon, comprising the Daenerys Targaryen chapters from the novel, won the 1997 Hugo Award for Best Novella. ")).
        add(new Label("Plot introduction", "Heading")).
        add(new SpanLabel("A Game of Thrones is set in the Seven Kingdoms of Westeros, a land reminiscent of Medieval Europe. In Westeros the seasons last for years, sometimes decades, at a time.\n\n" +
            "Fifteen years prior to the novel, the Seven Kingdoms were torn apart by a civil war, known alternately as \"Robert's Rebellion\" and the \"War of the Usurper.\" Prince Rhaegar Targaryen kidnapped Lyanna Stark, arousing the ire of her family and of her betrothed, Lord Robert Baratheon (the war's titular rebel). The Mad King, Aerys II Targaryen, had Lyanna's father and eldest brother executed when they demanded her safe return. Her second brother, Eddard, joined his boyhood friend Robert Baratheon and Jon Arryn, with whom they had been fostered as children, in declaring war against the ruling Targaryen dynasty, securing the allegiances of House Tully and House Arryn through a network of dynastic marriages (Lord Eddard to Catelyn Tully and Lord Arryn to Lysa Tully). The powerful House Tyrell continued to support the King, but House Lannister and House Martell both stalled due to insults against their houses by the Targaryens. The civil war climaxed with the Battle of the Trident, when Prince Rhaegar was killed in battle by Robert Baratheon. The Lannisters finally agreed to support King Aerys, but then brutally... ")).
        add(credit);

ComponentAnimation title = hi.getToolbar().getTitleComponent().createStyleAnimation("Title", 200);
hi.getAnimationManager().onTitleScrollAnimation(title);
hi.show();

Nested types

enum Toolbar.BackCommandPolicyThe behavior of the back command in the title

Constructors

public Toolbar()Empty Constructor
public Toolbar(boolean layered)This constructor places the Toolbar on a different layer on top of the Content Pane.

Methods

public static boolean isCenteredDefault()Indicates whether the toolbar should be properly centered by default
public static void setCenteredDefault(boolean aCenteredDefault)Indicates whether the toolbar should be properly centered by default
public static boolean isOnTopSideMenu()Indicates if the side menu is in “on-top” mode
public static void setOnTopSideMenu(boolean aOnTopSideMenu)Sets the side menu to “on-top” mode
public static boolean isEnableSideMenuSwipe()Enables/Disables the side menu bar swipe, defaults to true
public static void setEnableSideMenuSwipe(boolean aEnableSideMenuSwipe)Enables/Disables the side menu bar swipe, defaults to true
public static boolean isGlobalToolbar()Enables/disables the Toolbar for all the forms in the application.
public static void setGlobalToolbar(boolean gt)Enables/disables the Toolbar for all the forms in the application.
public static boolean isPermanentSideMenu()Creates a static side menu that doesn’t fold instead of the standard sidemenu.
public static void setPermanentSideMenu(boolean p)Creates a static side menu that doesn’t fold instead of the standard sidemenu.
public void setTitle(String title)Sets the title of the Toolbar.
public boolean isTitleCentered()Returns true if the title is centered via the layout
public void setTitleCentered(boolean cent)Makes the title align to the center accurately by doing it at the layout level which also takes into account right/left commands
public void openSideMenu()This is a convenience method to open the left side menu bar.
public boolean isSideMenuShowing()Returns true if the left or right side menu is open which is useful for walk through tours etc.
public void openRightSideMenu()This is a convenience method to open the right side menu bar.
public void closeSideMenu()Closes the current side menu
public void closeSideMenu(Runnable onFinish)Closes the current side menu and invokes onFinish once the side-menu dispose animation has completed and the Toolbar layered-pane dim has been detached.
public void closeLeftSideMenu()Closes the left side menu
public void closeLeftSideMenu(Runnable onFinish)Closes the left side menu and invokes onFinish once the dispose animation has completed and the Toolbar layered-pane dim has been detached.
public void closeRightSideMenu()Closes the right side menu
public void closeRightSideMenu(Runnable onFinish)Closes the right side menu and invokes onFinish once the dispose animation has completed and the Toolbar layered-pane dim has been detached.
public Component getTitleComponent()Returns the Toolbar title Component.
public void setTitleComponent(Component titleCmp)Sets the Toolbar title component.
public Command addCommandToOverflowMenu(String name, Image icon, ActionListener ev)Adds a Command to the overflow menu
public Command setBackCommand(String title, ActionListener<ActionEvent> listener)Sets the back command in the title bar to an arrow type and maps the back command hardware key if applicable.
public void setBackCommand(Command cmd)Sets the back command in the title bar to an arrow type and maps the back command hardware key if applicable.
public Command setBackCommand(String title, Toolbar.BackCommandPolicy policy, ActionListener<ActionEvent> listener)Sets the back command in the title bar and in the form, back command behaves based on the given policy type
public void setBackCommand(Command cmd, Toolbar.BackCommandPolicy policy, float iconSize)Sets the back command in the title bar and in the form, back command behaves based on the given policy type
public void setBackCommand(Command cmd, Toolbar.BackCommandPolicy policy)Sets the back command in the title bar and in the form, back command behaves based on the given policy type
public void addSearchCommand(ActionListener callback, float iconSize)This method add a search Command on the right bar of the Toolbar.
public void showSearchBar(ActionListener<ActionEvent> callback)Shows the search bar manually which is useful for use cases of popping up search from code
public void removeSearchCommand()Removes a previously installed search command
public void addSearchCommand(ActionListener callback)This method add a search Command on the right bar of the Toolbar.
public void addCommandToOverflowMenu(Command cmd)Adds a Command to the overflow menu
public Iterable<Command> getOverflowCommands()Returns the commands within the overflow menu which can be useful for things like unit testing.
public Command addCommandToSideMenu(String name, Image icon, ActionListener ev)Adds a Command to the left or right side navigation menu according to the state of RTL.
public Command addCommandToLeftSideMenu(String name, Image icon, ActionListener ev)Adds a Command to the left side navigation menu
public Command addCommandToRightSideMenu(String name, Image icon, ActionListener ev)Adds a Command to the right side navigation menu (it requires a permanent sidemenu or an onTop mode sidemenu, otherwise it does nothing)
public void addComponentToSideMenu(Component cmp)Adds a Component to the left or right side navigation menu, according to the state of RTL.
protected void addComponentToSideMenu(Container menu, Component cmp)This method is responsible to add a Component to the left or right side navigation panel according to the state of RTL.
public void addComponentToSideMenu(Component cmp, Command cmd)Adds a Component to the left or right side navigation menu, according to the state of RTL.
public Command addMaterialCommandToLeftSideMenu(String name, char icon, ActionListener ev)Adds a Command to the left side navigation menu with a material design icon reference com.codename1.ui.FontImage.
public Command addMaterialCommandToRightSideMenu(String name, char icon, ActionListener ev)Adds a Command to the right side navigation menu with a material design icon reference com.codename1.ui.FontImage (it requires a permanent sidemenu or an onTop mode sidemenu, otherwise it does nothing).
public Command addMaterialCommandToSideMenu(String name, char icon, float size, ActionListener ev)Adds a Command to the left or right side navigation menu (according to the state of RTL) with a material design icon reference com.codename1.ui.FontImage.
public Command addMaterialCommandToSideMenu(String name, char icon, ActionListener ev)Adds a Command to the left or right side navigation menu (according to the state of RTL) with a material design icon reference com.codename1.ui.FontImage.
public Command addMaterialCommandToLeftSideMenu(String name, char icon, float size, ActionListener ev)Adds a Command to the left side navigation menu with a material design icon reference com.codename1.ui.FontImage.
public Command addMaterialCommandToRightSideMenu(String name, char icon, float size, ActionListener ev)Adds a Command to the right side navigation menu with a material design icon reference com.codename1.ui.FontImage (it requires a permanent sidemenu or an onTop mode sidemenu, otherwise it does nothing).
public Command addMaterialCommandToRightBar(String name, char icon, ActionListener ev)Adds a Command to the TitleArea on the right side with a material design icon reference com.codename1.ui.FontImage.
public Command addMaterialCommandToRightBar(String name, char icon, float size, ActionListener ev)Adds a Command to the TitleArea on the right side with a material design icon reference com.codename1.ui.FontImage.
public Command addMaterialCommandToLeftBar(String name, char icon, ActionListener ev)Adds a Command to the TitleArea on the left side with a material design icon reference com.codename1.ui.FontImage.
public Command addMaterialCommandToLeftBar(String name, char icon, float size, ActionListener ev)Adds a Command to the TitleArea on the left side with a material design icon reference com.codename1.ui.FontImage.
public Command addMaterialCommandToOverflowMenu(String name, char icon, ActionListener ev)Adds a Command to the overflow menu with a material design icon reference com.codename1.ui.FontImage.
public Command addMaterialCommandToOverflowMenu(String name, char icon, float size, ActionListener ev)Adds a Command to the overflow menu with a material design icon reference com.codename1.ui.FontImage.
public void addCommandToSideMenu(Command cmd)Adds a Command to the left or right side navigation menu according to the state of RTL.
public void addCommandToLeftSideMenu(Command cmd)Adds a Command to the left side navigation menu
public void addCommandToRightSideMenu(Command cmd)Adds a Command to the right side navigation menu (it requires a permanent sidemenu or an onTop mode sidemenu, otherwise it does nothing).
public Button getLeftSideMenuButton()Allows runtime manipulation of the side menu button, notice this will only work after the menu was created
public Button getRightSideMenuButton()Allows runtime manipulation of the side menu button, notice this will only work after the menu was created
public Button getOverflowButton()Allows runtime manipulation of the overflow button, notice this will only work after the menu was created
public void setComponentToSideMenuSouth(Component sidemenuSouthComponent)Places a component in the south portion (bottom) of the left side menu.
public void setComponentToRightSideMenuSouth(Component sidemenuSouthComponent)Places a component in the south portion (bottom) of the right side menu.
public void addComponentToLeftSideMenu(Component cmp, Command cmd)Adds a Component to the left side navigation menu.
public void addComponentToRightSideMenu(Component cmp, Command cmd)Adds a Component to the right side navigation menu (it requires a permanent sidemenu or an onTop sidemenu, otherwise it does nothing).
public void addComponentToLeftSideMenu(Component cmp)Adds a Component to the left side navigation menu.
public void addComponentToRightSideMenu(Component cmp)Adds a Component to the right side navigation menu (it requires a permanent sidemenu or an onTop sidemenu, otherwise it does nothing).
public Button findCommandComponent(Command c)Find the command component instance if such an instance exists
public Command addCommandToRightBar(String name, Image icon, ActionListener ev)Adds a Command to the TitleArea on the right side.
public void removeCommand(Command cmd)Removes a Command from the MenuBar
public void addCommandToRightBar(Command cmd)Adds a Command to the TitleArea on the right side.
public Command addCommandToLeftBar(String name, Image icon, ActionListener ev)Adds a Command to the TitleArea on the left side.
public void addCommandToLeftBar(Command cmd)Adds a Command to the TitleArea on the left side.
public Iterable<Command> getRightBarCommands()Returns the commands within the right bar section which can be useful for things like unit testing.
public Iterable<Command> getLeftBarCommands()Returns the commands within the left bar section which can be useful for things like unit testing.
public Vector getAllNativeMenuCommands()Aggregates every command exposed by this toolbar - left bar, right bar, overflow menu and side menu - into a single de-duplicated Vector.
public MenuBar getMenuBar()Returns the associated SideMenuBar object of this Toolbar.
protected Command showOverflowMenu(Dialog menu)
protected List createOverflowCommandList(Vector commands)Creates the list component containing the commands within the given vector used for showing the menu dialog
protected void initTitleBarStatus()Adds a status bar space to the north of the Component, subclasses can override this default behavior.
public void setScrollOffUponContentPane(boolean scrollOff)Sets the Toolbar to scroll off the screen upon content scroll.
public void hideToolbar()Hide the Toolbar if it is currently showing
public void showToolbar()Show the Toolbar if it is currently not showing
public boolean animate()Allows the animation to reduce “repaint” calls when it returns false.
protected Container createSideNavigationComponent(Vector commands, String placement)Creates the side navigation component with the Commands.
protected Container constructSideNavigationComponent()Creates an empty left side navigation panel.
protected Container constructRightSideNavigationComponent()Creates an empty right side navigation panel.
protected void addComponentToLeftSideMenu(Container menu, Component cmp)This method responsible to add a Component to the left side navigation panel.
protected void addComponentToRightSideMenu(Container menu, Component cmp)This method responsible to add a Component to the right side navigation panel.
public Iterable<Command> getSideMenuCommands()Returns the commands within the left side menu which can be useful for things like unit testing.
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!
public Iterable<Command> getRightSideMenuCommands()Returns the commands within the right side menu which can be useful for things like unit testing.
public void removeOverflowCommand(Command cmd)Removes the given overflow menu command, notice that this has no effect on the menu that is currently showing (if it is currently showing) only on the upcoming iterations.
public void setRightSideMenuCmdsAlignedToLeft(boolean toLeft)Normally on a right side menu the alignment should be “mirrored” in comparision with the left side menu, also for non-RTL languages: this method allows to change this default behaviour for non-RTL languages, forcing the alignment of the Commands of the right side menu to left.

Inherited fields

Inherited methods

From Container

encloseIn, encloseIn, initLaf, getUIManager, setUIManager, isSurface, add, addAll, add, add, add, add, add, getLeadComponent, setLeadComponent, getLeadParent, keyPressed, keyReleased, getLayout, setLayout, invalidate, setShouldLayout, setShouldCalcPreferredSize, getLayoutWidth, getLayoutHeight, applyRTL, constrainWidthWhenScrollable, constrainHeightWhenScrollable, addComponent, addComponent, addComponent, addComponent, replaceAndWait, replaceAndWait, replace, replaceAndWait, replace, createReplaceTransition, isEnabled, setEnabled, removeComponent, cancelRepaints, flushReplace, removeAll, revalidateWithAnimationSafety, revalidate, revalidateLater, forceRevalidate, clearClientProperties, paint, paintGlass, layoutContainer, isSafeArea, setSafeArea, isSafeAreaRoot, getSafeAreaRoot, setSafeAreaRoot, getComponentCount, getComponentAt, getComponentIndex, contains, scrollComponentToVisible, getClosestComponentTo, getResponderAt, getComponentAt, findDropTargetAt, pointerPressed, calcPreferredSize, paramString, isScrollableX, setScrollableX, isScrollableY, setScrollableY, getSideGap, getBottomGap, setScrollable, setCellRenderer, getScrollIncrement, setScrollIncrement, findFirstFocusable, dragInitiated, fireClicked, isSelectableInteraction, getGridPosY, paintComponentBackground, getGridPosX, animateHierarchyAndWait, createAnimateHierarchy, animateHierarchy, animateHierarchyFadeAndWait, createAnimateHierarchyFade, animateHierarchyFade, animateLayoutFadeAndWait, createAnimateLayoutFadeAndWait, animateLayoutFade, createAnimateLayoutFade, animateLayoutAndWait, animateLayout, updateTabIndices, createAnimateLayout, drop, createAnimateMotion, morph, morphAndWait, animateUnlayout, animateUnlayoutAndWait, createAnimateUnlayout, getChildrenAsList, iterator, iterator

From Component

setSameSize, isSetCursorSupported, parsePreferredSize, getDefaultDragTransparency, setDefaultDragTransparency, getEditingDelegate, setEditingDelegate, getCursor, setCursor, showNativeOverlay, hideNativeOverlay, updateNativeOverlay, getNativeOverlay, getAllStyles, getSameWidth, setSameWidth, getSameHeight, setSameHeight, getX, setX, getOuterX, getInnerX, getY, setY, getOuterY, getInnerY, isVisible, setVisible, getClientProperty, stripMarginAndPadding, putClientProperty, getDirtyRegion, setDirtyRegion, isOpaque, setOpaque, getWidth, setWidth, getOuterWidth, getInnerWidth, getHeight, setHeight, getOuterHeight, getInnerHeight, isDragRegion, getDragRegionStatus, getBaseline, getBaselineResizeBehavior, getPreferredSizeStr, setPreferredSizeStr, getPreferredSize, setPreferredSize, getScrollDimension, calcScrollSize, setScrollSize, getPreferredW, setPreferredW, getPreferredH, setPreferredH, getOuterPreferredH, getInnerPreferredH, getOuterPreferredW, getInnerPreferredW, setSize, getUIID, setUIID, setUIIDFinal, setUIID, getInlineAllStyles, setInlineAllStyles, getInlineSelectedStyles, setInlineSelectedStyles, getInlineUnselectedStyles, setInlineUnselectedStyles, getInlineDisabledStyles, setInlineDisabledStyles, getInlinePressedStyles, setInlinePressedStyles, remove, getParent, getOwner, setOwner, isOwnedBy, containsOrOwns, addFocusListener, removeFocusListener, addScrollListener, removeScrollListener, getSelectCommandText, setSelectCommandText, getLabelForComponent, setLabelForComponent, focusGained, focusLost, paintBackgrounds, paintShadows, getAbsoluteX, getAbsoluteY, isInClippingRegion, paintIntersectingComponentsAbove, paintScrollbars, paintScrollbarX, getScrollOpacity, getSelectedRect, paintScrollbarY, paintComponent, paintComponent, getBorder, getScrollable, paintBackground, isScrollable, getScrollX, setScrollX, getScrollY, setScrollY, onScrollX, onScrollY, getDraggedx, getDraggedy, contains, visibleBoundsContains, hasFixedPreferredSize, getBounds, getBounds, getVisibleBounds, getVisibleBounds, isFocusable, setFocusable, onSetFocusable, resetFocusable, getTabIndex, setTabIndex, getPreferredTabIndex, setPreferredTabIndex, isTraversable, setTraversable, handlesInput, setHandlesInput, consumesRawTextInput, hasFocus, setFocus, getComponentForm, getTopLevelContainer, repaint, repaint, longKeyPress, keyRepeated, registerForAnimation, deregisterFromAnimation, getAnimationManager, getScrollAnimationSpeed, setScrollAnimationSpeed, isBlockLead, setBlockLead, isIgnorePointerEvents, setIgnorePointerEvents, isRippleEffect, setRippleEffect, getInlineStylesTheme, setInlineStylesTheme, shouldRenderComponentSelection, isHideInLandscape, setHideInLandscape, createStyleAnimation, isSmoothScrolling, setSmoothScrolling, pointerHover, stopScrollMomentum, pointerHoverReleased, pointerHoverPressed, pinch, pinchReleased, pinch, rotation, isPinchBlocksDragAndDrop, setPinchBlocksDragAndDrop, pointerDragged, getDragImage, getDragTransparency, setDragTransparency, toImage, drawDraggedImage, draggingOver, dragEnter, dragExit, addPullToRefresh, setPullToRefresh, respondsToPointerEvents, pointerDragged, isStickyDrag, pointerPressed, isDragAndDropOperation, pointerReleased, longPointerPress, pointerReleased, setVerticalScrollBounds, setHorizontalScrollBounds, isVScrollThumbGrabbed, isHScrollThumbGrabbed, isVScrollThumbHover, isHScrollThumbHover, isTensileDragEnabled, setTensileDragEnabled, getTextSelectionSupport, addDropListener, removeDropListener, addDragOverListener, removeDragOverListener, isNativeDragSource, setNativeDragSource, getNativeDragOperation, setNativeDragOperation, createNativeDragOperation, isNativeDropTarget, setNativeDropTarget, getAcceptedDropMimeTypes, setAcceptedDropMimeTypes, getAcceptedDropActions, setAcceptedDropActions, canAcceptNativeDrop, nativeDragEnter, nativeDragOver, nativeDragExit, nativeDrop, addNativeDropListener, removeNativeDropListener, addNativeDragOverListener, removeNativeDragOverListener, dragFinished, addDragFinishedListener, addStateChangeListener, removeStateChangeListener, addPointerPressedListener, addLongPressListener, addContextMenuListener, removeContextMenuListener, addMouseWheelListener, removeMouseWheelListener, addStylusListener, removeStylusListener, mouseWheel, paintRippleOverlay, removePointerPressedListener, removeLongPressListener, removeDragFinishedListener, addPointerReleasedListener, removePointerReleasedListener, addPointerDraggedListener, removePointerDraggedListener, getDragSpeed, getStyle, getPressedStyle, setPressedStyle, initUnselectedStyle, initPressedStyle, initDisabledStyle, initSelectedStyle, getUnselectedStyle, setUnselectedStyle, getSelectedStyle, setSelectedStyle, getDisabledStyle, setDisabledStyle, installDefaultPainter, requestFocus, toString, refreshTheme, refreshTheme, isDragActivated, scrollRectToVisible, scrollRectToVisible, paintBorder, paintBorderBackground, isCellRenderer, isScrollVisible, setScrollVisible, setIsScrollVisible, startEditingAsync, stopEditing, isEditing, isEditable, laidOut, deinitialize, initComponent, isInitialized, setInitialized, styleChanged, getNextFocusDown, setNextFocusDown, getNextFocusUp, setNextFocusUp, getNextFocusLeft, setNextFocusLeft, getNextFocusRight, setNextFocusRight, getName, setName, initCustomStyle, deinitializeCustomStyle, isRTL, setRTL, isTactileTouch, isTactileTouch, setTactileTouch, getPropertyNames, getPropertyTypes, getPropertyTypeNames, getPropertyValue, setPropertyValue, paintLockRelease, paintLock, isSnapToGrid, setSnapToGrid, shouldBlockSideSwipe, shouldBlockSideSwipeLeft, shouldBlockSideSwipeRight, blocksSideSwipe, isFlatten, setFlatten, getTensileLength, setTensileLength, isGrabsPointerEvents, setGrabsPointerEvents, getScrollOpacityChangeSpeed, setScrollOpacityChangeSpeed, growShrink, isAlwaysTensile, setAlwaysTensile, isDraggable, setDraggable, isDropTarget, setDropTarget, isChildOf, isHideInPortrait, setHideInPortrait, getBindablePropertyNames, getBindablePropertyTypes, bindProperty, unbindProperty, getBoundPropertyValue, setBoundPropertyValue, getCloudBoundProperty, setCloudBoundProperty, getCloudDestinationProperty, setCloudDestinationProperty, getComponentState, setComponentState, setHidden, isHidden, setHidden, isHidden, announceForAccessibility, getAccessibilityText, setAccessibilityText, getSemantics, getAccessibilityNode, accessibilityChanged, accessibilityChanged, getTooltip, setTooltip

Constructor details

Toolbar

public Toolbar()
Empty Constructor

Toolbar

public Toolbar(boolean layered)
This constructor places the Toolbar on a different layer on top of the Content Pane.

Parameters

layered boolean
if true places the Toolbar on top of the Content Pane

Method details

isCenteredDefault

public static boolean isCenteredDefault()
Indicates whether the toolbar should be properly centered by default

Returns

the centeredDefault

setCenteredDefault

public static void setCenteredDefault(boolean aCenteredDefault)
Indicates whether the toolbar should be properly centered by default

Parameters

aCenteredDefault boolean
the centeredDefault to set

isOnTopSideMenu

public static boolean isOnTopSideMenu()
Indicates if the side menu is in “on-top” mode

Returns

the onTopSideMenu

setOnTopSideMenu

public static void setOnTopSideMenu(boolean aOnTopSideMenu)
Sets the side menu to “on-top” mode

Parameters

aOnTopSideMenu boolean
the onTopSideMenu to set

isEnableSideMenuSwipe

public static boolean isEnableSideMenuSwipe()
Enables/Disables the side menu bar swipe, defaults to true

Returns

the enableSideMenuSwipe

setEnableSideMenuSwipe

public static void setEnableSideMenuSwipe(boolean aEnableSideMenuSwipe)
Enables/Disables the side menu bar swipe, defaults to true

Parameters

aEnableSideMenuSwipe boolean
the enableSideMenuSwipe to set

isGlobalToolbar

public static boolean isGlobalToolbar()
Enables/disables the Toolbar for all the forms in the application. This flag can be flipped via the theme constant globalToobarBool. Notice that the name of this method might imply that one toolbar instance will be used for all forms which isn’t the case, separate instances will be used for each form

Returns

true if the toolbar API is turned on by default

setGlobalToolbar

public static void setGlobalToolbar(boolean gt)
Enables/disables the Toolbar for all the forms in the application. This flag can be flipped via the theme constant globalToobarBool. Notice that the name of this method might imply that one toolbar instance will be used for all forms which isn’t the case, separate instances will be used for each form

Parameters

gt boolean
true to enable the toolbar globally

isPermanentSideMenu

public static boolean isPermanentSideMenu()
Creates a static side menu that doesn’t fold instead of the standard sidemenu. This is common for tablet UI’s where folding the side menu doesn’t make as much sense.

Returns

true if we will use a permanent sidemenu

setPermanentSideMenu

public static void setPermanentSideMenu(boolean p)
Creates a static side menu that doesn’t fold instead of the standard sidemenu. This is common for tablet UI’s where folding the side menu doesn’t make as much sense.

Parameters

p boolean
true to have a permanent side menu

setTitle

public void setTitle(String title)
Sets the title of the Toolbar.

Parameters

title String
the Toolbar title

isTitleCentered

public boolean isTitleCentered()
Returns true if the title is centered via the layout

Returns

true if the title is centered

setTitleCentered

public void setTitleCentered(boolean cent)
Makes the title align to the center accurately by doing it at the layout level which also takes into account right/left commands

Parameters

cent boolean
whether the title should be centered

openSideMenu

public void openSideMenu()
This is a convenience method to open the left side menu bar. It’s useful for cases where we want to place the menu button in a “creative way” in which case we can bind the side menu to this

isSideMenuShowing

public boolean isSideMenuShowing()
Returns true if the left or right side menu is open which is useful for walk through tours etc.

openRightSideMenu

public void openRightSideMenu()
This is a convenience method to open the right side menu bar. It’s useful for cases where we want to place the menu button in a “creative way” in which case we can bind the side menu to this

closeSideMenu

public void closeSideMenu()
Closes the current side menu

closeSideMenu

public void closeSideMenu(Runnable onFinish)

Closes the current side menu and invokes onFinish once the side-menu dispose animation has completed and the Toolbar layered-pane dim has been detached. When no side menu is currently open onFinish runs synchronously.

Tapping a command in the on-top side menu was previously implemented as closeSideMenu() followed by a synchronous cmd.actionPerformed(evt) on the same EDT call. If the command then showed a modal Dialog, the Dialog’s event pump took over before the dispose animation had a chance to advance, the detachToolbarLayeredPane callback never fired, and the dim backdrop stayed visible after the Dialog was dismissed (issue #4979). SideMenuBar.actionPerformed now routes the command-fire through this onFinish, so the layered pane is guaranteed to be detached before the command runs.

Parameters

onFinish Runnable
callback to invoke once the side menu is closed, or null to skip

closeLeftSideMenu

public void closeLeftSideMenu()
Closes the left side menu

closeLeftSideMenu

public void closeLeftSideMenu(Runnable onFinish)
Closes the left side menu and invokes onFinish once the dispose animation has completed and the Toolbar layered-pane dim has been detached. When no left side menu is currently open onFinish runs synchronously. See #closeSideMenu(Runnable) for rationale (issue #4979).

Parameters

onFinish Runnable
callback to invoke once the menu is closed, or null to skip

closeRightSideMenu

public void closeRightSideMenu()
Closes the right side menu

closeRightSideMenu

public void closeRightSideMenu(Runnable onFinish)
Closes the right side menu and invokes onFinish once the dispose animation has completed and the Toolbar layered-pane dim has been detached. When no right side menu is currently open onFinish runs synchronously. See #closeSideMenu(Runnable) for rationale (issue #4979).

Parameters

onFinish Runnable
callback to invoke once the menu is closed, or null to skip

getTitleComponent

public Component getTitleComponent()
Returns the Toolbar title Component.

Returns

the Toolbar title component

setTitleComponent

public void setTitleComponent(Component titleCmp)
Sets the Toolbar title component. This method allow placing any component in the Toolbar center instead of the regular Label. Can be used to place a TextField to perform search operations

Parameters

titleCmp Component
Component to place in the Toolbar center.

addCommandToOverflowMenu

public Command addCommandToOverflowMenu(String name, Image icon, ActionListener ev)
Adds a Command to the overflow menu

Parameters

name String
the name/title of the command
icon Image
the icon for the command
ev ActionListener
the even handler

Returns

a newly created Command instance

setBackCommand

public Command setBackCommand(String title, ActionListener<ActionEvent> listener)
Sets the back command in the title bar to an arrow type and maps the back command hardware key if applicable. This is functionally identical to setBackCommand(title, Toolbar.BackCommandPolicy.AS_ARROW, listener);

Parameters

title String
command title
listener ActionListener<ActionEvent>
action event for the back command

Returns

the created command

setBackCommand

public void setBackCommand(Command cmd)
Sets the back command in the title bar to an arrow type and maps the back command hardware key if applicable. This is functionally identical to setBackCommand(cmd, Toolbar.BackCommandPolicy.AS_ARROW);

Parameters

cmd Command
the command

setBackCommand

public Command setBackCommand(String title, Toolbar.BackCommandPolicy policy, ActionListener<ActionEvent> listener)
Sets the back command in the title bar and in the form, back command behaves based on the given policy type

Parameters

title String
command title
policy Toolbar.BackCommandPolicy
the behavior of the back command in the title
listener ActionListener<ActionEvent>
action event for the back command

Returns

the created command

setBackCommand

public void setBackCommand(Command cmd, Toolbar.BackCommandPolicy policy, float iconSize)
Sets the back command in the title bar and in the form, back command behaves based on the given policy type

Parameters

cmd Command
the command
policy Toolbar.BackCommandPolicy
the behavior of the back command in the title
iconSize float
the size of the back command icon in millimeters

setBackCommand

public void setBackCommand(Command cmd, Toolbar.BackCommandPolicy policy)
Sets the back command in the title bar and in the form, back command behaves based on the given policy type

Parameters

cmd Command
the command
policy Toolbar.BackCommandPolicy
the behavior of the back command in the title

addSearchCommand

public void addSearchCommand(ActionListener callback, float iconSize)

This method add a search Command on the right bar of the Toolbar. When the search Command is invoked the current Toolbar is replaced with a search Toolbar to perform a search on the Current Form.

The callback ActionListener gets the search string and it’s up to developer to do the actual filtering on the Form.

It is possible to customize the default look of the search Toolbar with the following uiid’s: ToolbarSearch, TextFieldSearch & TextHintSearch.

Image duke = null;
try {
    duke = Image.createImage("/duke.png");
} catch(IOException err) {
    Log.e(err);
}
int fiveMM = Display.getInstance().convertToPixels(5);
final Image finalDuke = duke.scaledWidth(fiveMM);
Toolbar.setGlobalToolbar(true);
Form hi = new Form("Search", BoxLayout.y());
hi.add(new InfiniteProgress());
Display.getInstance().scheduleBackgroundTask(()-> {
    // this will take a while...
    Contact[] cnts = Display.getInstance().getAllContacts(true, true, true, true, false, false);
    Display.getInstance().callSerially(() -> {
        hi.removeAll();
        for(Contact c : cnts) {
            MultiButton m = new MultiButton();
            m.setTextLine1(c.getDisplayName());
            m.setTextLine2(c.getPrimaryPhoneNumber());
            Image pic = c.getPhoto();
            if(pic != null) {
                m.setIcon(fill(pic, finalDuke.getWidth(), finalDuke.getHeight()));
            } else {
                m.setIcon(finalDuke);
            }
            hi.add(m);
        }
        hi.revalidate();
    });
});

hi.getToolbar().addSearchCommand(e -> {
    String text = (String)e.getSource();
    if(text == null || text.length() == 0) {
        // clear search
        for(Component cmp : hi.getContentPane()) {
            cmp.setHidden(false);
            cmp.setVisible(true);
        }
        hi.getContentPane().animateLayout(150);
    } else {
        text = text.toLowerCase();
        for(Component cmp : hi.getContentPane()) {
            MultiButton mb = (MultiButton)cmp;
            String line1 = mb.getTextLine1();
            String line2 = mb.getTextLine2();
            boolean show = line1 != null && line1.toLowerCase().indexOf(text) > -1 ||
                    line2 != null && line2.toLowerCase().indexOf(text) > -1;
            mb.setHidden(!show);
            mb.setVisible(show);
        }
        hi.getContentPane().animateLayout(150);
    }
}, 4);

hi.show();

Parameters

callback ActionListener
gets the search string callbacks
iconSize float
indicates the size of the icons used in the search/back in millimeters

showSearchBar

public void showSearchBar(ActionListener<ActionEvent> callback)
Shows the search bar manually which is useful for use cases of popping up search from code

Parameters

callback ActionListener<ActionEvent>
gets the search string callbacks

removeSearchCommand

public void removeSearchCommand()
Removes a previously installed search command

addSearchCommand

public void addSearchCommand(ActionListener callback)

This method add a search Command on the right bar of the Toolbar. When the search Command is invoked the current Toolbar is replaced with a search Toolbar to perform a search on the Current Form.

The callback ActionListener gets the search string and it’s up to developer to do the actual filtering on the Form.

It is possible to customize the default look of the search Toolbar with the following uiid’s: ToolbarSearch, TextFieldSearch & TextHintSearch.

Image duke = null;
try {
    duke = Image.createImage("/duke.png");
} catch(IOException err) {
    Log.e(err);
}
int fiveMM = Display.getInstance().convertToPixels(5);
final Image finalDuke = duke.scaledWidth(fiveMM);
Toolbar.setGlobalToolbar(true);
Form hi = new Form("Search", BoxLayout.y());
hi.add(new InfiniteProgress());
Display.getInstance().scheduleBackgroundTask(()-> {
    // this will take a while...
    Contact[] cnts = Display.getInstance().getAllContacts(true, true, true, true, false, false);
    Display.getInstance().callSerially(() -> {
        hi.removeAll();
        for(Contact c : cnts) {
            MultiButton m = new MultiButton();
            m.setTextLine1(c.getDisplayName());
            m.setTextLine2(c.getPrimaryPhoneNumber());
            Image pic = c.getPhoto();
            if(pic != null) {
                m.setIcon(fill(pic, finalDuke.getWidth(), finalDuke.getHeight()));
            } else {
                m.setIcon(finalDuke);
            }
            hi.add(m);
        }
        hi.revalidate();
    });
});

hi.getToolbar().addSearchCommand(e -> {
    String text = (String)e.getSource();
    if(text == null || text.length() == 0) {
        // clear search
        for(Component cmp : hi.getContentPane()) {
            cmp.setHidden(false);
            cmp.setVisible(true);
        }
        hi.getContentPane().animateLayout(150);
    } else {
        text = text.toLowerCase();
        for(Component cmp : hi.getContentPane()) {
            MultiButton mb = (MultiButton)cmp;
            String line1 = mb.getTextLine1();
            String line2 = mb.getTextLine2();
            boolean show = line1 != null && line1.toLowerCase().indexOf(text) > -1 ||
                    line2 != null && line2.toLowerCase().indexOf(text) > -1;
            mb.setHidden(!show);
            mb.setVisible(show);
        }
        hi.getContentPane().animateLayout(150);
    }
}, 4);

hi.show();

Parameters

callback ActionListener
gets the search string callbacks

addCommandToOverflowMenu

public void addCommandToOverflowMenu(Command cmd)
Adds a Command to the overflow menu

Parameters

cmd Command
a Command

getOverflowCommands

public Iterable<Command> getOverflowCommands()
Returns the commands within the overflow menu which can be useful for things like unit testing. Notice that you should not mutate the commands or the iteratable set in any way!

Returns

the commands in the overflow menu

addCommandToSideMenu

public Command addCommandToSideMenu(String name, Image icon, ActionListener ev)
Adds a Command to the left or right side navigation menu according to the state of RTL.

Parameters

name String
the name/title of the command
icon Image
the icon for the command
ev ActionListener
the even handler

Returns

a newly created Command instance

addCommandToLeftSideMenu

public Command addCommandToLeftSideMenu(String name, Image icon, ActionListener ev)
Adds a Command to the left side navigation menu

Parameters

name String
the name/title of the command
icon Image
the icon for the command
ev ActionListener
the even handler

Returns

a newly created Command instance

addCommandToRightSideMenu

public Command addCommandToRightSideMenu(String name, Image icon, ActionListener ev)
Adds a Command to the right side navigation menu (it requires a permanent sidemenu or an onTop mode sidemenu, otherwise it does nothing)

Parameters

name String
the name/title of the command
icon Image
the icon for the command
ev ActionListener
the even handler

Returns

a newly created Command instance

addComponentToSideMenu

public void addComponentToSideMenu(Component cmp)
Adds a Component to the left or right side navigation menu, according to the state of RTL.

Parameters

cmp Component
c Component to be added to the menu

addComponentToSideMenu

protected void addComponentToSideMenu(Container menu, Component cmp)
This method is responsible to add a Component to the left or right side navigation panel according to the state of RTL.

Parameters

menu Container
the Menu Container that was created in the constructSideNavigationComponent() method
cmp Component
the Component to add to the side menu

addComponentToSideMenu

public void addComponentToSideMenu(Component cmp, Command cmd)
Adds a Component to the left or right side navigation menu, according to the state of RTL. The Component is added to the navigation menu and the command gets the events once the Component is being pressed.

Parameters

cmp Component
c Component to be added to the menu
cmd Command
a Command to handle the events

addMaterialCommandToLeftSideMenu

public Command addMaterialCommandToLeftSideMenu(String name, char icon, ActionListener ev)
Adds a Command to the left side navigation menu with a material design icon reference com.codename1.ui.FontImage.

Parameters

name String
the name/title of the command
icon char
the icon for the command
ev ActionListener
the even handler

Returns

a newly created Command instance

addMaterialCommandToRightSideMenu

public Command addMaterialCommandToRightSideMenu(String name, char icon, ActionListener ev)
Adds a Command to the right side navigation menu with a material design icon reference com.codename1.ui.FontImage (it requires a permanent sidemenu or an onTop mode sidemenu, otherwise it does nothing).

Parameters

name String
the name/title of the command
icon char
the icon for the command
ev ActionListener
the even handler

Returns

a newly created Command instance

addMaterialCommandToSideMenu

public Command addMaterialCommandToSideMenu(String name, char icon, float size, ActionListener ev)
Adds a Command to the left or right side navigation menu (according to the state of RTL) with a material design icon reference com.codename1.ui.FontImage.

Parameters

name String
the name/title of the command
icon char
the icon for the command
size float
size in millimeters for the icon
ev ActionListener
the even handler

Returns

a newly created Command instance

addMaterialCommandToSideMenu

public Command addMaterialCommandToSideMenu(String name, char icon, ActionListener ev)
Adds a Command to the left or right side navigation menu (according to the state of RTL) with a material design icon reference com.codename1.ui.FontImage.

Parameters

name String
the name/title of the command
icon char
the icon for the command
ev ActionListener
the even handler

Returns

a newly created Command instance

addMaterialCommandToLeftSideMenu

public Command addMaterialCommandToLeftSideMenu(String name, char icon, float size, ActionListener ev)
Adds a Command to the left side navigation menu with a material design icon reference com.codename1.ui.FontImage.

Parameters

name String
the name/title of the command
icon char
the icon for the command
size float
size in millimeters for the icon
ev ActionListener
the even handler

Returns

a newly created Command instance

addMaterialCommandToRightSideMenu

public Command addMaterialCommandToRightSideMenu(String name, char icon, float size, ActionListener ev)
Adds a Command to the right side navigation menu with a material design icon reference com.codename1.ui.FontImage (it requires a permanent sidemenu or an onTop mode sidemenu, otherwise it does nothing).

Parameters

name String
the name/title of the command
icon char
the icon for the command
size float
size in millimeters for the icon
ev ActionListener
the even handler

Returns

a newly created Command instance

addMaterialCommandToRightBar

public Command addMaterialCommandToRightBar(String name, char icon, ActionListener ev)
Adds a Command to the TitleArea on the right side with a material design icon reference com.codename1.ui.FontImage.

Parameters

name String
the name/title of the command
icon char
the icon for the command
ev ActionListener
the even handler

Returns

a newly created Command instance

addMaterialCommandToRightBar

public Command addMaterialCommandToRightBar(String name, char icon, float size, ActionListener ev)
Adds a Command to the TitleArea on the right side with a material design icon reference com.codename1.ui.FontImage.

Parameters

name String
the name/title of the command
icon char
the icon for the command
size float
size of the icon in millimeters
ev ActionListener
the even handler

Returns

a newly created Command instance

addMaterialCommandToLeftBar

public Command addMaterialCommandToLeftBar(String name, char icon, ActionListener ev)
Adds a Command to the TitleArea on the left side with a material design icon reference com.codename1.ui.FontImage.

Parameters

name String
the name/title of the command
icon char
the icon for the command
ev ActionListener
the even handler

Returns

a newly created Command instance

addMaterialCommandToLeftBar

public Command addMaterialCommandToLeftBar(String name, char icon, float size, ActionListener ev)
Adds a Command to the TitleArea on the left side with a material design icon reference com.codename1.ui.FontImage.

Parameters

name String
the name/title of the command
icon char
the icon for the command
size float
size in millimeters for the icon
ev ActionListener
the even handler

Returns

a newly created Command instance

addMaterialCommandToOverflowMenu

public Command addMaterialCommandToOverflowMenu(String name, char icon, ActionListener ev)
Adds a Command to the overflow menu with a material design icon reference com.codename1.ui.FontImage.

Parameters

name String
the name/title of the command
icon char
the icon for the command
ev ActionListener
the even handler

Returns

a newly created Command instance

addMaterialCommandToOverflowMenu

public Command addMaterialCommandToOverflowMenu(String name, char icon, float size, ActionListener ev)
Adds a Command to the overflow menu with a material design icon reference com.codename1.ui.FontImage.

Parameters

name String
the name/title of the command
icon char
the icon for the command
size float
size in millimeters for the icon
ev ActionListener
the even handler

Returns

a newly created Command instance

addCommandToSideMenu

public void addCommandToSideMenu(Command cmd)
Adds a Command to the left or right side navigation menu according to the state of RTL.

Parameters

cmd Command
a Command

addCommandToLeftSideMenu

public void addCommandToLeftSideMenu(Command cmd)
Adds a Command to the left side navigation menu

Parameters

cmd Command
a Command

addCommandToRightSideMenu

public void addCommandToRightSideMenu(Command cmd)
Adds a Command to the right side navigation menu (it requires a permanent sidemenu or an onTop mode sidemenu, otherwise it does nothing).

Parameters

cmd Command
a Command

getLeftSideMenuButton

public Button getLeftSideMenuButton()
Allows runtime manipulation of the side menu button, notice this will only work after the menu was created

Returns

a button or null if the menu isn’t there yet

getRightSideMenuButton

public Button getRightSideMenuButton()
Allows runtime manipulation of the side menu button, notice this will only work after the menu was created

Returns

a button or null if the menu isn’t there yet

getOverflowButton

public Button getOverflowButton()
Allows runtime manipulation of the overflow button, notice this will only work after the menu was created

Returns

a button or null if the menu isn’t there yet

setComponentToSideMenuSouth

public void setComponentToSideMenuSouth(Component sidemenuSouthComponent)
Places a component in the south portion (bottom) of the left side menu. Notice this only works with on-top side menu and the permanent side menu. Setting this value to null will remove the existing component. Only one component can be placed in the south but it can be a container that includes many components

Parameters

sidemenuSouthComponent Component
the new component to place in the south or null to remove the current component

setComponentToRightSideMenuSouth

public void setComponentToRightSideMenuSouth(Component sidemenuSouthComponent)
Places a component in the south portion (bottom) of the right side menu. Notice this only works with on-top side menu and the permanent side menu. Setting this value to null will remove the existing component. Only one component can be placed in the south but it can be a container that includes many components

Parameters

sidemenuSouthComponent Component
the new component to place in the south or null to remove the current component

addComponentToLeftSideMenu

public void addComponentToLeftSideMenu(Component cmp, Command cmd)
Adds a Component to the left side navigation menu. The Component is added to the navigation menu and the command gets the events once the Component is being pressed.

Parameters

cmp Component
c Component to be added to the menu
cmd Command
a Command to handle the events

addComponentToRightSideMenu

public void addComponentToRightSideMenu(Component cmp, Command cmd)
Adds a Component to the right side navigation menu (it requires a permanent sidemenu or an onTop sidemenu, otherwise it does nothing). The Component is added to the navigation menu and the command gets the events once the Component is being pressed.

Parameters

cmp Component
c Component to be added to the menu
cmd Command
a Command to handle the events

addComponentToLeftSideMenu

public void addComponentToLeftSideMenu(Component cmp)
Adds a Component to the left side navigation menu.

Parameters

cmp Component
c Component to be added to the menu

addComponentToRightSideMenu

public void addComponentToRightSideMenu(Component cmp)
Adds a Component to the right side navigation menu (it requires a permanent sidemenu or an onTop sidemenu, otherwise it does nothing).

Parameters

cmp Component
c Component to be added to the menu

findCommandComponent

public Button findCommandComponent(Command c)
Find the command component instance if such an instance exists

Parameters

c Command
the command instance

Returns

the button instance

addCommandToRightBar

public Command addCommandToRightBar(String name, Image icon, ActionListener ev)
Adds a Command to the TitleArea on the right side.

Parameters

name String
the name/title of the command
icon Image
the icon for the command
ev ActionListener
the even handler

Returns

a newly created Command instance

removeCommand

public void removeCommand(Command cmd)
Removes a Command from the MenuBar

Parameters

cmd Command
Command to remove

addCommandToRightBar

public void addCommandToRightBar(Command cmd)
Adds a Command to the TitleArea on the right side.

Parameters

cmd Command
a Command

addCommandToLeftBar

public Command addCommandToLeftBar(String name, Image icon, ActionListener ev)
Adds a Command to the TitleArea on the left side.

Parameters

name String
the name/title of the command
icon Image
the icon for the command
ev ActionListener
the even handler

Returns

a newly created Command instance

addCommandToLeftBar

public void addCommandToLeftBar(Command cmd)
Adds a Command to the TitleArea on the left side.

Parameters

cmd Command
a Command

getRightBarCommands

public Iterable<Command> getRightBarCommands()
Returns the commands within the right bar section which can be useful for things like unit testing. Notice that you should not mutate the commands or the iteratable set in any way!

Returns

the commands in the overflow menu

getLeftBarCommands

public Iterable<Command> getLeftBarCommands()
Returns the commands within the left bar section which can be useful for things like unit testing. Notice that you should not mutate the commands or the iteratable set in any way!

Returns

the commands in the overflow menu

getAllNativeMenuCommands

public Vector getAllNativeMenuCommands()
Aggregates every command exposed by this toolbar - left bar, right bar, overflow menu and side menu - into a single de-duplicated Vector. Used by the desktop port to build the native menu bar when the toolbar is hidden in favor of native window chrome. The returned commands must not be mutated.

Returns

a de-duplicated vector of all commands hosted by this toolbar

getMenuBar

public MenuBar getMenuBar()
Returns the associated SideMenuBar object of this Toolbar.

Returns

the associated SideMenuBar object

showOverflowMenu

protected Command showOverflowMenu(Dialog menu)

createOverflowCommandList

protected List createOverflowCommandList(Vector commands)
Creates the list component containing the commands within the given vector used for showing the menu dialog

Parameters

commands Vector
list of command objects

Returns

List object

initTitleBarStatus

protected void initTitleBarStatus()
Adds a status bar space to the north of the Component, subclasses can override this default behavior.

setScrollOffUponContentPane

public void setScrollOffUponContentPane(boolean scrollOff)
Sets the Toolbar to scroll off the screen upon content scroll. This feature can only work if the Form contentPane is scrollableY

Parameters

scrollOff boolean
if true the Toolbar needs to scroll off the screen when the Form ContentPane is scrolled

hideToolbar

public void hideToolbar()
Hide the Toolbar if it is currently showing

showToolbar

public void showToolbar()
Show the Toolbar if it is currently not showing

animate

public boolean animate()
Allows the animation to reduce “repaint” calls when it returns false. It is called once for every frame. Frames are defined by the com.codename1.ui.Display class.

Returns

true if a repaint is desired or false if no repaint is necessary

createSideNavigationComponent

protected Container createSideNavigationComponent(Vector commands, String placement)
Creates the side navigation component with the Commands.

Parameters

commands Vector
the Command objects
placement String
Not documented.

Returns

the Component to display on the side navigation

constructSideNavigationComponent

protected Container constructSideNavigationComponent()
Creates an empty left side navigation panel.

constructRightSideNavigationComponent

protected Container constructRightSideNavigationComponent()
Creates an empty right side navigation panel.

addComponentToLeftSideMenu

protected void addComponentToLeftSideMenu(Container menu, Component cmp)
This method responsible to add a Component to the left side navigation panel.

Parameters

menu Container
the Menu Container that was created in the constructSideNavigationComponent() method
cmp Component
the Component to add to the side menu

addComponentToRightSideMenu

protected void addComponentToRightSideMenu(Container menu, Component cmp)
This method responsible to add a Component to the right side navigation panel.

Parameters

menu Container
the Menu Container that was created in the constructSideNavigationComponent() method
cmp Component
the Component to add to the side menu

getSideMenuCommands

public Iterable<Command> getSideMenuCommands()
Returns the commands within the left side menu which can be useful for things like unit testing. Notice that you should not mutate the commands or the iteratable set in any way!

Returns

the commands in the left side menu

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!

A theme change (dark/light switch, a CSS live update) reaches the component tree through Form#refreshTheme(boolean), which walks the form. The on-top side menu is not on that walk: it lives in an InteractionDialog that InteractionDialog#dispose() detaches from the form, so while the menu is closed – which is whenever the user is looking at the form and flipping the theme – nothing re-resolves its styles and it re-opens painted in the previous theme until the app is restarted (issue #5612).

The menu is refreshed here whether or not it is currently attached. Attachment would only prove that a form walk could reach it, not that this call came from one: refreshTheme is public, and an app that calls it on the toolbar while the menu is open gets no form traversal at all. Refreshing an attached menu a second time costs nothing and changes nothing – a merge preserves the style’s modified flags, so it resolves to the same values – and the toolbar’s own subtree has always been refreshed twice anyway, because Form#refreshTheme(boolean) calls this method and then walks the form that the toolbar is a child of.

Parameters

merge boolean
indicates if the current styles should be merged with the new styles

getRightSideMenuCommands

public Iterable<Command> getRightSideMenuCommands()
Returns the commands within the right side menu which can be useful for things like unit testing. Notice that you should not mutate the commands or the iteratable set in any way!

Returns

the commands in the right side menu

removeOverflowCommand

public void removeOverflowCommand(Command cmd)
Removes the given overflow menu command, notice that this has no effect on the menu that is currently showing (if it is currently showing) only on the upcoming iterations.

Parameters

cmd Command
the command to remove from the overflow

setRightSideMenuCmdsAlignedToLeft

public void setRightSideMenuCmdsAlignedToLeft(boolean toLeft)
Normally on a right side menu the alignment should be “mirrored” in comparision with the left side menu, also for non-RTL languages: this method allows to change this default behaviour for non-RTL languages, forcing the alignment of the Commands of the right side menu to left. Note that for RTL languages this method does nothing. This method should be called before adding commands to the right side menu.

Parameters

toLeft boolean
false is the default, true changes the alignment.