home *** CD-ROM | disk | FTP | other *** search
/ PC for Alla 2003 April / PFA0304.iso / fullversioner / ImageZoom / InstData / com / dialogs / ProgressBar.class (.txt) < prev    next >
Encoding:
Java Class File  |  2002-07-17  |  4.1 KB  |  137 lines

  1. package com.zerog.ia.download.dialogs;
  2.  
  3. import com.zerog.ia.download.utility.AppletResourceBundle;
  4. import com.zerog.ia.download.utility.Gestalt;
  5. import java.awt.Canvas;
  6. import java.awt.Color;
  7. import java.awt.Component;
  8. import java.awt.Dimension;
  9. import java.awt.Font;
  10. import java.awt.Graphics;
  11. import java.awt.Image;
  12.  
  13. public class ProgressBar extends Canvas {
  14.    int percentDone;
  15.    int fontHeight;
  16.    long timerStarted;
  17.    Image offscreenImage;
  18.    Graphics offscreenGraphics;
  19.    public static final String PERCENT_DONE = ".PercentDone";
  20.    public static final String ABOUT_PREPEND = ".About.Prepend";
  21.    public static final String ABOUT_POSTPEND = ".About.Postpend";
  22.    public static final String ABOUT_A_MINUTE = ".AboutAMinute";
  23.    public static final String LESS_A_MINUTE = ".AboutLessMinute";
  24.    // $FF: synthetic field
  25.    static Class class$com$zerog$ia$download$dialogs$ProgressBar;
  26.  
  27.    public ProgressBar() {
  28.       this(300, 50);
  29.    }
  30.  
  31.    public ProgressBar(int var1, int var2) {
  32.       this.percentDone = 0;
  33.       this.timerStarted = 0L;
  34.       ((Component)this).resize(var1, var2);
  35.    }
  36.  
  37.    public void addNotify() {
  38.       super.addNotify();
  39.       this.fontHeight = ((Component)this).getFontMetrics(((Component)this).getFont()).getHeight();
  40.       this.offscreenImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
  41.       this.offscreenGraphics = this.offscreenImage.getGraphics();
  42.       if (Gestalt.getVMVendor().equals(Gestalt.APPLE_VM)) {
  43.          this.offscreenGraphics.setFont(new Font("SanSerif", 0, 10));
  44.       } else {
  45.          this.offscreenGraphics.setFont(new Font("Dialog", 0, 12));
  46.       }
  47.  
  48.       this.offscreenGraphics.translate(2, 2);
  49.       ((Component)this).repaint();
  50.    }
  51.  
  52.    public void paint(Graphics var1) {
  53.       var1.drawImage(this.offscreenImage, 0, 0, this);
  54.    }
  55.  
  56.    public void update(Graphics var1) {
  57.       Dimension var2 = ((Component)this).size();
  58.       Dimension var3 = ((Component)this).size();
  59.       var3.height = (var2.height >> 1) - 4;
  60.       var3.width = var2.width - 4;
  61.       String var11 = "" + this.percentDone + "% " + AppletResourceBundle.getLocalizedString(this, ".PercentDone");
  62.       if (this.percentDone >= 10) {
  63.          long var4 = System.currentTimeMillis() - this.timerStarted;
  64.          long var6 = (100L * var4 / (long)this.percentDone - var4) / 1000L;
  65.          if (var6 > 90L) {
  66.             var11 = var11 + " (" + AppletResourceBundle.getLocalizedString(this, ".About.Prepend") + " " + (var6 + 30L) / 60L + " " + AppletResourceBundle.getLocalizedString(this, ".About.Postpend") + ")";
  67.          } else if (var6 > 30L) {
  68.             var11 = var11 + " (" + AppletResourceBundle.getLocalizedString(this, ".AboutAMinute") + ")";
  69.          } else {
  70.             var11 = var11 + " (" + AppletResourceBundle.getLocalizedString(this, ".AboutLessMinute") + ")";
  71.          }
  72.       }
  73.  
  74.       int var8 = this.percentDone * var3.width / 100;
  75.       this.offscreenGraphics.setColor(((Component)this).getBackground());
  76.       this.offscreenGraphics.fillRect(-2, -2, var2.width, var2.height);
  77.       this.offscreenGraphics.setColor(Color.black);
  78.       this.offscreenGraphics.drawRect(0, 0, var2.width - 5, var3.height - 1);
  79.       byte var12 = 0;
  80.  
  81.       for(int var13 = 0; var13 <= var12; ++var13) {
  82.          Color var14 = new Color(0, 0, 150);
  83.  
  84.          for(int var15 = var13; var15 < var12; ++var15) {
  85.             var14 = var14.darker();
  86.          }
  87.  
  88.          this.offscreenGraphics.setColor(var14);
  89.          this.offscreenGraphics.fillRect(var13, var13, var8 - var13, var3.height - 1 - var13);
  90.          float var16 = (float)var13 / (float)var12;
  91.          this.offscreenGraphics.setColor(new Color(var16, var16, var16));
  92.       }
  93.  
  94.       this.offscreenGraphics.setColor(Color.black);
  95.       this.offscreenGraphics.drawString(var11, 0, var3.height + (this.fontHeight >> 1) + 5);
  96.       this.paint(var1);
  97.    }
  98.  
  99.    public void setPercentDone(int var1) {
  100.       if (var1 != this.percentDone || var1 == 0) {
  101.          this.percentDone = var1;
  102.          if (this.percentDone < 0) {
  103.             this.percentDone = 0;
  104.          } else if (this.percentDone > 100) {
  105.             this.percentDone = 100;
  106.          }
  107.  
  108.          if (this.timerStarted == 0L && var1 > 0) {
  109.             this.timerStarted = System.currentTimeMillis();
  110.          }
  111.  
  112.          ((Component)this).repaint();
  113.       }
  114.    }
  115.  
  116.    public int getPercentDone() {
  117.       return this.percentDone;
  118.    }
  119.  
  120.    // $FF: synthetic method
  121.    static Class class$(String var0) {
  122.       try {
  123.          return Class.forName(var0);
  124.       } catch (ClassNotFoundException var2) {
  125.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  126.       }
  127.    }
  128.  
  129.    static {
  130.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$dialogs$ProgressBar == null ? (class$com$zerog$ia$download$dialogs$ProgressBar = class$("com.zerog.ia.download.dialogs.ProgressBar")) : class$com$zerog$ia$download$dialogs$ProgressBar, ".PercentDone", "done");
  131.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$dialogs$ProgressBar == null ? (class$com$zerog$ia$download$dialogs$ProgressBar = class$("com.zerog.ia.download.dialogs.ProgressBar")) : class$com$zerog$ia$download$dialogs$ProgressBar, ".About.Prepend", "About");
  132.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$dialogs$ProgressBar == null ? (class$com$zerog$ia$download$dialogs$ProgressBar = class$("com.zerog.ia.download.dialogs.ProgressBar")) : class$com$zerog$ia$download$dialogs$ProgressBar, ".About.Postpend", "minutes remaining");
  133.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$dialogs$ProgressBar == null ? (class$com$zerog$ia$download$dialogs$ProgressBar = class$("com.zerog.ia.download.dialogs.ProgressBar")) : class$com$zerog$ia$download$dialogs$ProgressBar, ".AboutAMinute", "About a minute remaining");
  134.       AppletResourceBundle.setDefaultLocalizedString(class$com$zerog$ia$download$dialogs$ProgressBar == null ? (class$com$zerog$ia$download$dialogs$ProgressBar = class$("com.zerog.ia.download.dialogs.ProgressBar")) : class$com$zerog$ia$download$dialogs$ProgressBar, ".AboutLessMinute", "Less than a minute remaining");
  135.    }
  136. }
  137.