home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / plaf / basic / BasicProgressBarUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  6.2 KB  |  297 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Dimension;
  5. import java.awt.FontMetrics;
  6. import java.awt.Graphics;
  7. import java.awt.Insets;
  8. import java.awt.Point;
  9. import java.awt.Rectangle;
  10. import javax.swing.BoundedRangeModel;
  11. import javax.swing.JComponent;
  12. import javax.swing.JProgressBar;
  13. import javax.swing.LookAndFeel;
  14. import javax.swing.UIManager;
  15. import javax.swing.event.ChangeListener;
  16. import javax.swing.plaf.ComponentUI;
  17. import javax.swing.plaf.ProgressBarUI;
  18.  
  19. public class BasicProgressBarUI extends ProgressBarUI {
  20.    private static final Dimension PREFERRED_INNER_HORIZONTAL = new Dimension(146, 12);
  21.    private static final Dimension PREFERRED_INNER_VERTICAL = new Dimension(12, 146);
  22.    private int cachedPercent;
  23.    private int cellLength;
  24.    private int cellSpacing;
  25.    private Color selectionForeground;
  26.    private Color selectionBackground;
  27.    protected JProgressBar progressBar;
  28.    protected ChangeListener changeListener;
  29.  
  30.    public static ComponentUI createUI(JComponent var0) {
  31.       return new BasicProgressBarUI();
  32.    }
  33.  
  34.    public void installUI(JComponent var1) {
  35.       this.progressBar = (JProgressBar)var1;
  36.       this.installDefaults();
  37.       this.installListeners();
  38.    }
  39.  
  40.    public void uninstallUI(JComponent var1) {
  41.       this.uninstallDefaults();
  42.       this.uninstallListeners();
  43.       this.progressBar = null;
  44.    }
  45.  
  46.    protected void installDefaults() {
  47.       this.progressBar.setOpaque(true);
  48.       LookAndFeel.installBorder(this.progressBar, "ProgressBar.border");
  49.       LookAndFeel.installColorsAndFont(this.progressBar, "ProgressBar.background", "ProgressBar.foreground", "ProgressBar.font");
  50.       this.cellLength = UIManager.getInt("ProgressBar.cellLength");
  51.       this.cellSpacing = UIManager.getInt("ProgressBar.cellSpacing");
  52.       this.selectionForeground = UIManager.getColor("ProgressBar.selectionForeground");
  53.       this.selectionBackground = UIManager.getColor("ProgressBar.selectionBackground");
  54.    }
  55.  
  56.    protected void uninstallDefaults() {
  57.       LookAndFeel.uninstallBorder(this.progressBar);
  58.    }
  59.  
  60.    protected void installListeners() {
  61.       this.changeListener = new ChangeHandler(this);
  62.       this.progressBar.addChangeListener(this.changeListener);
  63.    }
  64.  
  65.    protected void uninstallListeners() {
  66.       this.progressBar.removeChangeListener(this.changeListener);
  67.    }
  68.  
  69.    protected Dimension getPreferredInnerHorizontal() {
  70.       return PREFERRED_INNER_HORIZONTAL;
  71.    }
  72.  
  73.    protected Dimension getPreferredInnerVertical() {
  74.       return PREFERRED_INNER_VERTICAL;
  75.    }
  76.  
  77.    protected Color getSelectionForeground() {
  78.       return this.selectionForeground;
  79.    }
  80.  
  81.    protected Color getSelectionBackground() {
  82.       return this.selectionBackground;
  83.    }
  84.  
  85.    private int getCachedPercent() {
  86.       return this.cachedPercent;
  87.    }
  88.  
  89.    private void setCachedPercent(int var1) {
  90.       this.cachedPercent = var1;
  91.    }
  92.  
  93.    protected int getCellLength() {
  94.       return this.progressBar.isStringPainted() ? 1 : this.cellLength;
  95.    }
  96.  
  97.    protected void setCellLength(int var1) {
  98.       this.cellLength = var1;
  99.    }
  100.  
  101.    protected int getCellSpacing() {
  102.       return this.progressBar.isStringPainted() ? 0 : this.cellSpacing;
  103.    }
  104.  
  105.    protected void setCellSpacing(int var1) {
  106.       this.cellSpacing = var1;
  107.    }
  108.  
  109.    protected int getAmountFull(Insets var1, int var2, int var3) {
  110.       int var4 = 0;
  111.       BoundedRangeModel var5 = this.progressBar.getModel();
  112.       if (var5.getMaximum() - var5.getMinimum() != 0) {
  113.          if (this.progressBar.getOrientation() == 0) {
  114.             var4 = (int)Math.round((double)var2 * this.progressBar.getPercentComplete());
  115.          } else {
  116.             var4 = (int)Math.round((double)var3 * this.progressBar.getPercentComplete());
  117.          }
  118.       }
  119.  
  120.       return var4;
  121.    }
  122.  
  123.    public void paint(Graphics var1, JComponent var2) {
  124.       BoundedRangeModel var3 = this.progressBar.getModel();
  125.       int var4 = 0;
  126.       int var5 = 0;
  127.       int var6 = this.progressBar.getWidth();
  128.       int var7 = this.progressBar.getHeight();
  129.       Insets var8 = this.progressBar.getInsets();
  130.       var4 += var8.left;
  131.       var5 += var8.top;
  132.       var6 -= var8.right + var4;
  133.       var7 -= var8.bottom + var5;
  134.       int var10 = this.getCellLength();
  135.       int var11 = this.getCellSpacing();
  136.       int var12 = var10 + var11;
  137.       int var13 = this.getAmountFull(var8, var6, var7);
  138.       var1.setColor(this.progressBar.getForeground());
  139.       if (this.progressBar.getOrientation() == 0) {
  140.          int var14 = var4;
  141.          boolean var15 = BasicGraphicsUtils.isLeftToRight(var2);
  142.          if (!var15) {
  143.             var14 = var4 + (var6 - var13);
  144.          }
  145.  
  146.          if (var11 == 0 && var13 > 0) {
  147.             var1.fillRect(var14, var5, var13, var7);
  148.          } else {
  149.             Rectangle var16 = var1.getClipBounds();
  150.             var1.setClip(var4, var5, var6, var7);
  151.             int var17 = (int)Math.ceil((double)var13 / (double)var12);
  152.             if (!var15) {
  153.                var14 += var11 - (var17 * var12 - var13);
  154.             }
  155.  
  156.             for(int var9 = var14; var17-- > 0; var9 += var12) {
  157.                var1.fillRect(var9, var5, var10, var7);
  158.             }
  159.  
  160.             var1.setClip(var16);
  161.          }
  162.       } else {
  163.          int var23 = var5 + var7 - var13;
  164.          if (var11 == 0 && var13 > 0) {
  165.             var1.fillRect(var4, var23, var6, var13);
  166.          } else {
  167.             Rectangle var25 = var1.getClipBounds();
  168.             var1.setClip(var4, var5, var6, var7);
  169.             int var26 = (int)Math.ceil((double)var13 / (double)var12);
  170.             var23 += var11 - (var26 * var12 - var13);
  171.  
  172.             for(int var22 = var23; var26-- > 0; var22 += var12) {
  173.                var1.fillRect(var4, var22, var6, var10);
  174.             }
  175.  
  176.             var1.setClip(var25);
  177.          }
  178.       }
  179.  
  180.       if (this.progressBar.isStringPainted()) {
  181.          this.paintString(var1, var4, var5, var6, var7, var13, var8);
  182.       }
  183.  
  184.    }
  185.  
  186.    protected void paintString(Graphics var1, int var2, int var3, int var4, int var5, int var6, Insets var7) {
  187.       String var8 = this.progressBar.getString();
  188.       var1.setFont(this.progressBar.getFont());
  189.       Point var9 = this.getStringPlacement(var1, var8, var2, var3, var4, var5);
  190.       Rectangle var10 = var1.getClipBounds();
  191.       if (this.progressBar.getOrientation() == 0) {
  192.          var1.setColor(this.getSelectionForeground());
  193.          var1.drawString(var8, var9.x, var9.y);
  194.          var1.setColor(this.getSelectionBackground());
  195.          if (BasicGraphicsUtils.isLeftToRight(this.progressBar)) {
  196.             var1.setClip(var2 + var6, var3, var4 - var6, var5);
  197.          } else {
  198.             var1.setClip(var2, var3, var4 - var6, var5);
  199.          }
  200.  
  201.          var1.drawString(var8, var9.x, var9.y);
  202.       } else {
  203.          var1.setColor(this.getSelectionBackground());
  204.          var1.drawString(var8, var9.x, var9.y);
  205.          var1.setColor(this.getSelectionForeground());
  206.          var1.setClip(var2, var5 - var6 + var7.top, var4, var5);
  207.          var1.drawString(var8, var9.x, var9.y);
  208.       }
  209.  
  210.       var1.setClip(var10);
  211.    }
  212.  
  213.    protected Point getStringPlacement(Graphics var1, String var2, int var3, int var4, int var5, int var6) {
  214.       FontMetrics var7 = this.progressBar.getFontMetrics(this.progressBar.getFont());
  215.       int var8 = var7.stringWidth(var2);
  216.       int var9 = var7.getAscent() + var7.getDescent();
  217.       return this.progressBar.getOrientation() == 0 ? new Point(var3 + Math.round((float)(var5 / 2 - var8 / 2)), var4 + var7.getHeight() - Math.round((float)(var7.getDescent() / 2))) : new Point(var3 + Math.round((float)(var5 / 2 - var8 / 2)), var4 + Math.round((float)(var6 / 2 + var9 / 2)));
  218.    }
  219.  
  220.    public Dimension getPreferredSize(JComponent var1) {
  221.       Insets var3 = this.progressBar.getInsets();
  222.       FontMetrics var4 = this.progressBar.getFontMetrics(this.progressBar.getFont());
  223.       Dimension var2;
  224.       if (this.progressBar.getOrientation() == 0) {
  225.          var2 = new Dimension(this.getPreferredInnerHorizontal());
  226.          if (this.progressBar.isStringPainted()) {
  227.             String var5 = this.progressBar.getString();
  228.             int var6 = var4.stringWidth(var5);
  229.             if (var6 > var2.width) {
  230.                var2.width = var6;
  231.             }
  232.  
  233.             int var7 = var4.getHeight() + var4.getDescent();
  234.             if (var7 > var2.height) {
  235.                var2.height = var7;
  236.             }
  237.          }
  238.       } else {
  239.          var2 = new Dimension(this.getPreferredInnerVertical());
  240.          if (this.progressBar.isStringPainted()) {
  241.             String var8 = new String("100%");
  242.             int var10 = var4.stringWidth(var8);
  243.             if (var10 > var2.width) {
  244.                var2.width = var10;
  245.             }
  246.  
  247.             var8 = this.progressBar.getString();
  248.             var10 = var4.stringWidth(var8);
  249.             if (var10 > var2.width) {
  250.                var2.width = var10;
  251.             }
  252.  
  253.             int var12 = var4.getHeight() + var4.getDescent();
  254.             if (var12 > var2.height) {
  255.                var2.height = var12;
  256.             }
  257.          }
  258.       }
  259.  
  260.       var2.width += var3.left + var3.right;
  261.       var2.height += var3.top + var3.bottom;
  262.       return var2;
  263.    }
  264.  
  265.    public Dimension getMinimumSize(JComponent var1) {
  266.       Dimension var2 = this.getPreferredSize(this.progressBar);
  267.       if (this.progressBar.getOrientation() == 0) {
  268.          var2.width = 10;
  269.       } else {
  270.          var2.height = 10;
  271.       }
  272.  
  273.       return var2;
  274.    }
  275.  
  276.    public Dimension getMaximumSize(JComponent var1) {
  277.       Dimension var2 = this.getPreferredSize(this.progressBar);
  278.       if (this.progressBar.getOrientation() == 0) {
  279.          var2.width = 32767;
  280.       } else {
  281.          var2.height = 32767;
  282.       }
  283.  
  284.       return var2;
  285.    }
  286.  
  287.    // $FF: synthetic method
  288.    static int access$000(BasicProgressBarUI var0) {
  289.       return var0.getCachedPercent();
  290.    }
  291.  
  292.    // $FF: synthetic method
  293.    static void access$100(BasicProgressBarUI var0, int var1) {
  294.       var0.setCachedPercent(var1);
  295.    }
  296. }
  297.