home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 139 / dpcs0999.iso / Web / CFserver / data1.cab / Java / CFJava.cab / CFJavaRuntime.cab / allaire / controls / cfGridFormApplet.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-03-31  |  14.5 KB  |  1,269 lines

  1. package allaire.controls;
  2.  
  3. import allaire.util.FontUtils;
  4. import allaire.util.QuickSort;
  5. import allaire.util.SortCallback;
  6. import allaire.util.netHelpers;
  7. import java.applet.Applet;
  8. import java.awt.BorderLayout;
  9. import java.awt.Color;
  10. import java.awt.Component;
  11. import java.awt.Container;
  12. import java.awt.Font;
  13. import java.awt.Image;
  14. import java.awt.Rectangle;
  15. import java.net.MalformedURLException;
  16. import java.net.URL;
  17. import java.net.URLEncoder;
  18. import java.util.StringTokenizer;
  19. import java.util.Vector;
  20.  
  21. public class cfGridFormApplet extends Applet implements CFGRIDCallBack, SortCallback {
  22.    CFGRID Grid;
  23.    CFGridFormColumn[] ColumnDescription;
  24.    CFGRIDActionbar GridBar;
  25.    Vector deleteRows = new Vector();
  26.    Vector filteredRows = new Vector();
  27.    int SelectMode;
  28.    int Row;
  29.    int Columns;
  30.    int TotalColumns;
  31.    int Rows;
  32.    int MaxRows;
  33.    int sortKey;
  34.    int sortType;
  35.    boolean bUseRowHeaders;
  36.    boolean bUseColumnHeaders;
  37.    boolean bHasUrls;
  38.    boolean sortAscending;
  39.    boolean bAppendKeys = true;
  40.  
  41.    public String cf_getGridForm() {
  42.       if (this.SelectMode == 105) {
  43.          this.Grid.flushEditColumn();
  44.       }
  45.  
  46.       Rectangle var1 = this.Grid.getSelection();
  47.       if (this.SelectMode == 105) {
  48.          return this.cf_getEditSelectionData();
  49.       } else if (var1 != null && !this.Grid.isColumnHeaderSelected()) {
  50.          if (this.SelectMode == 101) {
  51.             return this.cf_getSingleSelectionData(var1);
  52.          } else {
  53.             return this.SelectMode == 103 ? this.cf_getColumnSelectionData(var1) : this.cf_getRowSelectionData(var1);
  54.          }
  55.       } else {
  56.          return "";
  57.       }
  58.    }
  59.  
  60.    private String cf_getRowSelectionData(Rectangle var1) {
  61.       CFDATARow var2 = (CFDATARow)this.Grid.getUserRowAttribute(var1.y);
  62.       String var3 = "";
  63.       int var4 = this.TotalColumns - 1;
  64.       int var5 = 0;
  65.       int var6 = this.Columns;
  66.  
  67.       for(int var7 = 0; var7 < this.TotalColumns; ++var7) {
  68.          var3 = var3 + "__CFGRID__COLUMN__=";
  69.          var3 = var3 + this.ColumnDescription[var7].m_name;
  70.          var3 = var3 + "; __CFGRID__DATA__=";
  71.          if (this.ColumnDescription[var7].m_visible) {
  72.             var3 = var3 + var2.getDataColumn(var5);
  73.             ++var5;
  74.          } else {
  75.             var3 = var3 + var2.getDataColumn(var6);
  76.             ++var6;
  77.          }
  78.  
  79.          if (var7 != var4) {
  80.             var3 = var3 + "; ";
  81.          }
  82.       }
  83.  
  84.       return var3;
  85.    }
  86.  
  87.    public int Compare(Object var1, Object var2) {
  88.       CFDATARow var3 = (CFDATARow)var1;
  89.       CFDATARow var4 = (CFDATARow)var2;
  90.       if (this.sortType == 1) {
  91.          byte var10 = 0;
  92.          double var12 = var3.getDataColumn(this.sortKey) == null ? Double.MIN_VALUE : new Double(var3.getDataColumn(this.sortKey));
  93.          double var8 = var4.getDataColumn(this.sortKey) == null ? Double.MIN_VALUE : new Double(var4.getDataColumn(this.sortKey));
  94.          if (var12 > var8) {
  95.             var10 = 1;
  96.          } else {
  97.             if (!(var8 > var12)) {
  98.                return 0;
  99.             }
  100.  
  101.             var10 = -1;
  102.          }
  103.  
  104.          return this.sortAscending ? var10 : -var10;
  105.       } else {
  106.          String var5 = var3.getDataColumn(this.sortKey) == null ? "" : var3.getDataColumn(this.sortKey);
  107.          String var6 = var4.getDataColumn(this.sortKey) == null ? "" : var4.getDataColumn(this.sortKey);
  108.          return this.sortAscending ? var5.compareTo(var6) : var6.compareTo(var5);
  109.       }
  110.    }
  111.  
  112.    void Insert(String var1, int var2, int var3) {
  113.       this.Grid.setElement(var1, var2, var3);
  114.    }
  115.  
  116.    private String cf_getColumnSelectionData(Rectangle var1) {
  117.       int var2 = this.Rows - 1;
  118.       String var3 = "__CFGRID__COLUMN__=";
  119.       var3 = var3 + this.ColumnDescription[var1.x].m_name;
  120.       var3 = var3 + "; __CFGRID__DATA__=";
  121.  
  122.       for(int var4 = 0; var4 < this.Rows; ++var4) {
  123.          CFDATARow var5 = (CFDATARow)this.Grid.getUserRowAttribute(var4);
  124.          var3 = var3 + var5.getDataColumn(var1.x);
  125.          if (var4 != var2) {
  126.             var3 = var3 + ",";
  127.          }
  128.       }
  129.  
  130.       return var3;
  131.    }
  132.  
  133.    public boolean CFGRIDMessage(CFGRID var1, int var2, Rectangle var3) {
  134.       if (var3 != null && var2 == 510) {
  135.          int var12 = this.cf_getVisibleColumnNdx(var3.x);
  136.          if (this.ColumnDescription[var12].m_url != null) {
  137.             try {
  138.                String var5 = "";
  139.                if (this.ColumnDescription[var12].m_urlkey != null) {
  140.                   int var15 = this.cf_getColumnNdx(this.ColumnDescription[var12].m_urlkey);
  141.                   if (var15 >= 0) {
  142.                      CFDATARow var18 = (CFDATARow)this.Grid.getUserRowAttribute(var3.y);
  143.                      var5 = var18.getDataColumn(var15) != null && var18.getDataColumn(var15).length() != 0 ? var18.getDataColumn(var15) : var18.getOrigioDataColumn(var15);
  144.                      if (var5 == null) {
  145.                         var5 = "";
  146.                      }
  147.                   }
  148.                } else if (this.SelectMode == 101) {
  149.                   var5 = this.Grid.getElement(var3.y, var3.x);
  150.                } else if (this.SelectMode == 103) {
  151.                   int var14 = this.Rows - 1;
  152.  
  153.                   for(int var17 = 0; var17 < this.Rows; ++var17) {
  154.                      var5 = var5 + this.Grid.getElement(var17, var3.x);
  155.                      if (var17 != var14) {
  156.                         var5 = var5 + ",";
  157.                      }
  158.                   }
  159.                } else {
  160.                   int var7 = this.Columns - 1;
  161.  
  162.                   for(int var8 = 0; var8 < this.Columns; ++var8) {
  163.                      var5 = var5 + this.Grid.getElement(var3.y, var8);
  164.                      if (var8 != var7) {
  165.                         var5 = var5 + ",";
  166.                      }
  167.                   }
  168.                }
  169.  
  170.                var5 = URLEncoder.encode(var5);
  171.                String var19 = null;
  172.                if (this.ColumnDescription[var12].m_url.toLowerCase().startsWith("http://")) {
  173.                   var19 = this.ColumnDescription[var12].m_url;
  174.                } else {
  175.                   int var9 = this.cf_getColumnNdx(this.ColumnDescription[var12].m_url);
  176.                   if (var9 >= 0) {
  177.                      CFDATARow var10 = (CFDATARow)this.Grid.getUserRowAttribute(var3.y);
  178.                      var19 = var10.getDataColumn(var9) != null && var10.getDataColumn(var9).length() != 0 ? var10.getDataColumn(var9) : var10.getOrigioDataColumn(var9);
  179.                   }
  180.  
  181.                   if (var19 == null || var19.length() == 0) {
  182.                      var19 = this.ColumnDescription[var12].m_url;
  183.                   }
  184.                }
  185.  
  186.                String var16;
  187.                if (!this.bAppendKeys) {
  188.                   var16 = var19;
  189.                } else if (this.ColumnDescription[var12].m_url.indexOf("?") > 0) {
  190.                   var16 = var19 + "&CFGRIDKEY=" + var5;
  191.                } else {
  192.                   var16 = this.ColumnDescription[var12].m_url + "?CFGRIDKEY=" + var5;
  193.                }
  194.  
  195.                URL var6;
  196.                if (var16.toLowerCase().startsWith("http://")) {
  197.                   var6 = new URL(var16);
  198.                } else {
  199.                   var6 = new URL(((Applet)this).getDocumentBase(), var16);
  200.                }
  201.  
  202.                if (this.ColumnDescription[var12].m_urldestination != null) {
  203.                   ((Applet)this).getAppletContext().showDocument(var6, this.ColumnDescription[var12].m_urldestination);
  204.                } else {
  205.                   ((Applet)this).getAppletContext().showDocument(var6);
  206.                }
  207.             } catch (MalformedURLException var11) {
  208.             }
  209.          }
  210.       } else if (var3 != null && var2 == 550) {
  211.          CFDATARow var4 = (CFDATARow)this.Grid.getUserRowAttribute(var3.y);
  212.          if (var4 != null) {
  213.             var4.setDataColumn(this.Grid.getElement(var3.y, var3.x), var3.x);
  214.          }
  215.       } else if (var2 == 560) {
  216.          this.InsertRow(this.Grid.getRows());
  217.       } else if (var2 == 570) {
  218.          this.DeleteRow();
  219.       } else if (var2 == 580) {
  220.          this.SortRows(true);
  221.       } else if (var2 == 581) {
  222.          this.SortRows(false);
  223.       }
  224.  
  225.       return false;
  226.    }
  227.  
  228.    private int cf_getVisibleColumnNdx(int var1) {
  229.       int var2 = -1;
  230.  
  231.       for(int var3 = 0; var3 < this.TotalColumns; ++var3) {
  232.          if (this.ColumnDescription[var3].m_visible) {
  233.             ++var2;
  234.             if (var2 == var1) {
  235.                var2 = var3;
  236.                break;
  237.             }
  238.          }
  239.       }
  240.  
  241.       return var2;
  242.    }
  243.  
  244.    private int cf_getColumnNdx(String var1) {
  245.       int var2 = -1;
  246.       int var3 = -1;
  247.       int var4 = this.Columns - 1;
  248.  
  249.       for(int var5 = 0; var5 < this.TotalColumns; ++var5) {
  250.          if (this.ColumnDescription[var5].m_visible) {
  251.             ++var3;
  252.          } else {
  253.             ++var4;
  254.          }
  255.  
  256.          if (this.ColumnDescription[var5].m_name.compareTo(var1) == 0) {
  257.             var2 = this.ColumnDescription[var5].m_visible ? var3 : var4;
  258.             break;
  259.          }
  260.       }
  261.  
  262.       return var2;
  263.    }
  264.  
  265.    private void InsertRow(int var1) {
  266.       this.Grid.insertRowAt(var1);
  267.       int var2 = 0;
  268.       if (this.bUseRowHeaders) {
  269.          this.Grid.setRowHeaderElement(String.valueOf(var1 + 1), var1);
  270.       }
  271.  
  272.       CFDATARow var3 = new CFDATARow(this.TotalColumns);
  273.       var3.markInsert();
  274.       this.Grid.setUserRowAttribute(var3, var1);
  275.  
  276.       for(int var4 = 0; var4 < this.TotalColumns; ++var4) {
  277.          if (this.ColumnDescription[var4].m_visible) {
  278.             if (!this.ColumnDescription[var4].m_readonly) {
  279.                break;
  280.             }
  281.  
  282.             ++var2;
  283.          }
  284.       }
  285.  
  286.       this.Grid.setSelection(var1, var2);
  287.    }
  288.  
  289.    private void DeleteRow() {
  290.       Rectangle var1 = this.Grid.getSelection();
  291.       if (var1 != null) {
  292.          if (!((CFDATARow)this.Grid.getUserRowAttribute(var1.y)).inserted()) {
  293.             this.deleteRows.addElement((CFDATARow)this.Grid.getUserRowAttribute(var1.y));
  294.          }
  295.  
  296.          this.Grid.deleteRow(var1.y);
  297.          if (this.bUseRowHeaders) {
  298.             int var2 = this.Grid.getRows();
  299.  
  300.             for(int var3 = var1.y; var3 < var2; ++var3) {
  301.                this.Grid.setRowHeaderElement(String.valueOf(var3 + 1), var3);
  302.             }
  303.          }
  304.  
  305.       }
  306.    }
  307.  
  308.    private String cf_getSingleSelectionData(Rectangle var1) {
  309.       String var2 = "__CFGRID__COLUMN__=";
  310.       var2 = var2 + this.ColumnDescription[var1.x].m_name;
  311.       var2 = var2 + "; __CFGRID__DATA__=";
  312.       CFDATARow var3 = (CFDATARow)this.Grid.getUserRowAttribute(var1.y);
  313.       var2 = var2 + var3.getDataColumn(var1.x);
  314.       return var2;
  315.    }
  316.  
  317.    private String cf_getEditSelectionData() {
  318.       int var1 = this.Grid.getRows();
  319.       Object var2 = null;
  320.       String var3 = "__CFGRID__EDIT__=";
  321.       Vector var7 = new Vector();
  322.       Vector var8 = new Vector();
  323.       var3 = var3 + Integer.toString(this.TotalColumns);
  324.  
  325.       for(int var9 = 0; var9 < this.TotalColumns; ++var9) {
  326.          var3 = var3 + "\u0001";
  327.          var3 = var3 + this.ColumnDescription[var9].m_name;
  328.          var3 = var3 + "\u0002";
  329.          var3 = var3 + (this.ColumnDescription[var9].m_visible && !this.ColumnDescription[var9].m_readonly ? "Y" : "N");
  330.       }
  331.  
  332.       var3 = var3 + "\u0001";
  333.  
  334.       for(int var32 = 0; var32 < var1; ++var32) {
  335.          CFDATARow var11 = (CFDATARow)this.Grid.getUserRowAttribute(var32);
  336.          if (!var11.unchanged()) {
  337.             if (var11.updated()) {
  338.                var8.addElement(var11);
  339.             } else if (var11.inserted()) {
  340.                var7.addElement(var11);
  341.             }
  342.          }
  343.       }
  344.  
  345.       var3 = var3 + Integer.toString(var8.size() + var7.size() + this.deleteRows.size());
  346.       int var6 = this.deleteRows.size();
  347.  
  348.       for(int var33 = 0; var33 < var6; ++var33) {
  349.          var3 = var3 + "\u0001";
  350.          var3 = var3 + "D";
  351.          CFDATARow var12 = (CFDATARow)this.deleteRows.elementAt(var33);
  352.          int var4 = 0;
  353.          int var5 = this.Columns;
  354.  
  355.          for(int var10 = 0; var10 < this.TotalColumns; ++var10) {
  356.             var3 = var3 + "\u0002";
  357.             if (this.ColumnDescription[var10].m_visible) {
  358.                var3 = var3 + (var12.getOrigioDataColumn(var4) != null && var12.getOrigioDataColumn(var4).length() != 0 ? var12.getOrigioDataColumn(var4) : "\u0003");
  359.                ++var4;
  360.             } else {
  361.                var3 = var3 + (var12.getOrigioDataColumn(var5) != null && var12.getOrigioDataColumn(var5).length() != 0 ? var12.getOrigioDataColumn(var5) : "\u0003");
  362.                ++var5;
  363.             }
  364.          }
  365.       }
  366.  
  367.       var6 = var7.size();
  368.  
  369.       for(int var34 = 0; var34 < var6; ++var34) {
  370.          var3 = var3 + "\u0001";
  371.          var3 = var3 + "I";
  372.          CFDATARow var13 = (CFDATARow)var7.elementAt(var34);
  373.          int var27 = 0;
  374.  
  375.          for(int var36 = 0; var36 < this.TotalColumns; ++var36) {
  376.             var3 = var3 + "\u0002";
  377.             if (this.ColumnDescription[var36].m_visible) {
  378.                if (!this.ColumnDescription[var36].m_readonly) {
  379.                   var3 = var3 + (var13.getDataColumn(var27) != null && var13.getDataColumn(var27).length() != 0 ? var13.getDataColumn(var27) : "\u0003");
  380.                }
  381.  
  382.                ++var27;
  383.             }
  384.          }
  385.       }
  386.  
  387.       var6 = var8.size();
  388.  
  389.       for(int var35 = 0; var35 < var6; ++var35) {
  390.          var3 = var3 + "\u0001";
  391.          var3 = var3 + "U";
  392.          CFDATARow var14 = (CFDATARow)var8.elementAt(var35);
  393.          int var28 = 0;
  394.          int var29 = this.Columns;
  395.  
  396.          for(int var37 = 0; var37 < this.TotalColumns; ++var37) {
  397.             var3 = var3 + "\u0002";
  398.             if (this.ColumnDescription[var37].m_visible) {
  399.                if (!this.ColumnDescription[var37].m_readonly) {
  400.                   var3 = var3 + (var14.getDataColumn(var28) != null && var14.getDataColumn(var28).length() != 0 ? var14.getDataColumn(var28) : "\u0003");
  401.                   var3 = var3 + "\u0002";
  402.                }
  403.  
  404.                var3 = var3 + (var14.getOrigioDataColumn(var28) != null && var14.getOrigioDataColumn(var28).length() != 0 ? var14.getOrigioDataColumn(var28) : "\u0003");
  405.                ++var28;
  406.             } else {
  407.                var3 = var3 + (var14.getOrigioDataColumn(var29) != null && var14.getOrigioDataColumn(var29).length() != 0 ? var14.getOrigioDataColumn(var29) : "\u0003");
  408.                ++var29;
  409.             }
  410.          }
  411.  
  412.          var14.reset();
  413.       }
  414.  
  415.       return var3;
  416.    }
  417.  
  418.    public void init() {
  419.       String var1 = ((Applet)this).getParameter("griddescription");
  420.       String var2 = ((Applet)this).getParameter("griddata");
  421.       String var3 = null;
  422.       String var4 = null;
  423.       String var5 = null;
  424.       String var6 = null;
  425.       String var7 = null;
  426.       String var8 = null;
  427.       String var9 = null;
  428.       Font var10 = null;
  429.       Font var11 = null;
  430.       Font var12 = null;
  431.       Color var13 = null;
  432.       Color var14 = null;
  433.       short var15 = 202;
  434.       short var16 = 202;
  435.       short var17 = 202;
  436.       int var18 = -1;
  437.       int var19 = -1;
  438.       int var20 = 0;
  439.       boolean var21 = true;
  440.       boolean var22 = false;
  441.       boolean var23 = true;
  442.       boolean var24 = false;
  443.       this.TotalColumns = 0;
  444.       this.Columns = 0;
  445.       this.MaxRows = 0;
  446.       this.Rows = 0;
  447.       this.bUseColumnHeaders = true;
  448.       this.bUseRowHeaders = true;
  449.       this.bHasUrls = false;
  450.       if (var1 != null) {
  451.          var1 = netHelpers.URLDecode(var1);
  452.          StringTokenizer var31 = new StringTokenizer(var1, "\u0001");
  453.          String var32 = var31.nextToken();
  454.          StringTokenizer var33 = new StringTokenizer(var32, "\u0002");
  455.          String var25;
  456.          if (var33.hasMoreTokens()) {
  457.             var25 = var33.nextToken();
  458.          } else {
  459.             var25 = "0";
  460.          }
  461.  
  462.          this.TotalColumns = Integer.parseInt(var25);
  463.          if (var33.hasMoreTokens()) {
  464.             String var34 = var33.nextToken();
  465.             if (var34.compareTo("\u0003") != 0) {
  466.                this.Rows = Integer.parseInt(var34);
  467.             }
  468.          }
  469.  
  470.          if (var33.hasMoreTokens()) {
  471.             var33.nextToken();
  472.          }
  473.  
  474.          if (var33.hasMoreTokens()) {
  475.             var33.nextToken();
  476.          }
  477.  
  478.          if (var33.hasMoreTokens()) {
  479.             String var73 = var33.nextToken();
  480.             if (var73.compareTo("\u0003") != 0) {
  481.                int var35 = Integer.parseInt(var73);
  482.                if (var35 == 1) {
  483.                   var15 = 203;
  484.                } else if (var35 == 2) {
  485.                   var15 = 201;
  486.                }
  487.             }
  488.          }
  489.  
  490.          if (var33.hasMoreTokens()) {
  491.             String var74 = var33.nextToken();
  492.             if (var74.compareTo("\u0003") != 0) {
  493.                int var107 = Integer.parseInt(var74);
  494.                if (var107 == 1) {
  495.                   var16 = 203;
  496.                } else if (var107 == 2) {
  497.                   var16 = 201;
  498.                }
  499.             }
  500.          }
  501.  
  502.          if (var33.hasMoreTokens()) {
  503.             String var75 = var33.nextToken();
  504.             if (var75.compareTo("\u0003") != 0) {
  505.                int var108 = Integer.parseInt(var75);
  506.                if (var108 == 1) {
  507.                   var17 = 203;
  508.                } else if (var108 == 2) {
  509.                   var17 = 201;
  510.                }
  511.             }
  512.          }
  513.  
  514.          if (var33.hasMoreTokens()) {
  515.             String var26 = var33.nextToken();
  516.             if (var26.compareTo("\u0003") != 0) {
  517.                var13 = FontUtils.getColor(var26, Color.lightGray);
  518.             }
  519.          }
  520.  
  521.          if (var33.hasMoreTokens()) {
  522.             String var41 = var33.nextToken();
  523.             if (var41.compareTo("\u0003") != 0) {
  524.                var14 = FontUtils.getColor(var41, Color.pink);
  525.             }
  526.          }
  527.  
  528.          if (var33.hasMoreTokens()) {
  529.             String var27 = var33.nextToken();
  530.             if (var27.compareTo("S") == 0) {
  531.                this.SelectMode = 101;
  532.             } else if (var27.compareTo("C") == 0) {
  533.                this.SelectMode = 103;
  534.             } else if (var27.compareTo("R") == 0) {
  535.                this.SelectMode = 102;
  536.             } else if (var27.compareTo("E") == 0) {
  537.                this.SelectMode = 105;
  538.             } else {
  539.                this.SelectMode = 104;
  540.             }
  541.          } else {
  542.             this.SelectMode = 104;
  543.          }
  544.  
  545.          if (var33.hasMoreTokens()) {
  546.             String var76 = var33.nextToken();
  547.             if (var76.compareTo("\u0003") != 0) {
  548.                this.MaxRows = Integer.parseInt(var76);
  549.             }
  550.          }
  551.  
  552.          if (var33.hasMoreTokens()) {
  553.             String var77 = var33.nextToken();
  554.             if (var77.compareTo("Y") == 0 && this.SelectMode == 105) {
  555.                var20 |= 1;
  556.             }
  557.          }
  558.  
  559.          if (var33.hasMoreTokens()) {
  560.             String var78 = var33.nextToken();
  561.             if (var78.compareTo("Y") == 0 && this.SelectMode == 105) {
  562.                var20 |= 2;
  563.             }
  564.          }
  565.  
  566.          if (var33.hasMoreTokens()) {
  567.             String var79 = var33.nextToken();
  568.             if (var79.compareTo("Y") == 0) {
  569.                var20 |= 4;
  570.             }
  571.          }
  572.  
  573.          if (var33.hasMoreTokens()) {
  574.             String var80 = var33.nextToken();
  575.             if (var80.compareTo("Y") == 0) {
  576.                var20 |= 16;
  577.             }
  578.          }
  579.  
  580.          if (var33.hasMoreTokens()) {
  581.             String var81 = var33.nextToken();
  582.             if (var81.compareTo("N") == 0) {
  583.                this.bUseColumnHeaders = false;
  584.             }
  585.          }
  586.  
  587.          if (var33.hasMoreTokens()) {
  588.             String var82 = var33.nextToken();
  589.             if (var82.compareTo("N") == 0) {
  590.                this.bUseRowHeaders = false;
  591.             }
  592.          }
  593.  
  594.          String var28;
  595.          if (var33.hasMoreTokens()) {
  596.             var28 = var33.nextToken();
  597.             if (var28.compareTo("\u0003") == 0) {
  598.                var28 = ((Component)this).getFont().getName();
  599.             }
  600.          } else {
  601.             var28 = ((Component)this).getFont().getName();
  602.          }
  603.  
  604.          int var30;
  605.          if (var33.hasMoreTokens()) {
  606.             String var83 = var33.nextToken();
  607.             if (var83.compareTo("\u0003") != 0) {
  608.                var30 = Integer.parseInt(var83);
  609.             } else {
  610.                var30 = 12;
  611.             }
  612.          } else {
  613.             var30 = 12;
  614.          }
  615.  
  616.          int var29;
  617.          if (var33.hasMoreTokens()) {
  618.             String var84 = var33.nextToken();
  619.             if (var84.compareTo("Y") == 0) {
  620.                var29 = 2;
  621.             } else {
  622.                var29 = 0;
  623.             }
  624.          } else {
  625.             var29 = 0;
  626.          }
  627.  
  628.          if (var33.hasMoreTokens()) {
  629.             String var85 = var33.nextToken();
  630.             if (var85.compareTo("Y") == 0) {
  631.                ++var29;
  632.             }
  633.          }
  634.  
  635.          var12 = new Font(var28, var29, var30);
  636.          if (var33.hasMoreTokens()) {
  637.             var28 = var33.nextToken();
  638.             if (var28.compareTo("\u0003") == 0) {
  639.                var28 = ((Component)this).getFont().getName();
  640.             }
  641.          } else {
  642.             var28 = ((Component)this).getFont().getName();
  643.          }
  644.  
  645.          if (var33.hasMoreTokens()) {
  646.             String var86 = var33.nextToken();
  647.             if (var86.compareTo("\u0003") != 0) {
  648.                var30 = Integer.parseInt(var86);
  649.             } else {
  650.                var30 = 12;
  651.             }
  652.          } else {
  653.             var30 = 12;
  654.          }
  655.  
  656.          if (var33.hasMoreTokens()) {
  657.             String var87 = var33.nextToken();
  658.             if (var87.compareTo("Y") == 0) {
  659.                var29 = 2;
  660.             } else {
  661.                var29 = 0;
  662.             }
  663.          } else {
  664.             var29 = 0;
  665.          }
  666.  
  667.          if (var33.hasMoreTokens()) {
  668.             String var88 = var33.nextToken();
  669.             if (var88.compareTo("Y") == 0) {
  670.                ++var29;
  671.             }
  672.          }
  673.  
  674.          var11 = new Font(var28, var29, var30);
  675.          if (var33.hasMoreTokens()) {
  676.             String var89 = var33.nextToken();
  677.             if (var89.compareTo("\u0003") != 0) {
  678.                var19 = Integer.parseInt(var89);
  679.             }
  680.          }
  681.  
  682.          if (var33.hasMoreTokens()) {
  683.             String var90 = var33.nextToken();
  684.             if (var90.compareTo("\u0003") != 0) {
  685.                var18 = Integer.parseInt(var90);
  686.             }
  687.          }
  688.  
  689.          if (var33.hasMoreTokens()) {
  690.             var28 = var33.nextToken();
  691.             if (var28.compareTo("\u0003") == 0) {
  692.                var28 = ((Component)this).getFont().getName();
  693.             }
  694.          } else {
  695.             var28 = ((Component)this).getFont().getName();
  696.          }
  697.  
  698.          if (var33.hasMoreTokens()) {
  699.             String var91 = var33.nextToken();
  700.             if (var91.compareTo("\u0003") != 0) {
  701.                var30 = Integer.parseInt(var91);
  702.             } else {
  703.                var30 = 12;
  704.             }
  705.          } else {
  706.             var30 = 12;
  707.          }
  708.  
  709.          if (var33.hasMoreTokens()) {
  710.             String var92 = var33.nextToken();
  711.             if (var92.compareTo("Y") == 0) {
  712.                var29 = 2;
  713.             } else {
  714.                var29 = 0;
  715.             }
  716.          } else {
  717.             var29 = 0;
  718.          }
  719.  
  720.          if (var33.hasMoreTokens()) {
  721.             String var93 = var33.nextToken();
  722.             if (var93.compareTo("Y") == 0) {
  723.                ++var29;
  724.             }
  725.          }
  726.  
  727.          var10 = new Font(var28, var29, var30);
  728.          if (var33.hasMoreTokens()) {
  729.             String var94 = var33.nextToken();
  730.             if (var94.compareTo("\u0003") != 0) {
  731.                var3 = var94;
  732.                this.bHasUrls = true;
  733.             }
  734.          }
  735.  
  736.          if (var33.hasMoreTokens()) {
  737.             String var95 = var33.nextToken();
  738.             if (var95.compareTo("\u0003") != 0) {
  739.                var5 = var95;
  740.             }
  741.          }
  742.  
  743.          if (var33.hasMoreTokens()) {
  744.             String var96 = var33.nextToken();
  745.             if (var96.compareTo("\u0003") != 0) {
  746.                var4 = var96;
  747.             }
  748.          }
  749.  
  750.          if (var33.hasMoreTokens()) {
  751.             String var97 = var33.nextToken();
  752.             if (var97.compareTo("N") == 0) {
  753.                var21 = false;
  754.             }
  755.          }
  756.  
  757.          if (var33.hasMoreTokens()) {
  758.             String var98 = var33.nextToken();
  759.             if (var98.compareTo("N") == 0) {
  760.                this.bAppendKeys = false;
  761.             }
  762.          }
  763.  
  764.          if (var33.hasMoreTokens()) {
  765.             String var99 = var33.nextToken();
  766.             if (var99.compareTo("N") == 0) {
  767.                var23 = false;
  768.             }
  769.          }
  770.  
  771.          if (var33.hasMoreTokens()) {
  772.             String var100 = var33.nextToken();
  773.             if (var100.compareTo("Y") == 0) {
  774.                var24 = true;
  775.             }
  776.          }
  777.  
  778.          if (var33.hasMoreTokens()) {
  779.             String var101 = var33.nextToken();
  780.             if (var101.compareTo("\u0003") != 0) {
  781.                var6 = var101;
  782.             }
  783.          }
  784.  
  785.          if (var33.hasMoreTokens()) {
  786.             String var102 = var33.nextToken();
  787.             if (var102.compareTo("\u0003") != 0) {
  788.                var7 = var102;
  789.             }
  790.          }
  791.  
  792.          if (var33.hasMoreTokens()) {
  793.             String var103 = var33.nextToken();
  794.             if (var103.compareTo("\u0003") != 0) {
  795.                var8 = var103;
  796.             }
  797.          }
  798.  
  799.          if (var33.hasMoreTokens()) {
  800.             String var104 = var33.nextToken();
  801.             if (var104.compareTo("\u0003") != 0) {
  802.                var9 = var104;
  803.             }
  804.          }
  805.  
  806.          if (this.TotalColumns > 0) {
  807.             this.ColumnDescription = new CFGridFormColumn[this.TotalColumns];
  808.          }
  809.  
  810.          int var105 = 0;
  811.  
  812.          while(var31.hasMoreTokens()) {
  813.             var32 = var31.nextToken();
  814.             if (var105 >= this.TotalColumns) {
  815.                ++var105;
  816.             } else {
  817.                boolean var109 = false;
  818.                var33 = new StringTokenizer(var32, "\u0002");
  819.                this.ColumnDescription[var105] = new CFGridFormColumn();
  820.                if (var33.hasMoreTokens()) {
  821.                   this.ColumnDescription[var105].m_name = var33.nextToken();
  822.                }
  823.  
  824.                if (var33.hasMoreTokens()) {
  825.                   String var36 = var33.nextToken();
  826.                   if (var36.compareTo("N") == 0) {
  827.                      this.ColumnDescription[var105].m_visible = false;
  828.                   } else {
  829.                      ++this.Columns;
  830.                   }
  831.                } else {
  832.                   ++this.Columns;
  833.                }
  834.  
  835.                if (var33.hasMoreTokens()) {
  836.                   String var111 = var33.nextToken();
  837.                   if (var111.compareTo("Y") == 0) {
  838.                      this.ColumnDescription[var105].m_readonly = true;
  839.                   }
  840.                }
  841.  
  842.                if (var33.hasMoreTokens()) {
  843.                   String var112 = var33.nextToken();
  844.                   if (var112.compareTo("\u0003") != 0) {
  845.                      this.ColumnDescription[var105].m_header = var112;
  846.                   }
  847.                }
  848.  
  849.                if (var33.hasMoreTokens()) {
  850.                   String var113 = var33.nextToken();
  851.                   if (var113.compareTo("\u0003") != 0) {
  852.                      this.ColumnDescription[var105].m_dataWidth = Integer.parseInt(var113);
  853.                   }
  854.                }
  855.  
  856.                if (var33.hasMoreTokens()) {
  857.                   String var114 = var33.nextToken();
  858.                   if (var114.compareTo("\u0003") != 0) {
  859.                      int var37 = Integer.parseInt(var114);
  860.                      if (var37 == 1) {
  861.                         this.ColumnDescription[var105].m_dataAlign = 203;
  862.                      } else if (var37 == 2) {
  863.                         this.ColumnDescription[var105].m_dataAlign = 201;
  864.                      } else {
  865.                         this.ColumnDescription[var105].m_dataAlign = 202;
  866.                      }
  867.                   }
  868.                }
  869.  
  870.                if (var33.hasMoreTokens()) {
  871.                   String var115 = var33.nextToken();
  872.                   if (var115.compareTo("\u0003") != 0) {
  873.                      int var123 = Integer.parseInt(var115);
  874.                      if (var123 == 1) {
  875.                         this.ColumnDescription[var105].m_headerAlign = 203;
  876.                      } else if (var123 == 2) {
  877.                         this.ColumnDescription[var105].m_headerAlign = 201;
  878.                      } else {
  879.                         this.ColumnDescription[var105].m_headerAlign = 202;
  880.                      }
  881.                   }
  882.                }
  883.  
  884.                int var116 = 0;
  885.  
  886.                while(var33.hasMoreTokens()) {
  887.                   var28 = var33.nextToken();
  888.                   if (var28.compareTo("\u0003") != 0) {
  889.                      var109 = true;
  890.                   } else {
  891.                      var28 = ((Component)this).getFont().getName();
  892.                   }
  893.  
  894.                   if (var33.hasMoreTokens()) {
  895.                      String var124 = var33.nextToken();
  896.                      if (var124.compareTo("\u0003") != 0) {
  897.                         var30 = Integer.parseInt(var124);
  898.                         var109 = true;
  899.                      } else {
  900.                         var30 = 12;
  901.                      }
  902.                   } else {
  903.                      var30 = 12;
  904.                   }
  905.  
  906.                   if (var33.hasMoreTokens()) {
  907.                      String var125 = var33.nextToken();
  908.                      if (var125.compareTo("Y") == 0) {
  909.                         var29 = 2;
  910.                         var109 = true;
  911.                      } else {
  912.                         if (var125.compareTo("N") == 0) {
  913.                            var109 = true;
  914.                         }
  915.  
  916.                         var29 = 0;
  917.                      }
  918.                   } else {
  919.                      var29 = 0;
  920.                   }
  921.  
  922.                   if (var33.hasMoreTokens()) {
  923.                      String var126 = var33.nextToken();
  924.                      if (var126.compareTo("Y") == 0) {
  925.                         ++var29;
  926.                         var109 = true;
  927.                      } else if (var126.compareTo("N") == 0) {
  928.                         var109 = true;
  929.                      }
  930.                   }
  931.  
  932.                   if (var109) {
  933.                      if (var116 == 0) {
  934.                         this.ColumnDescription[var105].m_dataFont = new Font(var28, var29, var30);
  935.                      } else {
  936.                         this.ColumnDescription[var105].m_headerFont = new Font(var28, var29, var30);
  937.                      }
  938.  
  939.                      var109 = false;
  940.                   }
  941.  
  942.                   ++var116;
  943.                   if (var116 >= 2) {
  944.                      break;
  945.                   }
  946.                }
  947.  
  948.                if (var33.hasMoreTokens()) {
  949.                   String var117 = var33.nextToken();
  950.                   if (var117.compareTo("\u0003") != 0) {
  951.                      this.ColumnDescription[var105].m_url = var117;
  952.                      this.bHasUrls = true;
  953.                   } else if (var3 != null) {
  954.                      this.ColumnDescription[var105].m_url = var3;
  955.                   }
  956.                } else if (var3 != null) {
  957.                   this.ColumnDescription[var105].m_url = var3;
  958.                }
  959.  
  960.                if (var33.hasMoreTokens()) {
  961.                   String var118 = var33.nextToken();
  962.                   if (var118.compareTo("\u0003") != 0) {
  963.                      this.ColumnDescription[var105].m_urldestination = var118;
  964.                   } else if (var5 != null) {
  965.                      this.ColumnDescription[var105].m_urldestination = var5;
  966.                   }
  967.                } else if (var5 != null) {
  968.                   this.ColumnDescription[var105].m_urldestination = var5;
  969.                }
  970.  
  971.                if (var33.hasMoreTokens()) {
  972.                   String var119 = var33.nextToken();
  973.                   if (var119.compareTo("\u0003") != 0) {
  974.                      this.ColumnDescription[var105].m_urlkey = var119;
  975.                   } else if (var4 != null) {
  976.                      this.ColumnDescription[var105].m_urlkey = var4;
  977.                   }
  978.                } else if (var4 != null) {
  979.                   this.ColumnDescription[var105].m_urlkey = var4;
  980.                }
  981.  
  982.                if (var33.hasMoreTokens()) {
  983.                   String var120 = var33.nextToken();
  984.                   if (var120.compareTo("\u0003") != 0) {
  985.                      int var127 = Integer.parseInt(var120);
  986.                      if (var127 == 1) {
  987.                         this.ColumnDescription[var105].m_formatType = 1;
  988.                      }
  989.                   }
  990.                }
  991.  
  992.                if (var33.hasMoreTokens()) {
  993.                   String var121 = var33.nextToken();
  994.                   if (var121.compareTo("\u0003") != 0) {
  995.                      this.ColumnDescription[var105].m_formatMask = var121;
  996.                   }
  997.                }
  998.  
  999.                if (var33.hasMoreTokens()) {
  1000.                   String var122 = var33.nextToken();
  1001.                   if (var122.compareTo("\u0003") != 0) {
  1002.                      int var128 = Integer.parseInt(var122);
  1003.                      if (var128 == 2) {
  1004.                         this.ColumnDescription[var105].m_dataType = 5;
  1005.                         var22 = true;
  1006.                      } else if (var128 == 1) {
  1007.                         this.ColumnDescription[var105].m_dataType = 1;
  1008.                      }
  1009.                   }
  1010.                }
  1011.  
  1012.                ++var105;
  1013.             }
  1014.          }
  1015.  
  1016.          if (this.TotalColumns != var105) {
  1017.          }
  1018.       }
  1019.  
  1020.       if (this.Columns > 0) {
  1021.          int var40 = 0;
  1022.          if (this.bUseRowHeaders) {
  1023.             ++var40;
  1024.          }
  1025.  
  1026.          if (this.bUseColumnHeaders) {
  1027.             var40 += 2;
  1028.          }
  1029.  
  1030.          ((Container)this).setLayout(new BorderLayout());
  1031.          ((Container)this).add("Center", this.Grid = new CFGRID(var40 + 112 + 128, 0, 0));
  1032.          if (var20 != 0) {
  1033.             if (var24) {
  1034.                Image var42 = (var20 & 1) == 1 ? ((Applet)this).getImage(((Applet)this).getCodeBase(), "images/insert.gif") : null;
  1035.                Image var46 = (var20 & 2) == 2 ? ((Applet)this).getImage(((Applet)this).getCodeBase(), "images/delete.gif") : null;
  1036.                Image var54 = (var20 & 4) == 4 ? ((Applet)this).getImage(((Applet)this).getCodeBase(), "images/sortasc.gif") : null;
  1037.                Image var60 = (var20 & 4) == 4 ? ((Applet)this).getImage(((Applet)this).getCodeBase(), "images/sortdesc.gif") : null;
  1038.                ((Container)this).add("South", this.GridBar = new CFGRIDActionbar(this.Grid, var42, var46, var54, var60));
  1039.             } else {
  1040.                ((Container)this).add("South", this.GridBar = new CFGRIDActionbar(this.Grid, var20, var6, var7, var8, var9));
  1041.             }
  1042.          }
  1043.  
  1044.          if (this.bHasUrls || this.SelectMode == 105 || var20 != 0) {
  1045.             this.Grid.installCallBackHandler(this);
  1046.          }
  1047.  
  1048.          this.Grid.setCols(this.Columns);
  1049.          if (!var23) {
  1050.             this.Grid.setGridLines(var23);
  1051.          }
  1052.  
  1053.          if (this.bUseColumnHeaders) {
  1054.             this.Grid.setColHeaderAlignment(var16);
  1055.          }
  1056.  
  1057.          if (var13 != null) {
  1058.             this.Grid.setGridColor(var13);
  1059.          }
  1060.  
  1061.          if (var14 != null) {
  1062.             this.Grid.setSelectionColor(var14);
  1063.          }
  1064.  
  1065.          if (this.bUseColumnHeaders) {
  1066.             this.Grid.setColHeaderFont(var11);
  1067.          }
  1068.  
  1069.          if (var19 != -1) {
  1070.             this.Grid.setGridMinRowHeight(var19);
  1071.          }
  1072.  
  1073.          if (this.bUseRowHeaders) {
  1074.             this.Grid.setRowHeaderAlignment(var17);
  1075.             this.Grid.setRowHeaderFont(var10);
  1076.             if (var18 != -1) {
  1077.                this.Grid.setRowHeaderWidth(false, var18);
  1078.             }
  1079.          }
  1080.  
  1081.          this.Grid.setGridFont(var12);
  1082.          this.Grid.setGridVertMargin(0);
  1083.          this.Grid.setSelectionMode(this.SelectMode);
  1084.          this.MaxRows = this.Rows;
  1085.          this.Grid.setRows(this.MaxRows);
  1086.          if (this.bUseRowHeaders) {
  1087.             for(int var43 = 1; var43 <= this.MaxRows; ++var43) {
  1088.                this.Grid.setRowHeaderElement(String.valueOf(var43), var43 - 1);
  1089.             }
  1090.          }
  1091.  
  1092.          this.Grid.setGridAlignment(var15);
  1093.          int var44 = 0;
  1094.  
  1095.          for(int var47 = 0; var47 < this.TotalColumns; ++var47) {
  1096.             if (this.ColumnDescription[var47].m_visible) {
  1097.                if (this.bUseColumnHeaders) {
  1098.                   if (this.ColumnDescription[var47].m_headerAlign != -1) {
  1099.                      this.Grid.setColHeaderAlignment(this.ColumnDescription[var47].m_headerAlign, var44);
  1100.                   }
  1101.  
  1102.                   if (this.ColumnDescription[var47].m_headerFont != null) {
  1103.                      this.Grid.setColHeaderFont(this.ColumnDescription[var47].m_headerFont, var44);
  1104.                   }
  1105.  
  1106.                   this.Grid.setColHeaderElement(this.ColumnDescription[var47].m_header == null ? this.ColumnDescription[var47].m_name : this.ColumnDescription[var47].m_header, var44);
  1107.                }
  1108.  
  1109.                if (this.ColumnDescription[var47].m_dataWidth != -1) {
  1110.                   this.Grid.setColWidth(false, this.ColumnDescription[var47].m_dataWidth, var44);
  1111.                }
  1112.  
  1113.                if (this.ColumnDescription[var47].m_dataAlign != -1) {
  1114.                   this.Grid.setGridAlignment(this.ColumnDescription[var47].m_dataAlign, var44);
  1115.                }
  1116.  
  1117.                if (this.ColumnDescription[var47].m_dataFont != null) {
  1118.                   this.Grid.setGridFont(this.ColumnDescription[var47].m_dataFont, var44);
  1119.                }
  1120.  
  1121.                if (this.ColumnDescription[var47].m_url != null && var21) {
  1122.                   this.Grid.setColTextColor(Color.blue, var44);
  1123.                   this.Grid.setColUnderline(true, var44);
  1124.                }
  1125.  
  1126.                if (this.ColumnDescription[var47].m_readonly) {
  1127.                   this.Grid.setColReadOnly(true, var44);
  1128.                }
  1129.  
  1130.                if (this.ColumnDescription[var47].m_formatMask != null) {
  1131.                   this.Grid.setColFormat(this.ColumnDescription[var47].m_formatMask, this.ColumnDescription[var47].m_formatType, var44);
  1132.                }
  1133.  
  1134.                if (this.ColumnDescription[var47].m_dataType == 5) {
  1135.                   this.Grid.setColImage(true, var44);
  1136.                } else if (this.ColumnDescription[var47].m_dataType == 1) {
  1137.                   this.Grid.setColType(1, var44);
  1138.                } else {
  1139.                   this.Grid.setColType(0, var44);
  1140.                }
  1141.  
  1142.                ++var44;
  1143.             }
  1144.          }
  1145.  
  1146.          if (var22) {
  1147.             String[] var48 = new String[]{"images/FolderClosed.gif", "images/CDDrive.gif", "images/Document.gif", "images/Elements.gif", "images/Computer.gif", "images/Floppy.gif", "images/HardDrive.gif", "images/NetworkDrive.gif"};
  1148.             String[] var55 = new String[]{"Folder", "cd", "Document", "Element", "Computer", "Floppy", "Fixed", "Remote"};
  1149.  
  1150.             for(int var66 = 0; var66 < var55.length; ++var66) {
  1151.                Image var61 = ((Applet)this).getImage(((Applet)this).getCodeBase(), var48[var66]);
  1152.                if (var61 != null) {
  1153.                   this.Grid.addImage(var55[var66], var61);
  1154.                }
  1155.             }
  1156.          }
  1157.  
  1158.          if (var2 != null) {
  1159.             Object var49 = null;
  1160.             int var67 = 0;
  1161.             var2 = netHelpers.URLDecode(var2);
  1162.             StringTokenizer var68 = new StringTokenizer(var2, "\u0001");
  1163.  
  1164.             while(var68.hasMoreTokens()) {
  1165.                CFDATARow var50 = new CFDATARow(this.TotalColumns);
  1166.                int var70 = 0;
  1167.                int var72 = this.Columns;
  1168.                String var56 = var68.nextToken();
  1169.                StringTokenizer var106 = new StringTokenizer(var56, "\u0002");
  1170.                var44 = 0;
  1171.  
  1172.                while(var106.hasMoreTokens()) {
  1173.                   String var62 = var106.nextToken();
  1174.                   if (var62.compareTo("\u0003") != 0) {
  1175.                      if (this.ColumnDescription[var70].m_visible) {
  1176.                         this.Insert(var62, var67, var44);
  1177.                         var50.setOrigioDataColumn(var62, var44);
  1178.                         if (this.ColumnDescription[var70].m_dataType == 5) {
  1179.                            Image var110 = ((Applet)this).getImage(((Applet)this).getCodeBase(), var62);
  1180.                            if (var110 != null) {
  1181.                               this.Grid.addImage(var62, var110);
  1182.                            }
  1183.                         }
  1184.  
  1185.                         ++var44;
  1186.                      } else {
  1187.                         var50.setOrigioDataColumn(var62, var72);
  1188.                         ++var72;
  1189.                      }
  1190.                   } else if (this.ColumnDescription[var70].m_visible) {
  1191.                      this.Insert("", var67, var44);
  1192.                      var50.setOrigioDataColumn("", var44);
  1193.                      ++var44;
  1194.                   } else {
  1195.                      var50.setOrigioDataColumn("", var72);
  1196.                      ++var72;
  1197.                   }
  1198.  
  1199.                   ++var70;
  1200.                   if (var70 >= this.TotalColumns) {
  1201.                      break;
  1202.                   }
  1203.                }
  1204.  
  1205.                this.Grid.setUserRowAttribute(var50, var67);
  1206.                ++var67;
  1207.                if (var67 >= this.MaxRows) {
  1208.                   break;
  1209.                }
  1210.             }
  1211.          }
  1212.       }
  1213.  
  1214.    }
  1215.  
  1216.    private void SortRows(boolean var1) {
  1217.       Rectangle var2 = this.Grid.getSelection();
  1218.       if (var2 != null) {
  1219.          this.sortAscending = var1;
  1220.          this.sortKey = var2.x;
  1221.          this.sortType = this.Grid.getDataType(this.sortKey);
  1222.          int var3 = this.Grid.getRows();
  1223.          Object var4 = null;
  1224.          QuickSort var5 = new QuickSort(var3);
  1225.          var5.setSortCallbackHandler(this);
  1226.          if (this.SelectMode == 105) {
  1227.             this.Grid.flushEditColumn();
  1228.          }
  1229.  
  1230.          for(int var6 = 0; var6 < var3; ++var6) {
  1231.             CFDATARow var10 = (CFDATARow)this.Grid.getUserRowAttribute(var6);
  1232.             var5.addrow(var10);
  1233.          }
  1234.  
  1235.          var5.sort();
  1236.  
  1237.          for(int var12 = var3 - 1; var12 >= 0; --var12) {
  1238.             this.Grid.deleteRow(var12);
  1239.          }
  1240.  
  1241.          this.Grid.clearSelection();
  1242.          this.Grid.setRows(var3);
  1243.          int var13 = 0;
  1244.  
  1245.          for(CFDATARow var11 = (CFDATARow)var5.getfirstrow(); var11 != null; ++var13) {
  1246.             int var7 = 0;
  1247.             if (this.bUseRowHeaders) {
  1248.                this.Grid.setRowHeaderElement(String.valueOf(var13 + 1), var13);
  1249.             }
  1250.  
  1251.             for(int var8 = 0; var8 < this.TotalColumns; ++var8) {
  1252.                if (this.ColumnDescription[var8].m_visible) {
  1253.                   String var9 = var11.getDataColumn(var7);
  1254.                   if (var9 != null) {
  1255.                      this.Insert(var9, var13, var7);
  1256.                   }
  1257.  
  1258.                   ++var7;
  1259.                }
  1260.             }
  1261.  
  1262.             this.Grid.setUserRowAttribute(var11, var13);
  1263.             var11 = (CFDATARow)var5.getnextrow();
  1264.          }
  1265.  
  1266.       }
  1267.    }
  1268. }
  1269.