// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.widgets; import java.awt.Dimension; import java.awt.LayoutManager; import java.awt.Rectangle; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.Scrollable; import org.openstreetmap.josm.gui.util.GuiHelper; public class VerticallyScrollablePanel extends JPanel implements Scrollable { /** * Constructs a new {@code VerticallyScrollablePanel}. */ public VerticallyScrollablePanel() { super(); } public VerticallyScrollablePanel(boolean isDoubleBuffered) { super(isDoubleBuffered); } public VerticallyScrollablePanel(LayoutManager layout, boolean isDoubleBuffered) { super(layout, isDoubleBuffered); } public VerticallyScrollablePanel(LayoutManager layout) { super(layout); } /** * Returns a vertical scrollable {@code JScrollPane} containing this panel. * @return the vertical scrollable {@code JScrollPane} * @since 6666 */ public final JScrollPane getVerticalScrollPane() { return GuiHelper.embedInVerticalScrollPane(this); } @Override public Dimension getPreferredScrollableViewportSize() { return getPreferredSize(); } @Override public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) { return 20; } @Override public boolean getScrollableTracksViewportHeight() { return false; } @Override public boolean getScrollableTracksViewportWidth() { return true; } @Override public int getScrollableUnitIncrement(Rectangle arg0, int arg1, int arg2) { return 10; } }