home *** CD-ROM | disk | FTP | other *** search
Wrap
import java.applet.Applet; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Event; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Image; import java.awt.MediaTracker; import java.net.MalformedURLException; import java.net.URL; import java.util.Date; public class Display extends Applet implements Runnable { // $FF: renamed from: im java.awt.Image Image field_0; Image liImage; Image tiImage; Image emImage; // $FF: renamed from: gr java.awt.Graphics Graphics field_1; Graphics liGraphic; Graphics tiGraphic; Graphics emGraphic; String strTime; String strOldTime; public String[] DisplayMessage; public int[][] DisplayColor; public URL[] DisplayURL; public String[] DisplayURLTarget; public Font messageF; FontMetrics mfm; public Font titleF; public String messagefont; public String titlefont; public int messagefontsize; public int titlefontsize; public String titletext; public int lines; public int cols; public int xGap; public int yGap; public int xOffset = 15; public int yOffset = 17; public int border; int charGap; int lineGap; // $FF: renamed from: fh int int field_2; // $FF: renamed from: fw int int field_3; int titleHeight; int titleTextPos; // $FF: renamed from: t java.lang.Thread Thread field_4; public String scriptFile; DisplayScript script; public Color bgCol; public Color boCol; public Color boColLo; public Color boColHi; public Color tiCol; public Color lineCol; public Color lineColLo; public Color lineColHi; Color[] colors; char[] CharSeq; char[] TimeSeq; String charString; String timeString; int Line; int charCount; boolean fFirst = true; boolean fPaint; boolean fUpdate; boolean fPainting; int fTopHalf = 1; Dimension lastS = new Dimension(1, 1); // $FF: renamed from: li LineInfo LineInfo field_5; public int delay; Image imgBackground; Image imgBackgroundLoad; URL bgImage; MediaTracker tracker; boolean fShowTime = true; int maxChanges; public void stop() { if (this.field_4 != null) { this.field_4.stop(); this.field_4 = null; } this.field_0 = null; if (this.field_1 != null) { this.field_1.dispose(); this.field_1 = null; } this.liImage = null; if (this.liGraphic != null) { this.liGraphic.dispose(); this.liGraphic = null; } this.tiImage = null; if (this.tiGraphic != null) { this.tiGraphic.dispose(); this.tiGraphic = null; } this.emImage = null; if (this.emGraphic != null) { this.emGraphic.dispose(); this.emGraphic = null; } this.fFirst = true; this.lastS = new Dimension(1, 1); this.strTime = null; this.strOldTime = new String(" : "); this.field_5 = null; } int maxDiff(int var1) { int var2 = 0; char[] var7 = this.DisplayMessage[var1 - 1].toCharArray(); char[] var8 = this.field_5.text.toCharArray(); for(int var5 = 0; var5 < this.cols; ++var5) { char var6 = var7[var5]; int var3 = this.charString.indexOf(var6); var6 = var8[var5]; int var4 = this.charString.indexOf(var6); if (var4 == -1) { var8[var5] = this.CharSeq[0]; var4 = 0; var6 = this.CharSeq[0]; } if (var4 < var3) { var4 = this.charString.lastIndexOf(var6); } if (var4 - var3 > this.maxChanges) { var3 = var4 - this.maxChanges; if (this.field_5.func == 0) { var7[var5] = this.CharSeq[var4 - this.maxChanges]; } } if (var4 - var3 > var2) { var2 = var4 - var3; } } this.field_5.text = new String(var8); this.DisplayMessage[var1 - 1] = new String(var7); if (this.field_5.func == 0) { var2 += 2; } else { --var2; } if (var2 < 12 && this.maxChanges > 12) { var2 = 12; } return var2; } void nextLine() { this.field_5 = this.script.nextFunc(); this.field_5 = this.script.parseLine(this.field_5, this.cols); switch (this.field_5.func) { case 0: this.Line = this.field_5.line - 1; if (this.field_5.text.length() > this.cols) { this.field_5.text = this.field_5.text.substring(0, this.cols); } else { while(this.field_5.text.length() < this.cols) { this.field_5.text = this.field_5.text.concat(" "); } } this.DisplayURL[this.Line] = this.field_5.url; this.DisplayURLTarget[this.Line] = this.field_5.target; break; case 1: this.Line = this.field_5.line - 1; this.field_5.text = new String(" "); for(int var1 = 1; var1 < this.cols; ++var1) { this.field_5.text = this.field_5.text.concat(" "); } this.field_5.color = this.DisplayColor[this.Line]; this.DisplayURL[this.Line] = null; this.DisplayURLTarget[this.Line] = null; } } public boolean mouseExit(Event var1, int var2, int var3) { ((Applet)this).showStatus(" "); return true; } public synchronized void paint(Graphics var1) { if (!this.fPainting) { this.fPainting = true; if (this.field_5 != null) { if (this.field_5.func == 0 || this.field_5.func == 1) { int var2 = this.titleHeight + this.yOffset + this.Line * this.lineGap - 1; this.updateMessageArea(var1); var1.drawImage(this.liImage, 0, var2, this); this.field_1.drawImage(this.liImage, 0, var2, this); } if (this.fShowTime) { this.updateTime(var1); var1.drawImage(this.tiImage, 0, this.yOffset - 1, this); this.field_1.drawImage(this.tiImage, 0, this.yOffset - 1, this); } } this.fPainting = false; this.fPaint = false; } } public void wait(int var1) { try { Thread.sleep((long)var1); } catch (InterruptedException var2) { } } Color[] getColor(String var1, Color var2, Color var3, Color var4) { Color[] var10 = new Color[3]; String var6; if ((var6 = ((Applet)this).getParameter(var1)) != null) { var6 = var6.trim(); try { int var7 = new Integer(var6.substring(0, var6.indexOf(","))); if (var7 < 0) { var7 = 0; } if (var7 > 255) { var7 = 255; } String var5 = var6.substring(var6.indexOf(",") + 1); int var8 = new Integer(var5.substring(0, var5.indexOf(","))); if (var8 < 0) { var8 = 0; } if (var8 > 255) { var8 = 255; } var5 = var5.substring(var5.indexOf(",") + 1); int var9 = new Integer(var5); if (var9 < 0) { var9 = 0; } if (var9 > 255) { var9 = 255; } var10[0] = new Color(var7, var8, var9); var10[1] = new Color(var7 - 32 >= 0 ? var7 - 32 : 0, var8 - 32 >= 0 ? var8 - 32 : 0, var9 - 32 >= 0 ? var9 - 32 : 0); var10[2] = new Color(var7 + 32 < 256 ? var7 + 32 : 255, var8 + 32 < 256 ? var8 + 32 : 255, var9 + 32 < 256 ? var9 + 32 : 255); } catch (NumberFormatException var11) { System.out.println("Bad color value '" + var6 + "'. Setting color to default."); var10[0] = var2; if (var3 != null) { var10[1] = var3; } if (var4 != null) { var10[2] = var4; } } } else { var10[0] = var2; if (var3 != null) { var10[1] = var3; } if (var4 != null) { var10[2] = var4; } } return var10; } public boolean mouseUp(Event var1, int var2, int var3) { int var5 = this.titleHeight + this.yOffset; if (var3 >= var5 && this.lineGap > 0) { int var4 = (var3 - var5) / this.lineGap; if (var4 < this.lines && this.DisplayURL[var4] != null) { if (this.DisplayURLTarget[var4] == null) { ((Applet)this).getAppletContext().showDocument(this.DisplayURL[var4]); } else { ((Applet)this).getAppletContext().showDocument(this.DisplayURL[var4], this.DisplayURLTarget[var4]); } } } return true; } public String[][] getParameterInfo() { String[][] var1 = new String[][]{{"script", "String", "name of script file (mandatory)"}, {"messagefont", "String,int", "name and size of message font (optional, 'TimesRoman,14')"}, {"titlefont", "String,int", "name and size of title font (optional, 'TimesRoman,22')"}, {"titletext", "String", "Title (optional, '')"}, {"titlecolor", "int[3]", "RGB color of title (optional, '255,255,255')"}, {"backgroundcolor", "int[3]", "RGB color of background (optional, ' 48, 48, 48')"}, {"bordercolor", "int[3]", "RGB color of border (optional, ' 96, 96, 96')"}, {"linecolor", "int[3]", "RGB color of lines (optional, ' 96, 96, 96')"}, {"titletext", "String", "Title (optional, '')"}, {"border", "int", "width of the border (optional, '3')"}, {"colgap", "int", "number of pixels between the characters (optional, '0')"}, {"rowgap", "int", "number of pixels between the lines (optional, '6')"}, {"delay", "int", "delay (in ms) between the character updates (optional, '50')"}, {"maxchanges", "int", "maximum flips to change a line (optional, '9999')"}, {"validchars", "String", "list of valid characters (optional, 'abc...')"}}; return var1; } public void createParams() { int var3 = this.charString.length(); int var4 = ((Component)this).size().width; int var5 = ((Component)this).size().height; this.lastS.width = var4; this.lastS.height = var5; this.messageF = new Font(this.messagefont, 0, this.messagefontsize); ((Component)this).setFont(this.messageF); this.mfm = ((Component)this).getFontMetrics(this.messageF); this.field_2 = this.mfm.getHeight() + 2; this.field_3 = 0; for(int var1 = 0; var1 < var3; ++var1) { if (this.mfm.charWidth(this.CharSeq[var1]) > this.field_3) { this.field_3 = this.mfm.charWidth(this.CharSeq[var1]); } } this.field_3 += 2; this.charGap = this.field_3 + 2 + this.xGap; this.lineGap = this.field_2 + 2 + this.yGap; this.titleF = new Font(this.titlefont, 0, this.titlefontsize); ((Component)this).setFont(this.titleF); FontMetrics var6 = ((Component)this).getFontMetrics(this.titleF); this.titleHeight = var6.getHeight() + 2; if (this.field_2 + 7 > this.titleHeight) { this.titleHeight = this.field_2 + 7; } this.titleHeight += 2 * this.yOffset - 3 * this.border + 3; this.titleTextPos = this.titleHeight - this.yOffset + 3 * this.border - var6.getMaxDescent() - 3; this.cols = (var4 - 2 * this.xOffset) / this.charGap; this.lines = (var5 - this.titleHeight - 2 * this.yOffset) / this.lineGap; this.DisplayMessage = new String[this.lines + 1]; this.DisplayColor = new int[this.lines + 1][this.cols + 1]; this.DisplayURL = new URL[this.lines + 1]; this.DisplayURLTarget = new String[this.lines + 1]; for(int var7 = 0; var7 < this.lines + 1; ++var7) { this.DisplayMessage[var7] = new String(" "); this.DisplayURL[var7] = null; this.DisplayURLTarget[var7] = null; for(int var2 = 0; var2 < this.cols; ++var2) { this.DisplayMessage[var7] = this.DisplayMessage[var7].concat(" "); this.DisplayColor[var7][var2] = 0; } } if (this.field_1 != null) { this.field_1.dispose(); } if (this.liGraphic != null) { this.liGraphic.dispose(); } if (this.tiGraphic != null) { this.tiGraphic.dispose(); } if (this.emGraphic != null) { this.emGraphic.dispose(); } this.field_0 = this.DisplayCreateImage(this.lastS.width, this.lastS.height); this.field_1 = this.field_0.getGraphics(); this.liImage = this.DisplayCreateImage(this.lastS.width, this.field_2 + 3); this.liGraphic = this.liImage.getGraphics(); this.tiImage = this.DisplayCreateImage(this.lastS.width, this.field_2 + 3); this.tiGraphic = this.tiImage.getGraphics(); this.emImage = this.DisplayCreateImage(this.lastS.width, this.lastS.height); this.emGraphic = this.emImage.getGraphics(); this.liGraphic.setFont(this.messageF); this.tiGraphic.setFont(this.messageF); } void draw3DRect(Graphics var1, int var2, int var3, int var4, int var5, int var6, boolean var7) { for(int var8 = 0; var8 < var6; ++var8) { if (var7) { var1.setColor(this.boColHi); } else { var1.setColor(this.boColLo); } var1.drawLine(var2 + var8, var3 + var8, var4 - var8, var3 + var8); var1.drawLine(var2 + var8, var3 + var8, var2 + var8, var5 - var8); if (var7) { var1.setColor(this.boColLo); } else { var1.setColor(this.boColHi); } var1.drawLine(var4 - var8, var3 + var8, var4 - var8, var5 - var8); var1.drawLine(var2 + var8, var5 - var8, var4 - var8, var5 - var8); } } synchronized void updateMessageArea(Graphics var1) { int var6 = ((Component)this).size().width; ((Component)this).size(); char[] var11 = this.DisplayMessage[this.Line].toCharArray(); char[] var12 = this.field_5.text.toCharArray(); int var4 = this.field_2 - this.mfm.getMaxDescent() - this.fTopHalf + 1; this.liGraphic.drawImage(this.field_0, 0, -1 * (this.titleHeight + this.yOffset + this.Line * this.lineGap - 1), this); ((Component)this).getToolkit().sync(); Graphics var13 = this.liGraphic.create(); int var5; if (this.fTopHalf == 1) { var5 = 2; } else { var5 = this.field_2 / 2 + 3; } var13.clipRect(0, var5, var6, this.field_2 / 2); var13.drawImage(this.emImage, 0, -1 * (this.titleHeight + this.yOffset + this.Line * this.lineGap - 1), this); for(int var2 = 0; var2 < this.cols; ++var2) { if (this.field_5.func == 1) { char var10 = var11[var2]; int var9 = this.charString.indexOf(var10); if (var10 == ' ') { --var9; } if (this.fTopHalf == 0 && this.charCount != 1) { var11[var2] = this.CharSeq[var9 + 1]; } else { var11[var2] = ' '; } int var7 = this.mfm.charWidth(this.CharSeq[var9 + 1]); int var3 = this.xOffset + 1 + var2 * this.charGap; var13.setColor(this.colors[this.field_5.color[var2]]); var13.drawChars(this.CharSeq, var9 + 1, 1, var3 + (this.field_3 - var7 - 2) / 2, var4); } else { char var17 = var11[var2]; int var16 = this.charString.indexOf(var17); var17 = var12[var2]; int var8 = this.charString.indexOf(var17); if (var8 < var16) { var8 = this.charString.lastIndexOf(var17); } if (var8 - var16 >= this.charCount || this.charCount == 0) { if (this.charCount == 0) { --var16; } if (this.fTopHalf == 0) { var11[var2] = this.CharSeq[var16 + 1]; } int var15 = this.mfm.charWidth(this.CharSeq[var16 + 1]); int var14 = this.xOffset + 1 + var2 * this.charGap; var13.setColor(this.colors[this.field_5.color[var2]]); var13.drawChars(this.CharSeq, var16 + 1, 1, var14 + (this.field_3 - var15 - 2) / 2, var4); } } } ((Component)this).getToolkit().sync(); if (this.fTopHalf == 0) { this.DisplayMessage[this.Line] = new String(var11); this.DisplayColor[this.Line] = this.field_5.color; } var13.dispose(); } public synchronized void update(Graphics var1) { int var6 = ((Component)this).size().width; int var7 = ((Component)this).size().height; if (var7 != this.lastS.height || var6 != this.lastS.width) { this.createParams(); } if (!this.fFirst) { var1.drawImage(this.field_0, 0, 0, this); ((Component)this).getToolkit().sync(); this.paint(var1); ((Component)this).getToolkit().sync(); this.fUpdate = false; } else { if (this.imgBackground == null) { this.field_1.setColor(this.bgCol); this.field_1.fillRect(3 * this.border, 3 * this.border, var6 - 6 * this.border, var7 - 6 * this.border); } else { int var8 = this.imgBackground.getWidth(this); int var9 = this.imgBackground.getHeight(this); for(int var2 = 3 * this.border; var2 < var6; var2 += var8) { for(int var3 = 3 * this.border; var3 < var7; var3 += var9) { this.field_1.drawImage(this.imgBackground, var2, var3, this); } } } this.draw3DRect(this.field_1, 0, 0, var6 - 1, var7 - 1, this.border, true); this.field_1.setColor(this.boCol); for(int var10 = 0; var10 < this.border; ++var10) { this.field_1.drawLine(this.border + var10, this.border + var10, var6 - this.border - var10 - 1, this.border + var10); this.field_1.drawLine(this.border + var10, this.border + var10, this.border + var10, var7 - this.border - var10 - 1); this.field_1.drawLine(var6 - this.border - var10 - 1, this.border + var10, var6 - this.border - var10 - 1, var7 - this.border - var10 - 1); this.field_1.drawLine(this.border + var10, var7 - this.border - var10 - 1, var6 - this.border - var10 - 1, var7 - this.border - var10 - 1); } this.draw3DRect(this.field_1, 2 * this.border, 2 * this.border, var6 - 2 * this.border - 1, var7 - 2 * this.border - 1, this.border, false); int var5 = this.titleHeight; this.field_1.setColor(this.lineCol); this.field_1.drawLine(3 * this.border, var5 - 2, var6 - 3 * this.border, var5 - 2); this.field_1.drawLine(3 * this.border, var5, var6 - 3 * this.border, var5); this.field_1.setColor(this.lineColHi); this.field_1.drawLine(3 * this.border, var5 - 1, var6 - 3 * this.border, var5 - 1); this.field_1.setFont(this.titleF); this.field_1.setColor(this.tiCol); this.field_1.drawString(this.titletext, this.xOffset, this.titleTextPos); if (this.fShowTime) { int var4 = this.xOffset + (this.cols - 4) * this.charGap; var4 -= this.mfm.charWidth(':') + 4; var5 = this.yOffset; this.field_1.setFont(this.messageF); if (var4 > this.xGap) { int var11 = 0; do { this.drawCharArea(this.field_1, var4, var5, this.field_3, this.field_2); var4 += this.charGap; if (var11 == 1) { this.field_1.setColor(this.tiCol); this.field_1.drawString(":", var4 + 1, var5 + this.mfm.getHeight() - this.mfm.getMaxDescent()); var4 += this.mfm.charWidth(':') + 4; } ++var11; } while(var11 < 4); } } for(int var12 = 0; var12 < this.lines; ++var12) { for(int var13 = 0; var13 < this.cols; ++var13) { int var15 = this.xOffset + var13 * this.charGap; var5 = this.titleHeight + this.yOffset + var12 * this.lineGap; this.drawCharArea(this.field_1, var15, var5, this.field_3, this.field_2); } } this.emGraphic.drawImage(this.field_0, 0, 0, this); var1.drawImage(this.field_0, 0, 0, this); ((Component)this).getToolkit().sync(); this.fUpdate = false; this.fPaint = false; } } public void getInfo() { this.script = new DisplayScript(((Applet)this).getDocumentBase(), this.scriptFile); if (this.script.ok == -1) { System.out.println("Script file not found"); this.stop(); } else { this.field_5 = new LineInfo(); this.nextLine(); } if (this.field_5.func == 2) { this.charCount = 12; } else { this.charCount = this.maxDiff(this.field_5.line); } this.fFirst = false; } public void start() { if (this.field_4 == null) { this.field_4 = new Thread(this); this.field_4.start(); } } public String getAppletInfo() { return "Display.java, V1.5, by Stefan Ruettinger"; } synchronized void updateTime(Graphics var1) { if (this.charCount == 12 && this.maxChanges == 9999 || this.charCount == this.maxChanges && this.maxChanges < 9999 || this.strTime == null) { Date var5 = new Date(); String var4 = "0" + (new Integer(var5.getHours())).toString(); var4 = var4.substring(var4.length() - 2); this.strTime = var4 + ":"; var4 = "0" + (new Integer(var5.getMinutes())).toString(); var4 = var4.substring(var4.length() - 2); String var10001 = this.strTime; this.strTime = var10001 + var4; } char[] var18 = this.strOldTime.toCharArray(); char[] var6 = this.strTime.toCharArray(); int var7 = ((Component)this).size().width; ((Component)this).size(); int var8 = this.xOffset + (this.cols - 4) * this.charGap + 1; var8 -= this.mfm.charWidth(':') + 4; int var10 = this.field_2 - this.mfm.getMaxDescent() - this.fTopHalf + 1; this.tiGraphic.drawImage(this.field_0, 0, -1 * (this.yOffset - 1), this); ((Component)this).getToolkit().sync(); Graphics var13 = this.tiGraphic.create(); int var11; if (this.fTopHalf == 1) { var11 = 2; } else { var11 = this.field_2 / 2 + 3; } var13.clipRect(0, var11, var7, this.field_2 / 2); var13.drawImage(this.emImage, 0, -1 * (this.yOffset - 1), this); int var2 = 0; do { if (var2 != 2) { char var14 = var18[var2]; int var3 = this.timeString.indexOf(var14); if (var18[var2] == var6[var2]) { --var3; } if (this.fTopHalf == 0) { var18[var2] = this.TimeSeq[var3 + 1]; } int var12 = this.mfm.charWidth(this.TimeSeq[var3 + 1]); int var9 = var8 + var2 * this.charGap; if (var2 > 2) { var9 -= this.charGap; var9 += this.mfm.charWidth(':') + 4; } var13.setColor(this.tiCol); var13.drawChars(this.TimeSeq, var3 + 1, 1, var9 + (this.field_3 - var12 - 2) / 2, var10); } ++var2; } while(var2 < 5); ((Component)this).getToolkit().sync(); if (this.fTopHalf == 0) { this.strOldTime = new String(var18); } var13.dispose(); } void drawCharArea(Graphics var1, int var2, int var3, int var4, int var5) { var1.setColor(this.lineColHi); var1.drawRect(var2 - 1, var3 - 1, var4 + 2, var5 + 8); var1.setColor(this.lineCol); var1.drawRect(var2, var3, var4, var5 + 6); var1.drawLine(var2, var3 + var5 / 2 + 1, var2 + var4, var3 + var5 / 2 + 1); var1.drawLine(var2, var3 + var5 + 4, var2 + var4, var3 + var5 + 4); var1.drawLine(var2, var3 + var5 + 2, var2 + var4, var3 + var5 + 2); } private Image DisplayCreateImage(int var1, int var2) { Image var4 = ((Component)this).createImage(var1, var2); boolean var3 = ((Component)this).prepareImage(var4, this); if (!var3) { while((((Component)this).checkImage(var4, this) & 224) == 0) { this.wait(1); } } return var4; } private int getParameters() { if ((this.scriptFile = ((Applet)this).getParameter("script")) == null) { System.out.println("Applet Error: 'script' parameter is mandatory."); return -1; } else { String var1; if ((var1 = ((Applet)this).getParameter("messagefont")) != null) { var1 = var1.trim(); this.messagefont = new String(var1.substring(0, var1.indexOf(","))); var1 = var1.substring(var1.indexOf(",") + 1); try { this.messagefontsize = new Integer(var1); } catch (NumberFormatException var12) { System.out.println("Bad messagefont size '" + var1 + "'. Setting size=14."); this.messagefontsize = 14; } } else { this.messagefont = new String("TimesRoman"); this.messagefontsize = 14; } if ((var1 = ((Applet)this).getParameter("titlefont")) != null) { var1 = var1.trim(); this.titlefont = new String(var1.substring(0, var1.indexOf(","))); var1 = var1.substring(var1.indexOf(",") + 1); try { this.titlefontsize = new Integer(var1); } catch (NumberFormatException var11) { System.out.println("Bad titlefont size '" + var1 + "'. Setting size=22."); this.titlefontsize = 22; } } else { this.titlefont = new String("TimesRoman"); this.titlefontsize = 22; } Color[] var2 = this.getColor("titlecolor", new Color(255, 255, 255), (Color)null, (Color)null); this.tiCol = var2[0]; var2 = this.getColor("backgroundcolor", new Color(48, 48, 48), (Color)null, (Color)null); this.bgCol = var2[0]; var2 = this.getColor("bordercolor", new Color(96, 96, 96), new Color(64, 64, 64), new Color(128, 128, 128)); this.boCol = var2[0]; this.boColLo = var2[1]; this.boColHi = var2[2]; var2 = this.getColor("linecolor", new Color(96, 96, 96), new Color(64, 64, 64), new Color(128, 128, 128)); this.lineCol = var2[0]; this.lineColLo = var2[1]; this.lineColHi = var2[2]; if (((Applet)this).getParameter("titletext") != null) { this.titletext = new String(((Applet)this).getParameter("titletext")); } else { this.titletext = new String(); } if ((var1 = ((Applet)this).getParameter("border")) != null) { try { this.border = new Integer(var1); if (this.border < 0) { this.border = 0; } } catch (NumberFormatException var10) { System.out.println("Bad border value '" + var1 + "'. Setting border=3."); this.border = 3; } } else { this.border = 3; } if ((var1 = ((Applet)this).getParameter("colgap")) != null) { try { this.xGap = new Integer(var1) + 2; if (this.xGap < 2) { this.xGap = 2; } } catch (NumberFormatException var9) { System.out.println("Bad colgap value '" + var1 + "'. Setting colgap=0."); this.xGap = 2; } } else { this.xGap = 2; } if ((var1 = ((Applet)this).getParameter("rowgap")) != null) { try { this.yGap = new Integer(var1) + 8; if (this.yGap < 8) { this.yGap = 8; } } catch (NumberFormatException var8) { System.out.println("Bad rowgap value '" + var1 + "'. Setting rowgap=3."); this.yGap = 11; } } else { this.yGap = 11; } if ((var1 = ((Applet)this).getParameter("validchars")) != null) { if (var1.indexOf(32) == -1) { var1 = (new String(" ")).concat(var1); } var1 = var1.concat(var1); this.CharSeq = var1.toCharArray(); } else { var1 = new String(" ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz.:-,;+*/!?()<>"); var1 = var1.concat(var1); this.CharSeq = var1.toCharArray(); } this.charString = new String(this.CharSeq); if ((var1 = ((Applet)this).getParameter("delay")) != null) { try { this.delay = new Integer(var1); if (this.delay < 0) { this.delay = 0; } } catch (NumberFormatException var7) { System.out.println("Bad delay value '" + var1 + "'. Setting delay=50."); this.delay = 50; } } else { this.delay = 50; } if ((var1 = ((Applet)this).getParameter("maxChanges")) != null) { try { this.maxChanges = new Integer(var1); if (this.maxChanges < 2) { this.maxChanges = 2; } } catch (NumberFormatException var6) { System.out.println("Bad maxchanges value '" + var1 + "'. Ignoring parameter."); this.maxChanges = 9999; } } else { this.maxChanges = 9999; } if ((var1 = ((Applet)this).getParameter("background")) != null) { boolean var3 = true; try { this.bgImage = new URL(var1); } catch (MalformedURLException var5) { var3 = false; } if (!var3) { try { this.bgImage = new URL(((Applet)this).getDocumentBase(), var1); } catch (MalformedURLException var4) { System.out.println("Bad background value '" + var1 + "'. Ignoring background image."); this.bgImage = null; } } } else { this.bgImage = null; } if ((var1 = ((Applet)this).getParameter("timedisplay")) != null) { var1 = var1.toUpperCase(); if (var1.compareTo("NO") == 0) { this.fShowTime = false; } } return 0; } } public void run() { boolean var3 = false; if (this.fFirst) { if (this.imgBackgroundLoad != null) { while(this.imgBackgroundLoad != null) { boolean var2 = this.tracker.checkID(0, true); if (var2) { if (!this.tracker.isErrorID(0)) { this.imgBackground = this.imgBackgroundLoad; } this.imgBackgroundLoad = null; } else { this.wait(500); } } } this.fPaint = true; this.fUpdate = true; ((Component)this).repaint(); while(this.fPaint || this.fUpdate) { this.wait(5); } this.wait(500); this.getInfo(); if (this.field_5.func == 2) { var3 = true; } this.fTopHalf = 1; } while(this.field_4 != null) { this.fPaint = true; this.fUpdate = true; ((Component)this).repaint(); int var1; for(var1 = 0; this.fPaint || this.fUpdate; var1 += 5) { this.wait(5); } if (var1 > this.delay / 2) { this.wait(5); } else { this.wait(this.delay / 2); } this.fTopHalf = 1 - this.fTopHalf; if (this.fTopHalf == 1) { this.charCount += -1; } if (this.fTopHalf == 1) { if (this.charCount == -1) { if (!var3) { this.nextLine(); } if (this.field_5.func == 2) { if (this.field_5.delay > 2000) { this.wait(2000); LineInfo var10000 = this.field_5; var10000.delay -= 2000; var3 = true; } else { if (this.field_5.delay > 500) { this.wait(this.field_5.delay - 500); } var3 = false; } this.charCount = 12; } else if (this.field_5.func == 0 || this.field_5.func == 1) { if (this.field_5.line <= this.lines && this.field_5.line > 0) { this.charCount = this.maxDiff(this.field_5.line); } else { this.field_5.func = 2; this.charCount = 12; } } } else { this.wait(this.delay); } } } } public void init() { this.tracker = new MediaTracker(this); if (this.getParameters() == -1) { this.stop(); } if (this.bgImage != null) { this.imgBackgroundLoad = ((Applet)this).getImage(this.bgImage); this.tracker.addImage(this.imgBackgroundLoad, 0); } String var1 = new String(" 0123456789"); var1 = var1.concat(var1); this.TimeSeq = var1.toCharArray(); this.timeString = new String(this.TimeSeq); this.strTime = null; this.strOldTime = new String(" : "); this.colors = new Color[9]; this.colors[0] = new Color(255, 255, 255); this.colors[1] = new Color(255, 0, 0); this.colors[2] = new Color(0, 255, 0); this.colors[3] = new Color(0, 0, 255); this.colors[4] = new Color(255, 255, 0); this.colors[5] = new Color(255, 160, 0); this.colors[6] = new Color(255, 0, 255); this.colors[7] = new Color(0, 255, 255); this.colors[8] = new Color(0, 0, 0); } public boolean mouseMove(Event var1, int var2, int var3) { int var5 = this.titleHeight + this.yOffset; if (var3 >= var5 && this.lineGap > 0) { int var4 = (var3 - var5) / this.lineGap; if (var4 < this.lines) { if (this.DisplayURL[var4] != null) { ((Applet)this).showStatus(this.DisplayURL[var4].toExternalForm()); } else { ((Applet)this).showStatus(""); } } else { ((Applet)this).showStatus(" "); } } else { ((Applet)this).showStatus(" "); } return true; } }