Class NMPopupButton

  • All Implemented Interfaces:
    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:
    NMActionButton

    @OpenApi
    public class NMPopupButton
    extends javax.swing.JButton
    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/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 java.util.Vector mHelpListeners
      HelpListeners of this button.
      private java.util.List mShortcuts
      The shortcut for button activation
      private javax.swing.Timer mTimer
      Timer for press (show action on right click)
      private static java.lang.String uiClassID  
      • 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 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
      NMPopupButton()
      Constructs not pushed button with no image, empty command string and empty help string.
      NMPopupButton​(javax.swing.Action action)
      Creates button from given action.
      NMPopupButton​(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.
      java.util.List getShortcuts()
      Gets list of shortcut for button activation
      java.lang.String getUIClassID()
      Returns a string that specifies the name of the l&f class that renders this component.
      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.
      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 rightClickAction​(java.awt.event.MouseEvent e)
      This method is called if right click is done on the button.
      void setShortcuts​(java.util.List scut)
      Sets shortcut for popup button.
      void setToolTipText​(java.lang.String text)
      Registers the text to display in a tool tip.
      void updateUI()
      Resets the UI property to a value from the current look and feel.
      • Methods inherited from class javax.swing.JButton

        getAccessibleContext, isDefaultButton, isDefaultCapable, paramString, removeNotify, 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, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setModel, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setText, setUI, 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, 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
    • Field Detail

      • mTimer

        private javax.swing.Timer mTimer
        Timer for press (show action on right click)
      • mHelpListeners

        private java.util.Vector mHelpListeners
        HelpListeners of this button.
      • mShortcuts

        private java.util.List mShortcuts
        The shortcut for button activation
    • Constructor Detail

      • NMPopupButton

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

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

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

      • 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
        See Also:
        #setPushed
      • 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​(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 scut)
        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
      • updateUI

        public void updateUI()
        Resets the UI property to a value from the current look and feel.
        Overrides:
        updateUI in class javax.swing.JButton
        See Also:
        JComponent.updateUI()
      • getUIClassID

        public java.lang.String getUIClassID()
        Returns a string that specifies the name of the l&f class that renders this component.
        Overrides:
        getUIClassID in class javax.swing.JButton
        Returns:
        String "ToggleButtonUI"
        See Also:
        JComponent.getUIClassID(), description: A string that specifies the name of the L class
      • 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.