home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2002 June / INTERNET92.ISO / pc / software / windows / building / visual_dhtml / visualdhtmlwin9x_nt.exe / TDMessag.___ (.txt) < prev    next >
Encoding:
Java Class File  |  2001-10-19  |  5.0 KB  |  315 lines

  1. import java.awt.Color;
  2. import java.awt.Component;
  3. import java.awt.Dimension;
  4. import java.awt.Event;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Image;
  9.  
  10. public class TDMessage extends OCAviewerExtend implements Runnable {
  11.    Thread m_TDMessage = null;
  12.    Image off;
  13.    Graphics g_off;
  14.    Font font = new Font("Helvetica", 0, 12);
  15.    // $FF: renamed from: fm java.awt.FontMetrics
  16.    FontMetrics field_0;
  17.    // $FF: renamed from: d java.awt.Dimension
  18.    Dimension field_1;
  19.    int center_x = 0;
  20.    int num_msg;
  21.    int tdStep;
  22.    boolean tag = false;
  23.    boolean on_the_move = false;
  24.    boolean first_run = true;
  25.    boolean mouseIn = false;
  26.    private int m_speed = 40;
  27.    private int m_3d_size = 20;
  28.    private int m_delay = 3000;
  29.    private int m_movedelay = 10;
  30.    private String[] m_msg;
  31.    private int m_heading;
  32.    private int[] m_cur_heading;
  33.    private Color m_bgcolor;
  34.    private String m_onsbtext;
  35.    private String m_offsbtext;
  36.  
  37.    public boolean mouseEnter(Event var1, int var2, int var3) {
  38.       this.mouseIn = true;
  39.       ((OCAviewerExtend)this).showStatus(this.m_onsbtext);
  40.       return true;
  41.    }
  42.  
  43.    public void stop() {
  44.       if (this.m_TDMessage != null) {
  45.          this.m_TDMessage.stop();
  46.          this.m_TDMessage = null;
  47.       }
  48.  
  49.    }
  50.  
  51.    public boolean mouseExit(Event var1, int var2, int var3) {
  52.       this.mouseIn = false;
  53.       ((OCAviewerExtend)this).showStatus(this.m_offsbtext);
  54.       return true;
  55.    }
  56.  
  57.    public void paint(Graphics var1) {
  58.       this.paintIt();
  59.    }
  60.  
  61.    public TDMessage() {
  62.       this.m_bgcolor = Color.white;
  63.       this.m_onsbtext = "3D Message Effect";
  64.       this.m_offsbtext = "Java by OpenCube";
  65.    }
  66.  
  67.    public void paintIt() {
  68.       ((Component)this).getGraphics().drawImage(this.off, 0, 0, this);
  69.    }
  70.  
  71.    public void draw3d(Graphics var1) {
  72.       int var2 = 0;
  73.       int var3 = 0;
  74.       int var4 = 0;
  75.       var3 = this.field_1.height / 2 + (this.field_0.getAscent() + this.field_0.getLeading()) / 2;
  76.  
  77.       for(int var5 = 0; var5 < this.num_msg; ++var5) {
  78.          this.center_x = this.field_1.width / 2 - this.field_0.stringWidth(this.m_msg[var5]) / 2 - this.m_3d_size;
  79.          var2 = 0;
  80.  
  81.          do {
  82.             ++var4;
  83.             this.g_off.drawString(this.m_msg[var5], this.center_x + var4, var3);
  84.             this.g_off.setColor(new Color(var2, var2, var2));
  85.             this.paintIt();
  86.  
  87.             try {
  88.                Thread.sleep((long)this.m_speed);
  89.             } catch (InterruptedException var10) {
  90.             }
  91.  
  92.             var2 += this.tdStep;
  93.          } while(var2 < 255);
  94.  
  95.          try {
  96.             Thread.sleep(500L);
  97.          } catch (InterruptedException var9) {
  98.          }
  99.  
  100.          var2 = 255;
  101.  
  102.          do {
  103.             this.g_off.drawString(this.m_msg[var5], this.center_x + var4, var3);
  104.             this.g_off.setColor(new Color(var2, var2, var2));
  105.             this.paintIt();
  106.  
  107.             try {
  108.                Thread.sleep((long)this.m_speed);
  109.             } catch (InterruptedException var8) {
  110.             }
  111.  
  112.             var2 -= this.tdStep;
  113.          } while(var2 > 0);
  114.  
  115.          var4 = 0;
  116.  
  117.          try {
  118.             Thread.sleep((long)this.m_delay);
  119.          } catch (InterruptedException var7) {
  120.          }
  121.  
  122.          this.on_the_move = true;
  123.          if (this.m_cur_heading[var5] < 0 || this.m_cur_heading[var5] > 3) {
  124.             this.m_cur_heading[var5] = (int)(Math.random() * (double)4.0F);
  125.          }
  126.  
  127.          if (this.m_cur_heading[var5] == 2) {
  128.             for(int var6 = 0; var6 <= this.field_1.height; ++var6) {
  129.                var1.drawImage(this.off, 0, var6, this);
  130.  
  131.                try {
  132.                   Thread.sleep((long)this.m_movedelay);
  133.                } catch (InterruptedException var14) {
  134.                }
  135.             }
  136.          }
  137.  
  138.          if (this.m_cur_heading[var5] == 0) {
  139.             for(int var18 = 0; var18 >= -this.field_1.height; --var18) {
  140.                var1.drawImage(this.off, 0, var18, this);
  141.  
  142.                try {
  143.                   Thread.sleep((long)this.m_movedelay);
  144.                } catch (InterruptedException var13) {
  145.                }
  146.             }
  147.          }
  148.  
  149.          if (this.m_cur_heading[var5] == 1) {
  150.             for(int var19 = 0; var19 <= this.field_1.width; ++var19) {
  151.                var1.drawImage(this.off, var19, 0, this);
  152.  
  153.                try {
  154.                   Thread.sleep((long)this.m_movedelay);
  155.                } catch (InterruptedException var12) {
  156.                }
  157.             }
  158.          }
  159.  
  160.          if (this.m_cur_heading[var5] == 3) {
  161.             for(int var20 = 0; var20 >= -this.field_1.width; --var20) {
  162.                var1.drawImage(this.off, var20, 0, this);
  163.  
  164.                try {
  165.                   Thread.sleep((long)this.m_movedelay);
  166.                } catch (InterruptedException var11) {
  167.                }
  168.             }
  169.          }
  170.  
  171.          this.DrawBG(var1);
  172.          this.on_the_move = false;
  173.       }
  174.  
  175.    }
  176.  
  177.    public void DrawBG(Graphics var1) {
  178.       var1.setColor(this.m_bgcolor);
  179.       var1.fillRect(0, 0, this.field_1.width, this.field_1.height);
  180.       this.g_off.setColor(this.m_bgcolor);
  181.       this.g_off.fillRect(0, 0, this.field_1.width, this.field_1.height);
  182.    }
  183.  
  184.    public void start() {
  185.       if (this.m_TDMessage == null) {
  186.          this.m_TDMessage = new Thread(this);
  187.          this.m_TDMessage.start();
  188.       }
  189.  
  190.    }
  191.  
  192.    public void run() {
  193.       while(true) {
  194.          if (this.first_run) {
  195.             this.off = ((Component)this).createImage(this.field_1.width, this.field_1.height);
  196.             this.g_off = this.off.getGraphics();
  197.             this.g_off.setFont(this.font);
  198.             this.field_0 = ((Component)this).getFontMetrics(this.font);
  199.             if (this.mouseIn) {
  200.                ((OCAviewerExtend)this).showStatus(this.m_onsbtext);
  201.             } else {
  202.                ((OCAviewerExtend)this).showStatus(this.m_offsbtext);
  203.             }
  204.  
  205.             this.first_run = false;
  206.          }
  207.  
  208.          this.draw3d(((Component)this).getGraphics());
  209.  
  210.          try {
  211.             Thread.sleep(50L);
  212.          } catch (InterruptedException var1) {
  213.          }
  214.       }
  215.    }
  216.  
  217.    public void init() {
  218.       String var1 = "3D Message Effect, Copyright (c) 1998, OpenCube Inc., Registered";
  219.       this.field_1 = ((Component)this).size();
  220.       String var2 = "";
  221.       int var3 = 0;
  222.       var2 = ((OCAviewerExtend)this).getParameter("Notice");
  223.       if (var2 == null) {
  224.          this.m_onsbtext = "Missing 'Notice' Tag";
  225.       } else {
  226.          String var4 = compkey.getKey(var2, ((OCAviewerExtend)this).getDocumentBase());
  227.          if (!var4.equals(var1)) {
  228.             if (var4.equals("-1")) {
  229.                this.m_onsbtext = "Incorrect Base URL Registration";
  230.             } else {
  231.                this.m_onsbtext = "Incorrect Copyright Notice in 'Notice' tag";
  232.             }
  233.          } else {
  234.             this.tag = true;
  235.             var2 = ((OCAviewerExtend)this).getParameter("onsbtext");
  236.             if (var2 != null) {
  237.                this.m_onsbtext = var2;
  238.             }
  239.  
  240.             var2 = ((OCAviewerExtend)this).getParameter("offsbtext");
  241.             if (var2 != null) {
  242.                this.m_offsbtext = var2;
  243.             }
  244.  
  245.             var2 = ((OCAviewerExtend)this).getParameter("font");
  246.             if (var2 != null) {
  247.                this.font = ocfontc.getFontSD(var2, ",");
  248.             } else {
  249.                this.font = new Font("Helvetica", 0, 12);
  250.             }
  251.  
  252.             var2 = ((OCAviewerExtend)this).getParameter("delay3d");
  253.             if (var2 != null) {
  254.                this.m_speed = Integer.parseInt(var2);
  255.             }
  256.  
  257.             var2 = ((OCAviewerExtend)this).getParameter("movedelay");
  258.             if (var2 != null) {
  259.                this.m_movedelay = Integer.parseInt(var2);
  260.             }
  261.  
  262.             var2 = ((OCAviewerExtend)this).getParameter("3dsize");
  263.             if (var2 != null) {
  264.                this.m_3d_size = Integer.parseInt(var2);
  265.             }
  266.  
  267.             this.tdStep = 255 / this.m_3d_size;
  268.             var2 = ((OCAviewerExtend)this).getParameter("delay");
  269.             if (var2 != null) {
  270.                this.m_delay = Integer.parseInt(var2);
  271.             }
  272.  
  273.             var2 = ((OCAviewerExtend)this).getParameter("bgcolor");
  274.             if (var2 != null) {
  275.                this.m_bgcolor = occcolor.ConvertColor(var2);
  276.                ((Component)this).setBackground(this.m_bgcolor);
  277.             } else {
  278.                this.m_bgcolor = new Color(0);
  279.                ((Component)this).setBackground(this.m_bgcolor);
  280.             }
  281.  
  282.             var2 = ((OCAviewerExtend)this).getParameter("heading" + var3);
  283.             if (var2 != null) {
  284.                this.m_heading = Integer.parseInt(var2);
  285.             }
  286.  
  287.             while(((OCAviewerExtend)this).getParameter("desc" + var3) != null) {
  288.                ++var3;
  289.             }
  290.  
  291.             this.num_msg = var3;
  292.             this.m_msg = new String[this.num_msg];
  293.             this.m_cur_heading = new int[this.num_msg];
  294.  
  295.             for(int var17 = 0; var17 < this.num_msg; ++var17) {
  296.                var2 = ((OCAviewerExtend)this).getParameter("desc" + var17);
  297.                if (var2 != null) {
  298.                   this.m_msg[var17] = new String(var2);
  299.                } else {
  300.                   this.m_msg[var17] = new String(" ");
  301.                }
  302.  
  303.                var2 = ((OCAviewerExtend)this).getParameter("heading" + var17);
  304.                if (var2 != null) {
  305.                   this.m_cur_heading[var17] = Integer.parseInt(var2);
  306.                } else {
  307.                   this.m_cur_heading[var17] = this.m_heading;
  308.                }
  309.             }
  310.  
  311.          }
  312.       }
  313.    }
  314. }
  315.