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

  1. import java.awt.Color;
  2. import java.awt.Component;
  3. import java.awt.Dimension;
  4. import java.awt.Event;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Image;
  9.  
  10. public class OCdgst extends OCdg {
  11.    Event the_e;
  12.    private FontMetrics subfm;
  13.    private FontMetrics mainfm;
  14.    private boolean barchange = true;
  15.    private int dgappwidth = 0;
  16.    private int num_desc = 0;
  17.    private int num_icons = 0;
  18.    private int rmainWidth;
  19.    private int bitHeight;
  20.    private int[] main_starty;
  21.    private int bottom_height;
  22.    private boolean barchanged = true;
  23.    private boolean inputHeightFixed;
  24.    private int[] m_mainicon;
  25.    private Image[] i_pic;
  26.    private int[] m_main_icon;
  27.    private String[] m_main_desc;
  28.    private String[] m_iconfile;
  29.    private boolean m_unmaintext = false;
  30.    private int m_maintext_yoffset = 0;
  31.    private int m_item_height = 15;
  32.    private Color m_bgcolor;
  33.    private Color m_main_textcolor;
  34.    private int m_main_icon_indent;
  35.    private int m_main_text_indent;
  36.    private boolean m_tilebgin_margins;
  37.    private int m_arrowxoffset;
  38.    private int m_arrowyoffset;
  39.    private boolean m_tile_mainbg;
  40.    private boolean m_clip_main_bg;
  41.    private int m_main_lmargin;
  42.    private int m_main_rmargin;
  43.    private Color m_arrowcolor;
  44.    private Color m_main_outcolor;
  45.    private Font m_main_font;
  46.    private Font m_sub_font;
  47.    private int m_main_icon_voffset;
  48.    private int m_additional_clip_height;
  49.    private Color m_main_boxcolor;
  50.    private String m_main_bgfile;
  51.    private int m_sbwidth;
  52.    private int m_si;
  53.    private Color m_bc;
  54.    private Color m_ac;
  55.    private Color m_hc;
  56.    private Color m_bgc;
  57.    private Color m_sc;
  58.    private Color m_oc;
  59.    private Color m_mac;
  60.    private Color m_unact;
  61.    private Color m_machl;
  62.    private boolean m_sbflat;
  63.    private boolean m_indent_bubble;
  64.    private boolean m_tile_bg_insb;
  65.    private Dimension[] icon_d;
  66.    private Image mainBG;
  67.    private Image endcap;
  68.    private Image sb_bg;
  69.    // $FF: renamed from: sb stsb
  70.    private stsb field_0;
  71.  
  72.    public void initIcon(String[] var1) {
  73.       this.m_iconfile = var1;
  74.       this.num_icons = this.m_iconfile.length;
  75.       this.i_pic = new Image[this.num_icons];
  76.       this.icon_d = new Dimension[this.num_icons];
  77.    }
  78.  
  79.    private void reDraw() {
  80.       this.initDrawMenu();
  81.       this.DrawMenu();
  82.       this.DrawBar();
  83.    }
  84.  
  85.    OCdgst() {
  86.       this.m_bgcolor = Color.black;
  87.       this.m_main_textcolor = Color.white;
  88.       this.m_main_icon_indent = 4;
  89.       this.m_main_text_indent = 4;
  90.       this.m_tilebgin_margins = false;
  91.       this.m_arrowxoffset = 0;
  92.       this.m_arrowyoffset = 0;
  93.       this.m_tile_mainbg = true;
  94.       this.m_clip_main_bg = false;
  95.       this.m_main_lmargin = 5;
  96.       this.m_main_rmargin = 5;
  97.       this.m_arrowcolor = Color.lightGray;
  98.       this.m_main_outcolor = null;
  99.       this.m_main_font = new Font("Helvetica", 1, 10);
  100.       this.m_sub_font = new Font("Helvetica", 0, 11);
  101.       this.m_main_icon_voffset = 0;
  102.       this.m_additional_clip_height = 0;
  103.       this.m_main_boxcolor = null;
  104.       this.m_main_bgfile = "-1";
  105.       this.m_sbwidth = 12;
  106.       this.m_si = 2;
  107.       this.m_bc = null;
  108.       this.m_ac = Color.black;
  109.       this.m_hc = Color.yellow;
  110.       this.m_bgc = Color.white;
  111.       this.m_sc = null;
  112.       this.m_oc = null;
  113.       this.m_mac = Color.lightGray;
  114.       this.m_unact = Color.gray;
  115.       this.m_machl = Color.yellow;
  116.       this.m_sbflat = true;
  117.       this.m_indent_bubble = false;
  118.       this.m_tile_bg_insb = true;
  119.       this.the_e = new Event(this, 960, this);
  120.    }
  121.  
  122.    public synchronized void DrawApplet() {
  123.       super.off = ((Component)this).createImage(super.appWidth, super.appHeight);
  124.       super.g_off = super.off.getGraphics();
  125.       super.g_off.setColor(this.m_bgcolor);
  126.       super.g_off.fillRect(0, 0, super.appWidth, super.appHeight);
  127.       ACutil var1 = new ACutil();
  128.       this.mainBG = var1.getImage(this.m_main_bgfile);
  129.       if (this.mainBG != null) {
  130.          this.m_main_boxcolor = null;
  131.       }
  132.  
  133.       for(int var2 = 0; var2 < this.num_icons; ++var2) {
  134.          this.i_pic[var2] = var1.getImage(this.m_iconfile[var2]);
  135.          if (this.i_pic[var2] != null) {
  136.             this.icon_d[var2] = new Dimension(this.i_pic[var2].getWidth(this), this.i_pic[var2].getHeight(this));
  137.          }
  138.       }
  139.  
  140.       this.dgappwidth = super.appWidth - this.m_sbwidth;
  141.       this.reDraw();
  142.    }
  143.  
  144.    public void initDefault() {
  145.       String var1 = ((OCdg)this).getParameterDefault("underlinemaintext");
  146.       if (var1 != null) {
  147.          this.m_unmaintext = Boolean.valueOf(var1);
  148.       }
  149.  
  150.       var1 = ((OCdg)this).getParameterDefault("maintextyoffset");
  151.       if (var1 != null) {
  152.          this.m_maintext_yoffset = Integer.parseInt(var1);
  153.       }
  154.  
  155.       var1 = ((OCdg)this).getParameterDefault("itemheight");
  156.       if (var1 != null) {
  157.          this.m_item_height = Integer.parseInt(var1);
  158.          if (this.m_item_height > 0) {
  159.             this.inputHeightFixed = true;
  160.          }
  161.       }
  162.  
  163.       var1 = ((OCdg)this).getParameterDefault("maintextcolor");
  164.       if (var1 != null) {
  165.          this.m_main_textcolor = occcolor.ConvertColor(var1);
  166.       }
  167.  
  168.       var1 = ((OCdg)this).getParameterDefault("mainiconindent");
  169.       if (var1 != null) {
  170.          this.m_main_icon_indent = Integer.parseInt(var1);
  171.       }
  172.  
  173.       var1 = ((OCdg)this).getParameterDefault("maintextindent");
  174.       if (var1 != null) {
  175.          this.m_main_text_indent = Integer.parseInt(var1);
  176.       }
  177.  
  178.       var1 = ((OCdg)this).getParameterDefault("tilebginmargins");
  179.       if (var1 != null) {
  180.          this.m_tilebgin_margins = Boolean.valueOf(var1);
  181.       }
  182.  
  183.       var1 = ((OCdg)this).getParameterDefault("arrowyoffset");
  184.       if (var1 != null) {
  185.          this.m_arrowyoffset = Integer.parseInt(var1);
  186.       }
  187.  
  188.       var1 = ((OCdg)this).getParameterDefault("arrowxoffset");
  189.       if (var1 != null) {
  190.          this.m_arrowxoffset = Integer.parseInt(var1);
  191.       }
  192.  
  193.       var1 = ((OCdg)this).getParameterDefault("tilemainbg");
  194.       if (var1 != null) {
  195.          this.m_tile_mainbg = Boolean.valueOf(var1);
  196.       }
  197.  
  198.       var1 = ((OCdg)this).getParameterDefault("clipmainbg");
  199.       if (var1 != null) {
  200.          this.m_clip_main_bg = Boolean.valueOf(var1);
  201.       }
  202.  
  203.       var1 = ((OCdg)this).getParameterDefault("mainlmargin");
  204.       if (var1 != null) {
  205.          this.m_main_lmargin = Integer.parseInt(var1);
  206.       }
  207.  
  208.       var1 = ((OCdg)this).getParameterDefault("mainrmargin");
  209.       if (var1 != null) {
  210.          this.m_main_rmargin = Integer.parseInt(var1);
  211.       }
  212.  
  213.       var1 = ((OCdg)this).getParameterDefault("arrowcolor");
  214.       if (var1 != null) {
  215.          this.m_arrowcolor = occcolor.ConvertColor(var1);
  216.       }
  217.  
  218.       var1 = ((OCdg)this).getParameterDefault("mainoutcolor");
  219.       if (var1 != null) {
  220.          this.m_main_outcolor = occcolor.ConvertColor(var1);
  221.       }
  222.  
  223.       var1 = ((OCdg)this).getParameterDefault("mainfont");
  224.       if (var1 != null) {
  225.          this.m_main_font = ocfontc.getFontSD(var1, ",");
  226.       } else {
  227.          this.m_main_font = new Font("Helvetica", 0, 12);
  228.       }
  229.  
  230.       var1 = ((OCdg)this).getParameterDefault("subfont");
  231.       if (var1 != null) {
  232.          this.m_sub_font = ocfontc.getFontSD(var1, ",");
  233.       } else {
  234.          this.m_sub_font = new Font("Helvetica", 0, 12);
  235.       }
  236.  
  237.       var1 = ((OCdg)this).getParameterDefault("mainicontopoffset");
  238.       if (var1 != null) {
  239.          this.m_main_icon_voffset = Integer.parseInt(var1);
  240.       }
  241.  
  242.       var1 = ((OCdg)this).getParameterDefault("clipadditionheight");
  243.       if (var1 != null) {
  244.          this.m_additional_clip_height = Integer.parseInt(var1);
  245.       }
  246.  
  247.       var1 = ((OCdg)this).getParameterDefault("barwidth");
  248.       if (var1 != null) {
  249.          this.m_sbwidth = Integer.parseInt(var1);
  250.       }
  251.  
  252.       var1 = ((OCdg)this).getParameterDefault("mainboxcolor");
  253.       if (var1 != null) {
  254.          this.m_main_boxcolor = occcolor.ConvertColor(var1);
  255.       }
  256.  
  257.       var1 = ((OCdg)this).getParameterDefault("mainbgimage");
  258.       if (var1 != null) {
  259.          this.m_main_bgfile = var1;
  260.          this.barchanged = true;
  261.       }
  262.  
  263.       var1 = ((OCdg)this).getParameterDefault("barwidth");
  264.       if (var1 != null) {
  265.          this.m_sbwidth = Integer.parseInt(var1);
  266.          this.barchanged = true;
  267.       }
  268.  
  269.       var1 = ((OCdg)this).getParameterDefault("barbuttoncolor");
  270.       if (var1 != null) {
  271.          this.m_bc = occcolor.ConvertColor(var1);
  272.          this.barchanged = true;
  273.       }
  274.  
  275.       var1 = ((OCdg)this).getParameterDefault("bararrowcolor");
  276.       if (var1 != null) {
  277.          this.m_ac = occcolor.ConvertColor(var1);
  278.          this.barchanged = true;
  279.       }
  280.  
  281.       var1 = ((OCdg)this).getParameterDefault("bararrowhlcolor");
  282.       if (var1 != null) {
  283.          this.m_hc = occcolor.ConvertColor(var1);
  284.          this.barchanged = true;
  285.       }
  286.  
  287.       var1 = ((OCdg)this).getParameterDefault("barbgcolor");
  288.       if (var1 != null) {
  289.          this.m_bgc = occcolor.ConvertColor(var1);
  290.          this.barchanged = true;
  291.       }
  292.  
  293.       var1 = ((OCdg)this).getParameterDefault("barslidecolor");
  294.       if (var1 != null) {
  295.          this.m_sc = occcolor.ConvertColor(var1);
  296.          this.barchanged = true;
  297.       }
  298.  
  299.       var1 = ((OCdg)this).getParameterDefault("baroutlinecolor");
  300.       if (var1 != null) {
  301.          this.m_oc = occcolor.ConvertColor(var1);
  302.          this.barchanged = true;
  303.       }
  304.  
  305.       var1 = ((OCdg)this).getParameterDefault("barbarrowcolor");
  306.       if (var1 != null) {
  307.          this.m_mac = occcolor.ConvertColor(var1);
  308.          this.barchanged = true;
  309.       } else {
  310.          this.m_mac = this.m_bc;
  311.       }
  312.  
  313.       var1 = ((OCdg)this).getParameterDefault("barbarrowhlcolor");
  314.       if (var1 != null) {
  315.          this.m_machl = occcolor.ConvertColor(var1);
  316.          this.barchanged = true;
  317.       } else {
  318.          this.m_machl = this.m_mac;
  319.       }
  320.  
  321.       var1 = ((OCdg)this).getParameterDefault("barinactivecolor");
  322.       if (var1 != null) {
  323.          this.m_unact = occcolor.ConvertColor(var1);
  324.          this.barchanged = true;
  325.       }
  326.  
  327.       var1 = ((OCdg)this).getParameterDefault("barslideinset");
  328.       if (var1 != null) {
  329.          this.m_si = Integer.parseInt(var1);
  330.          this.barchanged = true;
  331.       }
  332.  
  333.       var1 = ((OCdg)this).getParameterDefault("barflat");
  334.       if (var1 != null) {
  335.          this.m_sbflat = Boolean.valueOf(var1);
  336.          this.barchanged = true;
  337.       }
  338.  
  339.       var1 = ((OCdg)this).getParameterDefault("barindentbubble");
  340.       if (var1 != null) {
  341.          this.m_indent_bubble = Boolean.valueOf(var1);
  342.          this.barchanged = true;
  343.       }
  344.  
  345.       var1 = ((OCdg)this).getParameterDefault("tilebginbar");
  346.       if (var1 != null) {
  347.          this.m_tile_bg_insb = Boolean.valueOf(var1);
  348.          this.barchanged = true;
  349.       }
  350.  
  351.    }
  352.  
  353.    private void drawMainBG() {
  354.       if (this.mainBG != null) {
  355.          int var1 = 0;
  356.          int var2 = this.rmainWidth;
  357.          byte var3 = 0;
  358.          int var4 = super.appHeight * 2;
  359.          if (!this.m_tilebgin_margins) {
  360.             var1 = this.m_main_lmargin;
  361.             var2 = this.dgappwidth - this.m_main_lmargin - this.m_main_rmargin;
  362.          }
  363.  
  364.          if (this.m_clip_main_bg) {
  365.             var4 = this.m_main_desc.length * this.bitHeight + this.m_additional_clip_height;
  366.          }
  367.  
  368.          if (this.m_main_desc.length * this.bitHeight > var4) {
  369.             var4 = this.m_main_desc.length * this.bitHeight;
  370.          }
  371.  
  372.          super.g_off.clipRect(var1, var3, var2, var4);
  373.          if (!this.m_tile_mainbg) {
  374.             super.g_off.drawImage(this.mainBG, 0, 0, this);
  375.          } else {
  376.             int var5 = 0;
  377.             int var6 = 0;
  378.             int var7 = this.mainBG.getWidth(this);
  379.             int var8 = this.mainBG.getHeight(this);
  380.             int var9 = super.appHeight * 2;
  381.  
  382.             while(true) {
  383.                super.g_off.drawImage(this.mainBG, var5, var6, this);
  384.                var5 += var7;
  385.                if (var5 > this.rmainWidth) {
  386.                   var5 = 0;
  387.                   var6 += var8;
  388.                   if (this.m_clip_main_bg) {
  389.                      if (var6 > this.m_main_desc.length * this.bitHeight + this.m_additional_clip_height) {
  390.                         break;
  391.                      }
  392.                   } else if (var6 > var9) {
  393.                      break;
  394.                   }
  395.                }
  396.             }
  397.          }
  398.  
  399.          super.g_off = super.off.getGraphics();
  400.          super.g_off.setFont(this.m_main_font);
  401.          this.sb_bg = ((Component)this).createImage(this.m_sbwidth, super.appHeight);
  402.          Graphics var10 = this.sb_bg.getGraphics();
  403.          var10.drawImage(super.off, -this.dgappwidth, 0, this);
  404.       }
  405.  
  406.    }
  407.  
  408.    private void drawArrow(int var1, int var2, int var3, Color var4) {
  409.       if (var1 == 1) {
  410.          super.g_off.setColor(var4);
  411.          int var5 = var2;
  412.          int var6 = var3;
  413.          int var7 = 8;
  414.  
  415.          do {
  416.             super.g_off.drawLine(var5, var6, var5 + var7, var6);
  417.             ++var6;
  418.             ++var5;
  419.             var7 -= 2;
  420.          } while(var7 >= 0);
  421.       }
  422.  
  423.       if (var1 == 2) {
  424.          super.g_off.setColor(var4);
  425.          int var8 = var2;
  426.          int var9 = var3 + 4;
  427.          int var10 = 8;
  428.  
  429.          do {
  430.             super.g_off.drawLine(var8, var9, var8 + var10, var9);
  431.             --var9;
  432.             ++var8;
  433.             var10 -= 2;
  434.          } while(var10 >= 0);
  435.       }
  436.  
  437.    }
  438.  
  439.    public void initSpecifics() {
  440.       boolean var2 = false;
  441.       this.num_desc = super.spe_pv.size();
  442.       this.m_main_desc = new String[this.num_desc];
  443.       this.m_mainicon = new int[this.num_desc];
  444.       this.main_starty = new int[this.num_desc];
  445.  
  446.       for(int var4 = 0; var4 < this.num_desc; ++var4) {
  447.          String var1 = ((OCdg)this).getParameterSpecific("maindesc", var4);
  448.          if (var1 != null) {
  449.             this.m_main_desc[var4] = var1;
  450.          } else {
  451.             this.m_main_desc[var4] = "";
  452.          }
  453.  
  454.          var1 = ((OCdg)this).getParameterSpecificByTitle("icon image id", var4);
  455.          if (var1 != null) {
  456.             this.m_mainicon[var4] = Integer.parseInt(var1);
  457.          } else {
  458.             this.m_mainicon[var4] = -1;
  459.          }
  460.       }
  461.  
  462.    }
  463.  
  464.    private void initDrawMenu() {
  465.       this.subfm = ((Component)this).getFontMetrics(this.m_sub_font);
  466.       this.mainfm = ((Component)this).getFontMetrics(this.m_main_font);
  467.       if (!this.inputHeightFixed) {
  468.          int var1 = this.subfm.getHeight();
  469.          int var2 = this.mainfm.getHeight();
  470.          if (var1 > var2) {
  471.             this.m_item_height = var1;
  472.          } else {
  473.             this.m_item_height = var2;
  474.          }
  475.       }
  476.  
  477.       this.bitHeight = this.m_item_height;
  478.       this.bottom_height = super.appHeight - this.bitHeight;
  479.       this.rmainWidth = this.dgappwidth;
  480.       if (this.m_tilebgin_margins) {
  481.          this.rmainWidth += this.m_sbwidth;
  482.       }
  483.  
  484.       super.g_off.setFont(this.m_main_font);
  485.       super.g_off.setColor(this.m_bgcolor);
  486.       super.g_off.fillRect(0, 0, this.rmainWidth, super.appHeight);
  487.    }
  488.  
  489.    private void DrawMenu() {
  490.       this.m_arrowxoffset += this.dgappwidth - this.m_main_rmargin - 20;
  491.       this.m_arrowyoffset += this.m_item_height / 2 - 3;
  492.       super.g_off.setFont(this.m_main_font);
  493.       this.drawMainBG();
  494.       int var1 = 0;
  495.  
  496.       for(int var2 = 0; var2 < this.m_main_desc.length; ++var2) {
  497.          this.main_starty[var2] = var1;
  498.          if (this.m_main_boxcolor != null) {
  499.             super.g_off.setColor(this.m_main_boxcolor);
  500.             super.g_off.fillRect(this.m_main_lmargin, this.main_starty[var2], this.dgappwidth - this.m_main_lmargin - this.m_main_rmargin, this.m_item_height);
  501.          }
  502.  
  503.          if (this.m_main_outcolor != null) {
  504.             super.g_off.setColor(this.m_main_outcolor);
  505.             super.g_off.drawRect(this.m_main_lmargin, this.main_starty[var2], this.dgappwidth - this.m_main_lmargin - this.m_main_rmargin - 1, this.m_item_height - 1);
  506.          }
  507.  
  508.          int var3 = this.m_main_lmargin + this.m_main_text_indent;
  509.          if (this.i_pic != null && this.m_mainicon[var2] > -1 && this.i_pic.length > this.m_mainicon[var2] && this.i_pic[this.m_mainicon[var2]] != null) {
  510.             super.g_off.drawImage(this.i_pic[this.m_mainicon[var2]], this.m_main_lmargin + this.m_main_icon_indent, this.main_starty[var2] + this.m_main_icon_voffset + this.m_item_height / 2 - this.icon_d[this.m_mainicon[var2]].height / 2, this);
  511.             var3 = var3 + this.icon_d[this.m_mainicon[var2]].width + this.m_main_icon_indent;
  512.          }
  513.  
  514.          super.g_off.setColor(this.m_main_textcolor);
  515.          int var4 = this.main_starty[var2] + this.m_item_height - this.mainfm.getDescent() - (this.m_item_height - this.mainfm.getHeight()) / 2 + this.m_maintext_yoffset;
  516.          super.g_off.drawString(this.m_main_desc[var2], var3, var4);
  517.          if (this.m_unmaintext) {
  518.             super.g_off.drawLine(var3 + 1, var4 + 1, var3 + this.mainfm.stringWidth(this.m_main_desc[var2]) - 1, var4 + 1);
  519.          }
  520.  
  521.          this.drawArrow(1, this.m_arrowxoffset, this.main_starty[var2] + this.m_arrowyoffset, this.m_arrowcolor);
  522.          var1 += this.bitHeight;
  523.       }
  524.  
  525.    }
  526.  
  527.    private void DrawBar() {
  528.       if (this.barchanged) {
  529.          stsbimg var1 = new stsbimg(this, this.m_sbwidth, super.appHeight);
  530.          var1.setBarStyle(this.m_si, this.m_bc, this.m_ac, this.m_hc, this.m_bgc, this.m_sc, this.m_oc, this.m_mac, this.m_machl, this.m_unact, this.m_sbflat, this.m_indent_bubble);
  531.          if (this.sb_bg != null && this.m_tile_bg_insb) {
  532.             var1.setBarBgImage(this.sb_bg);
  533.          }
  534.  
  535.          Image var2 = var1.getSBImage();
  536.          if (var2 != null) {
  537.             super.g_off.drawImage(var2, this.dgappwidth, 0, this);
  538.          }
  539.  
  540.          this.barchanged = false;
  541.       }
  542.  
  543.    }
  544. }
  545.