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 }