Class NMJideButton

  • All Implemented Interfaces:
    com.jidesoft.swing.Alignable, com.jidesoft.swing.AlignmentSupport, com.jidesoft.swing.ButtonStyle, com.jidesoft.swing.ComponentStateSupport, com.nomagic.awt.HelpInformationProvider, java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.ItemSelectable, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.SwingConstants
    Direct Known Subclasses:
    NMActionJideButton

    @OpenApi
    public class NMJideButton
    extends com.jidesoft.swing.JideButton
    implements java.awt.event.MouseListener, java.io.Serializable, java.awt.event.KeyListener, com.nomagic.awt.HelpInformationProvider
    This is simple image popup button bean. Then user moves mouse on it, button border is drawn as raised 3D rectangle; if button is pushed, it's border is drawn as hollow 3D rectangle. Button size is the same as image size. This button has three modes: pushed - is button pushed toggle - is button a toggle button. If button is not a toggle button, the user can only push it (not to release) sticky - is button is a sticky button. If button is not sticky, after mouse released it will lose it's pushed state. The button can registry ActionListeners. ActionEvent is fired when user presses and releases mouse on the button. If mouse was only pressed on the button and releases elsewhere, ActionEvent is not fired. The button also can registry HelpListeners. HelpEvent is fired when user moves mouse pointer on the button or moves it out. When mouse moves in HelpEvent is fired with parameter getTooltipText(), when mouse moves out, HelpEvent is fired with parameter null.
    See Also:
    ActionEvent, ActionListener, Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private class  com.nomagic.awt.NMJideButton.StateChangeListener  
      • Nested classes/interfaces inherited from class javax.swing.JButton

        javax.swing.JButton.AccessibleJButton
      • 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

      Fields 
      Modifier and Type Field Description
      private javax.swing.event.ChangeListener mChangeListener  
      private com.nomagic.awt.NMJideButtonServant mServant  
      private java.util.function.BiFunction<NMJideButton,​java.awt.event.MouseEvent,​java.awt.Point> toolTipLocationProvider  
      • Fields inherited from class com.jidesoft.swing.JideButton

        CLIENT_PROPERTY_HIDE_POPUPMENU, PROPERTY_ALWAYS_SHOW_HYPERLINK
      • 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

      Constructors 
      Constructor Description
      NMJideButton()
      Constructs not pushed button with no image, empty command string and empty help string.
      NMJideButton​(javax.swing.Action action)
      Creates button from given action.
      NMJideButton​(javax.swing.Icon icon)
      Creates button with given icon.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addHelpListener​(com.nomagic.awt.HelpListener l)
      Informs the component that this HelpListener is interested in the help events generated by this component.
      void addNotify()  
      javax.swing.JToolTip createToolTip()
      Return special implementation of tooltip component
      private javax.swing.event.ChangeListener getChangeListener()  
      private com.nomagic.awt.NMJideButtonServant getServant()  
      java.util.List getShortcuts()
      Gets list of shortcut for button activation
      java.awt.Point getToolTipLocation​(java.awt.event.MouseEvent event)  
      java.util.function.BiFunction<NMJideButton,​java.awt.event.MouseEvent,​java.awt.Point> getToolTipLocationProvider()  
      private void init()  
      void keyPressed​(java.awt.event.KeyEvent evt)  
      void keyReleased​(java.awt.event.KeyEvent evt)  
      void keyTyped​(java.awt.event.KeyEvent evt)  
      void mouseClicked​(java.awt.event.MouseEvent e)  
      void mouseEntered​(java.awt.event.MouseEvent e)
      Processes the mouse enter action.
      private void mouseExited()  
      void mouseExited​(java.awt.event.MouseEvent e)
      Processes the mouse exit action.
      void mousePressed​(java.awt.event.MouseEvent e)
      Processes the mouse pressed action.
      void mouseReleased​(java.awt.event.MouseEvent e)
      Processes the mouse release event.
      void notifyHelpListeners​(java.lang.String newHelp)
      Processes the mouse enter and mouse exit events.
      void removeHelpListener​(com.nomagic.awt.HelpListener l)
      Informs the component that this HelpListener is no longer interested in the help events generated by this component.
      void removeNotify()  
      void rightClickAction​(java.awt.event.MouseEvent e)
      This method is called if right click is done on the button.
      void setIcon​(javax.swing.Icon icon)  
      void setShortcuts​(java.util.List shortcuts)
      Sets shortcut for popup button.
      void setToolTipLocationProvider​(java.util.function.BiFunction<NMJideButton,​java.awt.event.MouseEvent,​java.awt.Point> toolTipLocationProvider)  
      void setToolTipText​(java.lang.String text)
      Registers the text to display in a tool tip.
      • Methods inherited from class com.jidesoft.swing.JideButton

        getBackgroundOfState, getButtonStyle, getDefaultForeground, getForegroundOfState, getOrientation, getUIClassID, isAlwaysShowHyperlink, setAlwaysShowHyperlink, setBackgroundOfState, setButtonStyle, setDefaultForeground, setForegroundOfState, setOrientation, setRolloverEnabled, setText, supportHorizontalOrientation, supportVerticalOrientation, updateUI
      • Methods inherited from class javax.swing.JButton

        getAccessibleContext, isDefaultButton, isDefaultCapable, paramString, setDefaultCapable
      • Methods inherited from class javax.swing.AbstractButton

        actionPropertyChanged, addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, configurePropertiesFromAction, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, doClick, 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, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, init, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setEnabled, setFocusPainted, setHideActionText, setHorizontalAlignment, setHorizontalTextPosition, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setModel, setMultiClickThreshhold, setPressedIcon, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setUI, setVerticalAlignment, setVerticalTextPosition
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, 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, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, 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, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, 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, remove, remove, removeAll, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, 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 com.jidesoft.swing.AlignmentSupport

        getHorizontalAlignment, getVerticalAlignment, setHorizontalAlignment, setVerticalAlignment
    • Field Detail

      • mServant

        private com.nomagic.awt.NMJideButtonServant mServant
      • mChangeListener

        private javax.swing.event.ChangeListener mChangeListener
      • toolTipLocationProvider

        @CheckForNull
        private java.util.function.BiFunction<NMJideButton,​java.awt.event.MouseEvent,​java.awt.Point> toolTipLocationProvider
    • Constructor Detail

      • NMJideButton

        @OpenApi
        public NMJideButton()
        Constructs not pushed button with no image, empty command string and empty help string. The size of the button will be zero.
      • NMJideButton

        @OpenApi
        public NMJideButton​(javax.swing.Action action)
        Creates button from given action.
        See Also:
        JButton(javax.swing.Action)
      • NMJideButton

        @OpenApi
        public NMJideButton​(@CheckForNull
                            javax.swing.Icon icon)
        Creates button with given icon.
        Parameters:
        icon - icon for button.
        See Also:
        JButton(javax.swing.Icon)
    • Method Detail

      • setIcon

        public void setIcon​(@CheckForNull
                            javax.swing.Icon icon)
        Overrides:
        setIcon in class com.jidesoft.swing.JideButton
      • init

        private void init()
      • mouseReleased

        public void mouseReleased​(java.awt.event.MouseEvent e)
        Processes the mouse release event. At first this method checks if the button has focus (mFocus is true). If this is true, ActionEvent will be thrown.
        Specified by:
        mouseReleased in interface java.awt.event.MouseListener
        Parameters:
        e - the release mouse event;
      • rightClickAction

        public void rightClickAction​(java.awt.event.MouseEvent e)
        This method is called if right click is done on the button.
        Parameters:
        e - click event.
      • mouseClicked

        public void mouseClicked​(java.awt.event.MouseEvent e)
        Specified by:
        mouseClicked in interface java.awt.event.MouseListener
        See Also:
        MouseListener.mouseClicked(java.awt.event.MouseEvent)
      • mousePressed

        public void mousePressed​(java.awt.event.MouseEvent e)
        Processes the mouse pressed action. After press button must be drawn as pushed.
        Specified by:
        mousePressed in interface java.awt.event.MouseListener
        Parameters:
        e - MouseEvent
      • mouseEntered

        public void mouseEntered​(java.awt.event.MouseEvent e)
        Processes the mouse enter action. This method sets focus flag, and notifies HelpListeners with parameter "help string".
        Specified by:
        mouseEntered in interface java.awt.event.MouseListener
        Parameters:
        e - MouseEvent
      • mouseExited

        public void mouseExited​(java.awt.event.MouseEvent e)
        Processes the mouse exit action. Calls notifyHelpListeners method with null as parameter.
        Specified by:
        mouseExited in interface java.awt.event.MouseListener
        Parameters:
        e - MouseEvent
        See Also:
        notifyHelpListeners(java.lang.String)
      • addHelpListener

        public void addHelpListener​(com.nomagic.awt.HelpListener l)
        Informs the component that this HelpListener is interested in the help events generated by this component.
        Specified by:
        addHelpListener in interface com.nomagic.awt.HelpInformationProvider
        Parameters:
        l - the HelpListener
        See Also:
        removeHelpListener(com.nomagic.awt.HelpListener)
      • removeHelpListener

        public void removeHelpListener​(com.nomagic.awt.HelpListener l)
        Informs the component that this HelpListener is no longer interested in the help events generated by this component.
        Specified by:
        removeHelpListener in interface com.nomagic.awt.HelpInformationProvider
        Parameters:
        l - the HelpListener
        See Also:
        addHelpListener(com.nomagic.awt.HelpListener)
      • notifyHelpListeners

        public void notifyHelpListeners​(@CheckForNull
                                        java.lang.String newHelp)
        Processes the mouse enter and mouse exit events. This method calls the helpChanged() methods of all the listeners who have expressed their interest by calling addHelpListener
        Parameters:
        newHelp - the new help string for HelpEvent
      • setShortcuts

        public void setShortcuts​(java.util.List shortcuts)
        Sets shortcut for popup button.
      • getShortcuts

        public java.util.List getShortcuts()
        Gets list of shortcut for button activation
        Returns:
        list of shortcuts.
      • keyPressed

        public void keyPressed​(java.awt.event.KeyEvent evt)
        Specified by:
        keyPressed in interface java.awt.event.KeyListener
      • keyReleased

        public void keyReleased​(java.awt.event.KeyEvent evt)
        Specified by:
        keyReleased in interface java.awt.event.KeyListener
      • keyTyped

        public void keyTyped​(java.awt.event.KeyEvent evt)
        Specified by:
        keyTyped in interface java.awt.event.KeyListener
      • setToolTipText

        public void setToolTipText​(java.lang.String text)
        Registers the text to display in a tool tip. The text displays when the cursor lingers over the component.

        See How to Use Tool Tips in The Java Tutorial for further documentation.

        Overrides:
        setToolTipText in class javax.swing.JComponent
        Parameters:
        text - the string to display; if the text is null, the tool tip is turned off for this component
        See Also:
        preferred: true description: The text to display in a tool tip.
      • createToolTip

        public javax.swing.JToolTip createToolTip()
        Return special implementation of tooltip component
        Overrides:
        createToolTip in class javax.swing.JComponent
      • getServant

        private com.nomagic.awt.NMJideButtonServant getServant()
      • getChangeListener

        private javax.swing.event.ChangeListener getChangeListener()
      • mouseExited

        private void mouseExited()
      • addNotify

        public void addNotify()
        Overrides:
        addNotify in class javax.swing.JComponent
      • removeNotify

        public void removeNotify()
        Overrides:
        removeNotify in class javax.swing.JButton
      • setToolTipLocationProvider

        public final void setToolTipLocationProvider​(@CheckForNull
                                                     java.util.function.BiFunction<NMJideButton,​java.awt.event.MouseEvent,​java.awt.Point> toolTipLocationProvider)
      • getToolTipLocationProvider

        @CheckForNull
        public final java.util.function.BiFunction<NMJideButton,​java.awt.event.MouseEvent,​java.awt.Point> getToolTipLocationProvider()
      • getToolTipLocation

        public java.awt.Point getToolTipLocation​(java.awt.event.MouseEvent event)
        Overrides:
        getToolTipLocation in class javax.swing.JComponent