Class JideScrollPaneLayout

  • All Implemented Interfaces:
    JideScrollPaneConstants, java.awt.LayoutManager, java.io.Serializable, javax.swing.ScrollPaneConstants

    public class JideScrollPaneLayout
    extends javax.swing.ScrollPaneLayout
    implements JideScrollPaneConstants
    The layout manager used by JideScrollPane. JideScrollPaneLayout is responsible for eleven components: a viewport, two scrollbars, a row header, a column header, a row footer, a column footer, and four "corner" components.
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected javax.swing.JViewport _colFoot
      The column footer child.
      protected java.awt.Component _hLeft
      The component to the left of horizontal scroll bar.
      protected java.awt.Component _hRight
      The component to the right of horizontal scroll bar.
      protected javax.swing.JViewport _rowFoot
      The row footer child.
      protected javax.swing.JViewport _subColHead
      The row sub column header componeng.
      protected java.awt.Component _subUpperLeft
      The component under upper left corner.
      protected java.awt.Component _subUpperRight
      The component under upper right corner.
      protected java.awt.Component _vBottom
      The component to the bottom of vertical scroll bar.
      protected java.awt.Component _vTop
      The component to the top of vertical scroll bar.
      • Fields inherited from class javax.swing.ScrollPaneLayout

        colHead, hsb, hsbPolicy, lowerLeft, lowerRight, rowHead, upperLeft, upperRight, viewport, vsb, vsbPolicy
      • Fields inherited from interface javax.swing.ScrollPaneConstants

        COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addLayoutComponent​(java.lang.String s, java.awt.Component c)  
      javax.swing.JViewport getColumnFooter()
      Returns the JViewport object that is the column footer.
      javax.swing.JViewport getRowFooter()
      Returns the JViewport object that is the row footer.
      javax.swing.JViewport getRowSubColumnHeader()
      Returns the JViewport object that is the row sub column header.
      java.awt.Component getScrollBarCorner​(java.lang.String key)
      Returns the Component at the specified corner.
      protected boolean isColumnFootersHeightUnified​(javax.swing.JScrollPane sp)  
      protected boolean isColumnHeadersHeightUnified​(javax.swing.JScrollPane sp)  
      protected boolean isHsbCoversWholeWidth​(javax.swing.JScrollPane sp)  
      protected boolean isVsbCoversWholeHeight​(javax.swing.JScrollPane sp)  
      void layoutContainer​(java.awt.Container parent)
      Lays out the scrollpane.
      java.awt.Dimension minimumLayoutSize​(java.awt.Container parent)
      The minimum size of a ScrollPane is the size of the insets plus minimum size of the viewport, plus the scrollpane's viewportBorder insets, plus the minimum size of the visible headers, plus the minimum size of the scrollbars whose displayPolicy isn't NEVER.
      java.awt.Dimension preferredLayoutSize​(java.awt.Container parent)
      The preferred size of a ScrollPane is the size of the insets, plus the preferred size of the viewport, plus the preferred size of the visible headers, plus the preferred size of the scrollbars that will appear given the current view and the current scrollbar displayPolicies.
      void removeLayoutComponent​(java.awt.Component c)  
      void syncWithScrollPane​(javax.swing.JScrollPane sp)  
      • Methods inherited from class javax.swing.ScrollPaneLayout

        addSingletonComponent, getColumnHeader, getCorner, getHorizontalScrollBar, getHorizontalScrollBarPolicy, getRowHeader, getVerticalScrollBar, getVerticalScrollBarPolicy, getViewport, getViewportBorderBounds, setHorizontalScrollBarPolicy, setVerticalScrollBarPolicy
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • _hLeft

        protected java.awt.Component _hLeft
        The component to the left of horizontal scroll bar.
      • _hRight

        protected java.awt.Component _hRight
        The component to the right of horizontal scroll bar.
      • _vTop

        protected java.awt.Component _vTop
        The component to the top of vertical scroll bar.
      • _vBottom

        protected java.awt.Component _vBottom
        The component to the bottom of vertical scroll bar.
      • _subUpperLeft

        protected java.awt.Component _subUpperLeft
        The component under upper left corner. Default is null.
      • _subUpperRight

        protected java.awt.Component _subUpperRight
        The component under upper right corner. Default is null.
    • Constructor Detail

      • JideScrollPaneLayout

        public JideScrollPaneLayout()
    • Method Detail

      • syncWithScrollPane

        public void syncWithScrollPane​(javax.swing.JScrollPane sp)
        Overrides:
        syncWithScrollPane in class javax.swing.ScrollPaneLayout
      • isHsbCoversWholeWidth

        protected boolean isHsbCoversWholeWidth​(javax.swing.JScrollPane sp)
      • isVsbCoversWholeHeight

        protected boolean isVsbCoversWholeHeight​(javax.swing.JScrollPane sp)
      • isColumnHeadersHeightUnified

        protected boolean isColumnHeadersHeightUnified​(javax.swing.JScrollPane sp)
      • isColumnFootersHeightUnified

        protected boolean isColumnFootersHeightUnified​(javax.swing.JScrollPane sp)
      • addLayoutComponent

        public void addLayoutComponent​(java.lang.String s,
                                       java.awt.Component c)
        Specified by:
        addLayoutComponent in interface java.awt.LayoutManager
        Overrides:
        addLayoutComponent in class javax.swing.ScrollPaneLayout
      • removeLayoutComponent

        public void removeLayoutComponent​(java.awt.Component c)
        Specified by:
        removeLayoutComponent in interface java.awt.LayoutManager
        Overrides:
        removeLayoutComponent in class javax.swing.ScrollPaneLayout
      • getRowFooter

        public javax.swing.JViewport getRowFooter()
        Returns the JViewport object that is the row footer.
        Returns:
        the JViewport object that is the row footer
        See Also:
        JideScrollPane.getRowFooter()
      • getRowSubColumnHeader

        public javax.swing.JViewport getRowSubColumnHeader()
        Returns the JViewport object that is the row sub column header.
        Returns:
        the JViewport object that is the row sub column header.
        See Also:
        JideScrollPane.getSubColumnHeader()
      • getColumnFooter

        public javax.swing.JViewport getColumnFooter()
        Returns the JViewport object that is the column footer.
        Returns:
        the JViewport object that is the column footer
        See Also:
        JideScrollPane.getColumnFooter()
      • getScrollBarCorner

        public java.awt.Component getScrollBarCorner​(java.lang.String key)
        Returns the Component at the specified corner.
        Parameters:
        key - the String specifying the corner
        Returns:
        the Component at the specified corner, as defined in ScrollPaneConstants; if key is not one of the four corners, null is returned
        See Also:
        JScrollPane.getCorner(java.lang.String)
      • preferredLayoutSize

        public java.awt.Dimension preferredLayoutSize​(java.awt.Container parent)
        The preferred size of a ScrollPane is the size of the insets, plus the preferred size of the viewport, plus the preferred size of the visible headers, plus the preferred size of the scrollbars that will appear given the current view and the current scrollbar displayPolicies.

        Note that the rowHeader is calculated as part of the preferred width and the colHeader is calculated as part of the preferred size.

        Specified by:
        preferredLayoutSize in interface java.awt.LayoutManager
        Overrides:
        preferredLayoutSize in class javax.swing.ScrollPaneLayout
        Parameters:
        parent - the Container that will be laid out
        Returns:
        a Dimension object specifying the preferred size of the viewport and any scrollbars
        See Also:
        ViewportLayout, LayoutManager
      • minimumLayoutSize

        public java.awt.Dimension minimumLayoutSize​(java.awt.Container parent)
        The minimum size of a ScrollPane is the size of the insets plus minimum size of the viewport, plus the scrollpane's viewportBorder insets, plus the minimum size of the visible headers, plus the minimum size of the scrollbars whose displayPolicy isn't NEVER.
        Specified by:
        minimumLayoutSize in interface java.awt.LayoutManager
        Overrides:
        minimumLayoutSize in class javax.swing.ScrollPaneLayout
        Parameters:
        parent - the Container that will be laid out
        Returns:
        a Dimension object specifying the minimum size
      • layoutContainer

        public void layoutContainer​(java.awt.Container parent)
        Lays out the scrollpane. The positioning of components depends on the following constraints:
        • The row header, if present and visible, gets its preferred width and the viewport's height.

        • The column header, if present and visible, gets its preferred height and the viewport's width.

        • If a vertical scrollbar is needed, i.e. if the viewport's extent height is smaller than its view height or if the displayPolicy is ALWAYS, it's treated like the row header with respect to its dimensions and is made visible.

        • If a horizontal scrollbar is needed, it is treated like the column header (see the paragraph above regarding the vertical scrollbar).

        • If the scrollpane has a non-null viewportBorder, then space is allocated for that.

        • The viewport gets the space available after accounting for the previous constraints.

        • The corner components, if provided, are aligned with the ends of the scrollbars and headers. If there is a vertical scrollbar, the right corners appear; if there is a horizontal scrollbar, the lower corners appear; a row header gets left corners, and a column header gets upper corners.
        Specified by:
        layoutContainer in interface java.awt.LayoutManager
        Overrides:
        layoutContainer in class javax.swing.ScrollPaneLayout
        Parameters:
        parent - the Container to lay out