home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.MediaTracker;
- import java.io.DataInputStream;
- import java.io.FilterInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.URL;
-
- public final class TOCScrollScript implements Runnable {
- public TOCTreeItem item;
- // $FF: renamed from: ├╗ TOCScrollItem
- private TOCScrollItem field_0;
- // $FF: renamed from: ok int
- public int field_1;
- // $FF: renamed from: Ó java.lang.String
- private String field_2;
- // $FF: renamed from: Ô java.net.URL
- private URL field_3;
- // $FF: renamed from: Ã TOC
- private TOC field_4;
- // $FF: renamed from: ê java.lang.Thread
- private Thread field_5;
- public MediaTracker tracker;
- public boolean fDone;
- // $FF: renamed from: ├╝ boolean
- private boolean field_6;
-
- public void stop() {
- if (this.field_5 != null) {
- this.field_5.stop();
- this.field_5 = null;
- }
-
- }
-
- // $FF: renamed from: Ò (java.lang.String) TOCScrollItem
- private final TOCScrollItem method_0(String var1) {
- var1 = var1.trim();
- int var2 = var1.indexOf(" ");
- String var3;
- if (var2 != -1) {
- var3 = var1.substring(0, var2);
- } else {
- var3 = var1;
- }
-
- if (!var3.equals("ScrollItemHelp") && !var3.equals("ScrollItem")) {
- System.out.println("Invalid keyword '" + var3 + "'. Ignoring line.");
- return null;
- } else if (var3.equals("ScrollItemHelp")) {
- if (this.field_0 != null) {
- var3 = this.method_2(var1, "text");
- if (var3 != null) {
- this.field_0.helpText = var3;
- }
- }
-
- return null;
- } else {
- TOCScrollItem var4 = new TOCScrollItem();
- var4.id = this.field_4.iID++;
- var4.target = new String();
- var4.text = new String();
- var4.helpText = new String();
- var4.textFont = this.field_4.standardF;
- var4.textColor = this.field_4.textCInfo;
- var3 = this.method_2(var1, "text");
- if (var3 != null) {
- var4.text = var3;
- }
-
- var3 = this.method_2(var1, "font");
- if (var3 != null) {
- String var6 = var3.substring(0, var3.indexOf(","));
- String var5 = var3.substring(var3.indexOf(",") + 1);
-
- try {
- int var7 = Integer.valueOf(var5);
- var4.textFont = new Font(var6, 0, var7);
- } catch (NumberFormatException var8) {
- System.out.println("Bad font value '" + var3 + "'. Ignoring font parameter.");
- }
- }
-
- var3 = this.method_2(var1, "color");
- if (var3 != null) {
- var4.textColor = this.field_4.ColorFromRGB(var3.trim());
- }
-
- var3 = this.method_2(var1, "url");
- if (var3 != null) {
- if (var3.indexOf(44) != -1) {
- var4.target = var3.substring(var3.indexOf(44) + 1);
- var3 = var3.substring(0, var3.indexOf(44));
- }
-
- var4.url = this.field_4.getURL(var3);
- }
-
- var4.w = this.method_1(var4, 0, this.field_4.infoHeight, false, (Graphics)null) + 20;
- var4.image = this.field_4.TOCCreateImage(var4.w, this.field_4.infoHeight);
- this.method_1(var4, 0, this.field_4.infoHeight, true, var4.image.getGraphics());
- this.field_4.getToolkit().sync();
- return var4;
- }
- }
-
- // $FF: renamed from: ├╗ (TOCScrollItem, int, int, boolean, java.awt.Graphics) int
- private int method_1(TOCScrollItem var1, int var2, int var3, boolean var4, Graphics var5) {
- String var6 = var1.text;
- char[] var8 = new char[2];
- int var9 = 0;
- int var10 = var2;
- boolean var13 = true;
- int var15 = var6.length();
- boolean var16 = false;
- boolean var17 = false;
- String var18 = var1.textFont.getName();
- int var19 = var1.textFont.getSize();
- Font var20 = new Font(var18, 0, var19);
- FontMetrics var21 = this.field_4.getFontMetrics(var20);
- Color var22 = var1.textColor;
- if (var4) {
- var5.setColor(this.field_4.bgCInfo);
- var5.fillRect(0, 0, var1.w, var3);
- var5.setColor(this.field_4.lineC);
- var5.drawLine(0, 0, var1.w, 0);
- var5.drawLine(var1.w - 11, var3 / 2, var1.w - 10, var3 / 2);
- var5.drawLine(var1.w - 11, var3 / 2 - 1, var1.w - 10, var3 / 2 - 1);
- }
-
- while(var13) {
- var13 = false;
- if (var9 < var15) {
- char var7 = var6.charAt(var9);
- switch (var7) {
- case '&':
- String var42 = var6.substring(var9, var9 + 4);
- var42 = var42.toUpperCase();
- if (var42.equals(">")) {
- var7 = '>';
- var9 += 3;
- } else if (var42.equals("<")) {
- var7 = '<';
- var9 += 3;
- }
-
- ++var9;
- break;
- case '<':
- if (var9 + 3 <= var15) {
- String var14 = var6.substring(var9, var9 + 3);
- var14 = var14.toLowerCase();
- if (var14.equals("<b>")) {
- var16 = true;
- var9 += 2;
- var13 = true;
- } else if (var14.equals("<i>")) {
- var17 = true;
- var9 += 2;
- var13 = true;
- }
- }
-
- if (var9 + 4 <= var15) {
- String var34 = var6.substring(var9, var9 + 4);
- var34 = var34.toLowerCase();
- if (var34.equals("</b>")) {
- var16 = false;
- var9 += 3;
- var13 = true;
- } else if (var34.equals("</i>")) {
- var17 = false;
- var9 += 3;
- var13 = true;
- }
- }
-
- if (var9 + 5 <= var15) {
- String var36 = var6.substring(var9, var9 + 5);
- var36 = var36.toLowerCase();
- if (var36.equals("<img ")) {
- int var24 = -1;
- int var25 = -1;
- int var26 = 0;
- URL var27 = null;
- int var12 = var6.indexOf(">", var9 + 1);
- String var28 = var6.substring(var9 + 5, var12);
- var28 = var28.trim();
- String var29 = this.method_2(var28, "width");
- if (var29 != null) {
- var24 = Integer.parseInt(var29);
- }
-
- var29 = this.method_2(var28, "height");
- if (var29 != null) {
- var25 = Integer.parseInt(var29);
- }
-
- var29 = this.method_2(var28, "border");
- if (var29 != null) {
- var26 = Integer.parseInt(var29);
- }
-
- var29 = this.method_2(var28, "src");
- if (var29 != null) {
- var27 = this.field_4.getURL(var29);
- }
-
- var9 = var12;
- var13 = true;
- if (var27 != null) {
- Image var23 = this.field_4.getImage(var27);
- this.tracker.addImage(var23, 1);
-
- try {
- this.tracker.waitForID(1);
- } catch (Exception var30) {
- var23 = null;
- }
-
- if (var23 != null) {
- if (var24 == -1) {
- var24 = var23.getWidth(this.field_4);
- }
-
- if (var25 == -1) {
- var25 = var23.getHeight(this.field_4);
- }
-
- if (var4) {
- int var11 = (this.field_4.infoHeight - var25 + 1) / 2;
- var5.drawImage(var23, var10 + var26, var11, this.field_4);
- }
-
- var10 += var24 + 2 * var26;
- }
- }
- }
- }
-
- if (var9 + 6 <= var15) {
- String var38 = var6.substring(var9, var9 + 6);
- var38 = var38.toLowerCase();
- if (var38.equals("<font ")) {
- int var31 = var6.indexOf(">", var9 + 1);
- String var44 = var6.substring(var9 + 6, var31);
- var44 = var44.trim();
- String var49 = this.method_2(var44, "family");
- if (var49 != null) {
- var18 = var49;
- }
-
- var49 = this.method_2(var44, "size");
- if (var49 != null) {
- var19 = Integer.parseInt(var49);
- }
-
- var9 = var31;
- var13 = true;
- }
- }
-
- if (var9 + 7 <= var15) {
- String var40 = var6.substring(var9, var9 + 7);
- var40 = var40.toLowerCase();
- if (var40.equals("<color ")) {
- int var32 = var6.indexOf(">", var9 + 1);
- String var46 = var6.substring(var9 + 7, var32);
- var46 = var46.trim();
- String var51 = this.method_2(var46, "value");
- if (var51 != null) {
- var22 = this.field_4.ColorFromRGB(var51);
- }
-
- var9 = var32;
- var13 = true;
- }
- }
-
- ++var9;
- if (var13) {
- byte var48 = 0;
- if (!var17 && var16) {
- var48 = 1;
- } else if (var17 && !var16) {
- var48 = 2;
- } else if (var17 && var16) {
- var48 = 3;
- }
-
- var20 = new Font(var18, var48, var19);
- var21 = this.field_4.getFontMetrics(var20);
- }
- break;
- default:
- ++var9;
- }
-
- if (!var13) {
- if (var4) {
- var8[0] = var7;
- var5.setFont(var20);
- var5.setColor(var22);
- var5.drawChars(var8, 0, 1, var10, this.field_4.yInfoBase);
- }
-
- var10 += var21.charWidth(var7);
- var13 = true;
- }
- }
- }
-
- return var10;
- }
-
- public TOCScrollScript(URL var1, String var2, TOC var3, TOCTreeItem var4, boolean var5) {
- this.field_2 = var2;
- this.field_3 = var1;
- this.field_4 = var3;
- this.item = var4;
- this.field_6 = var5;
- this.tracker = new MediaTracker(this.field_4);
- }
-
- // $FF: renamed from: Õ (java.lang.String, java.lang.String) java.lang.String
- private final String method_2(String var1, String var2) {
- int var3 = -1;
- int var4 = -1;
- boolean var6 = false;
-
- while(!var6) {
- var3 = var1.indexOf(var2, var3 + 1);
- if (var3 == -1) {
- var6 = true;
- } else if (var3 == 0 || var1.charAt(var3 - 1) == ' ') {
- var6 = true;
- }
- }
-
- var6 = false;
-
- while(!var6) {
- var4 = var1.indexOf("text", var4 + 1);
- if (var4 == -1) {
- var6 = true;
- } else if (var1.charAt(var4 - 1) == ' ') {
- var6 = true;
- }
- }
-
- if (var4 != -1 && var3 > var4) {
- return null;
- } else if (var3 == -1) {
- return null;
- } else {
- String var5 = var1.substring(var3);
- var3 = var5.indexOf("=");
- if (var3 == -1) {
- System.out.println("Error in '" + var2 + "' parameter in " + var1);
- return null;
- } else {
- ++var3;
- if (var2.equals("text")) {
- var5 = var5.substring(var3);
- } else {
- var5 = var5.substring(var3);
- if (var5.indexOf(" ") != -1) {
- var5 = var5.substring(0, var5.indexOf(" "));
- }
- }
-
- var5.trim();
- return var5;
- }
- }
- }
-
- public void start() {
- if (this.field_5 == null) {
- this.field_5 = new Thread(this);
- this.field_5.start();
- }
-
- }
-
- // $FF: renamed from: ├ÿ () int
- private final int method_3() {
- byte var5 = 1;
-
- InputStream var1;
- DataInputStream var2;
- try {
- URL var3 = new URL(this.field_3, this.field_2);
- var1 = var3.openStream();
- var2 = new DataInputStream(var1);
- } catch (IOException var9) {
- return -1;
- }
-
- try {
- String var4;
- while((var4 = var2.readLine()) != null) {
- var4 = var4.trim();
- if (!var4.startsWith("//") && var4.length() != 0) {
- TOCScrollItem var6 = this.method_0(var4);
- if (var6 != null) {
- if (this.item.scroll == null) {
- this.item.scroll = var6;
- this.item.lStart = System.currentTimeMillis();
- if (this.field_6) {
- this.field_4.genericScroll = var6;
- this.field_4.lStart = this.item.lStart;
- if (this.field_4.script != null) {
- TOCTreeItem var7 = this.field_4.script.start;
-
- for(int var8 = 0; var8 < this.field_4.script.listlen; ++var8) {
- if (var7.fct == 0 && var7.scrollScriptFile == null) {
- var7.scroll = var6;
- var7.lStart = this.field_4.lStart;
- }
-
- var7 = var7.nextLine;
- }
- }
- }
- } else {
- this.field_0.next = var6;
- }
-
- this.field_0 = var6;
- }
- }
- }
-
- var1.close();
- ((FilterInputStream)var2).close();
- return var5;
- } catch (IOException var10) {
- return -1;
- }
- }
-
- public void run() {
- while(this.field_5 != null) {
- this.field_1 = this.method_3();
- this.fDone = true;
- this.stop();
- }
-
- }
- }
-