home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.basic;
-
- import com.sun.java.swing.JComponent;
- import com.sun.java.swing.JScrollBar;
- import com.sun.java.swing.JScrollPane;
- import com.sun.java.swing.JViewport;
- import com.sun.java.swing.LookAndFeel;
- import com.sun.java.swing.ScrollPaneConstants;
- import com.sun.java.swing.ScrollPaneLayout;
- import com.sun.java.swing.UIManager;
- import com.sun.java.swing.border.Border;
- import com.sun.java.swing.event.ChangeListener;
- import com.sun.java.swing.plaf.ComponentUI;
- import com.sun.java.swing.plaf.ScrollPaneUI;
- import com.sun.java.swing.plaf.UIResource;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.LayoutManager;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.io.Serializable;
-
- public class BasicScrollPaneUI extends ScrollPaneUI implements ScrollPaneConstants, Serializable {
- protected JScrollPane scrollpane;
- protected ChangeListener vsbListener = this.createVSBListener();
- protected ChangeListener hsbListener = this.createHSBListener();
- protected ChangeListener viewportListener = this.createViewportListener();
-
- public void paint(Graphics var1, JComponent var2) {
- Border var3 = this.scrollpane.getViewportBorder();
- if (var3 != null) {
- Rectangle var4 = this.getSPLayout().getViewportBorderBounds(this.scrollpane);
- var3.paintBorder(this.scrollpane, var1, var4.x, var4.y, var4.width, var4.height);
- }
-
- }
-
- public Dimension getPreferredSize(JComponent var1) {
- return this.getSPLayout().preferredLayoutSize(var1);
- }
-
- public Dimension getMinimumSize(JComponent var1) {
- return this.getPreferredSize(var1);
- }
-
- public Dimension getMaximumSize(JComponent var1) {
- return new Dimension(32767, 32767);
- }
-
- public void installUI(JComponent var1) {
- this.scrollpane = (JScrollPane)var1;
- this.scrollpane.setLayout(this.createLayoutManager());
- JViewport var2 = this.getViewport();
- JScrollBar var3 = this.createVerticalScrollBar();
- JScrollBar var4 = this.createHorizontalScrollBar();
- if (var2 != null) {
- var2.addChangeListener(this.viewportListener);
- }
-
- var3.getModel().addChangeListener(this.vsbListener);
- var4.getModel().addChangeListener(this.hsbListener);
- this.scrollpane.add(var3, "VERTICAL_SCROLLBAR");
- this.scrollpane.add(var4, "HORIZONTAL_SCROLLBAR");
- LookAndFeel.installBorder(this.scrollpane, "ScrollPane.border");
- LookAndFeel.installColorsAndFont(var1, "ScrollPane.background", "ScrollPane.foreground", "ScrollPane.font");
- Border var5 = this.scrollpane.getViewportBorder();
- if (var5 == null || var5 instanceof UIResource) {
- var5 = UIManager.getBorder("ScrollPane.viewportBorder");
- this.scrollpane.setViewportBorder(var5);
- }
-
- }
-
- public void uninstallUI(JComponent var1) {
- JViewport var2 = this.getViewport();
- JScrollBar var3 = this.getVerticalScrollBar();
- JScrollBar var4 = this.getHorizontalScrollBar();
- this.scrollpane.removeAll();
- this.scrollpane.setLayout((LayoutManager)null);
- if (var2 != null) {
- var2.removeChangeListener(this.viewportListener);
- }
-
- if (var3 != null) {
- var3.getModel().removeChangeListener(this.vsbListener);
- }
-
- if (var4 != null) {
- var4.getModel().removeChangeListener(this.hsbListener);
- }
-
- LookAndFeel.uninstallBorder(this.scrollpane);
- if (this.scrollpane.getViewportBorder() instanceof UIResource) {
- this.scrollpane.setViewportBorder((Border)null);
- }
-
- this.scrollpane = null;
- }
-
- public static ComponentUI createUI(JComponent var0) {
- return new BasicScrollPaneUI();
- }
-
- protected ScrollPaneLayout getSPLayout() {
- return (ScrollPaneLayout)this.scrollpane.getLayout();
- }
-
- public int getVerticalScrollBarPolicy() {
- return this.getSPLayout().getVerticalScrollBarPolicy();
- }
-
- public void setVerticalScrollBarPolicy(int var1) {
- this.getSPLayout().setVerticalScrollBarPolicy(var1);
- }
-
- public int getHorizontalScrollBarPolicy() {
- return this.getSPLayout().getHorizontalScrollBarPolicy();
- }
-
- public void setHorizontalScrollBarPolicy(int var1) {
- this.getSPLayout().setHorizontalScrollBarPolicy(var1);
- }
-
- public JScrollBar getHorizontalScrollBar() {
- return this.getSPLayout().getHorizontalScrollBar();
- }
-
- public JScrollBar getVerticalScrollBar() {
- return this.getSPLayout().getVerticalScrollBar();
- }
-
- public void setViewport(JViewport var1) {
- JViewport var2 = this.getViewport();
- if (var1 != var2) {
- if (var2 != null) {
- var2.removeChangeListener(this.viewportListener);
- this.scrollpane.remove(var2);
- }
-
- if (var1 != null) {
- Point var3 = var1.getViewPosition();
- var3.x = Math.max(var3.x, 0);
- var3.y = Math.max(var3.y, 0);
- var1.setViewPosition(var3);
- this.scrollpane.add(var1, "VIEWPORT");
- this.syncScrollPaneWithViewport();
- var1.addChangeListener(this.viewportListener);
- }
-
- }
- }
-
- public JViewport getViewport() {
- return this.getSPLayout().getViewport();
- }
-
- public void setRowHeader(JViewport var1) {
- JViewport var2 = this.getRowHeader();
- if (var2 != var1) {
- if (var2 != null) {
- this.scrollpane.remove(var2);
- }
-
- if (var1 != null) {
- JViewport var3 = this.getViewport();
- Point var4 = var1.getViewPosition();
- var4.y = var3 != null ? var3.getViewPosition().y : 0;
- var1.setViewPosition(var4);
- this.scrollpane.add(var1, "ROW_HEADER");
- }
-
- }
- }
-
- public JViewport getRowHeader() {
- return this.getSPLayout().getRowHeader();
- }
-
- public void setColumnHeader(JViewport var1) {
- JViewport var2 = this.getColumnHeader();
- if (var2 != var1) {
- if (var2 != null) {
- this.scrollpane.remove(var2);
- }
-
- if (var1 != null) {
- JViewport var3 = this.getViewport();
- Point var4 = var1.getViewPosition();
- var4.x = var3 != null ? var3.getViewPosition().x : 0;
- var1.setViewPosition(var4);
- this.scrollpane.add(var1, "COLUMN_HEADER");
- }
-
- }
- }
-
- public JViewport getColumnHeader() {
- return this.getSPLayout().getColumnHeader();
- }
-
- public Component getCorner(String var1) {
- return this.getSPLayout().getCorner(var1);
- }
-
- public void setCorner(String var1, Component var2) {
- this.scrollpane.add(var2, var1);
- }
-
- protected void syncScrollPaneWithViewport() {
- JViewport var1 = this.getViewport();
- JScrollBar var2 = this.getVerticalScrollBar();
- JScrollBar var3 = this.getHorizontalScrollBar();
- JViewport var4 = this.getRowHeader();
- JViewport var5 = this.getColumnHeader();
- if (var1 != null) {
- Dimension var6 = var1.getExtentSize();
- Dimension var7 = var1.getViewSize();
- Point var8 = var1.getViewPosition();
- if (var2 != null) {
- int var9 = var6.height;
- int var10 = var7.height;
- int var11 = Math.max(0, Math.min(var8.y, var10 - var9));
- var2.setValues(var11, var9, 0, var10);
- }
-
- if (var3 != null) {
- int var12 = var6.width;
- int var15 = var7.width;
- int var16 = Math.max(0, Math.min(var8.x, var15 - var12));
- var3.setValues(var16, var12, 0, var15);
- }
-
- if (var4 != null) {
- Point var13 = var4.getViewPosition();
- var13.y = var1.getViewPosition().y;
- var4.setViewPosition(var13);
- }
-
- if (var5 != null) {
- Point var14 = var5.getViewPosition();
- var14.x = var1.getViewPosition().x;
- var5.setViewPosition(var14);
- }
- }
-
- }
-
- protected ChangeListener createViewportListener() {
- return new ViewportListener(this);
- }
-
- protected ChangeListener createHSBListener() {
- return new HSBListener(this);
- }
-
- protected ChangeListener createVSBListener() {
- return new VSBListener(this);
- }
-
- protected LayoutManager createLayoutManager() {
- return new BasicScrollPaneLayout(this);
- }
-
- protected JScrollBar createVerticalScrollBar() {
- return this.scrollpane.createVerticalScrollBar();
- }
-
- protected JScrollBar createHorizontalScrollBar() {
- return this.scrollpane.createHorizontalScrollBar();
- }
- }
-