home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / FREI / SCROLLER.EXE / ScrollerScript.class (.txt) < prev   
Encoding:
Java Class File  |  1997-01-31  |  4.8 KB  |  259 lines

  1. import java.awt.Color;
  2. import java.io.DataInputStream;
  3. import java.io.FilterInputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.net.MalformedURLException;
  7. import java.net.URL;
  8. import java.util.Vector;
  9.  
  10. public class ScrollerScript {
  11.    // $FF: renamed from: ok int
  12.    public int field_0;
  13.    private String scrpt;
  14.    private URL documentURL;
  15.    public String lineParam;
  16.    public String lineValue;
  17.    private ScrollerLine sLine;
  18.    private Vector lines;
  19.    private int iLines;
  20.  
  21.    public ScrollerLine getLine(int var1) {
  22.       return var1 >= this.iLines ? null : (ScrollerLine)this.lines.elementAt(var1);
  23.    }
  24.  
  25.    public int getInt(String var1, String var2, int var3) {
  26.       int var4;
  27.       try {
  28.          var4 = new Integer(var2);
  29.       } catch (NumberFormatException var6) {
  30.          System.out.println("WARNING: Bad integer value '" + var2 + "' for parameter '" + var1 + "'. Setting value to default=" + var3 + ".");
  31.          var4 = var3;
  32.       }
  33.  
  34.       return var4;
  35.    }
  36.  
  37.    public Color getColor(String var1, String var2, Color var3) {
  38.       Color var4;
  39.       try {
  40.          int var6 = new Integer(var2.substring(0, var2.indexOf(",")));
  41.          var6 = Math.max(var6, 0);
  42.          var6 = Math.min(var6, 255);
  43.          String var5 = var2.substring(var2.indexOf(",") + 1);
  44.          int var7 = new Integer(var5.substring(0, var5.indexOf(",")));
  45.          var7 = Math.max(var7, 0);
  46.          var7 = Math.min(var7, 255);
  47.          var5 = var5.substring(var5.indexOf(",") + 1);
  48.          int var8 = new Integer(var5);
  49.          var8 = Math.max(var8, 0);
  50.          var8 = Math.min(var8, 255);
  51.          var4 = new Color(var6, var7, var8);
  52.       } catch (NumberFormatException var10) {
  53.          System.out.println("WARNING: Bad color value '" + var2 + "' for parameter '" + var1 + "'. Using default color.");
  54.          var4 = var3;
  55.       }
  56.  
  57.       return var4;
  58.    }
  59.  
  60.    public ScrollerScript(URL var1, String var2) {
  61.       this.scrpt = var2;
  62.       this.documentURL = var1;
  63.       this.field_0 = this.initScript();
  64.    }
  65.  
  66.    public int getNextParameter(String var1) {
  67.       if (var1 == null) {
  68.          return -1;
  69.       } else {
  70.          byte var2 = -1;
  71.          this.lineParam = null;
  72.          this.lineValue = null;
  73.          var1 = var1.trim();
  74.          int var3 = var1.indexOf("=");
  75.          if (var3 == -1) {
  76.             return var2;
  77.          } else {
  78.             this.lineParam = var1.substring(0, var3);
  79.             this.lineParam = this.lineParam.toUpperCase();
  80.             String var4 = var1.substring(var3 + 1);
  81.             var4 = var4.trim();
  82.             boolean var5 = false;
  83.             int var6 = -1;
  84.             int var7 = -1;
  85.  
  86.             while(!var5) {
  87.                var6 = var4.indexOf("\"", var6 + 1);
  88.                if (var6 > 0) {
  89.                   if (var4.charAt(var6 - 1) != '\\') {
  90.                      var5 = true;
  91.                   }
  92.                } else {
  93.                   if (var6 == -1) {
  94.                      break;
  95.                   }
  96.  
  97.                   var5 = true;
  98.                }
  99.             }
  100.  
  101.             if (!var5) {
  102.                System.out.println("ERROR: No starting double quotes found for parameter '" + this.lineParam + "'.");
  103.                return var2;
  104.             } else {
  105.                var5 = false;
  106.                var7 = var6;
  107.  
  108.                while(!var5) {
  109.                   var7 = var4.indexOf("\"", var7 + 1);
  110.                   if (var7 > 0) {
  111.                      if (var4.charAt(var7 - 1) != '\\') {
  112.                         var5 = true;
  113.                      }
  114.                   } else {
  115.                      if (var7 == -1) {
  116.                         break;
  117.                      }
  118.  
  119.                      var5 = true;
  120.                   }
  121.                }
  122.  
  123.                if (var6 > 1) {
  124.                   System.out.println("WARNING: Characters before value of parameter '" + this.lineParam + "' ignored.");
  125.                }
  126.  
  127.                if (!var5) {
  128.                   System.out.println("ERROR: No ending double quotes found for parameter '" + this.lineParam + "'.");
  129.                   return var2;
  130.                } else {
  131.                   this.lineValue = var4.substring(var6 + 1, var7 - var6);
  132.                   int var8 = 0;
  133.  
  134.                   while(var8 != -1) {
  135.                      var8 = this.lineValue.indexOf("\\\"");
  136.                      if (var8 != -1) {
  137.                         this.lineValue = this.lineValue.substring(0, var8) + this.lineValue.substring(var8 + 1);
  138.                      }
  139.                   }
  140.  
  141.                   return var3 + var7 + 1;
  142.                }
  143.             }
  144.          }
  145.       }
  146.    }
  147.  
  148.    public URL getURL(String var1, String var2) {
  149.       boolean var4 = true;
  150.  
  151.       try {
  152.          new URL(var2);
  153.       } catch (MalformedURLException var7) {
  154.          var4 = false;
  155.       }
  156.  
  157.       URL var3;
  158.       if (!var4) {
  159.          try {
  160.             var3 = new URL(this.documentURL, var2);
  161.          } catch (MalformedURLException var6) {
  162.             var3 = null;
  163.          }
  164.       } else {
  165.          var3 = null;
  166.       }
  167.  
  168.       if (var3 == null) {
  169.          System.out.println("WARNING: Bad URL value '" + var2 + "' for parameter '" + var1 + "'. URL ignored.");
  170.       }
  171.  
  172.       return var3;
  173.    }
  174.  
  175.    public int initScript() {
  176.       Object var3 = null;
  177.  
  178.       InputStream var1;
  179.       DataInputStream var2;
  180.       try {
  181.          URL var8 = new URL(this.documentURL, this.scrpt);
  182.          var1 = var8.openStream();
  183.          var2 = new DataInputStream(var1);
  184.       } catch (IOException var7) {
  185.          System.out.println("ERROR: Error opening script file '" + ((URL)var3).toExternalForm() + "'.");
  186.          return -1;
  187.       }
  188.  
  189.       this.lines = new Vector();
  190.       this.iLines = 0;
  191.  
  192.       try {
  193.          String var4;
  194.          while((var4 = var2.readLine()) != null) {
  195.             var4 = var4.trim();
  196.             if (!var4.startsWith("//") && var4.length() != 0) {
  197.                this.parseLine(var4);
  198.                this.lines.addElement(this.sLine);
  199.                ++this.iLines;
  200.             }
  201.          }
  202.  
  203.          var1.close();
  204.          ((FilterInputStream)var2).close();
  205.          return 0;
  206.       } catch (IOException var6) {
  207.          System.out.println("ERROR: I/O error while reading script file.");
  208.          return -1;
  209.       }
  210.    }
  211.  
  212.    private boolean parseLine(String var1) {
  213.       boolean var2 = true;
  214.       String var3 = var1;
  215.       int var4 = 0;
  216.       this.sLine = new ScrollerLine();
  217.       this.sLine.TextURL = null;
  218.       this.sLine.URLTarget = null;
  219.       this.sLine.TitleBgColor = Color.black;
  220.       this.sLine.TextBgColor = Color.black;
  221.       this.sLine.TitleTextColor = Color.white;
  222.       this.sLine.TextTextColor = Color.white;
  223.       this.sLine.Title = new String();
  224.       this.sLine.Text = new String();
  225.       this.sLine.hold = 1000;
  226.  
  227.       while(var4 != -1) {
  228.          var4 = this.getNextParameter(var3);
  229.          if (var4 != -1) {
  230.             var3 = var3.substring(var4 + 1);
  231.             var3 = var3.trim();
  232.             if (this.lineParam.compareTo("TEXTURL") == 0) {
  233.                this.sLine.TextURL = this.getURL(this.lineParam, this.lineValue);
  234.             } else if (this.lineParam.compareTo("URLTARGET") == 0) {
  235.                this.sLine.URLTarget = this.lineValue;
  236.             } else if (this.lineParam.compareTo("TITLEBGCOLOR") == 0) {
  237.                this.sLine.TitleBgColor = this.getColor(this.lineParam, this.lineValue, Color.black);
  238.             } else if (this.lineParam.compareTo("TITLETEXTCOLOR") == 0) {
  239.                this.sLine.TitleTextColor = this.getColor(this.lineParam, this.lineValue, Color.white);
  240.             } else if (this.lineParam.compareTo("TEXTBGCOLOR") == 0) {
  241.                this.sLine.TextBgColor = this.getColor(this.lineParam, this.lineValue, Color.black);
  242.             } else if (this.lineParam.compareTo("TEXTTEXTCOLOR") == 0) {
  243.                this.sLine.TextTextColor = this.getColor(this.lineParam, this.lineValue, Color.white);
  244.             } else if (this.lineParam.compareTo("TITLE") == 0) {
  245.                this.sLine.Title = this.lineValue;
  246.             } else if (this.lineParam.compareTo("TEXT") == 0) {
  247.                this.sLine.Text = this.lineValue;
  248.             } else if (this.lineParam.compareTo("HOLD") == 0) {
  249.                this.sLine.hold = this.getInt(this.lineParam, this.lineValue, 1000);
  250.             } else {
  251.                System.out.println("WARNING: Invalid parameter '" + this.lineParam + "'. Parameter ignored.");
  252.             }
  253.          }
  254.       }
  255.  
  256.       return var2;
  257.    }
  258. }
  259.