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

  1. package com.sun.java.swing.plaf.basic;
  2.  
  3. import com.sun.java.swing.BorderFactory;
  4. import com.sun.java.swing.JComponent;
  5. import com.sun.java.swing.border.Border;
  6. import com.sun.java.swing.plaf.ComponentUI;
  7. import com.sun.java.swing.plaf.SpinnerUI;
  8. import java.awt.Color;
  9. import java.awt.Component;
  10. import java.awt.Dimension;
  11. import java.awt.FontMetrics;
  12. import java.awt.Graphics;
  13. import java.awt.Insets;
  14. import java.io.Serializable;
  15.  
  16. public class BasicSpinnerUI extends SpinnerUI implements Serializable {
  17.    static final Border defaultBorder = BorderFactory.createLoweredBevelBorder();
  18.    // $FF: renamed from: d java.awt.Dimension
  19.    protected Dimension field_0;
  20.    protected int ascent;
  21.    // $FF: renamed from: fm java.awt.FontMetrics
  22.    protected FontMetrics field_1;
  23.    protected static SpinnerUI spinnerUI;
  24.  
  25.    public static ComponentUI createUI(JComponent var0) {
  26.       if (spinnerUI == null) {
  27.          spinnerUI = new BasicSpinnerUI();
  28.       }
  29.  
  30.       return spinnerUI;
  31.    }
  32.  
  33.    public void installUI(JComponent var1) {
  34.       ((Component)var1).setFont(BasicGraphicsUtils.controlFont);
  35.       if (var1.getBorder() == null) {
  36.          var1.setBorder(defaultBorder);
  37.       }
  38.  
  39.    }
  40.  
  41.    public void uninstallUI(JComponent var1) {
  42.       var1.resetKeyboardActions();
  43.       if (var1.getBorder() == defaultBorder) {
  44.          var1.setBorder((Border)null);
  45.       }
  46.  
  47.    }
  48.  
  49.    public void paint(Graphics var1, JComponent var2) {
  50.       Spinner var3 = (Spinner)var2;
  51.       this.getMinimumSize(var2);
  52.       Insets var4 = ((JComponent)var3).getBorder().getBorderInsets(var3);
  53.       var1.setColor(var3.getBackgroundColor());
  54.       var1.fillRect(var4.left, var4.top, this.field_0.width - (var4.left + var4.right), this.field_0.height - (var4.top + var4.bottom));
  55.       if (var3.hasFocus()) {
  56.          var1.setColor(new Color(0, 0, 150));
  57.          var1.fillRect(var4.left + 2, var4.top + 2, this.field_0.width - (var4.left + var4.right + 4), this.field_0.height - (var4.top + var4.bottom + 4));
  58.          var1.setColor(Color.white);
  59.       } else {
  60.          var1.setColor(Color.black);
  61.       }
  62.  
  63.       if (var3 instanceof StringSpinner) {
  64.          StringSpinner var11 = (StringSpinner)var3;
  65.          String var10 = var11.getValueName() + (((Spinner)var11).getText() != null ? ((Spinner)var11).getText() : "");
  66.          if (var11.getTypedString() == null) {
  67.             var1.drawString(var10, var4.left + 2, this.ascent + var4.top + 2);
  68.          } else {
  69.             var1.setColor(Color.lightGray);
  70.             var1.drawString(var10, var4.left + 2, this.ascent + var4.top + 2);
  71.             var1.setColor(Color.white);
  72.             var1.drawString(var10.substring(0, var11.getTypedString().length()), var4.left + 2, this.ascent + var4.top + 2);
  73.          }
  74.       } else {
  75.          String var5 = Integer.toString(var3.getValue());
  76.          if (var3.getLeadingPad() != -1) {
  77.             int var6 = var3.getDigits() - var5.length();
  78.             String var7 = Integer.toString(var3.getLeadingPad());
  79.  
  80.             for(int var8 = 0; var8 < var6; ++var8) {
  81.                var5 = var7 + var5;
  82.             }
  83.          }
  84.  
  85.          var5 = var5 + (var3.getText() != null ? var3.getText() : "");
  86.          var1.drawString(var5, this.field_0.width - this.field_1.stringWidth(var5) - var4.right - 2, this.ascent + var4.bottom + 2);
  87.       }
  88.    }
  89.  
  90.    public Dimension getPreferredSize(JComponent var1) {
  91.       return this.getMinimumSize(var1);
  92.    }
  93.  
  94.    public Dimension getMaximumSize(JComponent var1) {
  95.       return this.getMinimumSize(var1);
  96.    }
  97.  
  98.    public Dimension getMinimumSize(JComponent var1) {
  99.       Spinner var2 = (Spinner)var1;
  100.       this.field_1 = ((Component)var2).getFontMetrics(((Component)var2).getFont());
  101.       int var3 = 0;
  102.       if (var2 instanceof StringSpinner) {
  103.          StringSpinner var4 = (StringSpinner)var2;
  104.          String[] var5 = var4.getNameArray();
  105.          int var6 = var5.length;
  106.  
  107.          while(true) {
  108.             --var6;
  109.             if (var6 < 0) {
  110.                break;
  111.             }
  112.  
  113.             int var7 = this.field_1.stringWidth(var5[var6]);
  114.             if (var7 > var3) {
  115.                var3 = var7;
  116.             }
  117.          }
  118.       } else {
  119.          var3 = this.field_1.stringWidth("0") * var2.getDigits();
  120.       }
  121.  
  122.       if (var2.getText() != null) {
  123.          var3 += this.field_1.stringWidth(var2.getText());
  124.       }
  125.  
  126.       Insets var8 = ((JComponent)var2).getBorder().getBorderInsets(var2);
  127.       this.field_0 = new Dimension(var3 + var8.left + var8.right + 4, this.field_1.getHeight() + var8.top + var8.bottom + 4);
  128.       this.ascent = this.field_1.getAscent();
  129.       return this.field_0;
  130.    }
  131. }
  132.