home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2003 January / maximum-cd-2003-01.iso / Software / Utilities / JPerk / jperk.exe / _SETUP.1 / NavigatorTicker20.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-09-05  |  7.0 KB  |  285 lines

  1. import java.applet.Applet;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.Event;
  6. import java.awt.Font;
  7. import java.awt.FontMetrics;
  8. import java.awt.Graphics;
  9. import java.awt.Image;
  10. import java.net.URL;
  11. import java.util.StringTokenizer;
  12.  
  13. public class NavigatorTicker20 extends Applet implements Runnable {
  14.    public int messageIndex;
  15.    public int messageCount = 1;
  16.    public String message;
  17.    public String[] msgs;
  18.    public Font messageF;
  19.    public int messageX;
  20.    public int messageY;
  21.    public int messageW;
  22.    public int[] msgsW;
  23.    public URL url_;
  24.    public String[] msgsURL;
  25.    public String[] msgsURLTargets;
  26.    public String[] msgsURLDescriptions;
  27.    int speed;
  28.    // $FF: renamed from: t java.lang.Thread
  29.    public Thread field_0;
  30.    public boolean active = false;
  31.    public Color txtCo;
  32.    public Color linkCo;
  33.    public Color bgCo;
  34.    public Color shCo;
  35.    public Dimension lastS = new Dimension(1, 1);
  36.    // $FF: renamed from: im java.awt.Image
  37.    Image field_1;
  38.    // $FF: renamed from: gr java.awt.Graphics
  39.    Graphics field_2;
  40.    boolean display_URL = false;
  41.    boolean SHADOW = false;
  42.    boolean BORDER = true;
  43.    public int shDepth = 2;
  44.    int mouseX;
  45.  
  46.    public void init() {
  47.       String var1 = ((Applet)this).getParameter("courtesy");
  48.       if (!var1.equals("ITS of Egypt http://its.egnet.net")) {
  49.          System.exit(0);
  50.       }
  51.  
  52.       this.messageCount = (var1 = ((Applet)this).getParameter("count")) == null ? 0 : Integer.valueOf(var1);
  53.       this.shDepth = (var1 = ((Applet)this).getParameter("shDepth")) == null ? 2 : Integer.valueOf(var1);
  54.       System.out.println("shDepth = " + this.shDepth);
  55.       this.SHADOW = (var1 = ((Applet)this).getParameter("shCo")) != null;
  56.       if (this.SHADOW) {
  57.          this.shCo = this.readColor(var1, ((Component)this).getBackground());
  58.       }
  59.  
  60.       this.BORDER = ((Applet)this).getParameter("border") == null;
  61.       this.msgs = new String[this.messageCount];
  62.       this.msgsW = new int[this.messageCount];
  63.       this.msgsURL = new String[this.messageCount];
  64.       this.msgsURLTargets = new String[this.messageCount];
  65.       this.msgsURLDescriptions = new String[this.messageCount];
  66.  
  67.       for(int var2 = 0; var2 < this.messageCount; ++var2) {
  68.          var1 = ((Applet)this).getParameter("msg" + var2);
  69.          StringTokenizer var3 = new StringTokenizer(var1, "\\");
  70.          this.msgs[var2] = new String(var3.nextToken());
  71.          this.msgsURL[var2] = new String(var3.nextToken());
  72.          this.msgsURLTargets[var2] = new String(var3.nextToken());
  73.          this.msgsURLDescriptions[var2] = new String(var3.nextToken());
  74.       }
  75.  
  76.       this.speed = (var1 = ((Applet)this).getParameter("speed")) == null ? 10 : Integer.valueOf(var1);
  77.       this.txtCo = this.readColor(((Applet)this).getParameter("txtco"), this.bgCo);
  78.       this.linkCo = this.readColor(((Applet)this).getParameter("linkco"), this.bgCo);
  79.       this.bgCo = this.readColor(((Applet)this).getParameter("bgco"), ((Component)this).getBackground());
  80.    }
  81.  
  82.    public String[][] gets_parameterInfo() {
  83.       String[][] var1 = new String[][]{{"count", "int", "Tos_paramal Number of Messages"}, {"msg%N", "String", "Message to display with optional URL delimited by \\"}, {"speed", "int", "animatmion speed in pixels (10)"}, {"txtco", "int[3]", "RGB-Color of Message (black/blue)"}, {"bgco", "int[3]", "RGB-Color of background (getBackground)"}, {"linktco", "int[3]", "RGB-Color of active message (black/blue)"}};
  84.       return var1;
  85.    }
  86.  
  87.    public String getAppletInfo() {
  88.       return "NavigatorTicker.java, V 2, Aug 20/96 by Ahmed Abdel-Hady ahady@idsc.gov.eg";
  89.    }
  90.  
  91.    public Color readColor(String var1, Color var2) {
  92.       if (var1 == null) {
  93.          return var2;
  94.       } else {
  95.          StringTokenizer var6 = new StringTokenizer(var1, ",");
  96.  
  97.          try {
  98.             int var3 = Integer.valueOf(var6.nextToken());
  99.             int var4 = Integer.valueOf(var6.nextToken());
  100.             int var5 = Integer.valueOf(var6.nextToken());
  101.             return new Color(var3, var4, var5);
  102.          } catch (Exception var7) {
  103.             return var2;
  104.          }
  105.       }
  106.    }
  107.  
  108.    public void createParams() {
  109.       int var1 = ((Component)this).size().width;
  110.       int var2 = ((Component)this).size().height;
  111.       this.lastS.width = var1;
  112.       this.lastS.height = var2;
  113.       if (this.field_2 != null) {
  114.          this.field_2.finalize();
  115.       }
  116.  
  117.       if (this.field_1 != null) {
  118.          this.field_1 = null;
  119.       }
  120.  
  121.       byte var3 = 14;
  122.       Font var4 = new Font("TimesRoman", 1, var3);
  123.       ((Component)this).setFont(var4);
  124.       FontMetrics var5 = ((Component)this).getFontMetrics(var4);
  125.       int var6 = var5.getHeight();
  126.       var6 = var3 * (var2 - 10) / var6;
  127.       this.messageF = new Font("TimesRoman", 1, var6);
  128.       FontMetrics var7 = ((Component)this).getFontMetrics(this.messageF);
  129.       var6 = var7.getHeight();
  130.       this.messageX = var1;
  131.       this.messageY = (var2 - var6 >> 1) + var7.getAscent();
  132.  
  133.       for(int var8 = 0; var8 < this.messageCount; ++var8) {
  134.          this.msgsW[var8] = var7.stringWidth(this.msgs[var8]);
  135.          this.messageW += this.msgsW[var8];
  136.       }
  137.  
  138.       this.field_1 = ((Component)this).createImage(var1, var2);
  139.       this.field_2 = this.field_1.getGraphics();
  140.    }
  141.  
  142.    public void paint(Graphics var1) {
  143.       this.update(var1);
  144.    }
  145.  
  146.    public synchronized void update(Graphics var1) {
  147.       if (((Component)this).size().height != this.lastS.height || ((Component)this).size().width != this.lastS.width) {
  148.          this.createParams();
  149.       }
  150.  
  151.       this.field_2.setColor(this.bgCo);
  152.       this.field_2.fillRect(0, 0, this.lastS.width, this.lastS.height);
  153.       if (this.BORDER) {
  154.          this.field_2.draw3DRect(2, 2, this.lastS.width - 5, this.lastS.height - 5, false);
  155.          this.field_2.draw3DRect(3, 3, this.lastS.width - 7, this.lastS.height - 7, false);
  156.       }
  157.  
  158.       this.field_2.clipRect(5, 4, this.lastS.width - 10, this.lastS.height - 8);
  159.       if (this.display_URL) {
  160.          int var2 = 0;
  161.          int var3 = this.mouseX;
  162.          if (var3 > this.messageX) {
  163.             var3 -= this.messageX;
  164.  
  165.             for(int var4 = 0; var4 < this.messageCount; ++var4) {
  166.                var2 += this.msgsW[var4];
  167.                if (var3 < var2) {
  168.                   this.messageIndex = var4;
  169.                   break;
  170.                }
  171.             }
  172.          }
  173.  
  174.          ((Applet)this).showStatus(this.msgsURLDescriptions[this.messageIndex]);
  175.       }
  176.  
  177.       this.field_2.setColor(this.txtCo);
  178.       this.field_2.setFont(this.messageF);
  179.       int var5 = 0;
  180.  
  181.       for(int var7 = 0; var7 < this.messageCount; ++var7) {
  182.          if (this.SHADOW) {
  183.             this.field_2.setColor(this.shCo);
  184.             this.field_2.drawString(this.msgs[var7], this.messageX + var5 + this.shDepth, this.messageY + this.shDepth);
  185.          }
  186.  
  187.          if (var7 == this.messageIndex && this.display_URL) {
  188.             this.field_2.setColor(this.linkCo);
  189.          } else {
  190.             this.field_2.setColor(this.txtCo);
  191.          }
  192.  
  193.          this.field_2.drawString(this.msgs[var7], this.messageX + var5, this.messageY);
  194.          var5 += this.msgsW[var7];
  195.       }
  196.  
  197.       var1.drawImage(this.field_1, 0, 0, this);
  198.    }
  199.  
  200.    public synchronized void nextPos() {
  201.       this.messageX -= this.speed;
  202.       if (this.messageX + this.messageW < 0) {
  203.          this.messageX = this.lastS.width;
  204.       }
  205.  
  206.       ((Component)this).repaint();
  207.    }
  208.  
  209.    public void run() {
  210.       Thread.currentThread().setPriority(1);
  211.  
  212.       while(this.active) {
  213.          this.nextPos();
  214.  
  215.          try {
  216.             Thread.sleep(40L);
  217.          } catch (InterruptedException var1) {
  218.          }
  219.       }
  220.  
  221.    }
  222.  
  223.    public void start() {
  224.       if (!this.active) {
  225.          this.field_0 = new Thread(this);
  226.          this.active = true;
  227.          this.field_0.start();
  228.       }
  229.  
  230.    }
  231.  
  232.    public void stop() {
  233.       this.active = false;
  234.       this.field_0 = null;
  235.    }
  236.  
  237.    public boolean mouseUp(Event var1, int var2, int var3) {
  238.       if (this.msgsURL[this.messageIndex].equals("NULL")) {
  239.          return true;
  240.       } else {
  241.          try {
  242.             this.url_ = new URL(this.msgsURL[this.messageIndex]);
  243.          } catch (Exception var5) {
  244.             this.url_ = null;
  245.             System.out.println("Failed Constructing the URL");
  246.          }
  247.  
  248.          if (this.url_ == null) {
  249.             try {
  250.                this.url_ = new URL(((Applet)this).getDocumentBase(), this.msgsURL[this.messageIndex]);
  251.             } catch (Exception var4) {
  252.                this.url_ = null;
  253.                System.out.println("Failed Constructing the URL");
  254.             }
  255.          }
  256.  
  257.          if (this.url_ != null) {
  258.             if (!this.msgsURLTargets[this.messageIndex].equals("NULL")) {
  259.                ((Applet)this).getAppletContext().showDocument(this.url_, this.msgsURLTargets[this.messageIndex]);
  260.             } else {
  261.                ((Applet)this).getAppletContext().showDocument(this.url_);
  262.             }
  263.          }
  264.  
  265.          System.out.println("Successful connection !!!!!!!!!!!");
  266.          return true;
  267.       }
  268.    }
  269.  
  270.    public boolean mouseEnter(Event var1, int var2, int var3) {
  271.       this.display_URL = true;
  272.       return true;
  273.    }
  274.  
  275.    public boolean mouseExit(Event var1, int var2, int var3) {
  276.       this.display_URL = false;
  277.       return true;
  278.    }
  279.  
  280.    public boolean mouseMove(Event var1, int var2, int var3) {
  281.       this.mouseX = var2;
  282.       return true;
  283.    }
  284. }
  285.