Class SplitMenuButton
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.AbstractButton
javax.swing.JMenuItem
javax.swing.JMenu
com.jidesoft.swing.JideMenu
com.jidesoft.swing.JideSplitButton
ro.sync.ui.ApplicationSplitButton
ro.sync.exml.workspace.api.standalone.ui.SplitMenuButton
- All Implemented Interfaces:
com.jidesoft.swing.Alignable
,com.jidesoft.swing.ButtonStyle
,com.jidesoft.swing.ComponentStateSupport
,ImageObserver
,ItemSelectable
,MenuContainer
,Serializable
,Accessible
,MenuElement
,SwingConstants
@API(type=EXTENDABLE,
src=PUBLIC)
public class SplitMenuButton
extends ro.sync.ui.ApplicationSplitButton
A component representing a combination of a button and a menu. There is a line in the component that
splits it into the two aforementioned sub-components. The part before the line is a button,
and can be clicked in order to trigger an action. The part after the line is a menu.
Code sample:
Code sample:
SplitMenuButton splitMenuButton = new SplitMenuButton( // No default text null, // No default icon null, // Text can update when selecting an action false, // Icon can update when selecting an action false, // Don't always show the menu. Rather execute the current action. false, // Promote the last executed action as the default one. true); // Populate the menu List actions = getOrCreateActions(); splitMenuButton.setMenuActions(actions); // Set the current action splitMenuButton.setCurrentAction(actions.get(0));IMPORTANT: it is strongly recommended to use the methods exposed by this class for adding/setting actions, and not the ones that come from the super classes.
- Since:
- 19.0
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.jidesoft.swing.JideMenu
com.jidesoft.swing.JideMenu.MenuCreator, com.jidesoft.swing.JideMenu.PopupMenuCustomizer, com.jidesoft.swing.JideMenu.PopupMenuOriginCalculator
Nested classes/interfaces inherited from class javax.swing.JMenu
JMenu.AccessibleJMenu, JMenu.WinListener
Nested classes/interfaces inherited from class javax.swing.JMenuItem
JMenuItem.AccessibleJMenuItem
Nested classes/interfaces inherited from class javax.swing.AbstractButton
AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListener
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
Fields inherited from class ro.sync.ui.ApplicationSplitButton
messages
Fields inherited from class com.jidesoft.swing.JideSplitButton
ACTION_PROPERTY_SPLIT_BUTTON_ENABLED, PROPERTY_ALWAYS_DROPDOWN
Fields inherited from class com.jidesoft.swing.JideMenu
DELAY
Fields inherited from class javax.swing.JMenu
popupListener
Fields inherited from class javax.swing.AbstractButton
actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface com.jidesoft.swing.Alignable
PROPERTY_ORIENTATION
Fields inherited from interface com.jidesoft.swing.ButtonStyle
BUTTON_STYLE_PROPERTY, CLIENT_PROPERTY_SEGMENT_POSITION, FLAT_STYLE, HYPERLINK_STYLE, SEGMENT_POSITION_FIRST, SEGMENT_POSITION_LAST, SEGMENT_POSITION_MIDDLE, SEGMENT_POSITION_ONLY, TOOLBAR_STYLE, TOOLBOX_STYLE
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
-
Constructor Summary
ConstructorsConstructorDescriptionSplitMenuButton
(String defaultText, Icon defaultIcon, boolean updateText, boolean updateIcon, boolean alwaysShowMenu, boolean setSelectedActionAsDefault) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addActionsToMenu
(List actions) Adds a list of actions to the end of the menu.void
addActionToMenu
(Action action, boolean canSetActionAsDefault) Adds an action to the end of the menu.void
insertAction
(Action action, int position) Inserts an action at the given position in the menu.void
setCurrentAction
(Action action) Sets the given action as the current/default one.void
setMenuActions
(List actions) Sets the menu actions.Methods inherited from class ro.sync.ui.ApplicationSplitButton
add, add, addAction, addAction, addActions, addActions, createToolTip, doClick, doClick, getAccessibleContext, getComponentCount, getComponents, getDisabledIcon, getDisabledSelectedIcon, getFont, getMarker, getTag, hideMenu, insert, insert, isFocusable, isFocusPainted, setAction, setActions, setActions, setActions, setActions, setAlwaysDropdown, setIcon, setText
Methods inherited from class com.jidesoft.swing.JideSplitButton
actionPropertyChanged, configurePropertiesFromAction, doClickOnMenu, getBackgroundOfState, getButtonStyle, getDefaultForeground, getForegroundOfState, getUI, getUIClassID, initComponent, isAlwaysDropdown, isButtonEnabled, isButtonSelected, isSplitButtonEnabled, setBackgroundOfState, setButtonEnabled, setButtonSelected, setButtonStyle, setDefaultForeground, setForegroundOfState, setIconFromAction, setUI, updateUI
Methods inherited from class com.jidesoft.swing.JideMenu
getMenuCreator, getOrientation, getOriginCalculator, getPopupMenuCustomizer, getPopupMenuOrigin, getPreferredPopupHorizontalAlignment, getPreferredPopupVerticalAlignment, initMenu, isOpaque, isTopLevelMenu, originalIsOpaque, setMenuCreator, setOrientation, setOriginCalculator, setPopupMenuCustomizer, setPopupMenuVisible, setPreferredPopupHorizontalAlignment, setPreferredPopupVerticalAlignment, shouldHidePopupMenu, supportHorizontalOrientation, supportVerticalOrientation
Methods inherited from class javax.swing.JMenu
add, add, add, addMenuListener, addSeparator, applyComponentOrientation, createActionChangeListener, createActionComponent, createWinListener, fireMenuCanceled, fireMenuDeselected, fireMenuSelected, getComponent, getDelay, getItem, getItemCount, getMenuComponent, getMenuComponentCount, getMenuComponents, getMenuListeners, getPopupMenu, getSubElements, insert, insertSeparator, isMenuComponent, isPopupMenuVisible, isSelected, isTearOff, menuSelectionChanged, paramString, processKeyEvent, remove, remove, remove, removeAll, removeMenuListener, setAccelerator, setComponentOrientation, setDelay, setMenuLocation, setModel, setSelected
Methods inherited from class javax.swing.JMenuItem
addMenuDragMouseListener, addMenuKeyListener, fireMenuDragMouseDragged, fireMenuDragMouseEntered, fireMenuDragMouseExited, fireMenuDragMouseReleased, fireMenuKeyPressed, fireMenuKeyReleased, fireMenuKeyTyped, getAccelerator, getMenuDragMouseListeners, getMenuKeyListeners, init, isArmed, processKeyEvent, processMenuDragMouseEvent, processMenuKeyEvent, processMouseEvent, removeMenuDragMouseListener, removeMenuKeyListener, setArmed, setEnabled, setUI
Methods inherited from class javax.swing.AbstractButton
addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisplayedMnemonicIndex, getHideActionText, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getVerticalAlignment, getVerticalTextPosition, imageUpdate, isBorderPainted, isContentAreaFilled, isRolloverEnabled, paintBorder, removeActionListener, removeChangeListener, removeItemListener, removeNotify, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setFocusPainted, setHideActionText, setHorizontalAlignment, setHorizontalTextPosition, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelectedIcon, setVerticalAlignment, setVerticalTextPosition
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Methods inherited from class java.awt.Container
add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate, validateTree
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface javax.swing.MenuElement
processKeyEvent, processMouseEvent
-
Constructor Details
-
SplitMenuButton
public SplitMenuButton(String defaultText, Icon defaultIcon, boolean updateText, boolean updateIcon, boolean alwaysShowMenu, boolean setSelectedActionAsDefault) Constructor.- Parameters:
defaultText
- The default text, used when there is no action set explicitly. Can benull
.defaultIcon
- The default icon, used when there is no action set explicitly. Can benull
.updateText
-true
to update the text of the button when selecting an action.updateIcon
-true
to update the icon of the button when selecting an action.alwaysShowMenu
-true
if pressing the button should always display the associated menu.setSelectedActionAsDefault
-true
to promote the selected action, setting it as the current/default action of the button.
-
-
Method Details
-
setMenuActions
Sets the menu actions. All other previous actions (if any) are removed.- Parameters:
actions
- The list of actions to set in the menu.
-
setCurrentAction
Sets the given action as the current/default one.- Parameters:
action
- The action to be set as the current/default one.
-
addActionToMenu
Adds an action to the end of the menu.- Parameters:
action
- The list of actions to be added.canSetActionAsDefault
-True
if this action can be set as the current/default action for the button.
-
addActionsToMenu
Adds a list of actions to the end of the menu.- Parameters:
actions
- The list of actions to be added.
-
insertAction
Inserts an action at the given position in the menu.- Parameters:
action
- The action to add.position
- The position in the menu where the action is to be added.
-