/** * Creates a row-footer viewport if necessary, sets its view and then adds the row-footer viewport to the * scrollpane. For example: * <pre> * JScrollPane scrollpane = new JideScrollPane(); * scrollpane.setViewportView(myBigComponentToScroll); * scrollpane.setRowFooterView(myBigComponentsRowFooter); * </pre> * * @param view the component to display as the row footer * @see #setRowFooter(javax.swing.JViewport) * @see JViewport#setView(java.awt.Component) */ public void setRowFooterView(Component view) { if (null == getRowFooter()) { setRowFooter(createViewport()); } getRowFooter().setView(view); }
@Override public void syncWithScrollPane(JScrollPane sp) { super.syncWithScrollPane(sp); if (sp instanceof JideScrollPane) { _rowFoot = ((JideScrollPane) sp).getRowFooter(); _colFoot = ((JideScrollPane) sp).getColumnFooter(); _subColHead = ((JideScrollPane) sp).getSubColumnHeader(); _hLeft = ((JideScrollPane) sp).getScrollBarCorner(HORIZONTAL_LEFT); _hRight = ((JideScrollPane) sp).getScrollBarCorner(HORIZONTAL_RIGHT); _vTop = ((JideScrollPane) sp).getScrollBarCorner(VERTICAL_TOP); _vBottom = ((JideScrollPane) sp).getScrollBarCorner(VERTICAL_BOTTOM); _subUpperLeft = sp.getCorner(SUB_UPPER_LEFT); _subUpperRight = sp.getCorner(SUB_UPPER_RIGHT); } }
/** * Removes the old rowFooter, if it exists. If the new rowFooter isn't <code>null</code>, syncs the y coordinate of * its viewPosition with the viewport (if there is one) and then adds it to the scrollpane. * * @param rowFooter the new row footer to be used; if <code>null</code> the old row footer is still removed and the * new rowFooter is set to <code>null</code> * @see #getRowFooter * @see #setRowFooterView(java.awt.Component) */ public void setRowFooter(JViewport rowFooter) { JViewport old = getRowFooter(); _rowFooter = rowFooter; if (null != rowFooter) { add(rowFooter, ROW_FOOTER); } else if (null != old) { remove(old); } firePropertyChange("rowFooter", old, rowFooter); revalidate(); repaint(); if (old != null) { JideSwingUtilities.unsynchronizeView(old, getViewport()); JideSwingUtilities.unsynchronizeView(getViewport(), old); } if (rowFooter != null) { JideSwingUtilities.synchronizeView(rowFooter, getViewport(), SwingConstants.VERTICAL); JideSwingUtilities.synchronizeView(getViewport(), rowFooter, SwingConstants.VERTICAL); } }