home *** CD-ROM | disk | FTP | other *** search
/ ftp.novell.com / 2014.06.ftp.novell.com.tar / ftp.novell.com / forge / camtasia.msi / Cabs.w1.cab / camtasia_player.swf83 / scripts / __Packages / mx / controls / listclasses / ScrollSelectList.as < prev    next >
Text File  |  2009-08-17  |  20KB  |  696 lines

  1. class mx.controls.listclasses.ScrollSelectList extends mx.core.ScrollView
  2. {
  3.    static var mixIt1 = mx.controls.listclasses.DataSelector.Initialize(mx.controls.listclasses.ScrollSelectList);
  4.    static var mixIt2 = mx.controls.listclasses.DataProvider.Initialize(Array);
  5.    var CONTENTDEPTH = 100;
  6.    var __hPosition = 0;
  7.    var __rowRenderer = "SelectableRow";
  8.    var __rowHeight = 22;
  9.    var __rowCount = 0;
  10.    var __labelField = "label";
  11.    var minScrollInterval = 30;
  12.    var dropEnabled = false;
  13.    var dragEnabled = false;
  14.    var className = "ScrollSelectList";
  15.    var isRowStyle = {styleName:true,backgroundColor:true,selectionColor:true,rollOverColor:true,selectionDisabledColor:true,backgroundDisabledColor:true,textColor:true,textSelectedColor:true,textRollOverColor:true,textDisabledColor:true,alternatingRowColors:true,defaultIcon:true};
  16.    var roundUp = 0;
  17.    var selectable = true;
  18.    var multipleSelection = false;
  19.    function ScrollSelectList()
  20.    {
  21.       super();
  22.    }
  23.    function layoutContent(x, y, w, h)
  24.    {
  25.       delete this.invLayoutContent;
  26.       var _loc4_ = Math.ceil(h / this.__rowHeight);
  27.       this.roundUp = h % this.__rowHeight != 0;
  28.       var _loc12_ = _loc4_ - this.__rowCount;
  29.       if(_loc12_ < 0)
  30.       {
  31.          var _loc3_ = _loc4_;
  32.          while(_loc3_ < this.__rowCount)
  33.          {
  34.             this.rows[_loc3_].removeMovieClip();
  35.             delete this.rows[_loc3_];
  36.             _loc3_ = _loc3_ + 1;
  37.          }
  38.          this.topRowZ += _loc12_;
  39.       }
  40.       else if(_loc12_ > 0)
  41.       {
  42.          if(this.rows == undefined)
  43.          {
  44.             this.rows = new Array();
  45.          }
  46.          _loc3_ = this.__rowCount;
  47.          while(_loc3_ < _loc4_)
  48.          {
  49.             var _loc0_ = null;
  50.             var _loc2_ = this.rows[_loc3_] = this.listContent.createObject(this.__rowRenderer,"listRow" + this.topRowZ++,this.topRowZ,{owner:this,styleName:this,rowIndex:_loc3_});
  51.             _loc2_._x = x;
  52.             _loc2_._y = Math.round(_loc3_ * this.__rowHeight + y);
  53.             _loc2_.setSize(w,this.__rowHeight);
  54.             _loc2_.drawRow(this.__dataProvider.getItemAt(this.__vPosition + _loc3_),this.getStateAt(this.__vPosition + _loc3_));
  55.             _loc2_.lastY = _loc2_._y;
  56.             _loc3_ = _loc3_ + 1;
  57.          }
  58.       }
  59.       if(w != this.tW)
  60.       {
  61.          var _loc11_ = _loc12_ <= 0 ? _loc4_ : this.__rowCount;
  62.          _loc3_ = 0;
  63.          while(_loc3_ < _loc11_)
  64.          {
  65.             this.rows[_loc3_].setSize(w,this.__rowHeight);
  66.             _loc3_ = _loc3_ + 1;
  67.          }
  68.       }
  69.       if(this.layoutX != x || this.layoutY != y)
  70.       {
  71.          _loc3_ = 0;
  72.          while(_loc3_ < _loc4_)
  73.          {
  74.             this.rows[_loc3_]._x = x;
  75.             this.rows[_loc3_]._y = Math.round(_loc3_ * this.__rowHeight + y);
  76.             _loc3_ = _loc3_ + 1;
  77.          }
  78.       }
  79.       this.__rowCount = _loc4_;
  80.       this.layoutX = x;
  81.       this.layoutY = y;
  82.       this.tW = w;
  83.       this.tH = h;
  84.    }
  85.    function getRowHeight(Void)
  86.    {
  87.       return this.__rowHeight;
  88.    }
  89.    function setRowHeight(v)
  90.    {
  91.       this.__rowHeight = v;
  92.       this.invRowHeight = true;
  93.       this.invalidate();
  94.    }
  95.    function get rowHeight()
  96.    {
  97.       return this.getRowHeight();
  98.    }
  99.    function set rowHeight(w)
  100.    {
  101.       this.setRowHeight(w);
  102.    }
  103.    function setRowCount(v)
  104.    {
  105.       this.__rowCount = v;
  106.    }
  107.    function getRowCount(Void)
  108.    {
  109.       var _loc2_ = this.__rowCount != 0 ? this.__rowCount : Math.ceil(this.__height / this.__rowHeight);
  110.       return _loc2_;
  111.    }
  112.    function get rowCount()
  113.    {
  114.       return this.getRowCount();
  115.    }
  116.    function set rowCount(w)
  117.    {
  118.       this.setRowCount(w);
  119.    }
  120.    function setEnabled(v)
  121.    {
  122.       super.setEnabled(v);
  123.       this.invUpdateControl = true;
  124.       this.invalidate();
  125.    }
  126.    function setCellRenderer(cR)
  127.    {
  128.       this.__cellRenderer = cR;
  129.       var _loc2_ = 0;
  130.       while(_loc2_ < this.rows.length)
  131.       {
  132.          this.rows[_loc2_].setCellRenderer(true);
  133.          _loc2_ = _loc2_ + 1;
  134.       }
  135.       this.invUpdateControl = true;
  136.       this.invalidate();
  137.    }
  138.    function set cellRenderer(cR)
  139.    {
  140.       this.setCellRenderer(cR);
  141.    }
  142.    function get cellRenderer()
  143.    {
  144.       return this.__cellRenderer;
  145.    }
  146.    function set labelField(field)
  147.    {
  148.       this.setLabelField(field);
  149.    }
  150.    function setLabelField(field)
  151.    {
  152.       this.__labelField = field;
  153.       this.invUpdateControl = true;
  154.       this.invalidate();
  155.    }
  156.    function get labelField()
  157.    {
  158.       return this.__labelField;
  159.    }
  160.    function set labelFunction(func)
  161.    {
  162.       this.setLabelFunction(func);
  163.    }
  164.    function setLabelFunction(func)
  165.    {
  166.       this.__labelFunction = func;
  167.       this.invUpdateControl = true;
  168.       this.invalidate();
  169.    }
  170.    function get labelFunction()
  171.    {
  172.       return this.__labelFunction;
  173.    }
  174.    function set iconField(field)
  175.    {
  176.       this.setIconField(field);
  177.    }
  178.    function setIconField(field)
  179.    {
  180.       this.__iconField = field;
  181.       this.invUpdateControl = true;
  182.       this.invalidate();
  183.    }
  184.    function get iconField()
  185.    {
  186.       return this.__iconField;
  187.    }
  188.    function set iconFunction(func)
  189.    {
  190.       this.setIconFunction(func);
  191.    }
  192.    function setIconFunction(func)
  193.    {
  194.       this.__iconFunction = func;
  195.       this.invUpdateControl = true;
  196.       this.invalidate();
  197.    }
  198.    function get iconFunction()
  199.    {
  200.       return this.__iconFunction;
  201.    }
  202.    function setVPosition(pos)
  203.    {
  204.       if(pos < 0)
  205.       {
  206.          return undefined;
  207.       }
  208.       if(pos > 0 && pos > this.getLength() - this.__rowCount + this.roundUp)
  209.       {
  210.          return undefined;
  211.       }
  212.       var _loc8_ = pos - this.__vPosition;
  213.       if(_loc8_ == 0)
  214.       {
  215.          return undefined;
  216.       }
  217.       this.__vPosition = pos;
  218.       var _loc10_ = _loc8_ > 0;
  219.       _loc8_ = Math.abs(_loc8_);
  220.       if(_loc8_ >= this.__rowCount)
  221.       {
  222.          this.updateControl();
  223.       }
  224.       else
  225.       {
  226.          var _loc4_ = new Array();
  227.          var _loc9_ = this.__rowCount - _loc8_;
  228.          var _loc12_ = _loc8_ * this.__rowHeight;
  229.          var _loc11_ = _loc9_ * this.__rowHeight;
  230.          var _loc6_ = !_loc10_ ? -1 : 1;
  231.          var _loc3_ = 0;
  232.          while(_loc3_ < this.__rowCount)
  233.          {
  234.             if(_loc3_ < _loc8_ && _loc10_ || _loc3_ >= _loc9_ && !_loc10_)
  235.             {
  236.                this.rows[_loc3_]._y += Math.round(_loc6_ * _loc11_);
  237.                var _loc5_ = _loc3_ + _loc6_ * _loc9_;
  238.                var _loc7_ = this.__vPosition + _loc5_;
  239.                _loc4_[_loc5_] = this.rows[_loc3_];
  240.                _loc4_[_loc5_].rowIndex = _loc5_;
  241.                _loc4_[_loc5_].drawRow(this.__dataProvider.getItemAt(_loc7_),this.getStateAt(_loc7_),false);
  242.             }
  243.             else
  244.             {
  245.                this.rows[_loc3_]._y -= Math.round(_loc6_ * _loc12_);
  246.                _loc5_ = _loc3_ - _loc6_ * _loc8_;
  247.                _loc4_[_loc5_] = this.rows[_loc3_];
  248.                _loc4_[_loc5_].rowIndex = _loc5_;
  249.             }
  250.             _loc3_ = _loc3_ + 1;
  251.          }
  252.          this.rows = _loc4_;
  253.          _loc3_ = 0;
  254.          while(_loc3_ < this.__rowCount)
  255.          {
  256.             this.rows[_loc3_].swapDepths(this.baseRowZ + _loc3_);
  257.             _loc3_ = _loc3_ + 1;
  258.          }
  259.       }
  260.       this.lastPosition = pos;
  261.       super.setVPosition(pos);
  262.    }
  263.    function setPropertiesAt(index, obj)
  264.    {
  265.       var _loc2_ = this.__dataProvider.getItemID(index);
  266.       if(_loc2_ == undefined)
  267.       {
  268.          return undefined;
  269.       }
  270.       if(this.propertyTable == undefined)
  271.       {
  272.          this.propertyTable = new Object();
  273.       }
  274.       this.propertyTable[_loc2_] = obj;
  275.       this.rows[index - this.__vPosition].drawRow(this.__dataProvider.getItemAt(index),this.getStateAt(index));
  276.    }
  277.    function getPropertiesAt(index)
  278.    {
  279.       var _loc2_ = this.__dataProvider.getItemID(index);
  280.       if(_loc2_ == undefined)
  281.       {
  282.          return undefined;
  283.       }
  284.       return this.propertyTable[_loc2_];
  285.    }
  286.    function getPropertiesOf(obj)
  287.    {
  288.       var _loc2_ = obj.getID();
  289.       if(_loc2_ == undefined)
  290.       {
  291.          return undefined;
  292.       }
  293.       return this.propertyTable[_loc2_];
  294.    }
  295.    function getStyle(styleProp)
  296.    {
  297.       var _loc2_ = super.getStyle(styleProp);
  298.       var _loc3_ = mx.styles.StyleManager.colorNames[_loc2_];
  299.       if(_loc3_ != undefined)
  300.       {
  301.          _loc2_ = _loc3_;
  302.       }
  303.       return _loc2_;
  304.    }
  305.    function updateControl(Void)
  306.    {
  307.       var _loc2_ = 0;
  308.       while(_loc2_ < this.__rowCount)
  309.       {
  310.          this.rows[_loc2_].drawRow(this.__dataProvider.getItemAt(_loc2_ + this.__vPosition),this.getStateAt(_loc2_ + this.__vPosition));
  311.          _loc2_ = _loc2_ + 1;
  312.       }
  313.       delete this.invUpdateControl;
  314.    }
  315.    function getStateAt(index)
  316.    {
  317.       return !this.isSelected(index) ? "normal" : "selected";
  318.    }
  319.    function selectRow(rowIndex, transition, allowChangeEvent)
  320.    {
  321.       if(!this.selectable)
  322.       {
  323.          return undefined;
  324.       }
  325.       var _loc3_ = this.__vPosition + rowIndex;
  326.       var _loc8_ = this.__dataProvider.getItemAt(_loc3_);
  327.       var _loc5_ = this.rows[rowIndex];
  328.       if(_loc8_ == undefined)
  329.       {
  330.          return undefined;
  331.       }
  332.       if(transition == undefined)
  333.       {
  334.          transition = true;
  335.       }
  336.       if(allowChangeEvent == undefined)
  337.       {
  338.          allowChangeEvent = this.wasKeySelected;
  339.       }
  340.       this.changeFlag = true;
  341.       if(!this.multipleSelection && !Key.isDown(17) || !Key.isDown(16) && !Key.isDown(17))
  342.       {
  343.          this.clearSelected(transition);
  344.          this.selectItem(_loc3_,true);
  345.          this.lastSelected = _loc3_;
  346.          _loc5_.drawRow(_loc5_.item,this.getStateAt(_loc3_),transition);
  347.       }
  348.       else if(Key.isDown(16) && this.multipleSelection)
  349.       {
  350.          if(this.lastSelected == undefined)
  351.          {
  352.             this.lastSelected = _loc3_;
  353.          }
  354.          var _loc4_ = this.lastSelected >= _loc3_ ? -1 : 1;
  355.          this.clearSelected(false);
  356.          var _loc2_ = this.lastSelected;
  357.          while(_loc2_ != _loc3_)
  358.          {
  359.             this.selectItem(_loc2_,true);
  360.             if(_loc2_ >= this.__vPosition && _loc2_ < this.__vPosition + this.__rowCount)
  361.             {
  362.                this.rows[_loc2_ - this.__vPosition].drawRow(this.rows[_loc2_ - this.__vPosition].item,"selected",false);
  363.             }
  364.             _loc2_ += _loc4_;
  365.          }
  366.          this.selectItem(_loc3_,true);
  367.          _loc5_.drawRow(_loc5_.item,"selected",transition);
  368.       }
  369.       else if(Key.isDown(17))
  370.       {
  371.          var _loc7_ = this.isSelected(_loc3_);
  372.          if(!this.multipleSelection || this.wasKeySelected)
  373.          {
  374.             this.clearSelected(transition);
  375.          }
  376.          if(!(!this.multipleSelection && _loc7_))
  377.          {
  378.             this.selectItem(_loc3_,!_loc7_);
  379.             var _loc9_ = !!_loc7_ ? "normal" : "selected";
  380.             _loc5_.drawRow(_loc5_.item,_loc9_,transition);
  381.          }
  382.          this.lastSelected = _loc3_;
  383.       }
  384.       if(allowChangeEvent)
  385.       {
  386.          this.dispatchEvent({type:"change"});
  387.       }
  388.       delete this.wasKeySelected;
  389.    }
  390.    function dragScroll(Void)
  391.    {
  392.       clearInterval(this.dragScrolling);
  393.       if(this._ymouse < 0)
  394.       {
  395.          this.setVPosition(this.__vPosition - 1);
  396.          this.selectRow(0,false);
  397.          var _loc2_ = Math.min(- this._ymouse - 30,0);
  398.          this.scrollInterval = 0.593 * _loc2_ * _loc2_ + 1 + this.minScrollInterval;
  399.          this.dragScrolling = setInterval(this,"dragScroll",this.scrollInterval);
  400.          this.dispatchEvent({type:"scroll",direction:"vertical",position:this.__vPosition});
  401.       }
  402.       else if(this._ymouse > this.__height)
  403.       {
  404.          var _loc3_ = this.__vPosition;
  405.          this.setVPosition(this.__vPosition + 1);
  406.          if(_loc3_ != this.__vPosition)
  407.          {
  408.             this.selectRow(this.__rowCount - 1 - this.roundUp,false);
  409.          }
  410.          _loc2_ = Math.min(this._ymouse - this.__height - 30,0);
  411.          this.scrollInterval = 0.593 * _loc2_ * _loc2_ + 1 + this.minScrollInterval;
  412.          this.dragScrolling = setInterval(this,"dragScroll",this.scrollInterval);
  413.          this.dispatchEvent({type:"scroll",direction:"vertical",position:this.__vPosition});
  414.       }
  415.       else
  416.       {
  417.          this.dragScrolling = setInterval(this,"dragScroll",15);
  418.       }
  419.       updateAfterEvent();
  420.    }
  421.    function __onMouseUp(Void)
  422.    {
  423.       clearInterval(this.dragScrolling);
  424.       delete this.dragScrolling;
  425.       delete this.dragScrolling;
  426.       delete this.isPressed;
  427.       delete this.onMouseUp;
  428.       if(!this.selectable)
  429.       {
  430.          return undefined;
  431.       }
  432.       if(this.changeFlag)
  433.       {
  434.          this.dispatchEvent({type:"change"});
  435.       }
  436.       delete this.changeFlag;
  437.    }
  438.    function moveSelBy(incr)
  439.    {
  440.       if(!this.selectable)
  441.       {
  442.          this.setVPosition(this.__vPosition + incr);
  443.          return undefined;
  444.       }
  445.       var _loc3_ = this.getSelectedIndex();
  446.       if(_loc3_ == undefined)
  447.       {
  448.          _loc3_ = -1;
  449.       }
  450.       var _loc2_ = _loc3_ + incr;
  451.       _loc2_ = Math.max(0,_loc2_);
  452.       _loc2_ = Math.min(this.getLength() - 1,_loc2_);
  453.       if(_loc2_ == _loc3_)
  454.       {
  455.          return undefined;
  456.       }
  457.       if(_loc3_ < this.__vPosition || _loc3_ >= this.__vPosition + this.__rowCount)
  458.       {
  459.          this.setVPosition(_loc3_);
  460.       }
  461.       if(_loc2_ >= this.__vPosition + this.__rowCount - this.roundUp || _loc2_ < this.__vPosition)
  462.       {
  463.          this.setVPosition(this.__vPosition + incr);
  464.       }
  465.       this.wasKeySelected = true;
  466.       this.selectRow(_loc2_ - this.__vPosition,false);
  467.    }
  468.    function keyDown(e)
  469.    {
  470.       if(this.selectable)
  471.       {
  472.          if(this.findInputText())
  473.          {
  474.             return undefined;
  475.          }
  476.       }
  477.       if(e.code == 40)
  478.       {
  479.          this.moveSelBy(1);
  480.       }
  481.       else if(e.code == 38)
  482.       {
  483.          this.moveSelBy(-1);
  484.       }
  485.       else if(e.code == 34)
  486.       {
  487.          if(this.selectable)
  488.          {
  489.             var _loc3_ = this.getSelectedIndex();
  490.             if(_loc3_ == undefined)
  491.             {
  492.                _loc3_ = 0;
  493.             }
  494.             this.setVPosition(_loc3_);
  495.          }
  496.          this.moveSelBy(this.__rowCount - 1 - this.roundUp);
  497.       }
  498.       else if(e.code == 33)
  499.       {
  500.          if(this.selectable)
  501.          {
  502.             _loc3_ = this.getSelectedIndex();
  503.             if(_loc3_ == undefined)
  504.             {
  505.                _loc3_ = 0;
  506.             }
  507.             this.setVPosition(_loc3_);
  508.          }
  509.          this.moveSelBy(1 - this.__rowCount + this.roundUp);
  510.       }
  511.       else if(e.code == 36)
  512.       {
  513.          this.moveSelBy(- this.__dataProvider.length);
  514.       }
  515.       else if(e.code == 35)
  516.       {
  517.          this.moveSelBy(this.__dataProvider.length);
  518.       }
  519.    }
  520.    function findInputText(Void)
  521.    {
  522.       var _loc2_ = Key.getAscii();
  523.       if(_loc2_ >= 33 && _loc2_ <= 126)
  524.       {
  525.          this.findString(String.fromCharCode(_loc2_));
  526.          return true;
  527.       }
  528.    }
  529.    function findString(str)
  530.    {
  531.       if(this.__dataProvider.length == 0)
  532.       {
  533.          return undefined;
  534.       }
  535.       var _loc4_ = this.getSelectedIndex();
  536.       if(_loc4_ == undefined)
  537.       {
  538.          _loc4_ = 0;
  539.       }
  540.       var _loc6_ = 0;
  541.       var _loc3_ = _loc4_ + 1;
  542.       while(_loc3_ != _loc4_)
  543.       {
  544.          var _loc2_ = this.__dataProvider.getItemAt(_loc3_);
  545.          if(_loc2_ instanceof XMLNode)
  546.          {
  547.             _loc2_ = _loc2_.attributes[this.__labelField];
  548.          }
  549.          else if(typeof _loc2_ != "string")
  550.          {
  551.             _loc2_ = String(_loc2_[this.__labelField]);
  552.          }
  553.          _loc2_ = _loc2_.substring(0,str.length);
  554.          if(str == _loc2_ || str.toUpperCase() == _loc2_.toUpperCase())
  555.          {
  556.             _loc6_ = _loc3_ - _loc4_;
  557.             break;
  558.          }
  559.          if(_loc3_ >= this.getLength() - 1)
  560.          {
  561.             _loc3_ = -1;
  562.          }
  563.          _loc3_ = _loc3_ + 1;
  564.       }
  565.       if(_loc6_ != 0)
  566.       {
  567.          this.moveSelBy(_loc6_);
  568.       }
  569.    }
  570.    function onRowPress(rowIndex)
  571.    {
  572.       if(!this.enabled)
  573.       {
  574.          return undefined;
  575.       }
  576.       this.isPressed = true;
  577.       this.dragScrolling = setInterval(this,"dragScroll",15);
  578.       this.onMouseUp = this.__onMouseUp;
  579.       if(!this.selectable)
  580.       {
  581.          return undefined;
  582.       }
  583.       this.selectRow(rowIndex);
  584.    }
  585.    function onRowRelease(rowIndex)
  586.    {
  587.    }
  588.    function onRowRollOver(rowIndex)
  589.    {
  590.       if(!this.enabled)
  591.       {
  592.          return undefined;
  593.       }
  594.       var _loc2_ = this.rows[rowIndex].item;
  595.       if(this.getStyle("useRollOver") && _loc2_ != undefined)
  596.       {
  597.          this.rows[rowIndex].drawRow(_loc2_,"highlighted",false);
  598.       }
  599.       this.dispatchEvent({type:"itemRollOver",index:rowIndex + this.__vPosition});
  600.    }
  601.    function onRowRollOut(rowIndex)
  602.    {
  603.       if(!this.enabled)
  604.       {
  605.          return undefined;
  606.       }
  607.       if(this.getStyle("useRollOver"))
  608.       {
  609.          this.rows[rowIndex].drawRow(this.rows[rowIndex].item,this.getStateAt(rowIndex + this.__vPosition),false);
  610.       }
  611.       this.dispatchEvent({type:"itemRollOut",index:rowIndex + this.__vPosition});
  612.    }
  613.    function onRowDragOver(rowIndex)
  614.    {
  615.       if(!this.enabled || this.isPressed != true || !this.selectable)
  616.       {
  617.          return undefined;
  618.       }
  619.       if(!this.dropEnabled)
  620.       {
  621.          if(this.dragScrolling)
  622.          {
  623.             this.selectRow(rowIndex,false);
  624.          }
  625.          else
  626.          {
  627.             this.onMouseUp = this.__onMouseUp;
  628.             this.onRowPress(rowIndex);
  629.          }
  630.       }
  631.    }
  632.    function onRowDragOut(rowIndex)
  633.    {
  634.       if(!this.enabled)
  635.       {
  636.          return undefined;
  637.       }
  638.       if(!this.dragEnabled)
  639.       {
  640.          this.onRowRollOut(rowIndex);
  641.       }
  642.    }
  643.    function init(Void)
  644.    {
  645.       super.init();
  646.       this.tabEnabled = true;
  647.       this.tabChildren = false;
  648.       if(this.__dataProvider == undefined)
  649.       {
  650.          this.__dataProvider = new Array();
  651.          this.__dataProvider.addEventListener("modelChanged",this);
  652.       }
  653.       this.baseRowZ = this.topRowZ = 10;
  654.    }
  655.    function createChildren(Void)
  656.    {
  657.       super.createChildren();
  658.       this.listContent = this.createEmptyMovieClip("content_mc",this.CONTENTDEPTH);
  659.       this.invLayoutContent = true;
  660.       this.invalidate();
  661.    }
  662.    function draw(Void)
  663.    {
  664.       if(this.invRowHeight)
  665.       {
  666.          delete this.invRowHeight;
  667.          this.__rowCount = 0;
  668.          this.listContent.removeMovieClip();
  669.          this.listContent = this.createEmptyMovieClip("content_mc",this.CONTENTDEPTH);
  670.       }
  671.       if(this.invUpdateControl)
  672.       {
  673.          this.updateControl();
  674.       }
  675.       this.border_mc.draw();
  676.    }
  677.    function invalidateStyle(propName)
  678.    {
  679.       if(this.isRowStyle[propName])
  680.       {
  681.          this.invUpdateControl = true;
  682.          this.invalidate();
  683.       }
  684.       else
  685.       {
  686.          var _loc3_ = 0;
  687.          while(_loc3_ < this.__rowCount)
  688.          {
  689.             this.rows[_loc3_].invalidateStyle(propName);
  690.             _loc3_ = _loc3_ + 1;
  691.          }
  692.       }
  693.       super.invalidateStyle(propName);
  694.    }
  695. }
  696.