home *** CD-ROM | disk | FTP | other *** search
/ Basic Instinct 2 Press Kit / Basic Instinct 2 Press Kit.iso / pc / main.dxr / FlashPaper_1_BIProdNotes.swf / scripts / __Packages / FPUI / TreeDataProvider.as < prev    next >
Encoding:
Text File  |  2006-03-15  |  2.5 KB  |  101 lines

  1. class FPUI.TreeDataProvider extends FPUI.DataProvider
  2. {
  3.    var m_root = null;
  4.    function TreeDataProvider(root)
  5.    {
  6.       super();
  7.       this.setRootNode(root);
  8.    }
  9.    function setRootNode(root)
  10.    {
  11.       var _loc1_ = this;
  12.       _loc1_.m_root = root;
  13.       _loc1_.removeAll();
  14.       if(_loc1_.m_root != null)
  15.       {
  16.          _loc1_.m_root.setIsOpen(true);
  17.          _loc1_.addNodeAt(-1,-1,_loc1_.m_root);
  18.       }
  19.       _loc1_.updateViews();
  20.    }
  21.    function calcWidth()
  22.    {
  23.       return this.doCalcWidth(this.m_root,0);
  24.    }
  25.    function doCalcWidth(node, w)
  26.    {
  27.       var _loc3_ = w;
  28.       if(node.getLastDrawnWidth() > _loc3_)
  29.       {
  30.          _loc3_ = node.getLastDrawnWidth();
  31.       }
  32.       if(node.isOpen())
  33.       {
  34.          var cn = node.getChildNodes();
  35.          var _loc1_ = 0;
  36.          while(_loc1_ < cn.length)
  37.          {
  38.             var _loc2_ = this.doCalcWidth(cn[_loc1_],_loc3_);
  39.             if(_loc2_ > _loc3_)
  40.             {
  41.                _loc3_ = _loc2_;
  42.             }
  43.             _loc1_ = _loc1_ + 1;
  44.          }
  45.       }
  46.       return _loc3_;
  47.    }
  48.    function addNodeAt(n, level, node)
  49.    {
  50.       var _loc2_ = n;
  51.       node.setLevel(level);
  52.       if(_loc2_ >= 0)
  53.       {
  54.          this.addItemAt(_loc2_,node);
  55.       }
  56.       _loc2_ = _loc2_ + 1;
  57.       if(node.isBranch() && node.isOpen())
  58.       {
  59.          level++;
  60.          var _loc3_ = node.getChildNodes();
  61.          var _loc1_ = 0;
  62.          while(_loc1_ < _loc3_.length)
  63.          {
  64.             _loc2_ = this.addNodeAt(_loc2_,level,_loc3_[_loc1_]);
  65.             _loc1_ = _loc1_ + 1;
  66.          }
  67.       }
  68.       return _loc2_;
  69.    }
  70.    function getNthNode(index)
  71.    {
  72.       return this.getItemAt(index);
  73.    }
  74.    function updateBranch(index)
  75.    {
  76.       var _loc2_ = this;
  77.       var node = index != -1 ? _loc2_.getNthNode(index) : _loc2_.m_root;
  78.       if(node.isBranch())
  79.       {
  80.          var _loc3_ = index + 1;
  81.          var level = node.getLevel() + 1;
  82.          var _loc1_ = _loc3_;
  83.          while(_loc1_ < _loc2_.getLength() && _loc2_.getNthNode(_loc1_).getLevel() >= level)
  84.          {
  85.             _loc1_ = _loc1_ + 1;
  86.          }
  87.          _loc2_.removeItemsAt(_loc3_,_loc1_ - _loc3_);
  88.          if(node.isOpen())
  89.          {
  90.             var kids = node.getChildNodes();
  91.             _loc1_ = 0;
  92.             while(_loc1_ < kids.length)
  93.             {
  94.                _loc3_ = _loc2_.addNodeAt(_loc3_,level,kids[_loc1_]);
  95.                _loc1_ = _loc1_ + 1;
  96.             }
  97.          }
  98.       }
  99.    }
  100. }
  101.