JIDE Common Layer 2.7.1

com.jidesoft.swing
Class JideSplitButton

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.AbstractButton
                  extended by javax.swing.JMenuItem
                      extended by javax.swing.JMenu
                          extended by com.jidesoft.swing.JideMenu
                              extended by com.jidesoft.swing.JideSplitButton
All Implemented Interfaces:
Alignable, ButtonStyle, ComponentStateSupport, java.awt.image.ImageObserver, java.awt.ItemSelectable, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.MenuElement, javax.swing.SwingConstants
Direct Known Subclasses:
JideToggleSplitButton

public class JideSplitButton
extends JideMenu
implements ButtonStyle, ComponentStateSupport

JideSplitButton is a combination of button and menu. There is a line in the middle of the button that splits the button into two portions. The portion before the line is a button. User can click on it and trigger an action. The portion after the line is a menu. User can click on it to show a normal menu.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.jidesoft.swing.JideMenu
JideMenu.MenuCreator, JideMenu.PopupMenuCustomizer, JideMenu.PopupMenuOriginCalculator
 
Nested classes/interfaces inherited from class javax.swing.JMenu
javax.swing.JMenu.AccessibleJMenu, javax.swing.JMenu.WinListener
 
Nested classes/interfaces inherited from class javax.swing.JMenuItem
javax.swing.JMenuItem.AccessibleJMenuItem
 
Nested classes/interfaces inherited from class javax.swing.AbstractButton
javax.swing.AbstractButton.AccessibleAbstractButton, javax.swing.AbstractButton.ButtonChangeListener
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.lang.String 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
accessibleContext, 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
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
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 com.jidesoft.swing.Alignable
PROPERTY_ORIENTATION
 
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
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JideSplitButton()
           
JideSplitButton(javax.swing.Action a)
           
JideSplitButton(javax.swing.Icon icon)
           
JideSplitButton(java.lang.String s)
           
JideSplitButton(java.lang.String s, javax.swing.Icon icon)
           
 
Method Summary
 void doClick()
          Clicks on the button part of the JideSplitButton.
 void doClickOnMenu()
          Clicks on the drop down menu part of the JideSplitButton.
 java.awt.Color getBackgroundOfState(int state)
          Gets the background for different states.
 int getButtonStyle()
          Gets the button style.
 java.awt.Color getDefaultForeground()
           
 java.awt.Color getForegroundOfState(int state)
          Gets the foreground for different states.
 javax.swing.plaf.ButtonUI getUI()
          Returns the split button 's current UI.
 java.lang.String getUIClassID()
          Returns the name of the L&F class that renders this component.
protected  void initComponent()
           
 boolean isAlwaysDropdown()
          Checks the alwaysDropdown property value.
 boolean isButtonEnabled()
          Returns the state of the button part of the JideSplitButton.
 boolean isButtonSelected()
          Returns the state of the button part of the JideSplitButton.
 void setAlwaysDropdown(boolean alwaysDropdown)
          If the property is true, the split button doesn't have default action.
 void setBackgroundOfState(int state, java.awt.Color color)
          Sets the background for different states.
 void setButtonEnabled(boolean b)
          Sets the state of the button part of the JideSplitButton.
 void setButtonSelected(boolean b)
          Sets the state of the button part of the JideSplitButton.
 void setButtonStyle(int buttonStyle)
          Sets the button style.
 void setDefaultForeground(java.awt.Color defaultForeground)
           
 void setForegroundOfState(int state, java.awt.Color color)
          Sets the foreground for different states.
 void setText(java.lang.String text)
           
 void setUI(javax.swing.plaf.ButtonUI ui)
          Sets the L&F object that renders this component.
 void updateUI()
          Notification from the UIFactory that the L&F has changed.
 
Methods inherited from class com.jidesoft.swing.JideMenu
getMenuCreator, getOrientation, getOriginCalculator, getPopupMenuCustomizer, getPopupMenuOrigin, getPreferredPopupHorizontalAlignment, getPreferredPopupVerticalAlignment, hideMenu, initMenu, isOpaque, isTopLevelMenu, originalIsOpaque, setMenuCreator, setOrientation, setOriginCalculator, setPopupMenuCustomizer, setPopupMenuVisible, setPreferredPopupHorizontalAlignment, setPreferredPopupVerticalAlignment, supportHorizontalOrientation, supportVerticalOrientation
 
Methods inherited from class javax.swing.JMenu
add, add, add, add, add, addMenuListener, addSeparator, applyComponentOrientation, createActionChangeListener, createActionComponent, createWinListener, doClick, fireMenuCanceled, fireMenuDeselected, fireMenuSelected, getAccessibleContext, getComponent, getDelay, getItem, getItemCount, getMenuComponent, getMenuComponentCount, getMenuComponents, getMenuListeners, getPopupMenu, getSubElements, insert, insert, 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
actionPropertyChanged, addMenuDragMouseListener, addMenuKeyListener, configurePropertiesFromAction, 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, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHideActionText, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getVerticalAlignment, getVerticalTextPosition, imageUpdate, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, paintBorder, removeActionListener, removeChangeListener, removeItemListener, removeNotify, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setFocusPainted, setHideActionText, setHorizontalAlignment, setHorizontalTextPosition, setIcon, 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, createToolTip, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOptimizedDrawingEnabled, isPaintingForPrint, 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, getComponentCount, getComponents, 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, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, 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, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, 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
 

Field Detail

PROPERTY_ALWAYS_DROPDOWN

public static final java.lang.String PROPERTY_ALWAYS_DROPDOWN
See Also:
Constant Field Values
Constructor Detail

JideSplitButton

public JideSplitButton()

JideSplitButton

public JideSplitButton(java.lang.String s)

JideSplitButton

public JideSplitButton(java.lang.String s,
                       javax.swing.Icon icon)

JideSplitButton

public JideSplitButton(javax.swing.Icon icon)

JideSplitButton

public JideSplitButton(javax.swing.Action a)
Method Detail

initComponent

protected void initComponent()

getUI

public javax.swing.plaf.ButtonUI getUI()
Returns the split button 's current UI.

Overrides:
getUI in class javax.swing.AbstractButton
See Also:
setUI(javax.swing.plaf.ButtonUI)

setUI

public void setUI(javax.swing.plaf.ButtonUI ui)
Sets the L&F object that renders this component.

Overrides:
setUI in class javax.swing.AbstractButton
Parameters:
ui - the JideSplitButtonUI L&F object
See Also:
UIDefaults.getUI(javax.swing.JComponent)

updateUI

public void updateUI()
Notification from the UIFactory that the L&F has changed. Called to replace the UI with the latest version from the UIFactory.

Overrides:
updateUI in class javax.swing.JMenu
See Also:
JComponent.updateUI()

getUIClassID

public java.lang.String getUIClassID()
Returns the name of the L&F class that renders this component.

Overrides:
getUIClassID in class javax.swing.JMenu
Returns:
the string "JideSplitButtonUI"
See Also:
JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)

isButtonSelected

public boolean isButtonSelected()
Returns the state of the button part of the JideSplitButton. True if the toggle button is selected, false if it's not.

Returns:
true if the toggle button is selected, otherwise false

setButtonSelected

public void setButtonSelected(boolean b)
Sets the state of the button part of the JideSplitButton. Note that this method does not trigger an actionEvent. Call doClick to perform a programmatic action change.

Parameters:
b - true if the button is selected, otherwise false

isButtonEnabled

public boolean isButtonEnabled()
Returns the state of the button part of the JideSplitButton. True if the button is enabled, false if it's not.

Returns:
true if the button is enabled, otherwise false

setButtonEnabled

public void setButtonEnabled(boolean b)
Sets the state of the button part of the JideSplitButton.

Parameters:
b - true if the button is enabled, otherwise false

getButtonStyle

public int getButtonStyle()
Gets the button style.

Specified by:
getButtonStyle in interface ButtonStyle
Returns:
the button style.

setButtonStyle

public void setButtonStyle(int buttonStyle)
Sets the button style.

Specified by:
setButtonStyle in interface ButtonStyle
Parameters:
buttonStyle - the new button style.

isAlwaysDropdown

public boolean isAlwaysDropdown()
Checks the alwaysDropdown property value.

Returns:
true or false. If true, the split button doesn't have default action. It always drops down the menu when mouse clicks

setAlwaysDropdown

public void setAlwaysDropdown(boolean alwaysDropdown)
If the property is true, the split button doesn't have default action. It always drops down the menu when mouse clicks. By default, this value is false.

Parameters:
alwaysDropdown - true or false.

setText

public void setText(java.lang.String text)
Overrides:
setText in class javax.swing.AbstractButton

getDefaultForeground

public java.awt.Color getDefaultForeground()

setDefaultForeground

public void setDefaultForeground(java.awt.Color defaultForeground)

getBackgroundOfState

public java.awt.Color getBackgroundOfState(int state)
Gets the background for different states. The states are defined in ThemePainter as constants. Not all states are supported by all components. If the state is not supported or background is never set, it will return null.

Please note, each L&F will have its own way to paint the different backgrounds. This method allows you to customize it for each component to use a different background. So if you want the background to be used, don't use a ColorUIResource because UIResource is considered as a setting set by the L&F and any L&F can choose to ignore it.

Specified by:
getBackgroundOfState in interface ComponentStateSupport
Parameters:
state - the button state. Please refer to ThemePainter to see the list of available states.
Returns:
the background for different states.

setBackgroundOfState

public void setBackgroundOfState(int state,
                                 java.awt.Color color)
Sets the background for different states. The states are defined in ThemePainter as constants. Not all states are supported by all components. If the state is not supported or background is never set, it will return null.

Please note, each L&F will have its own way to paint the different backgrounds. This method allows you to customize it for each component to use a different background. So if you want the background to be used, don't use a ColorUIResource because UIResource is considered as a setting set by the L&F and any L&F can choose to ignore it.

Specified by:
setBackgroundOfState in interface ComponentStateSupport
Parameters:
state - the button state. Please refer to ThemePainter to see the list of available states.
color - the background color

getForegroundOfState

public java.awt.Color getForegroundOfState(int state)
Gets the foreground for different states. The states are defined in ThemePainter as constants. Not all states are supported by all components. If the state is not supported or foreground is never set, it will return null.

Please note, each L&F will have its own way to paint the different foregrounds. This method allows you to customize it for each component to use a different foreground. So if you want the foreground to be used, don't use a ColorUIResource because UIResource is considered as a setting set by the L&F and any L&F can choose to ignore it.

Specified by:
getForegroundOfState in interface ComponentStateSupport
Parameters:
state - the button state. Please refer to ThemePainter to see the list of available states.
Returns:
the foreground for different states.

setForegroundOfState

public void setForegroundOfState(int state,
                                 java.awt.Color color)
Sets the foreground for different states. The states are defined in ThemePainter as constants. Not all states are supported by all components. If the state is not supported or foreground is never set, it will return null.

Please note, each L&F will have its own way to paint the different foregrounds. This method allows you to customize it for each component to use a different foreground. So if you want the foreground to be used, don't use a ColorUIResource because UIResource is considered as a setting set by the L&F and any L&F can choose to ignore it.

Specified by:
setForegroundOfState in interface ComponentStateSupport
Parameters:
state - the button state. Please refer to ThemePainter to see the list of available states.
color - the background color

doClick

public void doClick()
Clicks on the button part of the JideSplitButton.

Overrides:
doClick in class javax.swing.AbstractButton

doClickOnMenu

public void doClickOnMenu()
Clicks on the drop down menu part of the JideSplitButton.


JIDE Common Layer 2.7.1