public class 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.BackCommandPolicy | The 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
From Component
DEFAULT_CURSOR, CROSSHAIR_CURSOR, TEXT_CURSOR, WAIT_CURSOR, SW_RESIZE_CURSOR, SE_RESIZE_CURSOR, NW_RESIZE_CURSOR, NE_RESIZE_CURSOR, N_RESIZE_CURSOR, S_RESIZE_CURSOR, W_RESIZE_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, MOVE_CURSOR, DRAG_REGION_NOT_DRAGGABLE, DRAG_REGION_POSSIBLE_DRAG_X, DRAG_REGION_POSSIBLE_DRAG_Y, DRAG_REGION_POSSIBLE_DRAG_XY, DRAG_REGION_LIKELY_DRAG_X, DRAG_REGION_LIKELY_DRAG_Y, DRAG_REGION_LIKELY_DRAG_XY, DRAG_REGION_IMMEDIATELY_DRAG_X, DRAG_REGION_IMMEDIATELY_DRAG_Y, DRAG_REGION_IMMEDIATELY_DRAG_XY, BRB_CONSTANT_ASCENT, BRB_CONSTANT_DESCENT, BRB_CENTER_OFFSET, BRB_OTHER, CENTER, TOP, LEFT, BOTTOM, RIGHT, BASELINE
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()Toolbar
public Toolbar(boolean layered)Parameters
layeredboolean- if true places the Toolbar on top of the Content Pane
Method details
isCenteredDefault
public static boolean isCenteredDefault()Returns
setCenteredDefault
public static void setCenteredDefault(boolean aCenteredDefault)Parameters
aCenteredDefaultboolean- the centeredDefault to set
isOnTopSideMenu
public static boolean isOnTopSideMenu()Returns
setOnTopSideMenu
public static void setOnTopSideMenu(boolean aOnTopSideMenu)Parameters
aOnTopSideMenuboolean- the onTopSideMenu to set
isEnableSideMenuSwipe
public static boolean isEnableSideMenuSwipe()Returns
setEnableSideMenuSwipe
public static void setEnableSideMenuSwipe(boolean aEnableSideMenuSwipe)Parameters
aEnableSideMenuSwipeboolean- the enableSideMenuSwipe to set
isGlobalToolbar
public static boolean isGlobalToolbar()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 formReturns
setGlobalToolbar
public static void setGlobalToolbar(boolean gt)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 formParameters
gtboolean- true to enable the toolbar globally
isPermanentSideMenu
public static boolean isPermanentSideMenu()Returns
setPermanentSideMenu
public static void setPermanentSideMenu(boolean p)Parameters
pboolean- true to have a permanent side menu
setTitle
public void setTitle(String title)Parameters
titleString- the Toolbar title
isTitleCentered
public boolean isTitleCentered()Returns
setTitleCentered
public void setTitleCentered(boolean cent)Parameters
centboolean- whether the title should be centered
openSideMenu
public void openSideMenu()isSideMenuShowing
public boolean isSideMenuShowing()openRightSideMenu
public void openRightSideMenu()closeSideMenu
public void closeSideMenu()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
onFinishRunnable- callback to invoke once the side menu is closed,
or
nullto skip
closeLeftSideMenu
public void closeLeftSideMenu()closeLeftSideMenu
public void closeLeftSideMenu(Runnable onFinish)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
onFinishRunnable- callback to invoke once the menu is closed, or
nullto skip
closeRightSideMenu
public void closeRightSideMenu()closeRightSideMenu
public void closeRightSideMenu(Runnable onFinish)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
onFinishRunnable- callback to invoke once the menu is closed, or
nullto skip
getTitleComponent
public Component getTitleComponent()Returns
setTitleComponent
public void setTitleComponent(Component titleCmp)Parameters
titleCmpComponent- Component to place in the Toolbar center.
addCommandToOverflowMenu
public Command addCommandToOverflowMenu(String name, Image icon, ActionListener ev)Parameters
nameString- the name/title of the command
iconImage- the icon for the command
evActionListener- the even handler
Returns
setBackCommand
public Command setBackCommand(String title, ActionListener<ActionEvent> listener)setBackCommand(title, Toolbar.BackCommandPolicy.AS_ARROW, listener);Parameters
titleString- command title
listenerActionListener<ActionEvent>- action event for the back command
Returns
setBackCommand
public void setBackCommand(Command cmd)setBackCommand(cmd, Toolbar.BackCommandPolicy.AS_ARROW);Parameters
cmdCommand- the command
setBackCommand
public Command setBackCommand(String title, Toolbar.BackCommandPolicy policy, ActionListener<ActionEvent> listener)Parameters
titleString- command title
policyToolbar.BackCommandPolicy- the behavior of the back command in the title
listenerActionListener<ActionEvent>- action event for the back command
Returns
setBackCommand
public void setBackCommand(Command cmd, Toolbar.BackCommandPolicy policy, float iconSize)Parameters
cmdCommand- the command
policyToolbar.BackCommandPolicy- the behavior of the back command in the title
iconSizefloat- the size of the back command icon in millimeters
setBackCommand
public void setBackCommand(Command cmd, Toolbar.BackCommandPolicy policy)Parameters
cmdCommand- the command
policyToolbar.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
callbackActionListener- gets the search string callbacks
iconSizefloat- indicates the size of the icons used in the search/back in millimeters
showSearchBar
public void showSearchBar(ActionListener<ActionEvent> callback)Parameters
callbackActionListener<ActionEvent>- gets the search string callbacks
removeSearchCommand
public void removeSearchCommand()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
callbackActionListener- gets the search string callbacks
addCommandToOverflowMenu
public void addCommandToOverflowMenu(Command cmd)Parameters
cmdCommand- a Command
getOverflowCommands
public Iterable<Command> getOverflowCommands()Returns
addCommandToSideMenu
public Command addCommandToSideMenu(String name, Image icon, ActionListener ev)Parameters
nameString- the name/title of the command
iconImage- the icon for the command
evActionListener- the even handler
Returns
addCommandToLeftSideMenu
public Command addCommandToLeftSideMenu(String name, Image icon, ActionListener ev)Parameters
nameString- the name/title of the command
iconImage- the icon for the command
evActionListener- the even handler
Returns
addCommandToRightSideMenu
public Command addCommandToRightSideMenu(String name, Image icon, ActionListener ev)Parameters
nameString- the name/title of the command
iconImage- the icon for the command
evActionListener- the even handler
Returns
addComponentToSideMenu
public void addComponentToSideMenu(Component cmp)Parameters
cmpComponent- c Component to be added to the menu
addComponentToSideMenu
protected void addComponentToSideMenu(Container menu, Component cmp)Parameters
menuContainer- the Menu Container that was created in the constructSideNavigationComponent() method
cmpComponent- the Component to add to the side menu
addComponentToSideMenu
public void addComponentToSideMenu(Component cmp, Command cmd)Parameters
cmpComponent- c Component to be added to the menu
cmdCommand- a Command to handle the events
addMaterialCommandToLeftSideMenu
public Command addMaterialCommandToLeftSideMenu(String name, char icon, ActionListener ev)com.codename1.ui.FontImage.Parameters
nameString- the name/title of the command
iconchar- the icon for the command
evActionListener- the even handler
Returns
addMaterialCommandToRightSideMenu
public Command addMaterialCommandToRightSideMenu(String name, char icon, ActionListener ev)com.codename1.ui.FontImage (it requires a
permanent sidemenu or an onTop mode sidemenu, otherwise it does nothing).Parameters
nameString- the name/title of the command
iconchar- the icon for the command
evActionListener- the even handler
Returns
addMaterialCommandToSideMenu
public Command addMaterialCommandToSideMenu(String name, char icon, float size, ActionListener ev)com.codename1.ui.FontImage.Parameters
nameString- the name/title of the command
iconchar- the icon for the command
sizefloat- size in millimeters for the icon
evActionListener- the even handler
Returns
addMaterialCommandToSideMenu
public Command addMaterialCommandToSideMenu(String name, char icon, ActionListener ev)com.codename1.ui.FontImage.Parameters
nameString- the name/title of the command
iconchar- the icon for the command
evActionListener- the even handler
Returns
addMaterialCommandToLeftSideMenu
public Command addMaterialCommandToLeftSideMenu(String name, char icon, float size, ActionListener ev)com.codename1.ui.FontImage.Parameters
nameString- the name/title of the command
iconchar- the icon for the command
sizefloat- size in millimeters for the icon
evActionListener- the even handler
Returns
addMaterialCommandToRightSideMenu
public Command addMaterialCommandToRightSideMenu(String name, char icon, float size, ActionListener ev)com.codename1.ui.FontImage (it requires a
permanent sidemenu or an onTop mode sidemenu, otherwise it does nothing).Parameters
nameString- the name/title of the command
iconchar- the icon for the command
sizefloat- size in millimeters for the icon
evActionListener- the even handler
Returns
addMaterialCommandToRightBar
public Command addMaterialCommandToRightBar(String name, char icon, ActionListener ev)com.codename1.ui.FontImage.Parameters
nameString- the name/title of the command
iconchar- the icon for the command
evActionListener- the even handler
Returns
addMaterialCommandToRightBar
public Command addMaterialCommandToRightBar(String name, char icon, float size, ActionListener ev)com.codename1.ui.FontImage.Parameters
nameString- the name/title of the command
iconchar- the icon for the command
sizefloat- size of the icon in millimeters
evActionListener- the even handler
Returns
addMaterialCommandToLeftBar
public Command addMaterialCommandToLeftBar(String name, char icon, ActionListener ev)com.codename1.ui.FontImage.Parameters
nameString- the name/title of the command
iconchar- the icon for the command
evActionListener- the even handler
Returns
addMaterialCommandToLeftBar
public Command addMaterialCommandToLeftBar(String name, char icon, float size, ActionListener ev)com.codename1.ui.FontImage.Parameters
nameString- the name/title of the command
iconchar- the icon for the command
sizefloat- size in millimeters for the icon
evActionListener- the even handler
Returns
addMaterialCommandToOverflowMenu
public Command addMaterialCommandToOverflowMenu(String name, char icon, ActionListener ev)com.codename1.ui.FontImage.Parameters
nameString- the name/title of the command
iconchar- the icon for the command
evActionListener- the even handler
Returns
addMaterialCommandToOverflowMenu
public Command addMaterialCommandToOverflowMenu(String name, char icon, float size, ActionListener ev)com.codename1.ui.FontImage.Parameters
nameString- the name/title of the command
iconchar- the icon for the command
sizefloat- size in millimeters for the icon
evActionListener- the even handler
Returns
addCommandToSideMenu
public void addCommandToSideMenu(Command cmd)Parameters
cmdCommand- a Command
addCommandToLeftSideMenu
public void addCommandToLeftSideMenu(Command cmd)Parameters
cmdCommand- a Command
addCommandToRightSideMenu
public void addCommandToRightSideMenu(Command cmd)Parameters
cmdCommand- a Command
getLeftSideMenuButton
public Button getLeftSideMenuButton()Returns
getRightSideMenuButton
public Button getRightSideMenuButton()Returns
getOverflowButton
public Button getOverflowButton()Returns
setComponentToSideMenuSouth
public void setComponentToSideMenuSouth(Component sidemenuSouthComponent)Parameters
sidemenuSouthComponentComponent- the new component to place in the south or null to remove the current component
setComponentToRightSideMenuSouth
public void setComponentToRightSideMenuSouth(Component sidemenuSouthComponent)Parameters
sidemenuSouthComponentComponent- the new component to place in the south or null to remove the current component
addComponentToLeftSideMenu
public void addComponentToLeftSideMenu(Component cmp, Command cmd)Parameters
cmpComponent- c Component to be added to the menu
cmdCommand- a Command to handle the events
addComponentToRightSideMenu
public void addComponentToRightSideMenu(Component cmp, Command cmd)Parameters
cmpComponent- c Component to be added to the menu
cmdCommand- a Command to handle the events
addComponentToLeftSideMenu
public void addComponentToLeftSideMenu(Component cmp)Parameters
cmpComponent- c Component to be added to the menu
addComponentToRightSideMenu
public void addComponentToRightSideMenu(Component cmp)Parameters
cmpComponent- c Component to be added to the menu
findCommandComponent
public Button findCommandComponent(Command c)Parameters
cCommand- the command instance
Returns
addCommandToRightBar
public Command addCommandToRightBar(String name, Image icon, ActionListener ev)Parameters
nameString- the name/title of the command
iconImage- the icon for the command
evActionListener- the even handler
Returns
removeCommand
public void removeCommand(Command cmd)Parameters
cmdCommand- Command to remove
addCommandToRightBar
public void addCommandToRightBar(Command cmd)Parameters
cmdCommand- a Command
addCommandToLeftBar
public Command addCommandToLeftBar(String name, Image icon, ActionListener ev)Parameters
nameString- the name/title of the command
iconImage- the icon for the command
evActionListener- the even handler
Returns
addCommandToLeftBar
public void addCommandToLeftBar(Command cmd)Parameters
cmdCommand- a Command
getRightBarCommands
public Iterable<Command> getRightBarCommands()Returns
getLeftBarCommands
public Iterable<Command> getLeftBarCommands()Returns
getAllNativeMenuCommands
public Vector getAllNativeMenuCommands()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
getMenuBar
public MenuBar getMenuBar()Returns
showOverflowMenu
protected Command showOverflowMenu(Dialog menu)createOverflowCommandList
protected List createOverflowCommandList(Vector commands)Parameters
commandsVector- list of command objects
Returns
initTitleBarStatus
protected void initTitleBarStatus()setScrollOffUponContentPane
public void setScrollOffUponContentPane(boolean scrollOff)Parameters
scrollOffboolean- if true the Toolbar needs to scroll off the screen when the Form ContentPane is scrolled
hideToolbar
public void hideToolbar()showToolbar
public void showToolbar()animate
public boolean animate()com.codename1.ui.Display class.Returns
addComponentToLeftSideMenu
protected void addComponentToLeftSideMenu(Container menu, Component cmp)Parameters
menuContainer- the Menu Container that was created in the constructSideNavigationComponent() method
cmpComponent- the Component to add to the side menu
addComponentToRightSideMenu
protected void addComponentToRightSideMenu(Container menu, Component cmp)Parameters
menuContainer- the Menu Container that was created in the constructSideNavigationComponent() method
cmpComponent- the Component to add to the side menu
getSideMenuCommands
public Iterable<Command> getSideMenuCommands()Returns
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
mergeboolean- indicates if the current styles should be merged with the new styles
getRightSideMenuCommands
public Iterable<Command> getRightSideMenuCommands()Returns
removeOverflowCommand
public void removeOverflowCommand(Command cmd)Parameters
cmdCommand- the command to remove from the overflow
setRightSideMenuCmdsAlignedToLeft
public void setRightSideMenuCmdsAlignedToLeft(boolean toLeft)Parameters
toLeftboolean- false is the default, true changes the alignment.