home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 127 / dpcs0998.iso / Internet / netobs / Install.exe / t2.z / TickerTape.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-01-27  |  25.1 KB  |  820 lines

  1. import java.applet.Applet;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Dimension;
  6. import java.awt.Event;
  7. import java.awt.Frame;
  8. import java.awt.Graphics;
  9. import java.awt.Image;
  10. import java.net.MalformedURLException;
  11. import java.net.URL;
  12. import java.util.Vector;
  13.  
  14. public class TickerTape extends Applet implements Runnable {
  15.    int[] starts;
  16.    URL[] theURLs;
  17.    int numTokens;
  18.    long speed = 250L;
  19.    int theOffScreenPosition;
  20.    int theDisplayWidth;
  21.    int frameThickness;
  22.    int ledSize;
  23.    int scrollFactor;
  24.    int ledSpacing;
  25.    int ledType;
  26.    Thread tickTock;
  27.    Graphics offScreenGraphics;
  28.    Dimension offScreenSize;
  29.    Image offScreenImage;
  30.    Color frameColour;
  31.    Color backGround;
  32.    Color LEDColour;
  33.    Color LEDOffColour;
  34.    int theXOffset;
  35.    int theYOffset;
  36.    URL theURLToGoTo;
  37.    boolean mouseOut = true;
  38.    boolean notUpdatedYet = true;
  39.    Frame browserFrame;
  40.    int[][] itsData = new int[][]{{0, 0, 0, 0, 0, 0}, {0, 0, 380, 0, 0, 0}, {0, 12, 0, 12, 0, 0}, {80, 248, 80, 248, 80, 0}, {16, 168, 508, 168, 64, 0}, {140, 76, 32, 400, 392, 0}, {200, 308, 340, 136, 320, 0}, {0, 0, 12, 0, 0, 0}, {0, 248, 260, 0, 0, 0}, {0, 0, 260, 248, 0, 0}, {168, 112, 508, 112, 168, 0}, {0, 32, 112, 32, 0, 0}, {0, 512, 384, 0, 0, 0}, {0, 32, 32, 32, 0, 0}, {0, 0, 256, 0, 0, 0}, {128, 64, 32, 16, 8, 0}, {112, 136, 260, 136, 112, 0}, {0, 272, 508, 256, 0, 0}, {408, 324, 324, 292, 280, 0}, {136, 260, 260, 292, 216, 0}, {48, 40, 36, 508, 32, 0}, {316, 292, 292, 292, 192, 0}, {248, 292, 292, 292, 192, 0}, {0, 4, 388, 100, 28, 0}, {216, 292, 292, 292, 216, 0}, {24, 292, 292, 292, 248, 0}, {0, 0, 160, 0, 0, 0}, {0, 512, 416, 0, 0, 0}, {0, 32, 80, 136, 0, 0}, {0, 80, 80, 80, 0, 0}, {0, 136, 80, 32, 0, 0}, {8, 4, 324, 36, 24, 0}, {248, 260, 372, 340, 56, 0}, {496, 72, 68, 72, 496, 0}, {508, 292, 292, 292, 216, 0}, {248, 260, 260, 260, 136, 0}, {508, 260, 260, 260, 248, 0}, {508, 292, 292, 292, 260, 0}, {508, 36, 36, 4, 4, 0}, {248, 260, 260, 292, 232, 0}, {508, 32, 32, 32, 508, 0}, {0, 0, 508, 0, 0, 0}, {192, 256, 256, 256, 252, 0}, {508, 32, 80, 136, 260, 0}, {508, 256, 256, 256, 256, 0}, {508, 8, 16, 8, 508, 0}, {508, 8, 16, 32, 508, 0}, {248, 260, 260, 260, 248, 0}, {508, 36, 36, 36, 24, 0}, {248, 260, 324, 388, 504, 0}, {508, 36, 100, 164, 280, 0}, {152, 292, 292, 292, 200, 0}, {4, 4, 508, 4, 4, 0}, {252, 256, 256, 256, 252, 0}, {124, 128, 256, 128, 124, 0}, {252, 256, 128, 256, 252, 0}, {260, 136, 112, 136, 260, 0}, {12, 16, 480, 16, 12, 0}, {388, 324, 292, 276, 268, 0}, {0, 508, 260, 260, 0, 0}, {8, 16, 32, 64, 128, 0}, {0, 260, 260, 508, 0, 0}, {0, 32, 16, 32, 0, 0}, {256, 256, 256, 256, 256, 0}, {0, 4, 8, 0, 0, 0}, {128, 336, 336, 224, 256, 0}, {508, 288, 272, 272, 224, 0}, {224, 272, 272, 272, 0, 0}, {224, 272, 272, 292, 508, 0}, {224, 336, 336, 336, 96, 0}, {16, 504, 20, 4, 0, 0}, {224, 1296, 1296, 1296, 992, 0}, {4, 508, 16, 16, 480, 0}, {0, 0, 500, 0, 0, 0}, {512, 1024, 1012, 0, 0, 0}, {0, 508, 64, 160, 272, 0}, {0, 4, 508, 0, 0, 0}, {480, 16, 96, 16, 480, 0}, {496, 16, 16, 480, 0, 0}, {224, 272, 272, 272, 224, 0}, {2032, 160, 272, 272, 224, 0}, {224, 272, 272, 160, 2032, 0}, {0, 496, 32, 16, 16, 0}, {288, 336, 336, 336, 144, 0}, {0, 16, 252, 272, 0, 0}, {240, 256, 256, 256, 240, 0}, {48, 192, 256, 192, 48, 0}, {240, 256, 192, 256, 240, 0}, {272, 160, 64, 160, 272, 0}, {0, 1264, 1280, 768, 240, 0}, {272, 400, 336, 304, 272, 0}, {0, 32, 216, 260, 0, 0}, {0, 0, 508, 0, 0, 0}, {0, 260, 216, 32, 0, 0}, {32, 16, 32, 64, 32, 0}, {0, 0, 500, 0, 0, 0}, {224, 272, 1016, 272, 0, 0}, {278, 249, 273, 273, 128, 0}, {136, 112, 80, 112, 136, 0}, {44, 56, 488, 56, 44, 0}, {0, 0, 476, 0, 0, 0}, {56, 340, 340, 340, 224, 0}, {0, 4, 0, 4, 0, 0}, {248, 372, 396, 340, 248, 0}, {80, 106, 106, 106, 124, 0}, {32, 80, 168, 80, 136, 0}, {32, 32, 32, 32, 224, 0}, {32, 32, 32, 32, 32, 0}, {500, 212, 292, 260, 504, 0}, {0, 4, 4, 4, 0, 0}, {0, 7, 5, 7, 0, 0}, {0, 160, 240, 160, 0, 0}, {0, 9, 13, 11, 0, 0}, {0, 9, 11, 13, 0, 0}, {0, 4, 2, 0, 0, 0}, {1024, 1008, 256, 256, 240, 0}, {24, 36, 36, 508, 508, 0}, {0, 56, 56, 56, 0, 0}, {0, 1024, 1536, 0, 0, 0}, {0, 2, 15, 0, 0, 0}, {92, 98, 98, 98, 92, 0}, {136, 80, 168, 80, 32, 0}, {132, 94, 160, 208, 488, 0}, {68, 62, 336, 424, 320, 0}, {146, 86, 186, 208, 488, 0}, {128, 256, 276, 288, 192, 0}, {496, 73, 70, 72, 496, 0}, {496, 74, 69, 72, 496, 0}, {496, 74, 69, 74, 496, 0}, {498, 73, 70, 73, 496, 0}, {496, 74, 68, 74, 496, 0}, {496, 75, 71, 75, 496, 0}, {504, 36, 508, 292, 292, 0}, {248, 1284, 1796, 260, 136, 0}, {508, 293, 294, 292, 292, 0}, {508, 294, 293, 292, 292, 0}, {508, 294, 293, 294, 292, 0}, {508, 294, 292, 294, 292, 0}, {0, 0, 509, 2, 0, 0}, {0, 2, 509, 0, 0, 0}, {0, 2, 509, 2, 0, 0}, {0, 2, 508, 2, 0, 0}, {0, 0, 128, 320, 0, 0}, {510, 9, 18, 33, 508, 0}, {248, 261, 262, 260, 248, 0}, {248, 262, 261, 260, 248, 0}, {248, 262, 261, 262, 248, 0}, {250, 261, 262, 261, 248, 0}, {248, 262, 260, 262, 248, 0}, {0, 80, 32, 80, 0, 0}, {240, 200, 168, 152, 120, 0}, {252, 257, 258, 256, 252, 0}, {252, 258, 257, 256, 252, 0}, {252, 258, 257, 258, 252, 0}, {252, 258, 256, 258, 252, 0}, {12, 18, 481, 16, 12, 0}, {16, 504, 20, 492, 0, 0}, {508, 276, 276, 296, 192, 0}, {128, 338, 340, 224, 256, 0}, {128, 340, 338, 224, 256, 0}, {128, 340, 338, 228, 256, 0}, {132, 338, 340, 226, 256, 0}, {128, 340, 336, 228, 256, 0}, {128, 342, 342, 224, 256, 0}, {400, 336, 224, 336, 352, 0}, {224, 1296, 1808, 272, 0, 0}, {224, 338, 340, 336, 96, 0}, {224, 340, 338, 336, 96, 0}, {224, 340, 338, 340, 96, 0}, {224, 340, 336, 340, 96, 0}, {0, 2, 500, 0, 0, 0}, {0, 4, 498, 0, 0, 0}, {0, 4, 498, 4, 0, 0}, {0, 4, 496, 4, 0, 0}, {0, 0, 280, 128, 0, 0}, {500, 18, 20, 482, 0, 0}, {224, 274, 276, 272, 224, 0}, {224, 276, 274, 272, 224, 0}, {224, 276, 274, 276, 224, 0}, {228, 274, 276, 274, 224, 0}, {224, 276, 272, 276, 224, 0}, {32, 32, 168, 32, 32, 0}, {224, 400, 336, 304, 224, 0}, {240, 258, 260, 256, 240, 0}, {240, 260, 258, 256, 240, 0}, {240, 260, 258, 260, 240, 0}, {240, 260, 256, 260, 240, 0}, {0, 1268, 1282, 768, 240, 0}, {16, 504, 20, 508, 0, 0}, {0, 1268, 1280, 772, 240, 0}};
  41.    String[] theEntities = new String[]{"�", "", "", "", "", "", "", "", "", " ", " ", " ", " ", " ", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "&sp;", "!", """, "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "‐", ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "[", "\", "]", "ˆ", "_", "`", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "˜", "", "€", "", "‚", "ƒ", "„", "…", "†", "‡", "ˆ", "‰", "Š", "‹", "Œ", "", "Ž", "", "", "‘", "’", "“", "”", "•", "–", "—", "˜", "™", "š", "›", "œ", "", "ž", "Ÿ", " ", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "­", "®", "&hibar;", "°", "±", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ"};
  42.  
  43.    public void ISO8859() {
  44.    }
  45.  
  46.    public boolean mouseEnter(Event var1, int var2, int var3) {
  47.       if (this.theURLToGoTo != null) {
  48.       }
  49.  
  50.       if (this.browserFrame != null) {
  51.          this.browserFrame.setCursor(12);
  52.       }
  53.  
  54.       this.mouseOut = false;
  55.       return true;
  56.    }
  57.  
  58.    public void stop() {
  59.       if (this.tickTock != null) {
  60.          this.tickTock.stop();
  61.          this.tickTock = null;
  62.       }
  63.  
  64.    }
  65.  
  66.    public boolean mouseExit(Event var1, int var2, int var3) {
  67.       this.notUpdatedYet = true;
  68.       this.mouseOut = true;
  69.       if (this.browserFrame != null) {
  70.          this.browserFrame.setCursor(0);
  71.       }
  72.  
  73.       return true;
  74.    }
  75.  
  76.    public void SetSpeed(long var1) {
  77.       this.speed = var1;
  78.    }
  79.  
  80.    public void paint(Graphics var1) {
  81.       Color var2 = var1.getColor();
  82.       var1.setColor(this.frameColour);
  83.       var1.fillRect(0, 0, ((Component)this).bounds().width, ((Component)this).bounds().height);
  84.       var1.setColor(this.backGround);
  85.       var1.fillRect(this.frameThickness, this.frameThickness, this.theDisplayWidth, ((Component)this).bounds().height - this.frameThickness * 2 - 1);
  86.       this.update(var1);
  87.       var1.setColor(var2);
  88.    }
  89.  
  90.    private void DrawOffScreenBackground() {
  91.       this.offScreenGraphics.setColor(this.backGround);
  92.       this.offScreenGraphics.fillRect(0, 0, this.offScreenSize.width, this.offScreenSize.height);
  93.    }
  94.  
  95.    public long GetSpeed() {
  96.       return this.speed;
  97.    }
  98.  
  99.    public boolean mouseUp(Event var1, int var2, int var3) {
  100.       int var5 = -1;
  101.       int var4 = var2 + this.theOffScreenPosition - this.theDisplayWidth;
  102.       if (var4 >= this.starts[0] && var4 < this.starts[this.numTokens]) {
  103.          for(var5 = 1; var5 < this.numTokens && var4 >= this.starts[var5]; ++var5) {
  104.          }
  105.  
  106.          this.theURLToGoTo = this.theURLs[var5 - 1];
  107.       } else {
  108.          this.theURLToGoTo = null;
  109.       }
  110.  
  111.       if (this.theURLToGoTo != null && !this.mouseOut) {
  112.          ((Applet)this).getAppletContext().showDocument(this.theURLToGoTo);
  113.       }
  114.  
  115.       return true;
  116.    }
  117.  
  118.    public Color GetColourFromString(String var1) {
  119.       if (var1.equalsIgnoreCase("BLACK")) {
  120.          return Color.black;
  121.       } else if (var1.equalsIgnoreCase("BLUE")) {
  122.          return Color.blue;
  123.       } else if (var1.equalsIgnoreCase("CYAN")) {
  124.          return Color.cyan;
  125.       } else if (var1.equalsIgnoreCase("DARKGRAY")) {
  126.          return Color.darkGray;
  127.       } else if (var1.equalsIgnoreCase("GRAY")) {
  128.          return Color.gray;
  129.       } else if (var1.equalsIgnoreCase("GREEN")) {
  130.          return Color.green;
  131.       } else if (var1.equalsIgnoreCase("LIGHTGRAY")) {
  132.          return Color.lightGray;
  133.       } else if (var1.equalsIgnoreCase("MAGENTA")) {
  134.          return Color.magenta;
  135.       } else if (var1.equalsIgnoreCase("ORANGE")) {
  136.          return Color.orange;
  137.       } else if (var1.equalsIgnoreCase("PINK")) {
  138.          return Color.pink;
  139.       } else if (var1.equalsIgnoreCase("RED")) {
  140.          return Color.red;
  141.       } else if (var1.equalsIgnoreCase("WHITE")) {
  142.          return Color.white;
  143.       } else {
  144.          return var1.equalsIgnoreCase("YELLOW") ? Color.yellow : Color.black;
  145.       }
  146.    }
  147.  
  148.    public String[][] getParameterInfo() {
  149.       String[][] var1 = new String[][]{{"text1", "string", "the text to display"}, {"speed", "integer", ""}, {"framecolor", "string", ""}, {"backcolor", "string", ""}, {"LEDcolor", "string", ""}, {"ledoffcolor", "string", ""}, {"FrameThick", "integer", ""}, {"LEDSize", "integer", ""}, {"scrollfactor", "integer", ""}, {"ledspacing", "integer", ""}, {"ledtype", "integer", "The shape of the LED: 0 = Square and 1 = Circular"}, {"href1", "URL", ""}};
  150.       return var1;
  151.    }
  152.  
  153.    private URL MakeAbsoluteURL(String var1) throws MalformedURLException {
  154.       Object var2 = null;
  155.       String var3 = ((Applet)this).getDocumentBase().toString();
  156.       String var4 = var3.substring(0, var3.lastIndexOf(47));
  157.  
  158.       try {
  159.          if (var1.startsWith(".")) {
  160.             var1 = var1.replace('\\', '/');
  161.             var1 = var4 + "/" + var1;
  162.          } else if (var1.startsWith("#")) {
  163.             var1 = ((Applet)this).getDocumentBase().toString() + var1;
  164.          } else if (!var1.startsWith("cid:") && !var1.startsWith("lifn:") && !var1.startsWith("java:") && !var1.startsWith("irc:") && !var1.startsWith("IOR:") && !var1.startsWith("ilu:") && !var1.startsWith("https:") && !var1.startsWith("http:") && !var1.startsWith("hdl:") && !var1.startsWith("gopher:") && !var1.startsWith("ftp:") && !var1.startsWith("finger:") && !var1.startsWith("file:") && !var1.startsWith("data:") && !var1.startsWith("clsid:") && !var1.startsWith("md5:") && !var1.startsWith("mailserver:") && !var1.startsWith("mailto:") && !var1.startsWith("mid:") && !var1.startsWith("news:") && !var1.startsWith("nntp:") && !var1.startsWith("path:") && !var1.startsWith("prospero:") && !var1.startsWith("service:") && !var1.startsWith("shttp") && !var1.startsWith("snews") && !var1.startsWith("STANF:") && !var1.startsWith("telnet:") && !var1.startsWith("vemmi:") && !var1.startsWith("wais:") && !var1.startsWith("whois++:")) {
  165.             var1 = "http://" + var1;
  166.          }
  167.  
  168.          var7 = new URL(var1);
  169.       } catch (MalformedURLException var5) {
  170.          var7 = null;
  171.       }
  172.  
  173.       return var7;
  174.    }
  175.  
  176.    public final synchronized void update(Graphics var1) {
  177.       var1.clipRect(this.theXOffset, this.theYOffset, this.theDisplayWidth - 2, this.offScreenSize.height);
  178.       int var2 = this.theOffScreenPosition > this.theDisplayWidth ? this.theOffScreenPosition - this.theDisplayWidth : -(this.theDisplayWidth - this.theOffScreenPosition);
  179.       var1.drawImage(this.offScreenImage, -var2 + this.theXOffset, this.theYOffset, this);
  180.       this.theOffScreenPosition += (this.ledSize + this.ledSpacing) * this.scrollFactor;
  181.       if (this.theOffScreenPosition > this.offScreenSize.width) {
  182.          this.theOffScreenPosition = this.theDisplayWidth;
  183.       }
  184.  
  185.    }
  186.  
  187.    public int GetLine(char var1, int var2) {
  188.       int var3 = var1 & 255;
  189.       if (var3 >= 127 && var3 <= 160) {
  190.          var3 = 32;
  191.       } else if (var3 > 160) {
  192.          var3 -= 34;
  193.       }
  194.  
  195.       var3 -= 32;
  196.       if (var3 < 0) {
  197.          var3 = 0;
  198.       } else if (var3 > 189) {
  199.          var3 = 0;
  200.       }
  201.  
  202.       return this.itsData[var3][var2];
  203.    }
  204.  
  205.    public void setBackgroundColor(String var1) {
  206.       this.backGround = this.GetColourFromString(var1);
  207.       this.DrawOffScreenBackground();
  208.       ((Component)this).repaint();
  209.    }
  210.  
  211.    public void start() {
  212.       if (this.tickTock == null) {
  213.          this.tickTock = new Thread(this);
  214.          this.tickTock.start();
  215.       }
  216.  
  217.    }
  218.  
  219.    public String getAppletInfo() {
  220.       return new String("NetObjects TickerTape");
  221.    }
  222.  
  223.    public int HTMLtoISO(String var1) {
  224.       char var2 = var1.charAt(1);
  225.       if (var1.charAt(0) != '&') {
  226.          return 0;
  227.       } else if (Character.isDigit(var1.charAt(1))) {
  228.          int var3 = Integer.valueOf(var1.substring(1, var1.indexOf(59, 2)));
  229.          return var3;
  230.       } else {
  231.          switch (var2) {
  232.             case 'A':
  233.                if (var1.startsWith("Agrave;", 1)) {
  234.                   return 192;
  235.                } else if (var1.startsWith("Aacute;", 1)) {
  236.                   return 193;
  237.                } else if (var1.startsWith("Acirc;", 1)) {
  238.                   return 194;
  239.                } else if (var1.startsWith("Atilde;", 1)) {
  240.                   return 195;
  241.                } else if (var1.startsWith("Auml;", 1)) {
  242.                   return 196;
  243.                } else if (var1.startsWith("Aring;", 1)) {
  244.                   return 197;
  245.                } else if (var1.startsWith("AElig;", 1)) {
  246.                   return 198;
  247.                }
  248.             case 'C':
  249.                if (var1.startsWith("Ccedil;", 1)) {
  250.                   return 199;
  251.                }
  252.             case 'D':
  253.                if (var1.startsWith("Dstrok;", 1)) {
  254.                   return 208;
  255.                }
  256.             case 'E':
  257.                if (var1.startsWith("Egrave;", 1)) {
  258.                   return 200;
  259.                } else if (var1.startsWith("Eacute;", 1)) {
  260.                   return 201;
  261.                } else if (var1.startsWith("Ecirc;", 1)) {
  262.                   return 202;
  263.                } else if (var1.startsWith("Euml;", 1)) {
  264.                   return 203;
  265.                } else if (var1.startsWith("ETH;", 1)) {
  266.                   return 208;
  267.                }
  268.             case 'I':
  269.                if (var1.startsWith("Igrave;", 1)) {
  270.                   return 204;
  271.                } else if (var1.startsWith("Iacute;", 1)) {
  272.                   return 205;
  273.                } else if (var1.startsWith("Icirc;", 1)) {
  274.                   return 206;
  275.                } else if (var1.startsWith("Iuml;", 1)) {
  276.                   return 207;
  277.                }
  278.             case 'N':
  279.                if (var1.startsWith("Ntilde;", 1)) {
  280.                   return 209;
  281.                }
  282.             case 'O':
  283.                if (var1.startsWith("Ograve;", 1)) {
  284.                   return 210;
  285.                } else if (var1.startsWith("Oacute;", 1)) {
  286.                   return 211;
  287.                } else if (var1.startsWith("Ocirc;", 1)) {
  288.                   return 212;
  289.                } else if (var1.startsWith("Otilde;", 1)) {
  290.                   return 213;
  291.                } else if (var1.startsWith("Ouml;", 1)) {
  292.                   return 214;
  293.                } else if (var1.startsWith("Oslash;", 1)) {
  294.                   return 216;
  295.                }
  296.             case 'T':
  297.                if (var1.startsWith("THORN;", 1)) {
  298.                   return 222;
  299.                }
  300.             case 'U':
  301.                if (var1.startsWith("Ugrave;", 1)) {
  302.                   return 217;
  303.                } else if (var1.startsWith("Uacute;", 1)) {
  304.                   return 218;
  305.                } else if (var1.startsWith("Ucirc;", 1)) {
  306.                   return 219;
  307.                } else if (var1.startsWith("Uuml;", 1)) {
  308.                   return 220;
  309.                }
  310.             case 'Y':
  311.                if (var1.startsWith("Yacute;", 1)) {
  312.                   return 221;
  313.                }
  314.             case 'a':
  315.                if (var1.startsWith("agrave;", 1)) {
  316.                   return 224;
  317.                } else if (var1.startsWith("aacute;", 1)) {
  318.                   return 225;
  319.                } else if (var1.startsWith("acirc;", 1)) {
  320.                   return 226;
  321.                } else if (var1.startsWith("atilde;", 1)) {
  322.                   return 227;
  323.                } else if (var1.startsWith("auml;", 1)) {
  324.                   return 228;
  325.                } else if (var1.startsWith("aring;", 1)) {
  326.                   return 229;
  327.                } else if (var1.startsWith("aelig;", 1)) {
  328.                   return 230;
  329.                } else if (var1.startsWith("amp;", 1)) {
  330.                   return 38;
  331.                } else if (var1.startsWith("apos;", 1)) {
  332.                   return 39;
  333.                } else if (var1.startsWith("ast;", 1)) {
  334.                   return 42;
  335.                } else if (var1.startsWith("acute;", 1)) {
  336.                   return 180;
  337.                } else if (var1.startsWith("angst;", 1)) {
  338.                   return 197;
  339.                }
  340.             case 'b':
  341.                if (var1.startsWith("blank;", 1)) {
  342.                   return 32;
  343.                } else if (var1.startsWith("bsol;", 1)) {
  344.                   return 92;
  345.                } else if (var1.startsWith("brvbar;", 1)) {
  346.                   return 166;
  347.                } else if (var1.startsWith("brkbar;", 1)) {
  348.                   return 166;
  349.                }
  350.             case 'c':
  351.                if (var1.startsWith("ccedil;", 1)) {
  352.                   return 231;
  353.                } else if (var1.startsWith("comma;", 1)) {
  354.                   return 44;
  355.                } else if (var1.startsWith("colon;", 1)) {
  356.                   return 58;
  357.                } else if (var1.startsWith("commat;", 1)) {
  358.                   return 64;
  359.                } else if (var1.startsWith("circ;", 1)) {
  360.                   return 94;
  361.                } else if (var1.startsWith("caret;", 1)) {
  362.                   return 94;
  363.                } else if (var1.startsWith("cent;", 1)) {
  364.                   return 162;
  365.                } else if (var1.startsWith("curren;", 1)) {
  366.                   return 164;
  367.                } else if (var1.startsWith("copy;", 1)) {
  368.                   return 169;
  369.                } else if (var1.startsWith("cedil;", 1)) {
  370.                   return 184;
  371.                }
  372.             case 'd':
  373.                if (var1.startsWith("divide;", 1)) {
  374.                   return 247;
  375.                } else if (var1.startsWith("dollar;", 1)) {
  376.                   return 36;
  377.                } else if (var1.startsWith("dash;", 1)) {
  378.                   return 45;
  379.                } else if (var1.startsWith("die;", 1)) {
  380.                   return 168;
  381.                } else if (var1.startsWith("deg;", 1)) {
  382.                   return 176;
  383.                }
  384.             case 'e':
  385.                if (var1.startsWith("egrave;", 1)) {
  386.                   return 232;
  387.                } else if (var1.startsWith("eacute;", 1)) {
  388.                   return 233;
  389.                } else if (var1.startsWith("ecirc;", 1)) {
  390.                   return 234;
  391.                } else if (var1.startsWith("euml;", 1)) {
  392.                   return 235;
  393.                } else if (var1.startsWith("eth;", 1)) {
  394.                   return 240;
  395.                } else if (var1.startsWith("excl;", 1)) {
  396.                   return 33;
  397.                } else if (var1.startsWith("equals;", 1)) {
  398.                   return 61;
  399.                }
  400.             case 'f':
  401.                if (var1.startsWith("frac14;", 1)) {
  402.                   return 188;
  403.                } else if (var1.startsWith("frac12;", 1)) {
  404.                   return 189;
  405.                } else if (var1.startsWith("frac34;", 1)) {
  406.                   return 190;
  407.                }
  408.             case 'g':
  409.                if (var1.startsWith("gt;", 1)) {
  410.                   return 62;
  411.                } else if (var1.startsWith("grave;", 1)) {
  412.                   return 96;
  413.                }
  414.             case 'h':
  415.                if (var1.startsWith("hyphen;", 1)) {
  416.                   return 45;
  417.                } else if (var1.startsWith("hibar;", 1)) {
  418.                   return 175;
  419.                } else if (var1.startsWith("half;", 1)) {
  420.                   return 189;
  421.                }
  422.             case 'i':
  423.                if (var1.startsWith("igrave;", 1)) {
  424.                   return 236;
  425.                } else if (var1.startsWith("iacute;", 1)) {
  426.                   return 237;
  427.                } else if (var1.startsWith("icirc;", 1)) {
  428.                   return 238;
  429.                } else if (var1.startsWith("iuml;", 1)) {
  430.                   return 239;
  431.                } else if (var1.startsWith("iexcl;", 1)) {
  432.                   return 161;
  433.                } else if (var1.startsWith("iquest;", 1)) {
  434.                   return 191;
  435.                }
  436.             case 'l':
  437.                if (var1.startsWith("lpar;", 1)) {
  438.                   return 40;
  439.                } else if (var1.startsWith("lt;", 1)) {
  440.                   return 60;
  441.                } else if (var1.startsWith("lsqb;", 1)) {
  442.                   return 91;
  443.                } else if (var1.startsWith("lowbar;", 1)) {
  444.                   return 95;
  445.                } else if (var1.startsWith("lcub;", 1)) {
  446.                   return 123;
  447.                } else if (var1.startsWith("laquo;", 1)) {
  448.                   return 171;
  449.                }
  450.             case 'm':
  451.                if (var1.startsWith("minus;", 1)) {
  452.                   return 45;
  453.                } else if (var1.startsWith("macr;", 1)) {
  454.                   return 175;
  455.                } else if (var1.startsWith("micro;", 1)) {
  456.                   return 181;
  457.                } else if (var1.startsWith("middot;", 1)) {
  458.                   return 183;
  459.                }
  460.             case 'n':
  461.                if (var1.startsWith("ntilde;", 1)) {
  462.                   return 241;
  463.                } else if (var1.startsWith("num;", 1)) {
  464.                   return 35;
  465.                } else if (var1.startsWith("nbsp;", 1)) {
  466.                   return 160;
  467.                } else if (var1.startsWith("not;", 1)) {
  468.                   return 172;
  469.                }
  470.             case 'o':
  471.                if (var1.startsWith("ograve;", 1)) {
  472.                   return 242;
  473.                } else if (var1.startsWith("oacute;", 1)) {
  474.                   return 243;
  475.                } else if (var1.startsWith("ocirc;", 1)) {
  476.                   return 244;
  477.                } else if (var1.startsWith("otilde;", 1)) {
  478.                   return 245;
  479.                } else if (var1.startsWith("ouml;", 1)) {
  480.                   return 246;
  481.                } else if (var1.startsWith("oslash;", 1)) {
  482.                   return 248;
  483.                } else if (var1.startsWith("ordf;", 1)) {
  484.                   return 170;
  485.                } else if (var1.startsWith("ordm;", 1)) {
  486.                   return 186;
  487.                }
  488.             case 'p':
  489.                if (var1.startsWith("percnt;", 1)) {
  490.                   return 37;
  491.                } else if (var1.startsWith("plus;", 1)) {
  492.                   return 43;
  493.                } else if (var1.startsWith("period;", 1)) {
  494.                   return 46;
  495.                } else if (var1.startsWith("pound;", 1)) {
  496.                   return 163;
  497.                } else if (var1.startsWith("plusmn;", 1)) {
  498.                   return 177;
  499.                } else if (var1.startsWith("para;", 1)) {
  500.                   return 182;
  501.                }
  502.             case 'q':
  503.                if (var1.startsWith("quot;", 1)) {
  504.                   return 34;
  505.                } else if (var1.startsWith("quest;", 1)) {
  506.                   return 63;
  507.                }
  508.             case 'r':
  509.                if (var1.startsWith("rpar;", 1)) {
  510.                   return 41;
  511.                } else if (var1.startsWith("rsqb;", 1)) {
  512.                   return 93;
  513.                } else if (var1.startsWith("rcub;", 1)) {
  514.                   return 125;
  515.                } else if (var1.startsWith("reg;", 1)) {
  516.                   return 174;
  517.                } else if (var1.startsWith("raquo;", 1)) {
  518.                   return 187;
  519.                }
  520.             case 's':
  521.                if (var1.startsWith("sp;", 1)) {
  522.                   return 32;
  523.                } else if (var1.startsWith("sol;", 1)) {
  524.                   return 47;
  525.                } else if (var1.startsWith("semi;", 1)) {
  526.                   return 59;
  527.                } else if (var1.startsWith("sim;", 1)) {
  528.                   return 126;
  529.                } else if (var1.startsWith("sect;", 1)) {
  530.                   return 167;
  531.                } else if (var1.startsWith("shy;", 1)) {
  532.                   return 173;
  533.                } else if (var1.startsWith("sup2;", 1)) {
  534.                   return 178;
  535.                } else if (var1.startsWith("sup3;", 1)) {
  536.                   return 179;
  537.                } else if (var1.startsWith("sup1;", 1)) {
  538.                   return 185;
  539.                }
  540.             case 't':
  541.                if (var1.startsWith("thorn;", 1)) {
  542.                   return 254;
  543.                } else if (var1.startsWith("tilde;", 1)) {
  544.                   return 126;
  545.                } else if (var1.startsWith("times;", 1)) {
  546.                   return 215;
  547.                }
  548.             case 'u':
  549.                if (var1.startsWith("ugrave;", 1)) {
  550.                   return 249;
  551.                } else if (var1.startsWith("uacute;", 1)) {
  552.                   return 250;
  553.                } else if (var1.startsWith("ucirc;", 1)) {
  554.                   return 251;
  555.                } else if (var1.startsWith("uuml;", 1)) {
  556.                   return 252;
  557.                } else if (var1.startsWith("uml;", 1)) {
  558.                   return 168;
  559.                }
  560.             case 'y':
  561.                if (var1.startsWith("yacute;", 1)) {
  562.                   return 253;
  563.                } else if (var1.startsWith("yuml;", 1)) {
  564.                   return 255;
  565.                } else if (var1.startsWith("yen;", 1)) {
  566.                   return 165;
  567.                }
  568.             default:
  569.                return 0;
  570.          }
  571.       }
  572.    }
  573.  
  574.    Frame getBrowserFrame() {
  575.       Container var1;
  576.       for(var1 = ((Component)this).getParent(); var1 != null && !(var1 instanceof Frame); var1 = ((Component)var1).getParent()) {
  577.       }
  578.  
  579.       return (Frame)var1;
  580.    }
  581.  
  582.    public boolean mouseDown(Event var1, int var2, int var3) {
  583.       if (this.theURLToGoTo != null) {
  584.       }
  585.  
  586.       return true;
  587.    }
  588.  
  589.    public void run() {
  590.       while(true) {
  591.          try {
  592.             Thread.currentThread();
  593.             Thread.sleep(this.speed);
  594.          } catch (InterruptedException var1) {
  595.          }
  596.  
  597.          super.repaint();
  598.       }
  599.    }
  600.  
  601.    public void init() {
  602.       this.browserFrame = this.getBrowserFrame();
  603.       String var10 = ((Applet)this).getParameter("speed");
  604.       this.SetSpeed(var10 == null ? 100L : 5L * (51L - Integer.valueOf(var10).longValue()));
  605.       var10 = ((Applet)this).getParameter("framecolour");
  606.       if (var10 == null) {
  607.          var10 = ((Applet)this).getParameter("framecolor");
  608.       }
  609.  
  610.       this.frameColour = var10 == null ? Color.green : this.GetColourFromString(var10);
  611.       var10 = ((Applet)this).getParameter("backcolour");
  612.       if (var10 == null) {
  613.          var10 = ((Applet)this).getParameter("backcolor");
  614.       }
  615.  
  616.       this.backGround = var10 == null ? Color.black : this.GetColourFromString(var10);
  617.       var10 = ((Applet)this).getParameter("LEDcolour");
  618.       if (var10 == null) {
  619.          var10 = ((Applet)this).getParameter("LEDcolor");
  620.       }
  621.  
  622.       this.LEDColour = var10 == null ? Color.green : this.GetColourFromString(var10);
  623.       var10 = ((Applet)this).getParameter("ledoffcolour");
  624.       if (var10 == null) {
  625.          var10 = ((Applet)this).getParameter("ledoffcolor");
  626.       }
  627.  
  628.       this.LEDOffColour = var10 == null ? this.backGround : this.GetColourFromString(var10);
  629.       var10 = ((Applet)this).getParameter("FrameThick");
  630.       this.frameThickness = var10 == null ? 1 : Integer.valueOf(var10);
  631.       var10 = ((Applet)this).getParameter("LEDSize");
  632.       this.ledSize = var10 == null ? 2 : Integer.valueOf(var10);
  633.       var10 = ((Applet)this).getParameter("scrollfactor");
  634.       this.scrollFactor = var10 == null ? 2 : Integer.valueOf(var10);
  635.       var10 = ((Applet)this).getParameter("ledspacing");
  636.       this.ledSpacing = var10 == null ? 1 : Integer.valueOf(var10);
  637.       var10 = ((Applet)this).getParameter("ledtype");
  638.       this.ledType = var10 == null ? 0 : Integer.valueOf(var10);
  639.       if (this.ledType > 1) {
  640.          this.ledType = 1;
  641.       }
  642.  
  643.       if (this.ledSize == 1) {
  644.          this.ledType = 0;
  645.       }
  646.  
  647.       var10 = ((Applet)this).getParameter("width");
  648.       int var7 = var10 == null ? 80 : Integer.valueOf(var10);
  649.       var10 = ((Applet)this).getParameter("height");
  650.       int var8 = var10 == null ? 39 : Integer.valueOf(var10);
  651.       ((Applet)this).resize(var7, var8);
  652.       this.theDisplayWidth = var7 - this.frameThickness * 2 - 1;
  653.       this.theXOffset = this.frameThickness + 1;
  654.       this.theYOffset = (var8 - (this.ledSize + this.ledSpacing) * 11) / 2;
  655.       String var12 = "";
  656.       Vector var1 = new Vector();
  657.  
  658.       String var11;
  659.       for(int var18 = 1; (var11 = ((Applet)this).getParameter("text" + var18)) != null; ++var18) {
  660.          int var9 = var11.length();
  661.          StringBuffer var13 = new StringBuffer();
  662.  
  663.          for(int var2 = 0; var2 < var9; ++var2) {
  664.             if (var11.charAt(var2) != '&') {
  665.                var13.append(var11.charAt(var2));
  666.             } else {
  667.                int var15 = var11.indexOf(59, var2 + 1);
  668.                int var14;
  669.                if (var15 != -1) {
  670.                   var14 = this.HTMLtoISO(var11.substring(var2, var15 + 1));
  671.                   if (var14 == 0) {
  672.                      var14 = 38;
  673.                   } else {
  674.                      var2 = var15;
  675.                   }
  676.                } else {
  677.                   var14 = 38;
  678.                }
  679.  
  680.                var13.append((char)var14);
  681.             }
  682.          }
  683.  
  684.          var11 = var13.toString();
  685.          var12 = var12 + var11;
  686.          var1.addElement(var11);
  687.       }
  688.  
  689.       this.numTokens = var1.size();
  690.       this.starts = new int[this.numTokens + 1];
  691.       this.starts[0] = this.theDisplayWidth;
  692.  
  693.       for(int var43 = 1; var43 <= this.numTokens; ++var43) {
  694.          this.starts[var43] = this.starts[var43 - 1] + ((String)var1.elementAt(var43 - 1)).length() * 6 * (this.ledSize + this.ledSpacing);
  695.       }
  696.  
  697.       var11 = var12;
  698.       int var25 = var12.length();
  699.       int var16 = var12.length() * 6 + 2 * this.theDisplayWidth / (this.ledSize + this.ledSpacing);
  700.       this.offScreenSize = new Dimension(var16 * (this.ledSize + this.ledSpacing), (this.ledSize + this.ledSpacing) * 11);
  701.       this.offScreenImage = ((Component)this).createImage(this.offScreenSize.width, this.offScreenSize.height);
  702.       this.offScreenGraphics = this.offScreenImage.getGraphics();
  703.       this.theOffScreenPosition = this.theDisplayWidth;
  704.       this.DrawOffScreenBackground();
  705.       var16 = this.theDisplayWidth / (this.ledSize + this.ledSpacing);
  706.       this.offScreenGraphics.setColor(this.LEDOffColour);
  707.  
  708.       for(int var20 = 0; var20 < var16; ++var20) {
  709.          int var4 = 0;
  710.  
  711.          while(true) {
  712.             if (this.ledType == 0) {
  713.                this.offScreenGraphics.fillRect(var20 * (this.ledSize + this.ledSpacing), var4 * (this.ledSize + this.ledSpacing), this.ledSize, this.ledSize);
  714.             } else {
  715.                this.offScreenGraphics.fillOval(var20 * (this.ledSize + this.ledSpacing), var4 * (this.ledSize + this.ledSpacing), this.ledSize, this.ledSize);
  716.             }
  717.  
  718.             ++var4;
  719.             if (var4 >= 11) {
  720.                break;
  721.             }
  722.          }
  723.       }
  724.  
  725.       int var17 = (var16 - 1) * (this.ledSize + this.ledSpacing);
  726.  
  727.       for(int var21 = 0; var21 < var25; ++var21) {
  728.          int var3 = 0;
  729.  
  730.          while(true) {
  731.             int var6 = this.GetLine(var11.charAt(var21), var3);
  732.             int var23 = 0;
  733.  
  734.             do {
  735.                int var5 = var6 >> var23;
  736.                if ((var5 & 1) == 1) {
  737.                   this.offScreenGraphics.setColor(this.LEDColour);
  738.                } else {
  739.                   this.offScreenGraphics.setColor(this.LEDOffColour);
  740.                }
  741.  
  742.                if (this.ledType == 0) {
  743.                   this.offScreenGraphics.fillRect(var17 + (var21 * 6 + var3) * (this.ledSize + this.ledSpacing), var23 * (this.ledSize + this.ledSpacing), this.ledSize, this.ledSize);
  744.                } else {
  745.                   this.offScreenGraphics.fillOval(var17 + (var21 * 6 + var3) * (this.ledSize + this.ledSpacing), var23 * (this.ledSize + this.ledSpacing), this.ledSize, this.ledSize);
  746.                }
  747.  
  748.                ++var23;
  749.             } while(var23 < 11);
  750.  
  751.             ++var3;
  752.             if (var3 >= 6) {
  753.                break;
  754.             }
  755.          }
  756.       }
  757.  
  758.       var17 += var25 * 6 * (this.ledSize + this.ledSpacing);
  759.       var16 = this.theDisplayWidth / (this.ledSize + this.ledSpacing);
  760.       this.offScreenGraphics.setColor(this.LEDOffColour);
  761.  
  762.       for(int var22 = 0; var22 < var16; ++var22) {
  763.          int var24 = 0;
  764.  
  765.          while(true) {
  766.             if (this.ledType == 0) {
  767.                this.offScreenGraphics.fillRect(var17 + var22 * (this.ledSize + this.ledSpacing), var24 * (this.ledSize + this.ledSpacing), this.ledSize, this.ledSize);
  768.             } else {
  769.                this.offScreenGraphics.fillOval(var17 + var22 * (this.ledSize + this.ledSpacing), var24 * (this.ledSize + this.ledSpacing), this.ledSize, this.ledSize);
  770.             }
  771.  
  772.             ++var24;
  773.             if (var24 >= 11) {
  774.                break;
  775.             }
  776.          }
  777.       }
  778.  
  779.       this.theURLs = new URL[this.numTokens];
  780.  
  781.       for(int var44 = 1; var44 <= this.numTokens; ++var44) {
  782.          var10 = ((Applet)this).getParameter("link" + var44);
  783.          if (var10 != null) {
  784.             try {
  785.                this.theURLToGoTo = this.MakeAbsoluteURL(var10);
  786.             } catch (MalformedURLException var19) {
  787.                this.theURLToGoTo = null;
  788.             }
  789.  
  790.             this.theURLs[var44 - 1] = this.theURLToGoTo;
  791.          }
  792.       }
  793.  
  794.    }
  795.  
  796.    public String About() {
  797.       return "Netobjects TickerTape";
  798.    }
  799.  
  800.    public boolean mouseDrag(Event var1, int var2, int var3) {
  801.       if (this.theURLToGoTo != null && this.notUpdatedYet) {
  802.          this.notUpdatedYet = false;
  803.       }
  804.  
  805.       return true;
  806.    }
  807.  
  808.    public String ISOtoHTML(int var1) {
  809.       return var1 >= 0 && var1 <= 255 ? this.theEntities[var1] : "";
  810.    }
  811.  
  812.    public boolean mouseMove(Event var1, int var2, int var3) {
  813.       if (this.theURLToGoTo != null && this.notUpdatedYet) {
  814.          this.notUpdatedYet = false;
  815.       }
  816.  
  817.       return true;
  818.    }
  819. }
  820.