home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2002 June / INTERNET92.ISO / pc / software / windows / building / visual_dhtml / visualdhtmlwin9x_nt.exe / insertTo.___ (.txt) < prev    next >
Encoding:
Java Class File  |  2001-10-19  |  7.3 KB  |  292 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.Component;
  7. import java.awt.Container;
  8. import java.awt.Dialog;
  9. import java.awt.Dimension;
  10. import java.awt.Event;
  11. import java.awt.Font;
  12. import java.awt.Frame;
  13. import java.awt.Menu;
  14. import java.awt.MenuBar;
  15. import java.awt.MenuItem;
  16. import java.awt.Point;
  17. import java.awt.Window;
  18. import java.io.DataInputStream;
  19. import java.io.File;
  20. import java.io.FileInputStream;
  21. import java.io.FileOutputStream;
  22. import java.io.IOException;
  23. import java.io.PrintStream;
  24.  
  25. class insertToPage extends Frame {
  26.    // $FF: renamed from: in java.io.FileInputStream
  27.    private FileInputStream field_0 = null;
  28.    public OCTextAreaKeepFocus text_area;
  29.    private FileOutputStream out = null;
  30.    private String defaultText = "Select HTML File...";
  31.    private int oldPos = -1;
  32.    boolean fileOpened = false;
  33.    boolean use_insafterbody = true;
  34.    AIPars rawinfo;
  35.    File openedfile;
  36.    String rawPage;
  37.    String alteredPage;
  38.    String trelative = "";
  39.    String ins_atpointer = "";
  40.    String ins_afterbody = "";
  41.    private String data_filename = "";
  42.  
  43.    private void saveWithOpenedPage(File var1) {
  44.       PrintStream var3 = null;
  45.  
  46.       try {
  47.          FileOutputStream var2 = new FileOutputStream(var1);
  48.          var3 = new PrintStream(var2);
  49.          var3.println(this.alteredPage);
  50.          var3.close();
  51.       } catch (IOException var4) {
  52.          var3.close();
  53.       }
  54.    }
  55.  
  56.    private void getFileInvoked() {
  57.       OpenFileDialog var1 = new OpenFileDialog();
  58.       ((FileDialog)var1).setFileName("Untitled.html");
  59.       ((FileDialog)var1).setDefaultExt(".html");
  60.       ((FileDialog)var1).setFilter("HTML Files (*.html;*.htm)|*.html;*.htm");
  61.       if (ACutila.iface.lastSave != null) {
  62.          ((FileDialog)var1).setInitialDir(ACutila.iface.lastSave.getParent());
  63.       } else {
  64.          ((FileDialog)var1).setInitialDir(ACutil.getClassPath());
  65.       }
  66.  
  67.       int var2 = ((CommonDialog)var1).showDialog();
  68.       if (var2 == 1 && ((FileDialog)var1).getFileName() != null) {
  69.          this.openedfile = new File(((FileDialog)var1).getFileName());
  70.          if (this.getRawPage()) {
  71.             if (this.getInsertData()) {
  72.                this.text_area.setText(this.rawPage);
  73.                this.alteredPage = new String(this.rawPage);
  74.                this.fileOpened = true;
  75.                return;
  76.             }
  77.          } else {
  78.             new OCDialog(this, true, "Error opening selected file.", "Error");
  79.          }
  80.  
  81.       } else {
  82.          this.openedfile = null;
  83.       }
  84.    }
  85.  
  86.    public insertToPage(AIPars var1) throws IOException {
  87.       this.rawinfo = var1;
  88.       MenuBar var2 = new MenuBar();
  89.       Menu var3 = new Menu("File", true);
  90.       MenuItem[] var4 = new MenuItem[]{new MenuItem("Open..."), new MenuItem("-"), new MenuItem("Save"), new MenuItem("-"), new MenuItem("Close")};
  91.  
  92.       for(int var5 = 0; var5 < var4.length; ++var5) {
  93.          var3.add(var4[var5]);
  94.       }
  95.  
  96.       var2.add(var3);
  97.       ((Frame)this).setMenuBar(var2);
  98.       insertToPageButtons var6 = new insertToPageButtons(this);
  99.       var6.resize(10, 30);
  100.       this.text_area = new OCTextAreaKeepFocus(this.defaultText);
  101.       this.text_area.setFont(new Font("Helvetica", 0, 12));
  102.       this.text_area.setEditable(true);
  103.       ((Container)this).add("Center", this.text_area);
  104.       ((Container)this).add("South", var6);
  105.       this.text_area.setEditable(false);
  106.       ((Frame)this).setTitle("Export / Insert To HTML");
  107.       this.reshape(ACgldat.texy.width, ACgldat.texy.height, ACgldat.tesize.width, ACgldat.tesize.height);
  108.       ((Window)this).show();
  109.       ((Component)this).requestFocus();
  110.       Application.createThread(new MethodInvoker(this, "getFileInvoked"));
  111.    }
  112.  
  113.    private String getDataFileName() {
  114.       String var1 = "";
  115.       Object var2 = null;
  116.       File var11 = this.openedfile;
  117.       String[] var3 = this.rawinfo.getAppletInfo(this.rawinfo.curSelection);
  118.       String var4 = "";
  119.       if (ACutila.scriptFolder.indexOf("same") != -1) {
  120.          var4 = var11.getParent();
  121.       } else if (!(new File(ACutila.scriptFolder)).isDirectory()) {
  122.          new OCDialog(this, true, "Error - Cannot find specified script folder: " + ACutila.scriptFolder, "Error");
  123.          var4 = var11.getParent();
  124.       } else {
  125.          var4 = ACutila.scriptFolder;
  126.       }
  127.  
  128.       var1 = "oc" + var3[2] + "=";
  129.       String var5 = "";
  130.       var5 = var11.getName().replace('.', '~');
  131.       var1 = var1 + ACutil.getRelative(ACutil.conditionallyAddEndFileSeparator(var4), var11.getParent() + File.separator, false) + var5;
  132.       var1 = var1.replace('.', '~');
  133.       var1 = var1.replace(File.separator.charAt(0), '_');
  134.       var1 = var1 + ".js";
  135.       this.data_filename = var1;
  136.       return var1;
  137.    }
  138.  
  139.    public void insert() {
  140.       if (this.fileOpened) {
  141.          String var1 = this.ins_atpointer;
  142.          int var2 = var1.length();
  143.          int var3 = this.text_area.getCaretPosition();
  144.          if (this.oldPos > -1 && var3 > this.oldPos) {
  145.             if (var3 <= this.oldPos + var1.length()) {
  146.                return;
  147.             }
  148.  
  149.             var3 -= var2;
  150.          }
  151.  
  152.          this.oldPos = var3;
  153.          if (this.oldPos > -1) {
  154.             this.text_area.setText(this.rawPage);
  155.          }
  156.  
  157.          this.text_area.insert(var1, var3);
  158.          this.alteredPage = this.text_area.getText();
  159.       }
  160.    }
  161.  
  162.    private boolean getRawPage() {
  163.       try {
  164.          FileInputStream var1 = new FileInputStream(this.openedfile);
  165.          DataInputStream var2 = new DataInputStream(var1);
  166.          long var3 = this.openedfile.length();
  167.          byte[] var5 = new byte[(int)var3];
  168.          var2.readFully(var5);
  169.          this.rawPage = new String(var5, 0);
  170.          var1.close();
  171.          return true;
  172.       } catch (IOException var6) {
  173.          new OCDialog(this, true, "Error opening selected file.", "Error");
  174.          return false;
  175.       }
  176.    }
  177.  
  178.    public void resize(Dimension var1) {
  179.       super.resize(var1);
  180.    }
  181.  
  182.    public void resize(int var1, int var2) {
  183.       super.resize(var1, var2);
  184.    }
  185.  
  186.    public boolean getInsertData() {
  187.       if (ACutila.scriptFolder.toLowerCase().indexOf("<same>") == -1) {
  188.          this.trelative = "";
  189.          String var1 = ACutila.scriptFolder;
  190.          if (var1.lastIndexOf(File.separator) != var1.length() - 1) {
  191.             var1 = var1 + File.separator;
  192.          }
  193.  
  194.          this.trelative = ACutil.getRelative(this.openedfile.getParent() + File.separator, var1, false);
  195.          this.trelative = this.trelative.replace('\\', '/');
  196.       } else {
  197.          this.trelative = "";
  198.       }
  199.  
  200.       this.rawinfo.getAppletInfo(this.rawinfo.curSelection);
  201.       String var5 = this.trelative + this.getDataFileName();
  202.       var5 = "<script language='JavaScript1.2' src='" + var5 + "'></script>";
  203.       if (ACutila.iface.primeclass.equals("dnm")) {
  204.          if (this.rawPage.indexOf("ocdnm=") > -1) {
  205.             new OCDialog(this, true, "ERROR: This page already contains the DHTML Navigation Menu.", "Error");
  206.             return false;
  207.          }
  208.  
  209.          var5 = var5 + "<script language='JavaScript1.2' src='" + this.trelative + "dnm_script.js'></script>";
  210.          this.ins_atpointer = "<script language='JavaScript1.2' src='" + this.trelative + "dnm_menu.js'></script>";
  211.       } else if (ACutila.iface.primeclass.equals("dvs")) {
  212.          if (this.rawPage.indexOf("ocdvs=") > -1) {
  213.             new OCDialog(this, true, "ERROR: This page already contains the DHTML Vertical Scroller.", "Error");
  214.             return false;
  215.          }
  216.  
  217.          this.use_insafterbody = false;
  218.          this.ins_atpointer = var5 + "<script language='JavaScript1.2' src='" + this.trelative + "dvs_script.js'></script>";
  219.       }
  220.  
  221.       if (this.use_insafterbody) {
  222.          this.ins_afterbody = var5;
  223.          String var2 = this.rawPage.toLowerCase();
  224.          int var3 = var2.indexOf("<body");
  225.          if (var3 <= -1) {
  226.             new OCDialog(this, true, "ERROR: No Body Tag Found In HTML Page.", "Error");
  227.             return false;
  228.          }
  229.  
  230.          int var4 = var2.indexOf(">", var3);
  231.          if (var4 > -1) {
  232.             this.rawPage = this.rawPage.substring(0, var4 + 1) + this.ins_afterbody + this.rawPage.substring(var4 + 1, this.rawPage.length());
  233.          }
  234.       }
  235.  
  236.       return true;
  237.    }
  238.  
  239.    public void killWindow() {
  240.       ((Frame)this).dispose();
  241.    }
  242.  
  243.    public void saveCurrent() {
  244.       this.saveWithOpenedPage(this.openedfile);
  245.       ACutila.iface.saveExportTag(this.data_filename, this.openedfile);
  246.    }
  247.  
  248.    public boolean handleEvent(Event var1) {
  249.       if (var1.id == 201) {
  250.          this.killWindow();
  251.          return true;
  252.       } else {
  253.          if (var1.id == 1001 && var1.target instanceof MenuItem) {
  254.             if (((String)var1.arg).equals("Open...")) {
  255.                Application.createThread(new MethodInvoker(this, "getFileInvoked"));
  256.             } else if (((String)var1.arg).equals("Close")) {
  257.                this.killWindow();
  258.             } else if (((String)var1.arg).equals("Save...")) {
  259.                this.saveCurrent();
  260.             }
  261.          }
  262.  
  263.          return false;
  264.       }
  265.    }
  266.  
  267.    public void getFile() {
  268.       java.awt.FileDialog var1 = new java.awt.FileDialog(this, "Open", 0);
  269.       Point var2 = ACutilWindow.getMainOffsetPopUpPoint();
  270.       ((Component)var1).move(var2.x, var2.y);
  271.       ((Dialog)var1).show();
  272.       if (var1.getFile() != null) {
  273.          this.openedfile = new File(var1.getDirectory(), var1.getFile());
  274.          if (this.getRawPage()) {
  275.             if (this.getInsertData()) {
  276.                this.text_area.setText(this.rawPage);
  277.                this.alteredPage = new String(this.rawPage);
  278.                this.fileOpened = true;
  279.                return;
  280.             }
  281.          } else {
  282.             new OCDialog(this, true, "Error opening selected file.", "Error");
  283.          }
  284.       }
  285.  
  286.    }
  287.  
  288.    public void reshape(int var1, int var2, int var3, int var4) {
  289.       super.reshape(var1, var2, var3, var4);
  290.    }
  291. }
  292.