home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 127 / dpcs0998.iso / Internet / netobs / Install.exe / t2.z / DynaButtonsComp.nfx (.txt) < prev    next >
Encoding:
Java Class File  |  1998-03-09  |  9.1 KB  |  577 lines

  1. public class DynaButtonsComp extends ComponentApp {
  2.    int backgroundStyle;
  3.    DAssetManager assMan;
  4.    int upID;
  5.    int downID;
  6.    int backID;
  7.    String Orientation = "";
  8.    String ButtonImage = "";
  9.    String HighliteImage = "";
  10.    String paramButtonImage = "";
  11.    String paramHighliteImage = "";
  12.    int backgroundColor;
  13.    String backgroundImage = "";
  14.    String paramBackgroundImage = "";
  15.    int textJustification;
  16.    int textAlignment;
  17.    int fontColor;
  18.    int highliteFontColor;
  19.    String buttonFont = "";
  20.    boolean italic;
  21.    boolean bold;
  22.    int fontSize;
  23.    ButtonObject buttonList;
  24.    DDrawJava theJavaApplet;
  25.    String compImage = "";
  26.    int imgX;
  27.    int imgY;
  28.    String indent = "    ";
  29.    // $FF: renamed from: cb java.lang.String
  30.    String field_0;
  31.  
  32.    protected void RemoveAssets() {
  33.       if (this.upID != 0) {
  34.          this.assMan.RemoveAsset(this.upID);
  35.          this.assMan.RemoveAsset(this.downID);
  36.       }
  37.  
  38.       if (this.backID != 0) {
  39.          this.assMan.RemoveAsset(this.backID);
  40.       }
  41.  
  42.    }
  43.  
  44.    public String PropertyListener(String var1, String var2, int var3, int var4, IDInspector var5) {
  45.       if (var3 == 1) {
  46.          if (var1.compareTo("Orientation") == 0) {
  47.             if (this.Orientation.compareTo("Horizontal") == 0) {
  48.                return "0";
  49.             }
  50.  
  51.             return "1";
  52.          }
  53.  
  54.          if (var1.compareTo("Number of Buttons") == 0) {
  55.             return Integer.toString(this.countButtons(this.buttonList));
  56.          }
  57.  
  58.          ButtonObject var6 = this.buttonList.getNext();
  59.  
  60.          for(int var7 = 1; var6 != null; ++var7) {
  61.             if (var1.compareTo("Use Sub-Buttons " + var7) == 0) {
  62.                if (var6.getSubButtonsExist()) {
  63.                   return "0";
  64.                }
  65.  
  66.                return "1";
  67.             }
  68.  
  69.             if (var1.compareTo("Button " + var7) == 0) {
  70.                if (var6.getSubButtonsExist()) {
  71.                   return var6.getText();
  72.                }
  73.  
  74.                return var6.getID();
  75.             }
  76.  
  77.             ButtonObject var8 = var6.getSubButtons();
  78.             if (var1.compareTo("Number Sub-Buttons " + var7) == 0) {
  79.                return Integer.toString(this.countButtons(var8));
  80.             }
  81.  
  82.             var8 = var8.getNext();
  83.  
  84.             for(int var9 = 1; var8 != null; ++var9) {
  85.                if (var1.compareTo(this.indent + "Sub-Button " + var7 + "," + var9) == 0) {
  86.                   return var8.getID();
  87.                }
  88.  
  89.                var8 = var8.getNext();
  90.             }
  91.  
  92.             var6 = var6.getNext();
  93.          }
  94.       } else {
  95.          if (var1.compareTo("Orientation") == 0) {
  96.             if (var2.compareTo("0") == 0) {
  97.                this.Orientation = "Horizontal";
  98.             } else {
  99.                this.Orientation = "Vertical";
  100.             }
  101.  
  102.             this.debug("\r\nrandom:");
  103.             this.checkList(this.buttonList);
  104.             this.modifyImageSize();
  105.          } else if (var1.compareTo("Number of Buttons") == 0) {
  106.             int var12 = Integer.parseInt(var2, 10);
  107.             if (var12 > 20) {
  108.                var12 = 20;
  109.             }
  110.  
  111.             this.modifyNumButtons(var12, this.buttonList);
  112.             this.modifyImageSize();
  113.          } else {
  114.             ButtonObject var11 = this.buttonList.getNext();
  115.  
  116.             for(int var13 = 1; var11 != null; ++var13) {
  117.                if (var1.compareTo("Button " + var13) == 0) {
  118.                   if (var11.getSubButtonsExist()) {
  119.                      var11.setText(var2);
  120.                   } else {
  121.                      var11.setID(var2);
  122.                      var11.setText(this.assMan.GetAssetName(Integer.parseInt(var2, 10)));
  123.                   }
  124.                } else if (var1.compareTo("Use Sub-Buttons " + var13) == 0) {
  125.                   if (var2.compareTo("0") == 0) {
  126.                      var11.setSubButtonsExist(true);
  127.                      if (var5 != null) {
  128.                         var5.OnPropertyChanged(-1);
  129.                      }
  130.                   } else {
  131.                      var11.setSubButtonsExist(false);
  132.                      if (var5 != null) {
  133.                         var5.OnPropertyChanged(-1);
  134.                      }
  135.                   }
  136.  
  137.                   this.modifyImageSize();
  138.                } else if (var1.compareTo("Number Sub-Buttons " + var13) == 0) {
  139.                   int var16 = Integer.parseInt(var2, 10);
  140.                   if (var16 > 20) {
  141.                      var16 = 20;
  142.                   }
  143.  
  144.                   this.modifyNumButtons(var16, var11.getSubButtons());
  145.                   this.modifyImageSize();
  146.                } else {
  147.                   ButtonObject var15 = var11.getSubButtons().getNext();
  148.  
  149.                   for(int var17 = 1; var15 != null; ++var17) {
  150.                      if (var1.compareTo(this.indent + "Sub-Button " + var13 + "," + var17) == 0) {
  151.                         var15.setID(var2);
  152.                         var15.setText(this.assMan.GetAssetName(Integer.parseInt(var2, 10)));
  153.                      }
  154.  
  155.                      var15 = var15.getNext();
  156.                   }
  157.                }
  158.  
  159.                var11 = var11.getNext();
  160.             }
  161.          }
  162.  
  163.          this.SetPropertyValues();
  164.       }
  165.  
  166.       return "";
  167.    }
  168.  
  169.    protected void RemoveOneAsset(String var1) {
  170.       int var2 = Integer.parseInt(var1, 10);
  171.       if (var2 != 0) {
  172.          this.assMan.RemoveAsset(var2);
  173.       }
  174.  
  175.    }
  176.  
  177.    private void updateSiteLook(int var1) {
  178.       IDLayout var2 = this.theJavaApplet.getLayout();
  179.       IDSite var3 = var2.getSite();
  180.       IDStyle var4 = var3.getCurrentStyle();
  181.       this.RemoveAssets();
  182.       this.backgroundStyle = var2.getBackgroundStyle();
  183.       if (this.backgroundStyle != 0) {
  184.          if (this.backgroundStyle == 1) {
  185.             this.backgroundColor = var2.getBackgroundColor();
  186.          } else if (this.backgroundStyle == 2) {
  187.             this.backID = this.assMan.AddAsset(var2.getBackgroundImage(), "Image\u0000", "DynaButtons");
  188.             this.backgroundImage = this.assMan.GetAssetRelativeLocation(this.backID, var1, 1);
  189.          }
  190.       } else {
  191.          this.backgroundStyle = var4.getBackgroundStyle();
  192.          if (this.backgroundStyle == 1) {
  193.             this.backgroundColor = var4.getBackgroundColor();
  194.          } else if (this.backgroundStyle == 2) {
  195.             this.backID = this.assMan.AddAsset(var4.getBackgroundImage(), "Image\u0000", "DynaButtons");
  196.             this.backgroundImage = this.assMan.GetAssetRelativeLocation(this.backID, var1, 1);
  197.          }
  198.       }
  199.  
  200.       this.textJustification = 5;
  201.       this.textAlignment = var4.getButtonTextAlign();
  202.       this.fontColor = var4.getButtonFontColor();
  203.       this.highliteFontColor = var4.getButtonDownFontColor();
  204.       IDFont var5 = var4.getButtonFont();
  205.       this.buttonFont = var5.getName();
  206.       this.fontSize = var5.getPoint();
  207.       this.bold = var5.getBold();
  208.       this.italic = var5.getItalic();
  209.       String var6 = var4.getButtonUpImage();
  210.       if (var6 == null || var6.compareTo("") == 0) {
  211.          var6 = this.field_0 + "transButton.gif";
  212.       }
  213.  
  214.       String var7 = var4.getButtonDownImage();
  215.       if (var7 == null || var7.compareTo("") == 0) {
  216.          var7 = this.field_0 + "transButton.gif";
  217.       }
  218.  
  219.       this.upID = this.assMan.AddAsset(var6, "Image\u0000", "DynaButtons");
  220.       this.downID = this.assMan.AddAsset(var7, "Image\u0000", "DynaButtons");
  221.       this.ButtonImage = this.assMan.GetAssetRelativeLocation(this.upID, var1, 1);
  222.       this.HighliteImage = this.assMan.GetAssetRelativeLocation(this.downID, var1, 1);
  223.       IDSize var8 = var4.getButtonSize();
  224.       if (var8 != null) {
  225.          this.imgX = var8.getWidth();
  226.          this.imgY = var8.getHeight();
  227.       } else {
  228.          this.imgX = 100;
  229.          this.imgY = 35;
  230.       }
  231.  
  232.       this.modifyImageSize();
  233.    }
  234.  
  235.    void checkList(ButtonObject var1) {
  236.    }
  237.  
  238.    protected void CopyOneAsset(String var1) {
  239.       int var2 = Integer.parseInt(var1, 10);
  240.       if (var2 != 0) {
  241.          this.assMan.CopyAsset(var2);
  242.       }
  243.  
  244.    }
  245.  
  246.    public void onCopy() {
  247.       this.debug("in onCopy()");
  248.       this.Orientation = new String(this.Orientation);
  249.       this.ButtonImage = new String(this.ButtonImage);
  250.       this.HighliteImage = new String(this.HighliteImage);
  251.       this.paramButtonImage = new String(this.paramButtonImage);
  252.       this.paramHighliteImage = new String(this.paramHighliteImage);
  253.       this.backgroundImage = new String(this.backgroundImage);
  254.       this.buttonFont = new String(this.buttonFont);
  255.       this.compImage = new String(this.compImage);
  256.       this.indent = new String(this.indent);
  257.       this.assMan.CopyAsset(this.upID);
  258.       this.assMan.CopyAsset(this.downID);
  259.       ButtonObject var1 = new ButtonObject();
  260.       ButtonObject var2 = var1;
  261.       this.debug("<copy> length of original: " + this.countButtons(this.buttonList));
  262.       ButtonObject var3 = this.buttonList.getNext();
  263.       this.debug("about to copy list");
  264.  
  265.       for(int var4 = 1; var3 != null; ++var4) {
  266.          this.debug("in copy list");
  267.          var2.setNext(new ButtonObject());
  268.          var2 = var2.getNext();
  269.          this.CopyOneAsset(var3.getID());
  270.          var2.setID(var3.getID());
  271.          var2.setText(var3.getText());
  272.          var2.setURL(var3.getURL());
  273.          this.debug("copied: " + var4);
  274.          if (var3.getSubButtonsExist()) {
  275.             var2.setSubButtonsExist(true);
  276.             ButtonObject var5 = var3.getSubButtons().getNext();
  277.             ButtonObject var6 = var2.getSubButtons();
  278.  
  279.             for(int var7 = 1; var5 != null; ++var7) {
  280.                var6.setNext(new ButtonObject());
  281.                var6 = var6.getNext();
  282.                this.CopyOneAsset(var5.getID());
  283.                var6.setID(var5.getID());
  284.                var6.setText(var5.getText());
  285.                var6.setURL(var5.getURL());
  286.                var5 = var5.getNext();
  287.             }
  288.          }
  289.  
  290.          var3 = var3.getNext();
  291.       }
  292.  
  293.       this.buttonList = var1;
  294.    }
  295.  
  296.    private void modifyNumButtons(int var1, ButtonObject var2) {
  297.       int var3 = this.countButtons(var2);
  298.       if (var1 < var3) {
  299.          for(int var4 = 0; var4 < var1; ++var4) {
  300.             var2 = var2.getNext();
  301.          }
  302.  
  303.          var2.setNext((ButtonObject)null);
  304.       } else if (var1 > var3) {
  305.          for(int var6 = 0; var6 < var1; ++var6) {
  306.             if (var2.getNext() == null) {
  307.                var2.setNext(new ButtonObject());
  308.             }
  309.  
  310.             var2 = var2.getNext();
  311.          }
  312.       }
  313.  
  314.    }
  315.  
  316.    private int countButtons(ButtonObject var1) {
  317.       int var2 = 0;
  318.  
  319.       for(ButtonObject var3 = var1.getNext(); var3 != null; var3 = var3.getNext()) {
  320.          ++var2;
  321.       }
  322.  
  323.       return var2;
  324.    }
  325.  
  326.    public String onInstall(DAssetManager var1, String var2) {
  327.       this.assMan = var1;
  328.       this.compImage = var2 + "DYNBUTTON.gif";
  329.       return "DynaButtons";
  330.    }
  331.  
  332.    protected void finalize() {
  333.       this.RemoveAssets();
  334.       ButtonObject var1 = this.buttonList.getNext();
  335.  
  336.       for(int var2 = 1; var1 != null; ++var2) {
  337.          this.RemoveOneAsset(var1.getID());
  338.          if (var1.getSubButtonsExist()) {
  339.             ButtonObject var3 = var1.getSubButtons().getNext();
  340.  
  341.             for(int var4 = 1; var3 != null; ++var4) {
  342.                this.RemoveOneAsset(var3.getID());
  343.                var3 = var3.getNext();
  344.             }
  345.          }
  346.  
  347.          var1 = var1.getNext();
  348.       }
  349.  
  350.    }
  351.  
  352.    public void onPublish(DAssetManager var1, int var2) {
  353.       this.updateSiteLook(var2);
  354.       this.setAllUrls(var2);
  355.       if (var2 == 1) {
  356.          this.paramButtonImage = this.ButtonImage;
  357.          this.paramHighliteImage = this.HighliteImage;
  358.          this.paramBackgroundImage = this.backgroundImage;
  359.       } else {
  360.          this.paramButtonImage = this.ButtonImage;
  361.          this.paramHighliteImage = this.HighliteImage;
  362.          this.paramBackgroundImage = this.backgroundImage;
  363.       }
  364.  
  365.       this.SetPropertyValues();
  366.       IDRect var3 = this.theJavaApplet.getObjectRect();
  367.       this.theJavaApplet.AddParam("X Position", "String\u0000", Integer.toString(var3.getLeft()));
  368.       this.theJavaApplet.AddParam("Y Position", "String\u0000", Integer.toString(var3.getTop() + 7));
  369.    }
  370.  
  371.    public void onDrop(IDLayout var1, IDRect var2, int var3) {
  372.       if (var3 == 1) {
  373.          this.theJavaApplet = new DDrawJava();
  374.          this.field_0 = this.theJavaApplet.getCodeBase();
  375.          this.compImage = this.field_0 + "DYNBUTTON.gif";
  376.          this.theJavaApplet.SetStyle(1, 1);
  377.          this.theJavaApplet.setStretch(2);
  378.          this.buttonList = new ButtonObject();
  379.          this.buttonList.setNext(new ButtonObject());
  380.          this.theJavaApplet.setImageFile(this.compImage);
  381.          this.theJavaApplet.setUsePictureText(true);
  382.          this.theJavaApplet.setPictureText("DynaButtons");
  383.          IDSite var4 = var1.getSite();
  384.          IDStyle var5 = var4.getCurrentStyle();
  385.          IDSize var6 = var5.getButtonSize();
  386.          int var7;
  387.          int var8;
  388.          if (var6 != null) {
  389.             var7 = var6.getWidth();
  390.             var8 = var6.getHeight();
  391.          } else {
  392.             var7 = 100;
  393.             var8 = 35;
  394.          }
  395.  
  396.          this.theJavaApplet.SetPositionRect(var2.getLeft(), var2.getTop(), var2.getLeft() + var7, var2.getTop() + var8);
  397.          this.Orientation = "Horizontal";
  398.          this.theJavaApplet.setAppletFileName(this.field_0 + "DynaButtons.class");
  399.          this.theJavaApplet.AddAdditionalAppletFile(this.field_0 + "PopButton.class");
  400.          this.theJavaApplet.AddAdditionalAppletFile(this.field_0 + "PopObject.class");
  401.          this.theJavaApplet.AddAdditionalAppletFile(this.field_0 + "DynaButtons.cab");
  402.          this.theJavaApplet.AddAdditionalAppletFile(this.field_0 + "DynaButtons.zip");
  403.          var1.AddObject(this.theJavaApplet);
  404.       }
  405.  
  406.       if (var3 != 3 && var3 != 4) {
  407.          this.updateSiteLook(0);
  408.          this.SetPropertyValues();
  409.       }
  410.  
  411.    }
  412.  
  413.    private void modifyImageSize() {
  414.       int var1 = 0;
  415.       int var2 = 0;
  416.       ButtonObject var3 = this.buttonList.getNext();
  417.       if (this.Orientation.compareTo("Horizontal") == 0) {
  418.          for(var1 = this.countButtons(this.buttonList); var3 != null; var3 = var3.getNext()) {
  419.             if (var2 == 0) {
  420.                var2 = 1;
  421.             }
  422.  
  423.             if (var3.getSubButtonsExist()) {
  424.                int var4 = this.countButtons(var3.getSubButtons()) + 1;
  425.                if (var4 > var2) {
  426.                   var2 = var4;
  427.                }
  428.             }
  429.          }
  430.       } else {
  431.          var2 = this.countButtons(this.buttonList);
  432.  
  433.          for(int var7 = 1; var3 != null; ++var7) {
  434.             if (var1 == 0) {
  435.                var1 = 1;
  436.             }
  437.  
  438.             if (var3.getSubButtonsExist()) {
  439.                var1 = 2;
  440.                int var5 = this.countButtons(var3.getSubButtons()) + var7;
  441.                if (var5 > var2) {
  442.                   var2 = var5;
  443.                }
  444.             }
  445.  
  446.             var3 = var3.getNext();
  447.          }
  448.       }
  449.  
  450.       this.theJavaApplet.SetSize(var1 * this.imgX, var2 * this.imgY);
  451.    }
  452.  
  453.    public void onInspect(CStringArray var1, CStringArray var2) {
  454.       var1.Set("Orientation");
  455.       var2.Set("Set(Horizontal|Vertical)");
  456.       var1.Set("Number of Buttons");
  457.       var2.Set("Collection\u0000");
  458.       ButtonObject var3 = this.buttonList.getNext();
  459.  
  460.       for(int var4 = 1; var3 != null; ++var4) {
  461.          if (var3.getSubButtonsExist()) {
  462.             var1.Set("Button " + var4);
  463.             var2.Set("String\u0000");
  464.             var1.Set("Use Sub-Buttons " + var4);
  465.             var2.Set("Set(Yes|No)");
  466.             var1.Set("Number Sub-Buttons " + var4);
  467.             var2.Set("Collection\u0000");
  468.             ButtonObject var5 = var3.getSubButtons().getNext();
  469.  
  470.             for(int var6 = 1; var5 != null; ++var6) {
  471.                var1.Set(this.indent + "Sub-Button " + var4 + "," + var6);
  472.                var2.Set("Link\u0000");
  473.                var5 = var5.getNext();
  474.             }
  475.          } else {
  476.             var1.Set("Button " + var4);
  477.             var2.Set("Link\u0000");
  478.             var1.Set("Use Sub-Buttons " + var4);
  479.             var2.Set("Set(Yes|No)");
  480.          }
  481.  
  482.          var3 = var3.getNext();
  483.       }
  484.  
  485.    }
  486.  
  487.    private void debug(String var1) {
  488.    }
  489.  
  490.    private void setAllUrls(int var1) {
  491.       ButtonObject var2 = this.buttonList.getNext();
  492.  
  493.       for(int var3 = 1; var2 != null; ++var3) {
  494.          String var4 = this.assMan.GetAssetRelativeLocation(Integer.parseInt(var2.getID(), 10), var1, 1);
  495.          var2.setURL(var4);
  496.          if (var2.getSubButtonsExist()) {
  497.             ButtonObject var5 = var2.getSubButtons().getNext();
  498.  
  499.             for(int var6 = 1; var5 != null; ++var6) {
  500.                String var7 = this.assMan.GetAssetRelativeLocation(Integer.parseInt(var5.getID(), 10), var1, 1);
  501.                var5.setURL(var7);
  502.                var5 = var5.getNext();
  503.             }
  504.          }
  505.  
  506.          var2 = var2.getNext();
  507.       }
  508.  
  509.    }
  510.  
  511.    void SetPropertyValues() {
  512.       this.theJavaApplet.ResetParams();
  513.       this.theJavaApplet.setHTMLBetween("ARCHIVE=DynaButtons.zip");
  514.       this.theJavaApplet.AddParam("cabbase", "String\u0000", "DynaButtons.cab");
  515.       this.theJavaApplet.AddParam("Orientation", "String\u0000", this.Orientation);
  516.       this.theJavaApplet.AddParam("ButtonImage", "String\u0000", this.paramButtonImage);
  517.       this.theJavaApplet.AddParam("HighliteImage", "String\u0000", this.paramHighliteImage);
  518.       this.theJavaApplet.AddParam("TextJustification", "String\u0000", Integer.toString(this.textJustification));
  519.       this.theJavaApplet.AddParam("TextAlignment", "String\u0000", Integer.toString(this.textAlignment));
  520.       this.theJavaApplet.AddParam("ButtonFont", "String\u0000", this.buttonFont);
  521.       this.theJavaApplet.AddParam("FontSize", "String\u0000", Integer.toString(this.fontSize));
  522.       this.theJavaApplet.AddParam("FontColor", "String\u0000", Integer.toString(this.fontColor));
  523.       this.theJavaApplet.AddParam("HighliteFontColor", "String\u0000", Integer.toString(this.highliteFontColor));
  524.       if (this.bold) {
  525.          this.theJavaApplet.AddParam("Bold", "String\u0000", "True");
  526.       }
  527.  
  528.       if (this.italic) {
  529.          this.theJavaApplet.AddParam("Italic", "String\u0000", "True");
  530.       }
  531.  
  532.       if (this.backgroundStyle == 1) {
  533.          this.theJavaApplet.AddParam("BackgroundColor", "String\u0000", Integer.toString(this.backgroundColor));
  534.       } else if (this.backgroundStyle == 2) {
  535.          this.theJavaApplet.AddParam("BackgroundImage", "String\u0000", this.paramBackgroundImage);
  536.       }
  537.  
  538.       ButtonObject var1 = this.buttonList.getNext();
  539.  
  540.       for(int var2 = 0; var1 != null; ++var2) {
  541.          if (var1.getSubButtonsExist()) {
  542.             if (var1.getText().compareTo("") == 0) {
  543.                this.theJavaApplet.AddParam("ButtonText" + var2, "String\u0000", " ");
  544.             } else {
  545.                this.theJavaApplet.AddParam("ButtonText" + var2, "String\u0000", var1.getText());
  546.             }
  547.  
  548.             ButtonObject var6 = var1.getSubButtons().getNext();
  549.  
  550.             for(int var4 = 0; var6 != null; ++var4) {
  551.                if (var6.getText().compareTo("") == 0) {
  552.                   this.theJavaApplet.AddParam("ButtonText" + var2 + "_" + var4, "String\u0000", " ");
  553.                   this.theJavaApplet.AddParam("URL" + var2 + "_" + var4, "String\u0000", " ");
  554.                } else {
  555.                   this.theJavaApplet.AddParam("ButtonText" + var2 + "_" + var4, "String\u0000", var6.getText());
  556.                   this.theJavaApplet.AddParam("URL" + var2 + "_" + var4, "String\u0000", var6.getURL());
  557.                }
  558.  
  559.                var6 = var6.getNext();
  560.             }
  561.          } else {
  562.             if (var1.getText().compareTo("") == 0) {
  563.                this.theJavaApplet.AddParam("ButtonText" + var2, "String\u0000", " ");
  564.             } else {
  565.                String var3 = this.assMan.GetAssetName(Integer.parseInt(var1.getID(), 10));
  566.                this.theJavaApplet.AddParam("ButtonText" + var2, "String\u0000", var3);
  567.             }
  568.  
  569.             this.theJavaApplet.AddParam("URL" + var2, "String\u0000", var1.getURL());
  570.          }
  571.  
  572.          var1 = var1.getNext();
  573.       }
  574.  
  575.    }
  576. }
  577.