home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Netobjs / Install.exe / data1.cab / Components / SiteMapper / SitemapComp.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-12-16  |  7.6 KB  |  262 lines

  1. package SitemapComp;
  2.  
  3. import com.netobjects.nfc.api.CStringArray;
  4. import com.netobjects.nfc.api.ComponentApp;
  5. import com.netobjects.nfc.api.DAssetManager;
  6. import com.netobjects.nfc.api.DDrawPicture;
  7. import com.netobjects.nfc.api.DFile;
  8. import com.netobjects.nfc.api.DImage;
  9. import com.netobjects.nfc.api.DLayout;
  10. import com.netobjects.nfc.api.DMessageBox;
  11. import com.netobjects.nfc.api.DRect;
  12. import com.netobjects.nfc.api.DSite;
  13. import com.netobjects.nfc.api.DSize;
  14. import com.netobjects.nfc.api.IDInspector;
  15.  
  16. public class SitemapComp extends ComponentApp {
  17.    int[] idApplet;
  18.    int idImage;
  19.    int idScript;
  20.    int Gcontext;
  21.    boolean s_published;
  22.    DAssetManager assMan;
  23.    String m_codebase;
  24.    DDrawPicture thePicture;
  25.    String sepChar;
  26.    DFile tempfile;
  27.    String Version = "3.0.0";
  28.  
  29.    private void debug(String var1) {
  30.       new DMessageBox();
  31.    }
  32.  
  33.    public String getLocation(int var1) {
  34.       String var2 = this.assMan.GetAssetLocation(var1, this.Gcontext, 1);
  35.       var2.replace(' ', '_');
  36.       var2.replace('\\', '/');
  37.       if (var2.indexOf(":/") > 0) {
  38.          var2.replace(':', '|');
  39.       }
  40.  
  41.       if (var2.indexOf(".//") == 0) {
  42.          var2 = "./" + var2.substring(3);
  43.       } else {
  44.          var2.replace(':', '/');
  45.       }
  46.  
  47.       return var2;
  48.    }
  49.  
  50.    public void onPublish(DAssetManager var1, int var2) {
  51.       this.assMan = var1;
  52.       this.m_codebase = this.thePicture.getCodeBase();
  53.       if (this.idApplet[3] > 0) {
  54.          var1.RemoveAsset(this.idApplet[3]);
  55.       }
  56.  
  57.       if (this.Version == null) {
  58.          this.Version = "3.0.0";
  59.          int[] var9 = this.idApplet;
  60.          this.idApplet = new int[13];
  61.  
  62.          for(int var10 = 0; var10 < var9.length; ++var10) {
  63.             this.idApplet[var10] = var9[var10];
  64.          }
  65.  
  66.          this.s_published = false;
  67.          if (this.idScript > 0) {
  68.             var1.RemoveAsset(this.idScript);
  69.          }
  70.  
  71.          this.idApplet[12] = 0;
  72.  
  73.          for(int var33 = 0; var33 < this.idApplet.length; ++var33) {
  74.             if (this.idApplet[var33] > 0) {
  75.                var1.RemoveAsset(this.idApplet[var33]);
  76.             }
  77.          }
  78.  
  79.          this.idApplet[0] = this.assMan.AddAsset(this.m_codebase + "Sitemapper.class", "Applets/Plug-ins", "/");
  80.          this.idApplet[1] = this.assMan.AddAsset(this.m_codebase + "button_panel.class", "Applets/Plug-ins", "/");
  81.          this.idApplet[2] = this.assMan.AddAsset(this.m_codebase + "check_box_panel.class", "Applets/Plug-ins", "/");
  82.          this.idApplet[3] = 0;
  83.          this.idApplet[4] = this.assMan.AddAsset(this.m_codebase + "nav_canvas.class", "Applets/Plug-ins", "/");
  84.          this.idApplet[5] = this.assMan.AddAsset(this.m_codebase + "outline_list.class", "Applets/Plug-ins", "/");
  85.          this.idApplet[6] = this.assMan.AddAsset(this.m_codebase + "search_panel.class", "Applets/Plug-ins", "/");
  86.          this.idApplet[7] = this.assMan.AddAsset(this.m_codebase + "tree_entry.class", "Applets/Plug-ins", "/");
  87.          this.idApplet[8] = this.assMan.AddAsset(this.m_codebase + "tree_grid_builder.class", "Applets/Plug-ins", "/");
  88.          this.idApplet[9] = this.assMan.AddAsset(this.m_codebase + "web_structure_builder.class", "Applets/Plug-ins", "/");
  89.          this.idApplet[10] = this.assMan.AddAsset(this.m_codebase + "Sitemapper.cab", "Applets/Plug-ins", "/");
  90.          this.idApplet[11] = this.assMan.AddAsset(this.m_codebase + "Sitemapper.zip", "Applets/Plug-ins", "/");
  91.       }
  92.  
  93.       this.Gcontext = var2;
  94.       this.thePicture.setHTMLBefore("<a href =\"JavaScript:go();\" target=\"_self\">");
  95.       this.thePicture.setHTMLAfter("</a>");
  96.       this.updateSitemapperHTML(var2);
  97.       int var3 = this.assMan.GetFileNumber(this.m_codebase + "Sitemapper.html");
  98.       if (var3 == 0) {
  99.          if (this.idApplet[12] > 0) {
  100.             this.assMan.RemoveAsset(this.idApplet[12]);
  101.          }
  102.  
  103.          this.idApplet[12] = this.assMan.AddAsset(this.m_codebase + "Sitemapper.html", "HTML", "/");
  104.       }
  105.  
  106.       new DFile();
  107.       DLayout var5 = this.thePicture.getLayout();
  108.       String var6 = var5.GetHomePath();
  109.       var3 = this.idApplet[12];
  110.       String var7 = this.assMan.GetAssetLocation(var3, var2, 1);
  111.       String var8 = "<script language=\"JavaScript\">\n";
  112.       var8 = var8 + "<!--\n";
  113.       var8 = var8 + "top.name=\"netobjects_main_power\";\n";
  114.       var8 = var8 + "function go(){\n";
  115.       var8 = var8 + "//use time to create navigator name(allow random).\n";
  116.       var8 = var8 + "  if (navigator.userAgent.substring(0,9) != \"Mozilla/2\"){\n";
  117.       var8 = var8 + "   //3.0 and above\n";
  118.       var8 = var8 + "    var WinName = window.open('" + var7 + "','netobjects_nav','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0,width=385,height=335');\n";
  119.       var8 = var8 + "  }\n";
  120.       var8 = var8 + "  else if  (window.name == \"netobjects_main_power\"){\n";
  121.       var8 = var8 + "    //2.0 re-entry position - main window already have name\n";
  122.       var8 = var8 + "    var WinName = window.open('" + var7 + "','netobjects_nav','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0,width=385,height=335');\n";
  123.       var8 = var8 + "  }\n";
  124.       var8 = var8 + "  else {\n";
  125.       var8 = var8 + "    //2.0\n";
  126.       var8 = var8 + "    var Replace = window.open(window.location,\"netobjects_main_power\");\n";
  127.       var8 = var8 + "    var WinName = window.open('" + var7 + "','netobjects_nav','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0,width=385,height=335');\n";
  128.       var8 = var8 + "    window.close();\n";
  129.       var8 = var8 + "  }\n";
  130.       var8 = var8 + "}\n";
  131.       var8 = var8 + "//-->\n";
  132.       var8 = var8 + "</script>\n";
  133.       var5.setHTMLBefore(var8);
  134.    }
  135.  
  136.    protected void finalize() {
  137.       int var1 = 12;
  138.       if (this.s_published) {
  139.          ++var1;
  140.       }
  141.  
  142.       for(int var2 = 0; var2 < var1; ++var2) {
  143.          this.assMan.RemoveAsset(this.idApplet[var2]);
  144.       }
  145.  
  146.       this.assMan.RemoveAsset(this.idImage);
  147.       this.assMan.RemoveAsset(this.idScript);
  148.    }
  149.  
  150.    public String PropertyListener(String var1, String var2, int var3, int var4, IDInspector var5) {
  151.       if (var3 == 1) {
  152.          if (var1.compareTo("Image") == 0) {
  153.             return Integer.toString(this.idImage);
  154.          }
  155.       } else if (var1.compareTo("Image") == 0) {
  156.          this.assMan.RemoveAsset(this.idImage);
  157.          this.idImage = Integer.parseInt(var2, 10);
  158.          this.thePicture.setImageFile(this.assMan.GetAssetLocation(this.idImage, 1, 1));
  159.       }
  160.  
  161.       return "";
  162.    }
  163.  
  164.    public String onInstall(DAssetManager var1, String var2) {
  165.       this.m_codebase = var2;
  166.       this.assMan = var1;
  167.       return "SiteMapper";
  168.    }
  169.  
  170.    public void onInspect(CStringArray var1, CStringArray var2) {
  171.       var1.Set("Image");
  172.       var2.Set("Image");
  173.    }
  174.  
  175.    public void updateSitemapperHTML(int var1) {
  176.       DLayout var2 = this.thePicture.getLayout();
  177.       DSite var3 = var2.getSite();
  178.       new DMessageBox();
  179.       String var5 = this.m_codebase + "Sitemapper.html";
  180.       DFile var6 = new DFile();
  181.       if (var6.Open(var5, 4097)) {
  182.          String var7 = "<HTML>\n";
  183.          var7 = var7 + "<HEAD>\n";
  184.          var7 = var7 + "<TITLE> SiteMapper </TITLE>\n";
  185.          var7 = var7 + "</HEAD>\n";
  186.          var7 = var7 + "<BODY BGCOLOR=#ffffff onload=\"if(navigator.userAgent.substring(0,9) == 'Mozilla/3'){focus()}\">\n";
  187.          var7 = var7 + "<script language=\"JavaScript\">\n";
  188.          var7 = var7 + "<!--\n";
  189.          var7 = var7 + "document.write('<APPLET CODE=\"Sitemapper.class\"";
  190.          var6.WriteString(var7, -1);
  191.          if (var1 == 0 || var1 == 1) {
  192.             this.m_codebase.replace('\\', '/');
  193.             var6.WriteString(" CODEBASE=\"file:///" + this.m_codebase + "\"", -1);
  194.          }
  195.  
  196.          var7 = " ARCHIVE=\"Sitemapper.zip\" WIDTH=350 HEIGHT=300>');\n";
  197.          var7 = var7 + "//-->\n";
  198.          var7 = var7 + "</script>\n";
  199.          var7 = var7 + "<param name=\"cabbase\" value=\"Sitemapper.cab\">\n";
  200.          var7 = var7 + "<param name=\"source_file\" value=\"" + var3.getSiteInfo() + "\">\n";
  201.          var7 = var7 + "</APPLET>\n";
  202.          var7 = var7 + "</BODY>\n";
  203.          var7 = var7 + "</HTML>\n";
  204.          var6.WriteString(var7, -1);
  205.          var6.Close();
  206.          if (!this.s_published) {
  207.             this.idApplet[12] = this.assMan.AddAsset(this.m_codebase + "Sitemapper.html", "HTML", "/");
  208.             this.s_published = true;
  209.          }
  210.  
  211.       }
  212.    }
  213.  
  214.    public void onDrop(DLayout var1, DRect var2, int var3) {
  215.       if (var3 == 1) {
  216.          this.tempfile = new DFile();
  217.          this.sepChar = this.tempfile.GetPathChar();
  218.          this.thePicture = new DDrawPicture();
  219.          this.m_codebase = this.thePicture.getCodeBase();
  220.          this.idApplet = new int[13];
  221.          this.idImage = this.assMan.AddAsset(this.m_codebase + "Sitemapper.gif", "Image", "/");
  222.          this.idApplet[0] = this.assMan.AddAsset(this.m_codebase + "Sitemapper.class", "Applets/Plug-ins", "/");
  223.          this.idApplet[1] = this.assMan.AddAsset(this.m_codebase + "button_panel.class", "Applets/Plug-ins", "/");
  224.          this.idApplet[2] = this.assMan.AddAsset(this.m_codebase + "check_box_panel.class", "Applets/Plug-ins", "/");
  225.          this.idApplet[3] = 0;
  226.          this.idApplet[4] = this.assMan.AddAsset(this.m_codebase + "nav_canvas.class", "Applets/Plug-ins", "/");
  227.          this.idApplet[5] = this.assMan.AddAsset(this.m_codebase + "outline_list.class", "Applets/Plug-ins", "/");
  228.          this.idApplet[6] = this.assMan.AddAsset(this.m_codebase + "search_panel.class", "Applets/Plug-ins", "/");
  229.          this.idApplet[7] = this.assMan.AddAsset(this.m_codebase + "tree_entry.class", "Applets/Plug-ins", "/");
  230.          this.idApplet[8] = this.assMan.AddAsset(this.m_codebase + "tree_grid_builder.class", "Applets/Plug-ins", "/");
  231.          this.idApplet[9] = this.assMan.AddAsset(this.m_codebase + "web_structure_builder.class", "Applets/Plug-ins", "/");
  232.          this.idApplet[10] = this.assMan.AddAsset(this.m_codebase + "Sitemapper.cab", "Applets/Plug-ins", "/");
  233.          this.idApplet[11] = this.assMan.AddAsset(this.m_codebase + "Sitemapper.zip", "Applets/Plug-ins", "/");
  234.          String var4 = this.assMan.GetAssetLocation(this.idImage, 0, 1);
  235.          this.thePicture.setImageFile(var4);
  236.          DImage var5 = new DImage();
  237.          var5.setImageFile(var4);
  238.          DSize var6 = var5.getSize();
  239.          this.thePicture.SetPositionRect(var2.getLeft(), var2.getTop(), var2.getLeft() + var6.getWidth(), var2.getTop() + var6.getHeight());
  240.          this.thePicture.setStretch(1);
  241.          var1.AddObject(this.thePicture);
  242.          DLayout var7 = this.thePicture.getLayout();
  243.          DSite var8 = var7.getSite();
  244.          this.s_published = false;
  245.       }
  246.  
  247.    }
  248.  
  249.    public void onCopy() {
  250.       this.assMan.CopyAsset(this.idImage);
  251.       this.assMan.CopyAsset(this.idScript);
  252.       int[] var1 = new int[12];
  253.  
  254.       for(int var2 = 0; var2 < 12; ++var2) {
  255.          var1[var2] = this.idApplet[var2];
  256.          this.assMan.CopyAsset(this.idApplet[var2]);
  257.       }
  258.  
  259.       this.idApplet = var1;
  260.    }
  261. }
  262.