home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1998 October / DPPCPRO1098.ISO / Hotdog / files / snagpack.exe / LDSCRIPT.CLASS (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-21  |  4.4 KB  |  263 lines

  1. import java.io.DataInputStream;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.net.MalformedURLException;
  5. import java.net.URL;
  6. import java.util.NoSuchElementException;
  7. import java.util.Vector;
  8.  
  9. public class ldscript {
  10.    private URL baseUrl;
  11.    private InputStream file;
  12.    private DataInputStream scriptDataStream;
  13.    private linklist list;
  14.    private Vector mystack = new Vector(1);
  15.    private static int position;
  16.    private boolean fileError;
  17.  
  18.    public boolean getFileError() {
  19.       return this.fileError;
  20.    }
  21.  
  22.    private String getString(String var1, String var2) {
  23.       var1 = var1.trim();
  24.       int var3 = var1.indexOf(var2);
  25.       if (var3 == -1) {
  26.          return null;
  27.       } else {
  28.          String var4 = var1.substring(var3);
  29.          var3 = var4.indexOf("=");
  30.          ++var3;
  31.          var4 = var4.substring(var3);
  32.          var4.trim();
  33.          if (!var2.equals("text") && !var2.equals("picture")) {
  34.             int var5 = var4.indexOf(" ");
  35.             if (var5 != -1) {
  36.                var4 = var4.substring(0, var5);
  37.             }
  38.          }
  39.  
  40.          var4.trim();
  41.          return new String(var4);
  42.       }
  43.    }
  44.  
  45.    public ldscript(URL var1, String var2) {
  46.       try {
  47.          this.file = (new URL(var1, var2)).openStream();
  48.          this.scriptDataStream = new DataInputStream(this.file);
  49.       } catch (MalformedURLException var3) {
  50.          System.out.println("Error in URL" + var1.toString());
  51.          this.fileError = true;
  52.       } catch (IOException var4) {
  53.          System.out.println("io exception opening " + var2);
  54.          this.fileError = true;
  55.       }
  56.  
  57.       this.list = new linklist();
  58.       position = 0;
  59.       this.readScript();
  60.    }
  61.  
  62.    public synchronized void readScript() {
  63.       int var2 = 0;
  64.  
  65.       try {
  66.          String var1;
  67.          while((var1 = this.readLine()) != null) {
  68.             if (var1.length() != 0) {
  69.                cmddata var3 = this.getCommandData(var1);
  70.                var2 = var3.getFuncNum();
  71.                if (var2 == 100) {
  72.                   Integer var4 = new Integer(this.list.size() + 1);
  73.                   this.mystack.addElement(var4);
  74.                } else if (var2 == 101) {
  75.                   int var11 = var3.getRepeats();
  76.                   if (var11 > 0) {
  77.                      try {
  78.                         Integer var5 = (Integer)this.mystack.lastElement();
  79.                         var3.setDoPosition(var5);
  80.                      } catch (NoSuchElementException var8) {
  81.                         System.out.println("Problems in setting EndRepeats");
  82.                         this.fileError = true;
  83.                         break;
  84.                      }
  85.                   } else if (var11 == -1) {
  86.                      try {
  87.                         Integer var12 = (Integer)this.mystack.lastElement();
  88.                         var3.setDoPosition(var12);
  89.                      } catch (NoSuchElementException var7) {
  90.                         System.out.println("Problems in setting EndRepeats");
  91.                         this.fileError = true;
  92.                         break;
  93.                      }
  94.                   }
  95.  
  96.                   try {
  97.                      this.mystack.removeElementAt(this.mystack.size() - 1);
  98.                   } catch (ArrayIndexOutOfBoundsException var6) {
  99.                      System.out.println("No more to pop off stack");
  100.                   }
  101.                }
  102.  
  103.                this.list.addList(var3);
  104.             }
  105.          }
  106.  
  107.          this.file.close();
  108.          this.scriptDataStream.close();
  109.       } catch (IOException var9) {
  110.          System.out.println("io exception error in readScript");
  111.          this.fileError = true;
  112.       }
  113.  
  114.    }
  115.  
  116.    private cmddata getCommandData(String var1) {
  117.       cmddata var3 = new cmddata();
  118.       String var2 = var1.trim();
  119.       int var4 = var2.indexOf(" ");
  120.       if (var4 == -1) {
  121.          var2 = new String(var1);
  122.       } else {
  123.          var2 = var2.substring(0, var4);
  124.       }
  125.  
  126.       if (var2.equals("ScrollUp")) {
  127.          var3.addFuncNum(1);
  128.       } else if (var2.equals("ScrollDown")) {
  129.          var3.addFuncNum(2);
  130.       } else if (var2.equals("ScrollRight")) {
  131.          var3.addFuncNum(3);
  132.       } else if (var2.equals("ScrollLeft")) {
  133.          var3.addFuncNum(4);
  134.       } else if (var2.equals("StartRepeat")) {
  135.          var3.addFuncNum(100);
  136.       } else if (var2.equals("EndRepeat")) {
  137.          var3.addFuncNum(101);
  138.          if (var4 != -1) {
  139.             var2 = var1.substring(var4 + 1);
  140.             var2 = var2.trim();
  141.             var3.setRepeats(Integer.parseInt(var2));
  142.          } else {
  143.             var3.setRepeats(-1);
  144.          }
  145.       } else if (var2.equals("OverScrollUp")) {
  146.          var3.addFuncNum(10);
  147.       } else if (var2.equals("OverScrollDown")) {
  148.          var3.addFuncNum(11);
  149.       } else if (var2.equals("OverScrollRight")) {
  150.          var3.addFuncNum(12);
  151.       } else if (var2.equals("OverScrollLeft")) {
  152.          var3.addFuncNum(13);
  153.       } else if (var2.equals("Dots")) {
  154.          var3.addFuncNum(102);
  155.       } else if (var2.equals("Pause")) {
  156.          var3.addFuncNum(103);
  157.       } else if (var2.equals("Show")) {
  158.          var3.addFuncNum(104);
  159.       } else if (var2.equals("Blink")) {
  160.          var3.addFuncNum(105);
  161.  
  162.          try {
  163.             if ((var2 = this.getString(var1, "frequency")) != null) {
  164.                var3.setBlink(Integer.parseInt(var2));
  165.             }
  166.          } catch (Exception var6) {
  167.          }
  168.       } else if (var2.equals("Clear")) {
  169.          var3.addFuncNum(106);
  170.          return var3;
  171.       }
  172.  
  173.       if ((var2 = this.getString(var1, "delay")) != null) {
  174.          var3.addDelay(Integer.parseInt(var2));
  175.       }
  176.  
  177.       if ((var2 = this.getString(var1, "center")) != null && var2.equalsIgnoreCase("true")) {
  178.          var3.addCenter(true);
  179.       }
  180.  
  181.       if ((var2 = this.getString(var1, "frontGap")) != null) {
  182.          var3.fGap(Integer.parseInt(var2));
  183.          var3.addCenter(false);
  184.       }
  185.  
  186.       if ((var2 = this.getString(var1, "endGap")) != null) {
  187.          var3.eGap(Integer.parseInt(var2));
  188.          var3.addCenter(false);
  189.       }
  190.  
  191.       if ((var2 = this.getString(var1, "URL")) != null) {
  192.          int var5 = var2.indexOf(44);
  193.          if (var5 != -1) {
  194.             var3.newURL(var2.substring(0, var5));
  195.             var3.newTargetFrame(var2.substring(var5 + 1));
  196.          } else {
  197.             var3.newURL(var2);
  198.             var3.newTargetFrame("_self");
  199.          }
  200.       }
  201.  
  202.       if ((var2 = this.getString(var1, "color")) != null) {
  203.          var3.addColor(var2);
  204.       }
  205.  
  206.       if ((var2 = this.getString(var1, "text")) != null) {
  207.          var3.addText(var2);
  208.       }
  209.  
  210.       if ((var2 = this.getString(var1, "picture")) != null) {
  211.          var3.addPicture(var2);
  212.       }
  213.  
  214.       return var3;
  215.    }
  216.  
  217.    private String readLine() throws IOException {
  218.       String var2;
  219.       do {
  220.          var2 = this.scriptDataStream.readLine();
  221.          if (var2 == null) {
  222.             return var2;
  223.          }
  224.  
  225.          var2 = var2.trim();
  226.       } while(var2.startsWith("##"));
  227.  
  228.       return var2;
  229.    }
  230.  
  231.    public cmddata nextFunction() {
  232.       cmddata var1 = this.list.getLink(position);
  233.       if (var1 != null) {
  234.          switch (var1.getFuncNum()) {
  235.             case 100:
  236.                ++position;
  237.                var1 = this.nextFunction();
  238.                break;
  239.             case 101:
  240.                if (!var1.incDoRepeats()) {
  241.                   position = var1.getDoPosition();
  242.                } else {
  243.                   ++position;
  244.                }
  245.  
  246.                var1 = this.nextFunction();
  247.                break;
  248.             default:
  249.                ++position;
  250.                if (position >= this.list.size()) {
  251.                   position = 0;
  252.                }
  253.          }
  254.  
  255.          return var1;
  256.       } else {
  257.          position = 0;
  258.          System.out.println("No nextFunction error");
  259.          return new cmddata();
  260.       }
  261.    }
  262. }
  263.