Package de.sciss.gui

Class UnitLabel

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.Icon, javax.swing.SwingConstants

    public class UnitLabel
    extends javax.swing.JLabel
    implements javax.swing.Icon, java.beans.PropertyChangeListener
    This class extends JLabel by adding support for a list of labels which can be easily switched programmatically or by the user to whom a popup menu is presented whenever there is more than one label item. This is useful for adding switchable unit labels to number fields and is used by the ParamField class. You can think of UnitLabel as a JComboBox which uses a text and/or icon label as renderer and not a button.
    See Also:
    ParamField, Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JLabel

        javax.swing.JLabel.AccessibleJLabel
      • 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
      protected boolean cycle  
      protected javax.swing.JPopupMenu pop  
      protected int selectedIdx  
      protected java.util.List units  
      • Fields inherited from class javax.swing.JLabel

        labelFor
      • 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
      UnitLabel()
      Creates a new empty label.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addActionListener​(java.awt.event.ActionListener l)
      Registers a new listener to be informed about unit switches.
      void addUnit​(java.lang.String name)
      Adds a new unit (text label) to the end of the label list.
      void addUnit​(java.lang.String name, javax.swing.Icon icon)
      Adds a new unit (text/icon combo label) to the end of the label list.
      void addUnit​(javax.swing.Icon icon)
      Adds a new unit (icon label) to the end of the label list.
      protected void fireUnitChanged()  
      boolean getCycling()  
      int getIconHeight()
      This method is part of the implementation of the Icon interface and should not be called directly.
      int getIconWidth()
      This method is part of the implementation of the Icon interface and should not be called directly.
      int getSelectedIndex()
      Queries the index of the currently selected unit.
      javax.swing.Action getSelectedUnit()
      Queries the action for selected index.
      javax.swing.Action getUnit​(int idx)
      Queries the action for a given index.
      void paintIcon​(java.awt.Component c, java.awt.Graphics g, int x, int y)
      This method is part of the implementation of the Icon interface and should not be called directly.
      void propertyChange​(java.beans.PropertyChangeEvent e)
      Forwards Font property changes to the child gadgets
      void removeActionListener​(java.awt.event.ActionListener l)
      Unregisters a new listener from being informed about unit switches.
      void setCycling​(boolean b)  
      void setSelectedIndex​(int idx)
      Changes the currently selected unit.
      • Methods inherited from class javax.swing.JLabel

        checkHorizontalKey, checkVerticalKey, getAccessibleContext, getDisabledIcon, getDisplayedMnemonic, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getLabelFor, getText, getUI, getUIClassID, getVerticalAlignment, getVerticalTextPosition, imageUpdate, paramString, setDisabledIcon, setDisplayedMnemonic, setDisplayedMnemonic, setDisplayedMnemonicIndex, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabelFor, setText, setUI, setVerticalAlignment, setVerticalTextPosition, updateUI
      • 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, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, 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, add, add, addContainerListener, addImpl, 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, setLayout, 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

      • pop

        protected final javax.swing.JPopupMenu pop
      • units

        protected final java.util.List units
      • selectedIdx

        protected int selectedIdx
      • cycle

        protected boolean cycle
    • Constructor Detail

      • UnitLabel

        public UnitLabel()
        Creates a new empty label.
    • Method Detail

      • getSelectedIndex

        public int getSelectedIndex()
        Queries the index of the currently selected unit.
        Returns:
        the index of the active unit or -1 if no unit has been selected
      • getUnit

        public javax.swing.Action getUnit​(int idx)
        Queries the action for a given index. This action may contain a NAME or ICON field.
        Returns:
        the action at the given index
      • getSelectedUnit

        public javax.swing.Action getSelectedUnit()
        Queries the action for selected index. This action may contain a NAME or ICON field.
        Returns:
        the action at the selected index or null if no unit is selected
      • setSelectedIndex

        public void setSelectedIndex​(int idx)
        Changes the currently selected unit. This method does not fire an action event.
        Parameters:
        idx - the new index. Values outside the allowed range (0 ... numUnits-1) are ignored.
      • addUnit

        public void addUnit​(java.lang.String name)
        Adds a new unit (text label) to the end of the label list. If the unit list was priorly empty, this new label will be selected.
        Parameters:
        name - the name of the new label.
      • addUnit

        public void addUnit​(javax.swing.Icon icon)
        Adds a new unit (icon label) to the end of the label list. If the unit list was priorly empty, this new label will be selected.
        Parameters:
        icon - the icon view of the new label.
      • addUnit

        public void addUnit​(java.lang.String name,
                            javax.swing.Icon icon)
        Adds a new unit (text/icon combo label) to the end of the label list. If the unit list was priorly empty, this new label will be selected.
        Parameters:
        name - the name of the new label.
        icon - the icon view of the new label.
      • setCycling

        public void setCycling​(boolean b)
      • getCycling

        public boolean getCycling()
      • propertyChange

        public void propertyChange​(java.beans.PropertyChangeEvent e)
        Forwards Font property changes to the child gadgets
        Specified by:
        propertyChange in interface java.beans.PropertyChangeListener
      • fireUnitChanged

        protected void fireUnitChanged()
      • addActionListener

        public void addActionListener​(java.awt.event.ActionListener l)
        Registers a new listener to be informed about unit switches. Whenever the user switches the unit by selecting an item from the popup menu, an ActionEvent is fired and delivered to all registered listeners.
        Parameters:
        l - the listener to register
      • removeActionListener

        public void removeActionListener​(java.awt.event.ActionListener l)
        Unregisters a new listener from being informed about unit switches.
        Parameters:
        l - the listener to unregister
      • getIconWidth

        public int getIconWidth()
        This method is part of the implementation of the Icon interface and should not be called directly.
        Specified by:
        getIconWidth in interface javax.swing.Icon
      • getIconHeight

        public int getIconHeight()
        This method is part of the implementation of the Icon interface and should not be called directly.
        Specified by:
        getIconHeight in interface javax.swing.Icon
      • paintIcon

        public void paintIcon​(java.awt.Component c,
                              java.awt.Graphics g,
                              int x,
                              int y)
        This method is part of the implementation of the Icon interface and should not be called directly.
        Specified by:
        paintIcon in interface javax.swing.Icon