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

  1. import com.ms.wfc.app.Application;
  2. import com.ms.wfc.app.MethodInvoker;
  3. import com.ms.wfc.ui.CommonDialog;
  4. import com.ms.wfc.ui.FileDialog;
  5. import com.ms.wfc.ui.OpenFileDialog;
  6. import java.awt.Color;
  7. import java.io.DataInputStream;
  8. import java.io.File;
  9. import java.io.FileInputStream;
  10. import java.io.IOException;
  11. import java.util.StringTokenizer;
  12. import java.util.Vector;
  13.  
  14. public class OCAOpnr {
  15.    File openedfile;
  16.    String rawPage = "";
  17.    String cname = "";
  18.    String codebase = "";
  19.    String appWidth;
  20.    String appHeight;
  21.    int sel = -1;
  22.    Vector pvector;
  23.    ACIntf iface;
  24.    AIPars rawinfo;
  25.    APInfo appinfo;
  26.    String tclassName = "-1";
  27.    boolean isTemplate = false;
  28.    boolean imagefolder_beenset = false;
  29.  
  30.    private void setImgFolder(String var1) {
  31.       if (!this.imagefolder_beenset) {
  32.          String var2 = (new File(var1)).getParent();
  33.          if (var2 == null) {
  34.             var2 = ".";
  35.          } else {
  36.             var2 = var2 + File.separator;
  37.          }
  38.  
  39.          this.imagefolder_beenset = true;
  40.       }
  41.  
  42.    }
  43.  
  44.    private void getFileInvoked() {
  45.       OpenFileDialog var1 = new OpenFileDialog();
  46.       ((FileDialog)var1).setFileName("Untitled.html");
  47.       ((FileDialog)var1).setDefaultExt(".html");
  48.       ((FileDialog)var1).setFilter("HTML Files (*.html;*.htm)|*.html;*.htm");
  49.       if (ACutila.iface.lastSave != null) {
  50.          ((FileDialog)var1).setInitialDir(ACutila.iface.lastSave.getParent());
  51.       } else {
  52.          ((FileDialog)var1).setInitialDir(ACutil.getClassPath());
  53.       }
  54.  
  55.       int var2 = ((CommonDialog)var1).showDialog();
  56.       if (var2 == 1 && ((FileDialog)var1).getFileName() != null) {
  57.          this.openedfile = new File(((FileDialog)var1).getFileName());
  58.          this.openFile();
  59.       } else {
  60.          this.openFile();
  61.          this.openedfile = null;
  62.       }
  63.    }
  64.  
  65.    static Vector buildTokenString(String var0) {
  66.       Vector var1 = new Vector();
  67.       Vector var2 = new Vector();
  68.       StringTokenizer var3 = new StringTokenizer(var0, "\n");
  69.       int var5 = 0;
  70.       String var6 = "";
  71.       String var7 = "";
  72.  
  73.       while(var3.hasMoreTokens()) {
  74.          String var4 = var3.nextToken().trim();
  75.          var5 = var4.indexOf("=");
  76.          if (var5 > -1) {
  77.             var6 = var4.substring(0, var5).trim();
  78.             if (var4.length() > var5 + 1) {
  79.                var7 = var4.substring(var5 + 1).trim();
  80.                if (var7.length() > 1) {
  81.                   if ((new Character(var7.charAt(0))).toString().equals("\"")) {
  82.                      var7 = var7.substring(1, var7.length());
  83.                   }
  84.  
  85.                   if ((new Character(var7.charAt(var7.length() - 1))).toString().equals("\"")) {
  86.                      var7 = var7.substring(0, var7.length() - 1);
  87.                   }
  88.                }
  89.             } else {
  90.                var7 = "";
  91.             }
  92.  
  93.             var1.addElement(var6);
  94.             var1.addElement(var7);
  95.          }
  96.       }
  97.  
  98.       if (var1.size() % 2 != 0) {
  99.          return null;
  100.       } else {
  101.          for(int var10 = 0; var10 < var1.size() / 2; ++var10) {
  102.             String[] var8 = new String[]{(String)var1.elementAt(var10 * 2), (String)var1.elementAt(var10 * 2 + 1)};
  103.             var8[1] = ACutil.DelUnwanted(var8[1], """, (new Character('"')).toString());
  104.             var8[1] = ACutil.DelUnwanted(var8[1], "&", "&");
  105.             var2.addElement(var8);
  106.          }
  107.  
  108.          return var2;
  109.       }
  110.    }
  111.  
  112.    public OCAOpnr(AIPars var1, ACIntf var2, String var3) {
  113.       this.rawinfo = var1;
  114.       this.iface = var2;
  115.       this.tclassName = var3;
  116.       Application.createThread(new MethodInvoker(this, "getFileInvoked"));
  117.    }
  118.  
  119.    public OCAOpnr(AIPars var1, ACIntf var2, String var3, boolean var4) {
  120.       this.rawinfo = var1;
  121.       this.iface = var2;
  122.       this.tclassName = var3;
  123.       this.isTemplate = var4;
  124.       this.openFile();
  125.    }
  126.  
  127.    private boolean grabHeaderInfo() {
  128.       String var1 = "";
  129.       int var2 = this.rawPage.indexOf(">");
  130.       if (var2 != -1) {
  131.          var1 = this.rawPage.substring(0, var2);
  132.          if (this.rawPage.length() > var2 + 1) {
  133.             this.rawPage = this.rawPage.substring(var2 + 1);
  134.             this.rawPage = this.rawPage.trim();
  135.             this.cname = ACutil.GetInternalTagValue("code", var1, 3, false);
  136.             if (this.cname.equals("-1")) {
  137.                return false;
  138.             } else {
  139.                int var3 = 0;
  140.                String var4 = this.cname.toLowerCase();
  141.                if ((var3 = var4.indexOf(".class")) != -1) {
  142.                   this.cname = this.cname.substring(0, var3);
  143.                }
  144.  
  145.                this.codebase = ACutil.GetInternalTagValue("codebase", var1, 3, false);
  146.                if (this.codebase.equals("-1")) {
  147.                   this.codebase = ".";
  148.                }
  149.  
  150.                this.appHeight = ACutil.GetInternalTagValue("height", var1, 2, false);
  151.                this.appWidth = ACutil.GetInternalTagValue("width", var1, 2, false);
  152.                return true;
  153.             }
  154.          } else {
  155.             return false;
  156.          }
  157.       } else {
  158.          return false;
  159.       }
  160.    }
  161.  
  162.    private void addBranchParams() {
  163.       String var1 = "";
  164.       if (this.appinfo.branch_level) {
  165.          String[] var2 = this.appinfo.getBranchDefValues();
  166.          String[] var3 = this.appinfo.getBranchParamDescs();
  167.          this.appinfo.getBranchKeys();
  168.          int var4 = var2.length;
  169.          String[] var5 = new String[var4];
  170.          MLparam var6 = this.appinfo.specml_params;
  171.          int var7 = var6.getBranchIDCount();
  172.          String[] var8 = var6.getBranchIds();
  173.  
  174.          for(int var9 = 0; var9 < var7; ++var9) {
  175.             var5 = new String[var4];
  176.  
  177.             for(int var10 = 0; var10 < var4; ++var10) {
  178.                String var11 = var8[var9].replace('-', '_');
  179.                if ((var1 = this.getParameter(true, var3[var10] + var11)) != null) {
  180.                   var5[var10] = var1;
  181.                } else {
  182.                   var5[var10] = var2[var10];
  183.                }
  184.             }
  185.  
  186.             this.appinfo.addBranchDataFromFile(var8[var9], var5);
  187.          }
  188.  
  189.       }
  190.    }
  191.  
  192.    private void getRawPage() {
  193.       try {
  194.          FileInputStream var1 = new FileInputStream(this.openedfile);
  195.          DataInputStream var2 = new DataInputStream(var1);
  196.          long var3 = this.openedfile.length();
  197.          byte[] var5 = new byte[(int)var3];
  198.          var2.readFully(var5);
  199.          this.rawPage = new String(var5, 0);
  200.       } catch (IOException var6) {
  201.       }
  202.    }
  203.  
  204.    private String getNewPreviewPage(String var1, String var2, int var3, boolean var4) {
  205.       String[] var5 = this.rawinfo.getAppletInfo(var3);
  206.       String var6 = "";
  207.       String var7 = ACutil.getPreviewDirectoryPath() + File.separator;
  208.       File var8 = new File(ACutila.workingFolder, this.iface.preview_file_name);
  209.       var6 = ACutil.getRelative(var8.getParent() + File.separator, var7, false);
  210.       var6 = var6.replace('\\', '/');
  211.       String var9 = "";
  212.       int var10 = var2.lastIndexOf("/");
  213.       if (var10 > -1 && var10 != var2.length() - 1) {
  214.          var9 = var2.substring(0, var10 + 1);
  215.       }
  216.  
  217.       var1 = ACutil.DelUnwanted(var1, var2, var6 + var5[2] + "_data.js");
  218.  
  219.       for(int var11 = 3; var11 < var5.length; ++var11) {
  220.          String var12 = var9 + var5[var11] + ".js";
  221.          var1 = ACutil.DelUnwanted(var1, var12, var6 + var5[var11] + ".js");
  222.       }
  223.  
  224.       return var1;
  225.    }
  226.  
  227.    private void addIconParams() {
  228.       String var1 = "";
  229.       boolean var2 = false;
  230.       if (this.appinfo.icon_level) {
  231.          String[] var3 = this.appinfo.getIconParamDescs();
  232.          String[] var4 = this.appinfo.getIconDefValues();
  233.          if (var3 != null) {
  234.             this.appinfo.getIconKeys();
  235.             int var5 = var3.length;
  236.             String var6 = var3[0];
  237.  
  238.             int var7;
  239.             for(var7 = 0; this.getParameter(false, var6 + var7) != null; ++var7) {
  240.             }
  241.  
  242.             for(int var8 = 0; var8 < var7; ++var8) {
  243.                String[] var9 = new String[var5];
  244.  
  245.                for(int var10 = 0; var10 < var5; ++var10) {
  246.                   if ((var1 = this.getParameter(true, var3[var10] + var8)) != null) {
  247.                      var9[var10] = var1;
  248.                   } else {
  249.                      var9[var10] = var4[var10];
  250.                   }
  251.                }
  252.  
  253.                if (!var2) {
  254.                   this.appinfo.max_icon_index = -1;
  255.                   this.appinfo.cur_icon_index = -1;
  256.                   var2 = true;
  257.                }
  258.  
  259.                this.appinfo.addIconParam(var9);
  260.             }
  261.  
  262.          }
  263.       }
  264.    }
  265.  
  266.    private void addParameterValues() {
  267.       String[] var1 = this.appinfo.getDefParamDescs();
  268.       String[] var2 = this.appinfo.getDefDefValues();
  269.       this.appinfo.getDefKeys();
  270.  
  271.       for(int var3 = 0; var3 < var2.length; ++var3) {
  272.          var2[var3] = "<none>";
  273.       }
  274.  
  275.       for(int var13 = 0; var13 < var1.length; ++var13) {
  276.          for(int var4 = 0; var4 < this.pvector.size(); ++var4) {
  277.             if (var1[var13].equalsIgnoreCase(((String[])this.pvector.elementAt(var4))[0])) {
  278.                var2[var13] = ((String[])this.pvector.elementAt(var4))[1];
  279.                this.pvector.removeElementAt(var4);
  280.             }
  281.          }
  282.       }
  283.  
  284.       this.appinfo.updateDefParams(var2);
  285.       String[] var14 = this.appinfo.getSpecParamDescs();
  286.       String[] var15 = this.appinfo.getSpecDefValues();
  287.       int[] var5 = this.appinfo.getSpecKeys();
  288.       int var6 = var14.length;
  289.       String var7 = var14[0];
  290.  
  291.       int var8;
  292.       for(var8 = 0; this.getParameter(false, var7 + var8) != null; ++var8) {
  293.       }
  294.  
  295.       for(int var10 = 0; var10 < var8; ++var10) {
  296.          String[] var11 = new String[var6];
  297.  
  298.          for(int var12 = 0; var12 < var6; ++var12) {
  299.             String var9;
  300.             if ((var9 = this.getParameter(true, var14[var12] + var10)) != null) {
  301.                if (var5[var12] == 20) {
  302.                   var11[var12] = var9;
  303.                } else if (var5[var12] == 8) {
  304.                   var11[var12] = ACutil.replaceEndChars(var9, "|", " ");
  305.                } else {
  306.                   var11[var12] = var9;
  307.                }
  308.             } else {
  309.                var11[var12] = var15[var12];
  310.             }
  311.          }
  312.  
  313.          this.appinfo.addSpecParam(var11);
  314.       }
  315.  
  316.       this.addMLParams();
  317.       this.addIconParams();
  318.       this.addBranchParams();
  319.    }
  320.  
  321.    private String getParameter(boolean var1, String var2) {
  322.       for(int var4 = 0; var4 < this.pvector.size(); ++var4) {
  323.          if (var2.equals(((String[])this.pvector.elementAt(var4))[0])) {
  324.             String var3 = ((String[])this.pvector.elementAt(var4))[1];
  325.             if (var1) {
  326.                this.pvector.removeElementAt(var4);
  327.             }
  328.  
  329.             return var3;
  330.          }
  331.       }
  332.  
  333.       return null;
  334.    }
  335.  
  336.    private void addMLParams() {
  337.       String var1 = "";
  338.       if (this.appinfo.multi_level) {
  339.          String[] var2 = this.appinfo.getSpecMLDefValues();
  340.          String[] var3 = this.appinfo.getSpecMLParamDescs();
  341.          this.appinfo.getSpecMLKeys();
  342.          int var4 = var2.length;
  343.          String[] var5 = new String[var4];
  344.          String var6 = var3[0];
  345.          Vector var7 = new Vector();
  346.  
  347.          for(int var9 = 0; var9 < this.pvector.size(); ++var9) {
  348.             String var8 = ((String[])this.pvector.elementAt(var9))[0];
  349.             if (var8.indexOf(var6) != -1) {
  350.                String var10 = var8.substring(var6.length(), var8.length());
  351.                var7.addElement(var10);
  352.             }
  353.          }
  354.  
  355.          for(int var16 = 0; var16 < var7.size(); ++var16) {
  356.             var5 = new String[var4];
  357.             String var14 = ((String)var7.elementAt(var16)).trim();
  358.  
  359.             for(int var11 = 0; var11 < var4; ++var11) {
  360.                if ((var1 = this.getParameter(true, var3[var11] + var14)) != null) {
  361.                   var5[var11] = var1;
  362.                } else {
  363.                   var5[var11] = var2[var11];
  364.                }
  365.             }
  366.  
  367.             var14 = var14.replace('_', '-');
  368.             this.appinfo.addSpecMLParamFFile(var14, var5);
  369.             if (this.appinfo.branch_level) {
  370.                this.appinfo.initBranchFromFile(var14);
  371.             }
  372.          }
  373.  
  374.          this.appinfo.specml_params.getTreeIds();
  375.          this.appinfo.cur_tree_index = 0;
  376.          this.appinfo.max_tree_index = 0;
  377.          this.appinfo.cur_tree_level = 1;
  378.          this.appinfo.max_tree_level = 1;
  379.          this.appinfo.resetTree(this.appinfo.cur_spec_index);
  380.          this.appinfo.cur_tree_index = this.appinfo.max_tree_index;
  381.       }
  382.    }
  383.  
  384.    private void addLevelParams() {
  385.       String var1 = "";
  386.       boolean var2 = false;
  387.       if (this.appinfo.level_level) {
  388.          String[] var3 = this.appinfo.getLevelParamDescs();
  389.          String[] var4 = this.appinfo.getLevelDefValues();
  390.          if (var3 != null) {
  391.             int[] var5 = this.appinfo.getLevelKeys();
  392.             int var6 = var3.length;
  393.             int var7 = this.appinfo.specml_params.getMaxLevel();
  394.             this.appinfo.max_tree_level = 0;
  395.  
  396.             for(int var8 = 0; var8 < var7; ++var8) {
  397.                String[] var9 = new String[var6];
  398.  
  399.                for(int var10 = 0; var10 < var6; ++var10) {
  400.                   if ((var1 = this.getParameter(true, var3[var10] + var8)) != null) {
  401.                      if (var5[var10] == 20) {
  402.                         this.setImgFolder(var1);
  403.                         String var12 = (new File(var1)).getName();
  404.                         if (var12 == null) {
  405.                            var12 = ".";
  406.                         }
  407.  
  408.                         if (var1.lastIndexOf(":") != -1) {
  409.                            var9[var10] = var1;
  410.                         }
  411.  
  412.                         if (!(new File(var9[var10])).isFile()) {
  413.                            var9[var10] = var1;
  414.                         }
  415.                      } else {
  416.                         var9[var10] = var1;
  417.                      }
  418.                   } else {
  419.                      var9[var10] = var4[var10];
  420.                   }
  421.                }
  422.  
  423.                if (!var2) {
  424.                   var2 = true;
  425.                }
  426.  
  427.                this.appinfo.addLevelFromFile(var9);
  428.             }
  429.  
  430.          }
  431.       }
  432.    }
  433.  
  434.    private void openFile() {
  435.       boolean var1 = false;
  436.       boolean var2 = false;
  437.       String var3 = "";
  438.       String var4 = "";
  439.       if (this.tclassName.equals("-1")) {
  440.          if (this.openedfile == null) {
  441.             return;
  442.          }
  443.  
  444.          if (!this.iface.noApplet) {
  445.             this.iface.closeAppletUI();
  446.          }
  447.  
  448.          this.iface.lastSave = new File(this.openedfile.toString());
  449.       } else {
  450.          this.openedfile = new File(ACutil.getTemplateFilePath(this.tclassName));
  451.       }
  452.  
  453.       ACutila.workingFolder = this.openedfile.getParent();
  454.       this.getRawPage();
  455.       this.iface.open_rawpage = this.rawPage;
  456.       String[] var5 = new String[]{"ocdvs", "ocdnm"};
  457.       String var6 = this.rawPage.toLowerCase();
  458.       boolean var7 = false;
  459.       String var8 = "";
  460.       int var9 = 0;
  461.  
  462.       for(int var10 = 0; var10 < var5.length; ++var10) {
  463.          var9 = var6.indexOf(var5[var10]);
  464.          if (var9 > -1) {
  465.             this.cname = var5[var10].substring(2);
  466.             this.sel = var10;
  467.             break;
  468.          }
  469.       }
  470.  
  471.       if (var9 == -1) {
  472.          new OCDialog(this.iface, true, "The selected page does not contain a valid Visual DHTML tool.", "Error");
  473.       } else {
  474.          int var19 = var6.indexOf("<body");
  475.          if (var19 > -1) {
  476.             int var11 = var6.indexOf(">", var19);
  477.             if (var11 > -1) {
  478.                var6.substring(var19, var11 + 1);
  479.                String var12 = ACutil.GetInternalTagValue("bgcolor", var6, 1, false);
  480.                if (!var12.equals("-1")) {
  481.                   var12 = "#" + var12;
  482.                   ACutilWindow.daColor = occcolor.ConvertColor(var12);
  483.                   ACutilWindow.daColorHex = var12;
  484.                } else {
  485.                   ACutilWindow.daColor = new Color(255, 255, 255);
  486.                   ACutilWindow.daColorHex = "#FFFFFF";
  487.                }
  488.             }
  489.          } else {
  490.             ACutilWindow.daColor = new Color(255, 255, 255);
  491.             ACutilWindow.daColorHex = "#FFFFFF";
  492.          }
  493.  
  494.          int var21 = var6.indexOf(">", var9);
  495.          int var13 = var6.lastIndexOf("=", var9);
  496.          if (var21 > -1 && var13 > -1) {
  497.             var7 = true;
  498.             var8 = this.rawPage.substring(var13 + 1, var21);
  499.             if (var8.length() > 1) {
  500.                var8 = var8.trim();
  501.                if (var8.substring(0, 1).equals("'") || var8.substring(0, 1).equals("\"")) {
  502.                   var8 = var8.substring(1);
  503.                }
  504.  
  505.                if (var8.substring(var8.length() - 1).equals("'") || var8.substring(var8.length() - 1).equals("\"")) {
  506.                   var8 = var8.substring(0, var8.length() - 1);
  507.                }
  508.             }
  509.  
  510.             if (var8.indexOf("/") == -1) {
  511.                var4 = this.rawPage;
  512.                var3 = var8;
  513.                var2 = true;
  514.                var1 = true;
  515.             } else {
  516.                var4 = this.rawPage;
  517.                var3 = var8;
  518.                var2 = true;
  519.                var1 = false;
  520.             }
  521.  
  522.             var8 = ACutil.getAbsoluteFromRelativeHTML(this.openedfile.getParent(), var8);
  523.          }
  524.  
  525.          this.openedfile = new File(var8);
  526.          this.getRawPage();
  527.          if (this.rawPage == null) {
  528.             new OCDialog(this.iface, true, "An error occured attempting to open the data file - No Data Found", "Error");
  529.          } else {
  530.             if (!this.isTemplate) {
  531.                ACutila.scriptFolder = this.openedfile.getParent();
  532.             }
  533.  
  534.             String[][] var14 = this.rawinfo.getParamInfo(this.sel);
  535.             this.appinfo = new APInfo(var14, true);
  536.             this.pvector = buildTokenString(this.rawPage);
  537.             this.addParameterValues();
  538.             this.rawinfo.curSelection = this.sel;
  539.             String var15 = this.rawinfo.getAppletInfo(this.sel)[1];
  540.             String var16 = this.rawinfo.getAppletInfo(this.sel)[0];
  541.             this.iface.initACIntf(1, this.appinfo, var15, this.cname, var16);
  542.             this.iface.opened = true;
  543.             if (this.isTemplate) {
  544.                this.iface.lastSave = null;
  545.                this.iface.opened = false;
  546.             } else {
  547.                if (var2) {
  548.                   this.iface.open_previewpage = this.getNewPreviewPage(var4, var3, this.sel, var1);
  549.                   this.iface.open_file_replace_string = var3;
  550.                }
  551.  
  552.                ACutila.classesFolder = ACutil.getAbsoluteFromRelative(this.iface.lastSave.getParent(), this.codebase);
  553.                if (ACutila.classesFolder.equals(this.iface.lastSave.getParent())) {
  554.                   ACutila.classesFolder = "<same>";
  555.                }
  556.  
  557.             }
  558.          }
  559.       }
  560.    }
  561. }
  562.