home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 December / PCO_1298.ISO / filesbbs / w95 / trial.exe / DATATEXT.CLASS (.txt) < prev    next >
Encoding:
Java Class File  |  1998-06-01  |  6.4 KB  |  309 lines

  1. import java.applet.Applet;
  2. import java.applet.AppletContext;
  3. import java.applet.AudioClip;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Container;
  7. import java.awt.Dimension;
  8. import java.awt.Event;
  9. import java.awt.Font;
  10. import java.awt.FontMetrics;
  11. import java.awt.Graphics;
  12. import java.awt.Image;
  13. import java.awt.LayoutManager;
  14. import java.awt.MediaTracker;
  15. import java.awt.image.MemoryImageSource;
  16. import java.awt.image.PixelGrabber;
  17. import java.util.Vector;
  18.  
  19. public class datatext extends Applet implements Runnable {
  20.    Thread program_thread;
  21.    // $FF: renamed from: l int
  22.    private int field_0;
  23.    private int sleeptime;
  24.    private int displace;
  25.    private int fontsize = 12;
  26.    private Font font;
  27.    private Font tempfont;
  28.    private Image bufferscreen;
  29.    private Image bufferscreen2;
  30.    private Image copybuffer;
  31.    private Image backgroundimage;
  32.    // $FF: renamed from: d java.awt.Dimension
  33.    private Dimension field_1;
  34.    private Color backgroundcolor;
  35.    private Color foregroundcolor;
  36.    private int backgroundcolorint;
  37.    private int foregroundcolorint;
  38.    // $FF: renamed from: PI double
  39.    double field_2 = 3.1415926535;
  40.    double alpha;
  41.    // $FF: renamed from: cx int
  42.    int field_3;
  43.    // $FF: renamed from: cy int
  44.    int field_4;
  45.    int old_i;
  46.    int old_j;
  47.    int showcursor;
  48.    AudioClip sound;
  49.    AudioClip whoosh;
  50.    AudioClip potsh;
  51.    AudioClip shh;
  52.    protected MediaTracker tracker;
  53.    Vector items;
  54.    private boolean registered;
  55.    private boolean rerun;
  56.    private boolean usesbackgroundimage = false;
  57.    private boolean usesound = true;
  58.    // $FF: renamed from: g java.awt.Graphics
  59.    private Graphics field_5;
  60.    // $FF: renamed from: g2 java.awt.Graphics
  61.    private Graphics field_6;
  62.    AppletContext appletcontrol;
  63.  
  64.    public void init() {
  65.       super.init();
  66.       ((Container)this).setLayout((LayoutManager)null);
  67.       this.prepareVariables();
  68.       this.old_i = 0;
  69.       this.old_j = 0;
  70.       this.showcursor = 1;
  71.       this.alpha = (double)0.0F;
  72.    }
  73.  
  74.    public void paint(Graphics var1) {
  75.       this.field_6.drawImage(this.bufferscreen, 0, 0, this);
  76.    }
  77.  
  78.    public void update(Graphics var1) {
  79.       this.paint(var1);
  80.    }
  81.  
  82.    public boolean handleEvent(Event var1) {
  83.       return super.handleEvent(var1);
  84.    }
  85.  
  86.    public void checkreg() {
  87.       String var1 = ((Applet)this).getParameter("demicron");
  88.       String var2 = ((Applet)this).getParameter("reg");
  89.       if (var1.compareTo("www.demicron.se") == 0 && var2.compareTo("A00009") == 0) {
  90.          this.registered = true;
  91.       } else {
  92.          this.registered = false;
  93.       }
  94.    }
  95.  
  96.    public void prepareVariables() {
  97.       this.checkreg();
  98.       this.fontsize = this.getIntegerParameter("fontsize", 10);
  99.       this.sleeptime = this.getIntegerParameter("sleeptime", 10);
  100.       this.font = new Font("Courier", 1, this.fontsize);
  101.       ((Applet)this).resize(this.getIntegerParameter("width", 10), this.getIntegerParameter("height", 10));
  102.       this.field_1 = ((Component)this).size();
  103.       this.bufferscreen = ((Component)this).createImage(this.field_1.width, this.field_1.height);
  104.       this.bufferscreen2 = ((Component)this).createImage(this.field_1.width, this.field_1.height);
  105.       this.field_6 = ((Component)this).getGraphics();
  106.       this.field_5 = this.bufferscreen.getGraphics();
  107.       this.foregroundcolor = new Color(this.getIntegerParameter("foreground", 16));
  108.       this.foregroundcolorint = this.getIntegerParameter("foreground", 16);
  109.       this.backgroundcolor = new Color(this.getIntegerParameter("background", 16));
  110.       this.backgroundcolorint = this.getIntegerParameter("background", 16);
  111.       this.displace = this.getIntegerParameter("displace", 10);
  112.       String var1 = ((Applet)this).getParameter("rerun");
  113.       var1 = var1.toLowerCase();
  114.       if (var1.charAt(0) == 'y') {
  115.          this.rerun = true;
  116.       } else {
  117.          this.rerun = false;
  118.       }
  119.  
  120.       var1 = ((Applet)this).getParameter("sound");
  121.       var1 = var1.toLowerCase();
  122.       if (var1.charAt(0) == 'y') {
  123.          this.usesound = true;
  124.       } else {
  125.          this.usesound = false;
  126.       }
  127.  
  128.       this.items = new Vector();
  129.       String var2 = "";
  130.       int var3 = 0;
  131.  
  132.       for(int var4 = 0; var2 != null; var2 = ((Applet)this).getParameter("item" + var3 + "," + var4)) {
  133.          Vector var5;
  134.          for(var5 = new Vector(); var2 != null; ++var4) {
  135.             var2 = ((Applet)this).getParameter("item" + var3 + "," + var4);
  136.             if (var2 != null) {
  137.                var5.addElement(var2);
  138.             }
  139.          }
  140.  
  141.          ++var3;
  142.          var4 = 0;
  143.          this.items.addElement(var5);
  144.       }
  145.  
  146.       String var11 = ((Applet)this).getParameter("backgroundimage");
  147.       if (var11 != null) {
  148.          MediaTracker var6 = new MediaTracker(this);
  149.          if (var11.toUpperCase().indexOf(".JPG") > -1 || var11.toUpperCase().indexOf(".GIF") > -1) {
  150.             this.backgroundimage = ((Applet)this).getImage(((Applet)this).getDocumentBase(), var11);
  151.             var6.addImage(this.backgroundimage, 0);
  152.             this.usesbackgroundimage = true;
  153.          }
  154.  
  155.          ((Applet)this).showStatus("Loading background image");
  156.  
  157.          try {
  158.             var6.waitForAll();
  159.          } catch (InterruptedException var7) {
  160.          }
  161.  
  162.          ((Applet)this).showStatus("Finished loading background image");
  163.       }
  164.  
  165.       if (this.usesbackgroundimage) {
  166.          this.backgroundimage = this.resizeImage(this.backgroundimage, this.field_1.width, this.field_1.height);
  167.       }
  168.  
  169.    }
  170.  
  171.    public int getIntegerParameter(String var1, int var2) {
  172.       String var3 = ((Applet)this).getParameter(var1);
  173.  
  174.       try {
  175.          int var4 = Integer.parseInt(var3, var2);
  176.          return var4;
  177.       } catch (NumberFormatException var5) {
  178.          return 0;
  179.       }
  180.    }
  181.  
  182.    public void start() {
  183.       if (this.program_thread == null) {
  184.          this.program_thread = new Thread(this);
  185.          this.program_thread.start();
  186.       }
  187.  
  188.    }
  189.  
  190.    public void stop() {
  191.       if (this.program_thread != null && this.program_thread.isAlive()) {
  192.          this.program_thread.stop();
  193.       }
  194.  
  195.       this.program_thread = null;
  196.    }
  197.  
  198.    public Image resizeImage(Image var1, int var2, int var3) {
  199.       int var4 = var1.getWidth(this);
  200.       int var5 = var1.getHeight(this);
  201.       int[] var6 = new int[var4 * var5];
  202.       PixelGrabber var7 = new PixelGrabber(var1, 0, 0, var4, var5, var6, 0, var4);
  203.  
  204.       try {
  205.          var7.grabPixels();
  206.       } catch (InterruptedException var11) {
  207.       }
  208.  
  209.       int[] var8 = new int[var2 * var3];
  210.  
  211.       for(int var9 = 0; var9 < var2; ++var9) {
  212.          for(int var10 = 0; var10 < var3; ++var10) {
  213.             var8[var9 + var10 * var2] = var6[var9 * var4 / var2 + var10 * var5 / var3 * var4];
  214.          }
  215.       }
  216.  
  217.       Image var12 = ((Component)this).createImage(new MemoryImageSource(var2, var3, var8, 0, var2));
  218.       return var12;
  219.    }
  220.  
  221.    public void run() {
  222.       this.field_5.setFont(this.font);
  223.       this.field_5.setColor(this.backgroundcolor);
  224.       this.field_5.fillRect(0, 0, this.field_1.width, this.field_1.height);
  225.       this.sound = ((Applet)this).getAudioClip(((Applet)this).getCodeBase(), "beep.au");
  226.       if (!this.registered) {
  227.          this.field_6.setColor(Color.black);
  228.          this.field_6.fillRect(0, 0, this.field_1.width, this.field_1.height);
  229.          Font var12 = new Font("TimesRoman", 0, 12);
  230.          this.field_6.setFont(var12);
  231.          this.field_6.setColor(Color.yellow);
  232.          this.field_6.drawString("Registration parameters must ", 0, 12);
  233.          this.field_6.drawString("be specified. Contact Demicron:", 0, 24);
  234.          this.field_6.drawString("http://www.demicron.se", 0, 36);
  235.       } else {
  236.          boolean var1 = true;
  237.          FontMetrics var2 = this.field_5.getFontMetrics(this.font);
  238.  
  239.          for(int var3 = var2.stringWidth("A"); var1; var1 = this.rerun) {
  240.             for(this.field_0 = 0; this.field_0 < this.items.size(); ++this.field_0) {
  241.                this.field_5.setColor(this.backgroundcolor);
  242.                if (this.usesbackgroundimage) {
  243.                   this.field_5.drawImage(this.backgroundimage, 0, 0, this);
  244.                } else {
  245.                   this.field_5.fillRect(0, 0, this.field_1.width, this.field_1.height);
  246.                }
  247.  
  248.                this.field_5.setFont(this.font);
  249.                int var4 = ((Vector)this.items.elementAt(this.field_0)).size();
  250.  
  251.                for(int var5 = 0; var5 < var4; ++var5) {
  252.                   String var6 = (String)((Vector)this.items.elementAt(this.field_0)).elementAt(var5);
  253.  
  254.                   for(int var7 = 0; var7 < var6.length(); ++var7) {
  255.                      this.field_5.setColor(this.backgroundcolor);
  256.                      this.field_5.fillRect(this.old_j * var3 - 1 + this.displace, this.old_i * this.fontsize + 10 + this.displace, var3 + 2, this.fontsize);
  257.                      this.old_j = var7 + 1;
  258.                      this.old_i = var5;
  259.                      this.field_5.setColor(this.foregroundcolor);
  260.                      this.field_5.drawString(var6.substring(var7, var7 + 1), var7 * var3 + this.displace, var5 * this.fontsize + 10 + this.displace);
  261.                      if (this.showcursor == 1) {
  262.                         this.field_5.drawString("_", (var7 + 1) * var3 + this.displace, var5 * this.fontsize + 10 + this.displace);
  263.                         this.showcursor = -1;
  264.                      } else {
  265.                         this.showcursor = 1;
  266.                      }
  267.  
  268.                      this.field_6.drawImage(this.bufferscreen, 0, 0, this);
  269.                      if (this.sound != null && this.usesound) {
  270.                         this.sound.play();
  271.                      }
  272.  
  273.                      try {
  274.                         Thread.sleep((long)this.sleeptime);
  275.                      } catch (InterruptedException var11) {
  276.                      }
  277.                   }
  278.  
  279.                   for(int var8 = 0; var8 < 2; ++var8) {
  280.                      this.field_5.setColor(this.backgroundcolor);
  281.                      this.field_5.fillRect(this.old_j * var3 - 1 + this.displace, this.old_i * this.fontsize + 10 + this.displace, var3 + 1, this.fontsize);
  282.                      this.field_5.setColor(this.foregroundcolor);
  283.                      if (this.showcursor == 1) {
  284.                         this.field_5.drawString("_", this.old_j * var3 + this.displace, this.old_i * this.fontsize + 10 + this.displace);
  285.                         this.showcursor = -1;
  286.                      } else {
  287.                         this.showcursor = 1;
  288.                      }
  289.  
  290.                      this.field_6.drawImage(this.bufferscreen, 0, 0, this);
  291.  
  292.                      try {
  293.                         Thread.sleep((long)(this.sleeptime * 2));
  294.                      } catch (InterruptedException var10) {
  295.                      }
  296.                   }
  297.  
  298.                   try {
  299.                      Thread.sleep((long)(this.sleeptime / 2));
  300.                   } catch (InterruptedException var9) {
  301.                   }
  302.                }
  303.             }
  304.          }
  305.  
  306.       }
  307.    }
  308. }
  309.