Class GUIList<T extends GUIElement>

    • Nested Class Summary

      • 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 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
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addElement​(T element)
      Adds an GUIElement to the list.
      boolean canMoveSelection​(int diffLines, int diffElements)
      Returns whether the selection can be moved.
      boolean canScroll​(int distance)
      Returns whether the list can be scrolled.
      void dispose()
      Releases all allocated resources.
      void execute()
      Executes the actions associated with this GUI element.
      T getElement​(int index)
      Returns the GUIElement for a given index.
      java.awt.Dimension getMaximumSize()  
      java.awt.Dimension getMinimumSize()  
      java.awt.Dimension getPreferredSize()  
      protected @NotNull java.lang.Object getSelectedObject()
      Returns the selected list object.
      @Nullable TooltipText getTooltip()
      Returns the current tooltip text.
      protected abstract @Nullable java.lang.String getTooltip​(int index)
      Returns the tooltip text.
      void mouseClicked​(@NotNull java.awt.event.MouseEvent e)
      Will be called when the user has clicked (pressed+released) this element.
      void mouseDragged​(@NotNull java.awt.event.MouseEvent e)
      Will be called when the mouse moves within this component while the button is pressed.
      void mouseEntered​(@NotNull java.awt.event.MouseEvent e)
      Will be called when the mouse has entered the bounding box of this element.
      void mouseExited​(@NotNull java.awt.event.MouseEvent e)
      Will be called when the mouse has left the bounding box of this element.
      void mouseMoved​(@NotNull java.awt.event.MouseEvent e)
      Will be called when the mouse moves within this component.
      void mousePressed​(@NotNull java.awt.event.MouseEvent e)
      Will be called when the user has pressed the mouse inside this element.
      void moveSelection​(int diffLines, int diffElements)
      Moves the selection.
      void resetScroll()
      Resets the scroll index to the default value.
      protected int resizeElements​(int newSize)
      Changes the number of list elements.
      void scroll​(int distance)
      Moves the list.
      protected void selectionChanged()
      Called whenever the selected list entry has changed.
      protected abstract void selectionChanged​(int selectedIndex)
      Called whenever the selected list entry has changed.
      void setBounds​(int x, int y, int width, int height)  
      void setChanged()
      Records that the contents have changed and must be repainted.
      protected void setLayoutOrientation​(int layoutOrientation, int visibleRowCount)
      Sets the layout orientation.
      protected void setSelectedIndex​(int newIndex)
      Update the selected list entry.
      • 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, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, 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, updateUI
      • 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, getAccessibleContext, 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, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, 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, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • GUIList

        protected GUIList​(@NotNull
                          @NotNull TooltipManager tooltipManager,
                          @NotNull
                          @NotNull GUIElementListener elementListener,
                          @NotNull
                          @NotNull java.lang.String name,
                          int cellWidth,
                          int cellHeight,
                          @NotNull
                          @NotNull GUIListCellRenderer<T> listCellRenderer,
                          @Nullable
                          @Nullable CommandList doubleClickCommandList,
                          @NotNull
                          @NotNull GuiFactory guiFactory)
        Creates a new instance.
        Parameters:
        tooltipManager - the tooltip manager to update
        elementListener - the element listener to notify
        name - the name of this element
        cellWidth - the width of each cell
        cellHeight - the height of each cell
        listCellRenderer - the renderer for the list
        doubleClickCommandList - the command list to execute on double-click or null to ignore double-clicks
        guiFactory - the global GUI factory instance
    • Method Detail

      • getElement

        @NotNull
        public T getElement​(int index)
        Returns the GUIElement for a given index.
        Parameters:
        index - the index
        Returns:
        the gui element
      • addElement

        protected void addElement​(@NotNull
                                  T element)
        Adds an GUIElement to the list.
        Parameters:
        element - the element to add
      • resizeElements

        protected int resizeElements​(int newSize)
        Changes the number of list elements. If the new element count is less than the current count, excess elements are cut off. Otherwise the caller has to add elements with addElement(GUIElement).
        Parameters:
        newSize - the new element count
        Returns:
        the number of elements to add by the caller
      • canMoveSelection

        public boolean canMoveSelection​(int diffLines,
                                        int diffElements)
        Returns whether the selection can be moved.
        Parameters:
        diffLines - the distance in lines to move
        diffElements - the distance in elements to move
        Returns:
        whether moving is possible
      • moveSelection

        public void moveSelection​(int diffLines,
                                  int diffElements)
        Moves the selection.
        Parameters:
        diffLines - the distance in lines to move
        diffElements - the distance in elements to move
      • canScroll

        public boolean canScroll​(int distance)
        Returns whether the list can be scrolled.
        Specified by:
        canScroll in interface GUIScrollable
        Parameters:
        distance - the distance to scroll
        Returns:
        whether scrolling is possible
      • scroll

        public void scroll​(int distance)
        Moves the list.
        Specified by:
        scroll in interface GUIScrollable
        Parameters:
        distance - the distance to scroll
      • resetScroll

        public void resetScroll()
        Description copied from interface: GUIScrollable
        Resets the scroll index to the default value.
        Specified by:
        resetScroll in interface GUIScrollable
      • mouseEntered

        public void mouseEntered​(@NotNull
                                 @NotNull java.awt.event.MouseEvent e)
        Description copied from interface: GUIElement
        Will be called when the mouse has entered the bounding box of this element.
        Specified by:
        mouseEntered in interface GUIElement
        Overrides:
        mouseEntered in class AbstractGUIElement
        Parameters:
        e - the mouse event relative to this element
      • mousePressed

        public void mousePressed​(@NotNull
                                 @NotNull java.awt.event.MouseEvent e)
        Description copied from class: ActivatableGUIElement
        Will be called when the user has pressed the mouse inside this element.
        Specified by:
        mousePressed in interface GUIElement
        Overrides:
        mousePressed in class ActivatableGUIElement
        Parameters:
        e - the mouse event relative to this element
      • mouseMoved

        public void mouseMoved​(@NotNull
                               @NotNull java.awt.event.MouseEvent e)
        Description copied from interface: GUIElement
        Will be called when the mouse moves within this component. before.
        Specified by:
        mouseMoved in interface GUIElement
        Overrides:
        mouseMoved in class AbstractGUIElement
        Parameters:
        e - the mouse event relative to this element
      • mouseDragged

        public void mouseDragged​(@NotNull
                                 @NotNull java.awt.event.MouseEvent e)
        Description copied from interface: GUIElement
        Will be called when the mouse moves within this component while the button is pressed. This event will be delivered after GUIElement.mouseMoved(MouseEvent).

        Note: if the mouse leaves this element's bounding box while the mouse button is still pressed, further mouseDragged (but no mouseMoved) events will be generated.

        Specified by:
        mouseDragged in interface GUIElement
        Overrides:
        mouseDragged in class AbstractGUIElement
        Parameters:
        e - the mouse event relative to this element
      • setSelectedIndex

        protected void setSelectedIndex​(int newIndex)
        Update the selected list entry.
        Parameters:
        newIndex - the new selected list entry
      • selectionChanged

        protected void selectionChanged()
        Called whenever the selected list entry has changed.
      • selectionChanged

        protected abstract void selectionChanged​(int selectedIndex)
        Called whenever the selected list entry has changed.
        Parameters:
        selectedIndex - the selected list entry
      • execute

        public void execute()
        Description copied from class: ActivatableGUIElement
        Executes the actions associated with this GUI element. Does nothing if this element has no associated actions.
        Specified by:
        execute in class ActivatableGUIElement
      • getTooltip

        @Nullable
        protected abstract @Nullable java.lang.String getTooltip​(int index)
        Returns the tooltip text.
        Parameters:
        index - the index to use
        Returns:
        the tooltip text
      • setLayoutOrientation

        protected void setLayoutOrientation​(int layoutOrientation,
                                            int visibleRowCount)
        Sets the layout orientation. See JList.setLayoutOrientation(int) and JList.setVisibleRowCount(int).
        Parameters:
        layoutOrientation - the layout orientation
        visibleRowCount - the number of visible rows
      • getSelectedObject

        @NotNull
        protected @NotNull java.lang.Object getSelectedObject()
        Returns the selected list object.
        Returns:
        the selected object or null if none is selected
      • getPreferredSize

        public java.awt.Dimension getPreferredSize()
        Overrides:
        getPreferredSize in class javax.swing.JComponent
      • getMinimumSize

        public java.awt.Dimension getMinimumSize()
        Overrides:
        getMinimumSize in class javax.swing.JComponent
      • getMaximumSize

        public java.awt.Dimension getMaximumSize()
        Overrides:
        getMaximumSize in class javax.swing.JComponent
      • setBounds

        public void setBounds​(int x,
                              int y,
                              int width,
                              int height)
        Overrides:
        setBounds in class java.awt.Component