001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.gui.widgets;
003
004 import java.awt.Dimension;
005 import java.awt.LayoutManager;
006 import java.awt.Rectangle;
007
008 import javax.swing.JPanel;
009 import javax.swing.JScrollPane;
010 import javax.swing.Scrollable;
011
012 public class VerticallyScrollablePanel extends JPanel implements Scrollable {
013
014 static public JScrollPane embed(VerticallyScrollablePanel panel) {
015 JScrollPane sp = new JScrollPane(panel);
016 sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
017 sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
018 return sp;
019 }
020
021 public VerticallyScrollablePanel() {
022 super();
023 }
024
025 public VerticallyScrollablePanel(boolean isDoubleBuffered) {
026 super(isDoubleBuffered);
027 }
028
029 public VerticallyScrollablePanel(LayoutManager layout, boolean isDoubleBuffered) {
030 super(layout, isDoubleBuffered);
031 }
032
033 public VerticallyScrollablePanel(LayoutManager layout) {
034 super(layout);
035 }
036
037 public Dimension getPreferredScrollableViewportSize() {
038 return getPreferredSize();
039 }
040
041 public int getScrollableBlockIncrement(Rectangle arg0, int arg1, int arg2) {
042 return 20;
043 }
044
045 public boolean getScrollableTracksViewportHeight() {
046 return false;
047 }
048
049 public boolean getScrollableTracksViewportWidth() {
050 return true;
051 }
052
053 public int getScrollableUnitIncrement(Rectangle arg0, int arg1, int arg2) {
054 return 10;
055 }
056 }