home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / plaf / metal / MetalScrollBarUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  4.9 KB  |  170 lines

  1. package com.sun.java.swing.plaf.metal;
  2.  
  3. import com.sun.java.swing.JButton;
  4. import com.sun.java.swing.JComponent;
  5. import com.sun.java.swing.UIManager;
  6. import com.sun.java.swing.plaf.ComponentUI;
  7. import com.sun.java.swing.plaf.UIResource;
  8. import com.sun.java.swing.plaf.basic.BasicScrollBarUI;
  9. import java.awt.Color;
  10. import java.awt.Component;
  11. import java.awt.Dimension;
  12. import java.awt.Graphics;
  13. import java.awt.Rectangle;
  14.  
  15. public class MetalScrollBarUI extends BasicScrollBarUI {
  16.    private static Color shadowColor;
  17.    private static Color highlightColor;
  18.    private static Color thumbColor;
  19.    private static Color thumbShadow;
  20.    private static Color thumbHighlightColor;
  21.    protected MetalBumps bumps;
  22.    protected MetalScrollButton increaseButton;
  23.    protected MetalScrollButton decreaseButton;
  24.    protected static int scrollBarWidth;
  25.    protected ScrollBarListener scrollBarListener = new ScrollBarListener(this);
  26.    public static final String FREE_STANDING_PROP = "JScrollBar.isFreeStanding";
  27.    protected boolean isFreeStanding = true;
  28.  
  29.    public static ComponentUI createUI(JComponent var0) {
  30.       return new MetalScrollBarUI();
  31.    }
  32.  
  33.    public void installUI(JComponent var1) {
  34.       scrollBarWidth = (Integer)UIManager.get("ScrollBar.width");
  35.       if (((Component)var1).getBackground() == null || ((Component)var1).getBackground() instanceof UIResource) {
  36.          ((Component)var1).setBackground(UIManager.getColor("ScrollBar.background"));
  37.       }
  38.  
  39.       super.installUI(var1);
  40.       this.bumps = new MetalBumps(10, 10, thumbHighlightColor, thumbShadow, thumbColor);
  41.       var1.addPropertyChangeListener(this.scrollBarListener);
  42.       this.scrollBarListener.handlePropertyChange(var1.getClientProperty("JScrollBar.isFreeStanding"));
  43.    }
  44.  
  45.    public void uninstallUI(JComponent var1) {
  46.       super.uninstallUI(var1);
  47.       var1.removePropertyChangeListener(this.scrollBarListener);
  48.    }
  49.  
  50.    protected void configureScrollBarColors() {
  51.       shadowColor = UIManager.getColor("ScrollBar.shadow");
  52.       highlightColor = UIManager.getColor("ScrollBar.highlight");
  53.       thumbColor = UIManager.getColor("ScrollBar.thumb");
  54.       thumbShadow = UIManager.getColor("ScrollBar.thumbShadow");
  55.       thumbHighlightColor = UIManager.getColor("ScrollBar.thumbHighlight");
  56.    }
  57.  
  58.    public Dimension getPreferredSize(JComponent var1) {
  59.       return super.scrollbar.getOrientation() == 1 ? new Dimension(scrollBarWidth, scrollBarWidth * 3 + 10) : new Dimension(scrollBarWidth * 3 + 10, scrollBarWidth);
  60.    }
  61.  
  62.    protected JButton createDecreaseButton(int var1) {
  63.       this.decreaseButton = new MetalScrollButton(var1, scrollBarWidth, this.isFreeStanding);
  64.       return this.decreaseButton;
  65.    }
  66.  
  67.    protected JButton createIncreaseButton(int var1) {
  68.       this.increaseButton = new MetalScrollButton(var1, scrollBarWidth, this.isFreeStanding);
  69.       return this.increaseButton;
  70.    }
  71.  
  72.    protected void paintTrack(Graphics var1, JComponent var2, Rectangle var3) {
  73.       var1.translate(var3.x, var3.y);
  74.       if (super.scrollbar.getOrientation() == 1) {
  75.          if (!this.isFreeStanding) {
  76.             var3.width += 2;
  77.          }
  78.  
  79.          if (((Component)var2).isEnabled()) {
  80.             var1.setColor(shadowColor);
  81.             var1.drawLine(0, 0, 0, var3.height - 1);
  82.             var1.drawLine(var3.width - 2, 0, var3.width - 2, var3.height - 1);
  83.             var1.drawLine(2, var3.height - 1, var3.width - 1, var3.height - 1);
  84.             var1.drawLine(2, 0, var3.width - 2, 0);
  85.             var1.setColor(highlightColor);
  86.             var1.drawLine(1, 1, 1, var3.height - 2);
  87.             var1.drawLine(1, 1, var3.width - 3, 1);
  88.             var1.drawLine(var3.width - 1, 0, var3.width - 1, var3.height - 1);
  89.          } else {
  90.             MetalUtils.drawDisabledBorder(var1, 0, 0, var3.width, var3.height);
  91.          }
  92.  
  93.          if (!this.isFreeStanding) {
  94.             var3.width -= 2;
  95.          }
  96.       } else {
  97.          if (!this.isFreeStanding) {
  98.             var3.height += 2;
  99.          }
  100.  
  101.          if (((Component)var2).isEnabled()) {
  102.             var1.setColor(shadowColor);
  103.             var1.drawLine(0, 0, var3.width - 1, 0);
  104.             var1.drawLine(0, 2, 0, var3.height - 2);
  105.             var1.drawLine(0, var3.height - 2, var3.width - 1, var3.height - 2);
  106.             var1.drawLine(var3.width - 1, 2, var3.width - 1, var3.height - 1);
  107.             var1.setColor(highlightColor);
  108.             var1.drawLine(1, 1, var3.width - 2, 1);
  109.             var1.drawLine(1, 1, 1, var3.height - 3);
  110.             var1.drawLine(0, var3.height - 1, var3.width - 1, var3.height - 1);
  111.          } else {
  112.             MetalUtils.drawDisabledBorder(var1, 0, 0, var3.width, var3.height);
  113.          }
  114.  
  115.          if (!this.isFreeStanding) {
  116.             var3.height -= 2;
  117.          }
  118.       }
  119.  
  120.       var1.translate(-var3.x, -var3.y);
  121.    }
  122.  
  123.    protected void paintThumb(Graphics var1, JComponent var2, Rectangle var3) {
  124.       if (((Component)var2).isEnabled()) {
  125.          var1.translate(var3.x, var3.y);
  126.          if (super.scrollbar.getOrientation() == 1) {
  127.             if (!this.isFreeStanding) {
  128.                var3.width += 2;
  129.             }
  130.  
  131.             var1.setColor(thumbColor);
  132.             var1.fillRect(0, 0, var3.width - 2, var3.height - 1);
  133.             var1.setColor(thumbShadow);
  134.             var1.drawRect(0, 0, var3.width - 2, var3.height - 1);
  135.             var1.setColor(thumbHighlightColor);
  136.             var1.drawLine(1, 1, var3.width - 3, 1);
  137.             var1.drawLine(1, 1, 1, var3.height - 2);
  138.             this.bumps.setBumpArea(var3.width - 6, var3.height - 7);
  139.             this.bumps.paintIcon(var2, var1, 3, 4);
  140.             if (!this.isFreeStanding) {
  141.                var3.width -= 2;
  142.             }
  143.          } else {
  144.             if (!this.isFreeStanding) {
  145.                var3.height += 2;
  146.             }
  147.  
  148.             var1.setColor(thumbColor);
  149.             var1.fillRect(0, 0, var3.width - 1, var3.height - 2);
  150.             var1.setColor(thumbShadow);
  151.             var1.drawRect(0, 0, var3.width - 1, var3.height - 2);
  152.             var1.setColor(thumbHighlightColor);
  153.             var1.drawLine(1, 1, var3.width - 3, 1);
  154.             var1.drawLine(1, 1, 1, var3.height - 3);
  155.             this.bumps.setBumpArea(var3.width - 7, var3.height - 6);
  156.             this.bumps.paintIcon(var2, var1, 4, 3);
  157.             if (!this.isFreeStanding) {
  158.                var3.height -= 2;
  159.             }
  160.          }
  161.  
  162.          var1.translate(-var3.x, -var3.y);
  163.       }
  164.    }
  165.  
  166.    protected Dimension getMinimumThumbSize() {
  167.       return new Dimension(scrollBarWidth, scrollBarWidth);
  168.    }
  169. }
  170.