Class ButtonsTogetherScrollBarSkin

java.lang.Object
com.explodingpixels.widgets.plaf.ButtonsTogetherScrollBarSkin
All Implemented Interfaces:
ScrollBarSkin

public class ButtonsTogetherScrollBarSkin extends Object implements ScrollBarSkin
A ScrollBarSkin with the buttons placed at the bottom or right of the scroll bar.
  • Constructor Details

    • ButtonsTogetherScrollBarSkin

      public ButtonsTogetherScrollBarSkin(JComponent scrollBarCap, AbstractButton decrementButton, AbstractButton incrementButton, MacWidgetsPainter<Component> trackPainter, MacWidgetsPainter<Component> scrollThumbPainter, int scrollBarCapRecess, int decrementButtonRecess, Dimension minimumThumbSize, Dimension preferredSize)
      Creates a ButtonsTogetherScrollBarSkin using the given parameters.
      Parameters:
      scrollBarCap - the component to draw adjacent to the scroll tracks minimum value side.
      decrementButton - the button to cause a decrement in the scroll bar to occur.
      incrementButton - the button to cause a increment in the scroll bar to occur.
      trackPainter - the MacWidgetsPainter to use to paint the track.
      scrollThumbPainter - the MacWidgetsPainter to use to paint the scroll thumb.
      scrollBarCapRecess - the number of pixels to allow the scrollbar to "recess" into the scroll bar cap. this is useful when using scroll bars with rounded ends.
      decrementButtonRecess - the number of pixels to allow the scrollbar to "recess" into the decrement button. this is useful when using scroll bars with rounded ends.
      minimumThumbSize - the minimum size that the scroll thumb can be.
      preferredSize - the preferred size of this skin.
  • Method Details

    • getMinimumThumbSize

      public Dimension getMinimumThumbSize()
      Description copied from interface: ScrollBarSkin
      The smallest size that the scroll thumb can be.
      Specified by:
      getMinimumThumbSize in interface ScrollBarSkin
      Returns:
      the mimimum size of the scroll thumb.
    • getPreferredSize

      public Dimension getPreferredSize()
      Description copied from interface: ScrollBarSkin
      The preferred size of the painter, which will control the preferred size of the associated JScrollBar. For vertical scroll bars, this value will drive the width. For horiztonal scroll bars, this value will drive the height.
      Specified by:
      getPreferredSize in interface ScrollBarSkin
      Returns:
      the preferred size of this painter, and thus the corresponding JScrollBar.
    • getScrollThumbBounds

      public Rectangle getScrollThumbBounds()
      Description copied from interface: ScrollBarSkin
      Gets the current bounds of the scroll thumb, which are controlled by the layout provided by this skin.
      Specified by:
      getScrollThumbBounds in interface ScrollBarSkin
      Returns:
      the current bounds of the scroll thumb.
    • getTrackBounds

      public Rectangle getTrackBounds()
      Description copied from interface: ScrollBarSkin
      Gets the current bounds of the track, which are controlled by the layout provided by this skin. Note that the bounds returned by this method should be the actual scrollable bounds that the scroll thumb can move in. That is, this value should not just return the bounds of the associated JScrollBar, but only the bounds that are valid for the scroll thumb to exist in.
      Specified by:
      getTrackBounds in interface ScrollBarSkin
      Returns:
      the current bounds of the track.
    • installComponents

      public void installComponents(JScrollBar scrollBar)
      Description copied from interface: ScrollBarSkin
      Called once at the begining of the skin's life cycle. Implementors should add components that will later be controlled in ScrollBarSkin.layoutTrackOnly(JScrollBar, ScrollBarOrientation) and ScrollBarSkin.layoutEverything(JScrollBar, ScrollBarOrientation).
      Specified by:
      installComponents in interface ScrollBarSkin
      Parameters:
      scrollBar - the JScrollBar that the skin will be painting.
    • layoutTrackOnly

      public void layoutTrackOnly(JScrollBar scrollBar, ScrollBarOrientation orientation)
      Description copied from interface: ScrollBarSkin
      Called when only the track should be laid out by the skin. This occurs when a JScrollBar has been set to ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS or ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS and the corresponding view is showing all the content. Note that there are, in fact, no restrictions on what this method lays out. That is, if this skin wishes to layout more than just an empty track when there is no content to scroll, it may do so.
      Specified by:
      layoutTrackOnly in interface ScrollBarSkin
      Parameters:
      scrollBar - the JScrollBar that the skin is painting.
      orientation - the orientation of the scroll bar.
    • layoutEverything

      public void layoutEverything(JScrollBar scrollBar, ScrollBarOrientation orientation)
      Description copied from interface: ScrollBarSkin
      Called when scroll bar should be laid out by the skin.
      Specified by:
      layoutEverything in interface ScrollBarSkin
      Parameters:
      scrollBar - the JScrollBar that the skin is painting.
      orientation - the orientation of the scroll bar.
    • installMouseListenersOnButtons

      public void installMouseListenersOnButtons(MouseListener decrementMoustListener, MouseListener incrementMouseListener)
      Description copied from interface: ScrollBarSkin
      Called once at the begining of the skin's life cycle. Implementors should attach these mouse listners to the controls that decrement and increment the scroll bar's value.
      Specified by:
      installMouseListenersOnButtons in interface ScrollBarSkin
      Parameters:
      decrementMoustListener - the MouseListener to be notified when a control is pressed that should result in the scroll bar's value decrementing.
      incrementMouseListener - the MouseListener to be notified when a control is pressed that should result in the scroll bar's value incrementing.
    • setScrollThumbBounds

      public void setScrollThumbBounds(Rectangle bounds)
      Description copied from interface: ScrollBarSkin
      Sets the bounds of the scroll thumb. This method will be called, for example, when the associated JScrollBar's BoundedRangeModel is updated.
      Specified by:
      setScrollThumbBounds in interface ScrollBarSkin
      Parameters:
      bounds - the new bounds of the scroll thumb.