home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.metal;
-
- import com.sun.java.swing.JButton;
- import com.sun.java.swing.JComponent;
- import com.sun.java.swing.UIManager;
- import com.sun.java.swing.plaf.ComponentUI;
- import com.sun.java.swing.plaf.UIResource;
- import com.sun.java.swing.plaf.basic.BasicScrollBarUI;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Rectangle;
-
- public class MetalScrollBarUI extends BasicScrollBarUI {
- private static Color shadowColor;
- private static Color highlightColor;
- private static Color thumbColor;
- private static Color thumbShadow;
- private static Color thumbHighlightColor;
- protected MetalBumps bumps;
- protected MetalScrollButton increaseButton;
- protected MetalScrollButton decreaseButton;
- protected static int scrollBarWidth;
- protected ScrollBarListener scrollBarListener = new ScrollBarListener(this);
- public static final String FREE_STANDING_PROP = "JScrollBar.isFreeStanding";
- protected boolean isFreeStanding = true;
-
- public static ComponentUI createUI(JComponent var0) {
- return new MetalScrollBarUI();
- }
-
- public void installUI(JComponent var1) {
- scrollBarWidth = (Integer)UIManager.get("ScrollBar.width");
- if (((Component)var1).getBackground() == null || ((Component)var1).getBackground() instanceof UIResource) {
- ((Component)var1).setBackground(UIManager.getColor("ScrollBar.background"));
- }
-
- super.installUI(var1);
- this.bumps = new MetalBumps(10, 10, thumbHighlightColor, thumbShadow, thumbColor);
- var1.addPropertyChangeListener(this.scrollBarListener);
- this.scrollBarListener.handlePropertyChange(var1.getClientProperty("JScrollBar.isFreeStanding"));
- }
-
- public void uninstallUI(JComponent var1) {
- super.uninstallUI(var1);
- var1.removePropertyChangeListener(this.scrollBarListener);
- }
-
- protected void configureScrollBarColors() {
- shadowColor = UIManager.getColor("ScrollBar.shadow");
- highlightColor = UIManager.getColor("ScrollBar.highlight");
- thumbColor = UIManager.getColor("ScrollBar.thumb");
- thumbShadow = UIManager.getColor("ScrollBar.thumbShadow");
- thumbHighlightColor = UIManager.getColor("ScrollBar.thumbHighlight");
- }
-
- public Dimension getPreferredSize(JComponent var1) {
- return super.scrollbar.getOrientation() == 1 ? new Dimension(scrollBarWidth, scrollBarWidth * 3 + 10) : new Dimension(scrollBarWidth * 3 + 10, scrollBarWidth);
- }
-
- protected JButton createDecreaseButton(int var1) {
- this.decreaseButton = new MetalScrollButton(var1, scrollBarWidth, this.isFreeStanding);
- return this.decreaseButton;
- }
-
- protected JButton createIncreaseButton(int var1) {
- this.increaseButton = new MetalScrollButton(var1, scrollBarWidth, this.isFreeStanding);
- return this.increaseButton;
- }
-
- protected void paintTrack(Graphics var1, JComponent var2, Rectangle var3) {
- var1.translate(var3.x, var3.y);
- if (super.scrollbar.getOrientation() == 1) {
- if (!this.isFreeStanding) {
- var3.width += 2;
- }
-
- if (((Component)var2).isEnabled()) {
- var1.setColor(shadowColor);
- var1.drawLine(0, 0, 0, var3.height - 1);
- var1.drawLine(var3.width - 2, 0, var3.width - 2, var3.height - 1);
- var1.drawLine(2, var3.height - 1, var3.width - 1, var3.height - 1);
- var1.drawLine(2, 0, var3.width - 2, 0);
- var1.setColor(highlightColor);
- var1.drawLine(1, 1, 1, var3.height - 2);
- var1.drawLine(1, 1, var3.width - 3, 1);
- var1.drawLine(var3.width - 1, 0, var3.width - 1, var3.height - 1);
- } else {
- MetalUtils.drawDisabledBorder(var1, 0, 0, var3.width, var3.height);
- }
-
- if (!this.isFreeStanding) {
- var3.width -= 2;
- }
- } else {
- if (!this.isFreeStanding) {
- var3.height += 2;
- }
-
- if (((Component)var2).isEnabled()) {
- var1.setColor(shadowColor);
- var1.drawLine(0, 0, var3.width - 1, 0);
- var1.drawLine(0, 2, 0, var3.height - 2);
- var1.drawLine(0, var3.height - 2, var3.width - 1, var3.height - 2);
- var1.drawLine(var3.width - 1, 2, var3.width - 1, var3.height - 1);
- var1.setColor(highlightColor);
- var1.drawLine(1, 1, var3.width - 2, 1);
- var1.drawLine(1, 1, 1, var3.height - 3);
- var1.drawLine(0, var3.height - 1, var3.width - 1, var3.height - 1);
- } else {
- MetalUtils.drawDisabledBorder(var1, 0, 0, var3.width, var3.height);
- }
-
- if (!this.isFreeStanding) {
- var3.height -= 2;
- }
- }
-
- var1.translate(-var3.x, -var3.y);
- }
-
- protected void paintThumb(Graphics var1, JComponent var2, Rectangle var3) {
- if (((Component)var2).isEnabled()) {
- var1.translate(var3.x, var3.y);
- if (super.scrollbar.getOrientation() == 1) {
- if (!this.isFreeStanding) {
- var3.width += 2;
- }
-
- var1.setColor(thumbColor);
- var1.fillRect(0, 0, var3.width - 2, var3.height - 1);
- var1.setColor(thumbShadow);
- var1.drawRect(0, 0, var3.width - 2, var3.height - 1);
- var1.setColor(thumbHighlightColor);
- var1.drawLine(1, 1, var3.width - 3, 1);
- var1.drawLine(1, 1, 1, var3.height - 2);
- this.bumps.setBumpArea(var3.width - 6, var3.height - 7);
- this.bumps.paintIcon(var2, var1, 3, 4);
- if (!this.isFreeStanding) {
- var3.width -= 2;
- }
- } else {
- if (!this.isFreeStanding) {
- var3.height += 2;
- }
-
- var1.setColor(thumbColor);
- var1.fillRect(0, 0, var3.width - 1, var3.height - 2);
- var1.setColor(thumbShadow);
- var1.drawRect(0, 0, var3.width - 1, var3.height - 2);
- var1.setColor(thumbHighlightColor);
- var1.drawLine(1, 1, var3.width - 3, 1);
- var1.drawLine(1, 1, 1, var3.height - 3);
- this.bumps.setBumpArea(var3.width - 7, var3.height - 6);
- this.bumps.paintIcon(var2, var1, 4, 3);
- if (!this.isFreeStanding) {
- var3.height -= 2;
- }
- }
-
- var1.translate(-var3.x, -var3.y);
- }
- }
-
- protected Dimension getMinimumThumbSize() {
- return new Dimension(scrollBarWidth, scrollBarWidth);
- }
- }
-