package magic.ui.widget.M; import java.awt.Color; import java.awt.Component; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.ScrollPaneConstants; import javax.swing.border.Border; import magic.ui.widget.scrollbar.MScrollBarUI; public class MScrollPane extends MWidget { private final JScrollPane scrollPane = new JScrollPane(); public MScrollPane() { setCornerComponent(); } /** * This fills the gap in the bottom right corner of a JScrollPane by adding * a panel which is approximately the same color as {@link MScrollBarUI}. */ private void setCornerComponent() { final JPanel p = new JPanel(); p.setBackground(MScrollBarUI.COLOR_A); scrollPane.setCorner(ScrollPaneConstants.LOWER_RIGHT_CORNER, p); } @Override public JComponent component() { return scrollPane; }; // // swing component delegates // public void setViewportView(Component c) { scrollPane.setViewportView(c); } public void setBorder(Border b) { scrollPane.setBorder(b); } public void setOpaque(boolean b) { scrollPane.setOpaque(b); scrollPane.getViewport().setOpaque(b); } public void setVScrollBarIncrement(int i) { scrollPane.getVerticalScrollBar().setUnitIncrement(i); } public void setVScrollBarBlockIncrement(int i) { scrollPane.getVerticalScrollBar().setBlockIncrement(i); } public void setVScrollBarValue(int i) { scrollPane.getVerticalScrollBar().setValue(0); } void setHScrollBarAsNeeded() { scrollPane.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); } public void setVisible(boolean b) { scrollPane.setVisible(b); } public void setBackground(Color c) { scrollPane.setBackground(c); scrollPane.getViewport().setBackground(c); } }