home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPAddToHtml.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  10.1 KB  |  433 lines

  1. import java.awt.BorderLayout;
  2. import java.awt.Button;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Event;
  7. import java.awt.Font;
  8. import java.awt.Panel;
  9. import java.awt.TextArea;
  10. import java.awt.TextField;
  11. import java.io.DataInputStream;
  12. import java.io.FileInputStream;
  13. import java.io.InputStream;
  14. import java.net.URL;
  15. import java.util.StringTokenizer;
  16. import java.util.Vector;
  17.  
  18. public class JDPAddToHtml extends JDPClassLayout {
  19.    JDPJagg jaggSQL;
  20.    JDPPopupMessage popuppanel;
  21.    JDPLayoutMgr targetLayoutMgr;
  22.    JDPUtils utils;
  23.    TextField htmlpagename;
  24.    TextField htmltitle;
  25.    TextField classname;
  26.    JDPChoice requireLogin;
  27.    JDPChoice username;
  28.    Vector valueusername;
  29.    JDPChoice runInWebPage;
  30.    TextField width;
  31.    TextField height;
  32.    TextArea htmlText;
  33.    String wwwroot;
  34.    String JDPSystem;
  35.    String JDPDirectory;
  36.    boolean finishedBuild;
  37.    int maxWriteChars = 900;
  38.    String outputText;
  39.    String inputText;
  40.  
  41.    void loadChoices() {
  42.       this.valueusername = new Vector();
  43.       new JDPLoadChoice(super.user, this.jaggSQL, this.username, "DISTINCT username", "password", "JDPUser", "(jdpsystem0 = '" + super.user.JDPSystem + "' " + "OR  jdpsystem1 = '" + super.user.JDPSystem + "' " + "OR  jdpsystem2 = '" + super.user.JDPSystem + "' " + "OR  jdpsystem3 = '" + super.user.JDPSystem + "' " + "OR  jdpsystem4 = '" + super.user.JDPSystem + "' " + "OR  jdpsystem5 = '" + super.user.JDPSystem + "' " + "OR  jdpsystem6 = '" + super.user.JDPSystem + "' " + "OR  jdpsystem7 = '" + super.user.JDPSystem + "' " + "OR  jdpsystem8 = '" + super.user.JDPSystem + "' " + "OR  jdpsystem9 = '" + super.user.JDPSystem + "') ", this.valueusername);
  44.       this.requireLogin.addItem("No");
  45.       this.requireLogin.addItem("Yes");
  46.       this.requireLogin.addItem("Automatic");
  47.       this.runInWebPage.addItem("No");
  48.       this.runInWebPage.addItem("Yes");
  49.    }
  50.  
  51.    void retrieveHandle() {
  52.       for(int var1 = 0; var1 < super.user.gParm.size(); ++var1) {
  53.          if (super.user.gParm.elementAt(var1) instanceof JDPLayoutMgr) {
  54.             this.targetLayoutMgr = (JDPLayoutMgr)super.user.gParm.elementAt(var1);
  55.             this.htmlpagename.setText(this.targetLayoutMgr.appName + ".html");
  56.             this.htmltitle.setText(this.targetLayoutMgr.appName);
  57.             this.classname.setText(this.targetLayoutMgr.appName);
  58.             this.buildOutputText();
  59.             return;
  60.          }
  61.       }
  62.  
  63.    }
  64.  
  65.    void buildOutputText() {
  66.       String var1 = "";
  67.       boolean var2 = false;
  68.       this.outputText = "";
  69.       if (this.htmlpagename.getText().indexOf(".htm") < 0) {
  70.          this.htmlpagename.setText(this.htmlpagename.getText() + ".html");
  71.       }
  72.  
  73.       StringTokenizer var3 = new StringTokenizer(this.inputText);
  74.       var1 = var3.nextToken("\r\n");
  75.  
  76.       for(int var8 = var3.countTokens(); var1 != null && var3.hasMoreTokens(); var1 = var3.nextToken()) {
  77.          if (var1.indexOf("<title") >= 0) {
  78.             String var10001 = this.outputText;
  79.             this.outputText = var10001 + "<title>" + this.htmltitle.getText() + "</title>\r\n";
  80.          } else if (var1.indexOf("<applet") >= 0) {
  81.             String var4 = "10";
  82.             String var5 = "10";
  83.             if (this.runInWebPage.getSelectedItem().equals("Yes")) {
  84.                var4 = this.width.getText();
  85.                var5 = this.height.getText();
  86.             }
  87.  
  88.             String var9 = this.outputText;
  89.             this.outputText = var9 + "<applet codebase=\"" + this.wwwroot + "\" ";
  90.             if (this.runInWebPage.getSelectedItem().equals("Yes") && this.requireLogin.getSelectedItem().equals("No")) {
  91.                var9 = this.outputText;
  92.                this.outputText = var9 + "archive=\"JDPSingle.jar\" code=JDPSingle.class ";
  93.             } else {
  94.                var9 = this.outputText;
  95.                this.outputText = var9 + "archive=\"JDPMain.jar\" code=JDesignerPro.class ";
  96.             }
  97.  
  98.             var9 = this.outputText;
  99.             this.outputText = var9 + "width=" + var4 + " height=" + var5 + ">\r\n";
  100.             var9 = this.outputText;
  101.             this.outputText = var9 + "<param name=\"JDPSystem\" value=\"" + this.JDPSystem + "\">\r\n";
  102.             String var6 = this.classname.getText();
  103.             if (this.requireLogin.getSelectedItem().equals("No")) {
  104.                var9 = this.outputText;
  105.                this.outputText = var9 + "<param name=\"JDPClassName\" value=\"" + var6 + "\">\r\n";
  106.             }
  107.  
  108.             if (this.runInWebPage.getSelectedItem().equals("Yes") && !this.requireLogin.getSelectedItem().equals("No")) {
  109.                var9 = this.outputText;
  110.                this.outputText = var9 + "<param name=\"JDPInWebPage\" value=\"yes\">\r\n";
  111.             }
  112.  
  113.             if (this.requireLogin.getSelectedItem().equals("Automatic")) {
  114.                var9 = this.outputText;
  115.                this.outputText = var9 + "<param name=\"JDPUsername\" value=\"" + this.username.getSelectedItem() + "\">\r\n";
  116.                var9 = this.outputText;
  117.                this.outputText = var9 + "<param name=\"JDPPassword\" value=\"" + (String)this.valueusername.elementAt(this.username.getSelectedIndex()) + "\">\r\n";
  118.             }
  119.  
  120.             var9 = this.outputText;
  121.             this.outputText = var9 + "</applet>\r\n";
  122.          } else if (var1 != null) {
  123.             this.outputText = this.outputText + var1 + "\r\n";
  124.          }
  125.       }
  126.  
  127.       this.finishedBuild = true;
  128.       this.htmlText.setText(this.outputText);
  129.    }
  130.  
  131.    boolean createPage() {
  132.       String var1 = this.JDPDirectory + this.htmlpagename.getText().trim();
  133.       this.outputText = "";
  134.       String var2 = "w+";
  135.       String var3 = "";
  136.  
  137.       try {
  138.          String var4 = this.htmlText.getText();
  139.          if (!this.utils.writeToFile(var1, var4, var2)) {
  140.             super.user.mainmsg.setStatusMsg("Failed to write new document " + var3 + " to server.", 30);
  141.             return false;
  142.          } else {
  143.             if (!JDesignerPro.executable) {
  144.                var3 = super.user.wwwroot;
  145.                var3 = var3.substring(0, var3.lastIndexOf("/"));
  146.                var3 = var3 + "/" + this.htmlpagename.getText().trim();
  147.             } else {
  148.                var3 = var1;
  149.             }
  150.  
  151.             super.user.mainmsg.setStatusMsg("Document " + var3 + " successfully created.", 30);
  152.             return true;
  153.          }
  154.       } catch (Exception var6) {
  155.          ((Throwable)var6).printStackTrace();
  156.          return false;
  157.       }
  158.    }
  159.  
  160.    boolean checkFields() {
  161.       String var5 = "";
  162.       String var6 = "";
  163.  
  164.       try {
  165.          var5 = super.user.wwwroot;
  166.          var5 = var5.substring(0, var5.lastIndexOf("/"));
  167.          var5 = var5 + "/" + this.htmlpagename.getText();
  168.          var6 = this.htmlpagename.getText();
  169.          if (!var6.equals("") && !var6.equals(".html") && !var6.equals(".htm")) {
  170.             InputStream var2;
  171.             if (!JDesignerPro.executable) {
  172.                URL var1 = new URL(var5);
  173.                var2 = var1.openStream();
  174.             } else {
  175.                FileInputStream var4 = new FileInputStream(super.user.JDesignerPro.JDPDirectory + var6);
  176.                var2 = (InputStream)var4;
  177.             }
  178.  
  179.             new DataInputStream(var2);
  180.             super.user.mainmsg.setStatusMsg("Html file already exists. Press Create again to replace.", 20);
  181.             return false;
  182.          } else {
  183.             super.user.mainmsg.setStatusMsg("You must first enter a valid html file name.", 10);
  184.             return false;
  185.          }
  186.       } catch (Exception var7) {
  187.          return true;
  188.       }
  189.    }
  190.  
  191.    public boolean handleEvent(Event var1) {
  192.       switch (var1.id) {
  193.          case 202:
  194.             if (var1.target instanceof JDPTabSelectPanel) {
  195.                this.retrieveHandle();
  196.                return false;
  197.             }
  198.  
  199.             return false;
  200.          case 503:
  201.          case 504:
  202.          case 505:
  203.             this.popuppanel.postEvent(var1);
  204.             return false;
  205.          case 1001:
  206.             if (var1.target instanceof Button) {
  207.                String var2 = (String)var1.arg;
  208.                if (var2.trim().compareTo("Create") != 0) {
  209.                   return true;
  210.                } else {
  211.                   if (super.user.mainmsg.getStatusMsg().equals("Html file already exists. Press Create again to replace.") || this.checkFields()) {
  212.                      this.createPage();
  213.                   }
  214.  
  215.                   return true;
  216.                }
  217.             } else if (var1.target instanceof JDPChoice) {
  218.                if (this.requireLogin.getSelectedItem().equals("No")) {
  219.                   this.username.disable();
  220.                   this.runInWebPage.select("Yes");
  221.                   this.runInWebPage.disable();
  222.                } else if (this.requireLogin.getSelectedItem().equals("Yes")) {
  223.                   this.username.disable();
  224.                   this.runInWebPage.enable();
  225.                } else {
  226.                   this.username.enable();
  227.                   this.runInWebPage.enable();
  228.                }
  229.  
  230.                if (this.runInWebPage.getSelectedItem().equals("Yes")) {
  231.                   this.width.enable();
  232.                   this.height.enable();
  233.                } else {
  234.                   this.width.disable();
  235.                   this.height.disable();
  236.                }
  237.  
  238.                this.buildOutputText();
  239.                return true;
  240.             } else if (var1.target instanceof TextField) {
  241.                this.buildOutputText();
  242.                return true;
  243.             } else {
  244.                return false;
  245.             }
  246.          case 1005:
  247.             if (var1.target instanceof TextField) {
  248.                this.buildOutputText();
  249.                return true;
  250.             }
  251.          case 401:
  252.             if (var1.key == 9) {
  253.                if (var1.modifiers != 1) {
  254.                   if (var1.target.equals(this.htmlpagename)) {
  255.                      super.user.u.cursor(this.htmltitle);
  256.                      return true;
  257.                   }
  258.  
  259.                   if (var1.target.equals(this.htmltitle)) {
  260.                      super.user.u.cursor(this.classname);
  261.                      return true;
  262.                   }
  263.  
  264.                   if (var1.target.equals(this.classname)) {
  265.                      super.user.u.cursor(this.requireLogin);
  266.                      return true;
  267.                   }
  268.  
  269.                   if (var1.target.equals(this.requireLogin)) {
  270.                      super.user.u.cursor(this.username);
  271.                      return true;
  272.                   }
  273.  
  274.                   if (var1.target.equals(this.username)) {
  275.                      super.user.u.cursor(this.runInWebPage);
  276.                      return true;
  277.                   }
  278.  
  279.                   if (var1.target.equals(this.runInWebPage)) {
  280.                      super.user.u.cursor(this.width);
  281.                      return true;
  282.                   }
  283.  
  284.                   if (var1.target.equals(this.width)) {
  285.                      super.user.u.cursor(this.height);
  286.                      return true;
  287.                   }
  288.  
  289.                   if (var1.target.equals(this.height)) {
  290.                      super.user.u.cursor(this.htmlText);
  291.                      return true;
  292.                   }
  293.  
  294.                   if (var1.target.equals(this.htmlText)) {
  295.                      super.user.u.cursor(this.htmlpagename);
  296.                      return true;
  297.                   }
  298.                } else {
  299.                   if (var1.target.equals(this.htmltitle)) {
  300.                      super.user.u.cursor(this.htmlpagename);
  301.                      return true;
  302.                   }
  303.  
  304.                   if (var1.target.equals(this.classname)) {
  305.                      super.user.u.cursor(this.htmltitle);
  306.                      return true;
  307.                   }
  308.  
  309.                   if (var1.target.equals(this.requireLogin)) {
  310.                      super.user.u.cursor(this.classname);
  311.                      return true;
  312.                   }
  313.  
  314.                   if (var1.target.equals(this.username)) {
  315.                      super.user.u.cursor(this.requireLogin);
  316.                      return true;
  317.                   }
  318.  
  319.                   if (var1.target.equals(this.runInWebPage)) {
  320.                      super.user.u.cursor(this.username);
  321.                      return true;
  322.                   }
  323.  
  324.                   if (var1.target.equals(this.width)) {
  325.                      super.user.u.cursor(this.runInWebPage);
  326.                      return true;
  327.                   }
  328.  
  329.                   if (var1.target.equals(this.height)) {
  330.                      super.user.u.cursor(this.width);
  331.                      return true;
  332.                   }
  333.  
  334.                   if (var1.target.equals(this.htmlText)) {
  335.                      super.user.u.cursor(this.height);
  336.                      return true;
  337.                   }
  338.  
  339.                   if (var1.target.equals(this.htmlpagename)) {
  340.                      super.user.u.cursor(this.htmlText);
  341.                      return true;
  342.                   }
  343.                }
  344.  
  345.                return true;
  346.             }
  347.  
  348.             return false;
  349.          default:
  350.             return false;
  351.       }
  352.    }
  353.  
  354.    public void InitClass(JDPUser var1, Panel var2, String var3) {
  355.       super.user = var1;
  356.       this.jaggSQL = new JDPJagg(var1.jaggPath);
  357.       this.jaggSQL.setNULL("space");
  358.       this.jaggSQL.setMRW("100");
  359.       this.jaggSQL.loadSettings(var1);
  360.       if (JDPJagg.useJaggServer) {
  361.          this.maxWriteChars = 100000;
  362.       }
  363.  
  364.       if (this.utils == null) {
  365.          this.utils = var1.u;
  366.       }
  367.  
  368.       this.wwwroot = var1.JDesignerPro.wwwroot;
  369.       this.JDPSystem = var1.JDPSystem;
  370.       this.JDPDirectory = var1.JDesignerPro.JDPDirectory;
  371.       ((Container)this).setLayout(new BorderLayout());
  372.       this.popuppanel = new JDPPopupMessage(var1, this);
  373.       ((Container)this).add(this.popuppanel);
  374.       Panel var4 = new Panel();
  375.       ((Container)var4).setLayout(new BorderLayout());
  376.       Panel var5 = new Panel();
  377.       ((Container)var5).setLayout(new BorderLayout());
  378.       Panel var6 = new Panel();
  379.       ((Container)var6).setLayout(new BorderLayout());
  380.       JDPScrollPanel var7 = new JDPScrollPanel();
  381.       this.htmlpagename = new TextField("", 20);
  382.       this.htmltitle = new TextField("", 30);
  383.       this.classname = new TextField("", 20);
  384.       this.requireLogin = new JDPChoice();
  385.       this.username = new JDPChoice();
  386.       this.runInWebPage = new JDPChoice();
  387.       this.width = new TextField("600", 6);
  388.       this.height = new TextField("400", 6);
  389.       this.htmlText = new TextArea("");
  390.       this.htmlText.setFont(new Font("Courier", 0, 12));
  391.       this.loadChoices();
  392.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Html Page Name:", Color.black));
  393.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Html Title Text:", Color.black));
  394.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Class to load:", Color.black));
  395.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Login to JDP required:", Color.black));
  396.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Username for auto login:", Color.black));
  397.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Run applet inside web page:", Color.black));
  398.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Applet Width:", Color.black));
  399.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Applet Height:", Color.black));
  400.       ((Container)var7).add("Right", this.htmlpagename);
  401.       ((Container)var7).add("Right", this.htmltitle);
  402.       ((Container)var7).add("Right", this.classname);
  403.       ((Container)var7).add("Right", this.requireLogin);
  404.       ((Container)var7).add("Right", this.username);
  405.       ((Container)var7).add("Right", this.runInWebPage);
  406.       ((Container)var7).add("Right", this.width);
  407.       ((Container)var7).add("Right", this.height);
  408.       ((Container)var6).add("North", var7);
  409.       ((Container)var6).add("Center", this.htmlText);
  410.       this.requireLogin.select("No");
  411.       this.username.disable();
  412.       this.runInWebPage.select("Yes");
  413.       this.popuppanel.addComponent(this.htmlpagename, "Enter the html page name", "Name of the html page that will be created to load your new applet");
  414.       this.popuppanel.addComponent(this.requireLogin, "Login required", "Choose No for a simple applet, Yes to utilize JDP user access control or Auto to skip login window");
  415.       this.popuppanel.addComponent(this.username, "Auto login username", "Choose the JDP username for an automatic log in");
  416.       this.popuppanel.addComponent(this.runInWebPage, "Applet runs in web page", "Login and auto login applets may run as a frame. No login must run in an html page.");
  417.       this.popuppanel.addComponent(this.width, "Applet width", "For applets running in a web page specify the applet width");
  418.       this.popuppanel.addComponent(this.height, "Applet height", "For applets running in a web page specify the applet height");
  419.       this.popuppanel.addComponent(this.htmlText, "Generated Html", "Modify the generated html as necessary before creating the file");
  420.       String[] var8 = new String[]{"Create"};
  421.       int[] var9 = new int[]{0};
  422.       JDPButtons var10 = new JDPButtons(var1, var8, var9, JDPButtons.HORIZONTAL);
  423.       ((Container)var6).add("South", var10);
  424.       this.popuppanel.addComponent(var10.button[0], "Create Html Doc", "Create new html document reading for loading");
  425.       ((Container)var4).add("Center", var6);
  426.       ((Container)this).add("Center", new JDPChiselFramePanel(var1, "Create an html page for an Applet", var4, "North"));
  427.       ((Component)var2).paintAll(((Component)var2).getGraphics());
  428.       this.inputText = var1.u.readFromFile(var1.JDesignerPro.JDPDirectory + "Applications/Layouts/htmllayout.html");
  429.       this.retrieveHandle();
  430.       var1.gParm.addElement(this);
  431.    }
  432. }
  433.