home *** CD-ROM | disk | FTP | other *** search
/ Inside Dreamweaver 4 / IDW4.ISO / pc / Projects / ch20 / java / quote / classes / TextScript.class (.txt) < prev   
Encoding:
Java Class File  |  1998-12-07  |  3.7 KB  |  129 lines

  1. import java.awt.Color;
  2. import java.awt.Dimension;
  3. import java.awt.Font;
  4. import java.awt.FontMetrics;
  5. import java.awt.Graphics;
  6. import java.util.Random;
  7. import java.util.Vector;
  8.  
  9. public class TextScript {
  10.    // $FF: renamed from: gc java.awt.Graphics
  11.    private Graphics field_0;
  12.    private ParamParser param;
  13.    // $FF: renamed from: fm java.awt.FontMetrics
  14.    private FontMetrics field_1;
  15.    private Font fontPlain;
  16.    private Font fontItalic;
  17.    private String fontName;
  18.    private int fontSize;
  19.    private Dimension size;
  20.    private long last;
  21.    private int number;
  22.    private int bWidth;
  23.    private int bHeight;
  24.    private int space;
  25.    private Random random;
  26.    private boolean randomOrder = false;
  27.    private TextQuote quote;
  28.    private Vector current;
  29.    private Vector discard;
  30.  
  31.    TextScript(Graphics var1, ParamParser var2, Dimension var3) {
  32.       this.param = var2;
  33.       this.size = var3;
  34.       this.field_0 = var1;
  35.    }
  36.  
  37.    public void init() {
  38.       this.bWidth = this.param.parseInt("bwidth", 10);
  39.       this.bHeight = this.param.parseInt("bheight", 10);
  40.       this.space = this.param.parseInt("space", 20);
  41.       this.randomOrder = this.param.parseBoolean("random", false);
  42.       this.random = new Random(System.currentTimeMillis());
  43.       this.current = new Vector(0, 1);
  44.       this.discard = new Vector(0, 1);
  45.       this.fontSize = this.param.parseInt("fontsize", 10);
  46.       this.fontName = this.param.parseString("fontname", "TimesRoman");
  47.       this.fontPlain = new Font(this.fontName, 0, this.fontSize);
  48.       this.fontItalic = new Font(this.fontName, 2, this.fontSize);
  49.       this.field_1 = this.field_0.getFontMetrics(this.fontPlain);
  50.       this.number = this.param.parseInt("number", 0);
  51.  
  52.       for(int var1 = 0; var1 < this.number; ++var1) {
  53.          String[] var2 = this.param.parseStrings("quote" + var1, "|", 5);
  54.          if (var2 != null) {
  55.             String[] var3 = this.param.parser.wordWrap(var2[0], this.field_1, this.size.width - 2 * this.bWidth);
  56.             Color var4 = new Color(Integer.parseInt(var2[2], 16));
  57.             Color var5 = new Color(Integer.parseInt(var2[3], 16));
  58.             int var6 = Integer.parseInt(var2[4]);
  59.             this.current.insertElementAt(new TextQuote(var3, var2[1], var6, var4, var5), var1);
  60.          }
  61.       }
  62.  
  63.       this.current.trimToSize();
  64.    }
  65.  
  66.    public void start() {
  67.       this.quote = this.getQuote((TextQuote)null);
  68.       this.last = System.currentTimeMillis();
  69.    }
  70.  
  71.    private TextQuote getQuote(TextQuote var1) {
  72.       Object var2 = null;
  73.       if (var1 != null) {
  74.          this.discard.addElement(var1);
  75.       }
  76.  
  77.       TextQuote var4;
  78.       if (!this.randomOrder) {
  79.          var4 = (TextQuote)this.current.elementAt(0);
  80.          this.current.removeElementAt(0);
  81.       } else {
  82.          int var3 = (int)(this.random.nextFloat() * (float)(this.current.size() - 1));
  83.          var4 = (TextQuote)this.current.elementAt(var3);
  84.          this.current.removeElementAt(var3);
  85.       }
  86.  
  87.       if (this.current.isEmpty()) {
  88.          this.current = this.discard;
  89.          this.discard = new Vector(0, 1);
  90.       }
  91.  
  92.       return var4;
  93.    }
  94.  
  95.    public void update() {
  96.       long var1 = System.currentTimeMillis();
  97.       if (var1 - this.last >= this.quote.length) {
  98.          this.last = var1;
  99.          this.quote = this.getQuote(this.quote);
  100.       }
  101.  
  102.    }
  103.  
  104.    public void paint(Graphics var1) {
  105.       if (this.quote != null) {
  106.          int var2 = this.bWidth;
  107.          int var3 = this.bHeight;
  108.          int var4 = this.field_1.getAscent();
  109.          int var5 = this.field_1.getHeight();
  110.          var1.setColor(this.quote.bgColor);
  111.          var1.fillRect(0, 0, this.size.width, this.size.height);
  112.          var1.setColor(this.quote.fgColor);
  113.          var1.setFont(this.fontPlain);
  114.  
  115.          for(int var6 = 0; var6 < this.quote.text.length; ++var6) {
  116.             var1.drawString(this.quote.text[var6], var2, var3 + var4);
  117.             var3 += var5;
  118.          }
  119.  
  120.          var1.setFont(this.fontItalic);
  121.          var1.drawString(this.quote.company, var2 + 10, var3 + this.space);
  122.       }
  123.  
  124.    }
  125.  
  126.    public void stop() {
  127.    }
  128. }
  129.