home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2002 June / INTERNET92.ISO / pc / software / windows / building / visual_dhtml / visualdhtmlwin2000.exe / RHTML.___ (.txt) < prev    next >
Encoding:
Java Class File  |  2001-10-19  |  3.9 KB  |  193 lines

  1. import java.awt.Color;
  2. import java.io.DataInputStream;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FilterInputStream;
  6. import java.io.IOException;
  7. import java.util.Vector;
  8.  
  9. final class RHTML {
  10.    private String curRawPage;
  11.    boolean goodPage = true;
  12.    int numTags = 0;
  13.    String[] TagValues;
  14.    int[] tagSettings;
  15.    int tagAlignment = 0;
  16.    boolean useTagCoords = false;
  17.    private File cur_url;
  18.    private String temp_value = "";
  19.    String pageTitle = "OpenCube - Web Window Browser";
  20.    Color pageColor = null;
  21.    Color pageLinkColor = null;
  22.    Color pageHLColor = null;
  23.    Color pageTextColor = null;
  24.    int pageLeftMargin = 0;
  25.    int pageTopMargin = 0;
  26.    int pageTransition = 0;
  27.    Color def_pageColor;
  28.    Color def_pageLinkColor;
  29.    Color def_pageHLColor;
  30.    Color def_pageTextColor;
  31.  
  32.    private boolean CTag(String var1, String var2, int var3, String var4, int var5) {
  33.       if (var3 + var1.length() >= var5) {
  34.          return false;
  35.       } else {
  36.          return var2.substring(var3 + 1, var3 + var1.length() + 1).equalsIgnoreCase(var1);
  37.       }
  38.    }
  39.  
  40.    public RHTML(String var1, Color var2, Color var3, Color var4, Color var5) {
  41.       this.def_pageColor = Color.white;
  42.       this.def_pageLinkColor = Color.blue;
  43.       this.def_pageHLColor = Color.red;
  44.       this.def_pageTextColor = Color.black;
  45.       this.def_pageColor = var2;
  46.       this.def_pageLinkColor = var3;
  47.       this.def_pageHLColor = var4;
  48.       this.def_pageTextColor = var5;
  49.       this.cur_url = new File(var1);
  50.       this.ReadFile();
  51.    }
  52.  
  53.    private void parseIt() {
  54.       Vector var1 = new Vector();
  55.       Vector var2 = new Vector();
  56.       int var3 = 0;
  57.       int var4 = 0;
  58.       int var5 = 0;
  59.       int var6 = 0;
  60.       String var7 = this.curRawPage.toLowerCase();
  61.       String var8 = "0";
  62.  
  63.       while(var3 != -1) {
  64.          var3 = this.curRawPage.indexOf("<p", var6);
  65.          if (var3 == -1) {
  66.             var3 = this.curRawPage.indexOf("<P", var6);
  67.          }
  68.  
  69.          if (var3 != -1) {
  70.             var4 = this.curRawPage.indexOf(62, var3 + 1);
  71.             if (var4 != -1) {
  72.                String var9 = this.curRawPage.substring(var3, var4);
  73.                var8 = vInTag.GetInternalTagValue("align", var9, 3, false);
  74.                if (this.CTag("body", this.curRawPage, var3, "1", var4)) {
  75.                   this.curRawPage.substring(var3, var4);
  76.                }
  77.  
  78.                if ((var5 = var7.indexOf("</p>", var4)) != -1) {
  79.                   var1.addElement(LoParse.IgnoreSpaceTypes(this.curRawPage.substring(var4 + 1, var5)));
  80.                   String var10 = "0";
  81.                   if (var8.equalsIgnoreCase("right")) {
  82.                      var10 = "2";
  83.                   } else if (var8.equalsIgnoreCase("center")) {
  84.                      var10 = "1";
  85.                   }
  86.  
  87.                   var2.addElement(var10);
  88.                   var8 = "";
  89.                   ++this.numTags;
  90.                   var6 = var5;
  91.                } else {
  92.                   var6 = var3 + 1;
  93.                }
  94.             } else {
  95.                var6 = var3 + 1;
  96.             }
  97.          }
  98.       }
  99.  
  100.       this.TagValues = new String[var1.size()];
  101.       var1.copyInto(this.TagValues);
  102.       this.tagSettings = new int[var2.size()];
  103.       String[] var15 = new String[var2.size()];
  104.       var2.copyInto(var15);
  105.  
  106.       for(int var16 = 0; var16 < var2.size(); ++var16) {
  107.          this.tagSettings[var16] = Integer.parseInt(var15[var16]);
  108.       }
  109.  
  110.       this.curRawPage = null;
  111.    }
  112.  
  113.    private void ReadFile() {
  114.       try {
  115.          FileInputStream var3 = new FileInputStream(this.cur_url);
  116.  
  117.          DataInputStream var1;
  118.          String var2;
  119.          for(var1 = new DataInputStream(var3); (var2 = var1.readLine()) != null; this.curRawPage = this.curRawPage + var2 + " ") {
  120.          }
  121.  
  122.          ((FilterInputStream)var1).close();
  123.       } catch (IOException var5) {
  124.          this.goodPage = false;
  125.          return;
  126.       }
  127.  
  128.       this.pageTitle = LoParse.GetBetweenTags(this.curRawPage, "<title>", "</title>").trim();
  129.       this.curRawPage = LoParse.DelUnwanted(this.curRawPage, "&", "&");
  130.       this.curRawPage = LoParse.DelUnwanted(this.curRawPage, " ", " ");
  131.       this.curRawPage = LoParse.DelUnwanted(this.curRawPage, """, (new Character('"')).toString());
  132.       String var6 = LoParse.GetBetweenTags(this.curRawPage, "<body", ">");
  133.       Object var4 = null;
  134.       if (var6.length() < 3) {
  135.          this.pageColor = this.def_pageColor;
  136.          this.pageLinkColor = this.def_pageLinkColor;
  137.          this.pageHLColor = this.def_pageHLColor;
  138.          this.pageTextColor = this.def_pageTextColor;
  139.       } else {
  140.          String var7 = vInTag.GetInternalTagValue("bgcolor", var6, 1, false);
  141.          if (var7.equals("-1")) {
  142.             this.pageColor = this.def_pageColor;
  143.          } else {
  144.             this.pageColor = new Color(Integer.parseInt(var7, 16));
  145.          }
  146.  
  147.          var7 = vInTag.GetInternalTagValue("text", var6, 1, false);
  148.          if (var7.equals("-1")) {
  149.             this.pageTextColor = this.def_pageTextColor;
  150.          } else {
  151.             this.pageTextColor = new Color(Integer.parseInt(var7, 16));
  152.          }
  153.  
  154.          var7 = vInTag.GetInternalTagValue("link", var6, 1, false);
  155.          if (var7.equals("-1")) {
  156.             this.pageLinkColor = this.def_pageLinkColor;
  157.          } else {
  158.             this.pageLinkColor = new Color(Integer.parseInt(var7, 16));
  159.          }
  160.  
  161.          var7 = vInTag.GetInternalTagValue("hlcolor", var6, 1, false);
  162.          if (var7.equals("-1")) {
  163.             this.pageHLColor = this.def_pageHLColor;
  164.          } else {
  165.             this.pageHLColor = new Color(Integer.parseInt(var7, 16));
  166.          }
  167.  
  168.          var7 = vInTag.GetInternalTagValue("leftmargin", var6, 2, false);
  169.          if (var7.equals("-1")) {
  170.             this.pageLeftMargin = 0;
  171.          } else {
  172.             this.pageLeftMargin = Integer.parseInt(var7);
  173.          }
  174.  
  175.          var7 = vInTag.GetInternalTagValue("topmargin", var6, 2, false);
  176.          if (var7.equals("-1")) {
  177.             this.pageTopMargin = 0;
  178.          } else {
  179.             this.pageTopMargin = Integer.parseInt(var7);
  180.          }
  181.  
  182.          var7 = vInTag.GetInternalTagValue("transition", var6, 2, false);
  183.          if (var7.equals("-1")) {
  184.             this.pageTransition = 0;
  185.          } else {
  186.             this.pageTransition = Integer.parseInt(var7);
  187.          }
  188.       }
  189.  
  190.       this.parseIt();
  191.    }
  192. }
  193.