home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2012 April / ME_04_2012.iso / Video-Tutorial / iPhoto / media / player.swf / scripts / mx / accessibility / TreeAccImpl.as < prev    next >
Encoding:
Text File  |  2011-11-11  |  6.9 KB  |  219 lines

  1. package mx.accessibility
  2. {
  3.    import flash.accessibility.Accessibility;
  4.    import flash.events.Event;
  5.    import mx.collections.CursorBookmark;
  6.    import mx.collections.IViewCursor;
  7.    import mx.controls.Tree;
  8.    import mx.controls.listClasses.IListItemRenderer;
  9.    import mx.core.UIComponent;
  10.    import mx.core.mx_internal;
  11.    import mx.events.TreeEvent;
  12.    
  13.    use namespace mx_internal;
  14.    
  15.    public class TreeAccImpl extends AccImpl
  16.    {
  17.       mx_internal static const VERSION:String = "4.5.0.20967";
  18.       
  19.       public function TreeAccImpl(param1:UIComponent)
  20.       {
  21.          super(param1);
  22.          role = AccConst.ROLE_SYSTEM_OUTLINE;
  23.       }
  24.       
  25.       public static function enableAccessibility() : void
  26.       {
  27.          Tree.mx_internal::createAccessibilityImplementation = mx_internal::createAccessibilityImplementation;
  28.       }
  29.       
  30.       mx_internal static function createAccessibilityImplementation(param1:UIComponent) : void
  31.       {
  32.          param1.accessibilityImplementation = new TreeAccImpl(param1);
  33.       }
  34.       
  35.       override protected function get eventsToHandle() : Array
  36.       {
  37.          return super.eventsToHandle.concat(["change",TreeEvent.ITEM_OPEN,TreeEvent.ITEM_CLOSE]);
  38.       }
  39.       
  40.       override public function get_accRole(param1:uint) : uint
  41.       {
  42.          return param1 == 0 ? role : AccConst.ROLE_SYSTEM_OUTLINEITEM;
  43.       }
  44.       
  45.       override public function get_accValue(param1:uint) : String
  46.       {
  47.          var _loc2_:String = null;
  48.          var _loc3_:int = 0;
  49.          var _loc4_:Object = null;
  50.          var _loc5_:Tree = null;
  51.          var _loc6_:int = 0;
  52.          if(param1 != 0)
  53.          {
  54.             _loc3_ = int(param1 - 1);
  55.             _loc4_ = this.getItemAt(_loc3_);
  56.             if(!_loc4_)
  57.             {
  58.                return _loc2_;
  59.             }
  60.             _loc5_ = Tree(master);
  61.             _loc6_ = _loc5_.mx_internal::getItemDepth(_loc4_,_loc3_ - _loc5_.verticalScrollPosition);
  62.             _loc2_ = String(_loc6_ - 1);
  63.          }
  64.          return _loc2_;
  65.       }
  66.       
  67.       override public function get_accState(param1:uint) : uint
  68.       {
  69.          var _loc3_:Tree = null;
  70.          var _loc4_:int = 0;
  71.          var _loc5_:Object = null;
  72.          var _loc6_:IListItemRenderer = null;
  73.          var _loc2_:uint = getState(param1);
  74.          if(param1 > 0)
  75.          {
  76.             _loc3_ = Tree(master);
  77.             _loc4_ = int(param1 - 1);
  78.             if(_loc4_ < _loc3_.verticalScrollPosition || _loc4_ >= _loc3_.verticalScrollPosition + _loc3_.rowCount)
  79.             {
  80.                _loc2_ |= AccConst.STATE_SYSTEM_INVISIBLE;
  81.             }
  82.             else
  83.             {
  84.                _loc2_ |= AccConst.STATE_SYSTEM_SELECTABLE;
  85.                _loc5_ = this.getItemAt(_loc4_);
  86.                if((Boolean(_loc5_)) && _loc3_.dataDescriptor.isBranch(_loc5_,_loc3_.dataProvider))
  87.                {
  88.                   if(_loc3_.isItemOpen(_loc5_))
  89.                   {
  90.                      _loc2_ |= AccConst.STATE_SYSTEM_EXPANDED;
  91.                   }
  92.                   else
  93.                   {
  94.                      _loc2_ |= AccConst.STATE_SYSTEM_COLLAPSED;
  95.                   }
  96.                }
  97.                _loc6_ = _loc3_.itemToItemRenderer(_loc5_);
  98.                if(_loc6_ != null && _loc3_.isItemSelected(_loc6_.data))
  99.                {
  100.                   _loc2_ |= AccConst.STATE_SYSTEM_SELECTED | AccConst.STATE_SYSTEM_FOCUSED;
  101.                }
  102.             }
  103.          }
  104.          return _loc2_;
  105.       }
  106.       
  107.       override public function get_accDefaultAction(param1:uint) : String
  108.       {
  109.          if(param1 == 0)
  110.          {
  111.             return null;
  112.          }
  113.          var _loc2_:Tree = Tree(master);
  114.          var _loc3_:Object = this.getItemAt(param1 - 1);
  115.          if(!_loc3_)
  116.          {
  117.             return null;
  118.          }
  119.          if(_loc2_.dataDescriptor.isBranch(_loc3_,_loc2_.dataProvider))
  120.          {
  121.             return _loc2_.isItemOpen(_loc3_) ? "Collapse" : "Expand";
  122.          }
  123.          return null;
  124.       }
  125.       
  126.       override public function accDoDefaultAction(param1:uint) : void
  127.       {
  128.          var _loc2_:Tree = Tree(master);
  129.          if(param1 == 0 || !_loc2_.enabled)
  130.          {
  131.             return;
  132.          }
  133.          var _loc3_:Object = this.getItemAt(param1 - 1);
  134.          if(!_loc3_)
  135.          {
  136.             return;
  137.          }
  138.          if(_loc2_.dataDescriptor.isBranch(_loc3_,_loc2_.dataProvider))
  139.          {
  140.             _loc2_.expandItem(_loc3_,!_loc2_.isItemOpen(_loc3_));
  141.          }
  142.       }
  143.       
  144.       override public function getChildIDArray() : Array
  145.       {
  146.          var _loc1_:int = !!Tree(master).dataProvider ? Tree(master).mx_internal::collectionLength : 0;
  147.          return createChildIDArray(_loc1_);
  148.       }
  149.       
  150.       override public function accLocation(param1:uint) : *
  151.       {
  152.          var _loc2_:Tree = Tree(master);
  153.          var _loc3_:int = int(param1 - 1);
  154.          if(_loc3_ < _loc2_.verticalScrollPosition || _loc3_ >= _loc2_.verticalScrollPosition + _loc2_.rowCount)
  155.          {
  156.             return null;
  157.          }
  158.          return _loc2_.itemToItemRenderer(this.getItemAt(_loc3_));
  159.       }
  160.       
  161.       override public function get_accFocus() : uint
  162.       {
  163.          var _loc1_:int = Tree(master).selectedIndex;
  164.          return _loc1_ >= 0 ? uint(_loc1_ + 1) : 0;
  165.       }
  166.       
  167.       override protected function getName(param1:uint) : String
  168.       {
  169.          if(param1 == 0)
  170.          {
  171.             return "";
  172.          }
  173.          var _loc2_:Tree = Tree(master);
  174.          var _loc3_:Object = this.getItemAt(param1 - 1);
  175.          var _loc4_:String = "";
  176.          if(!_loc3_)
  177.          {
  178.             return _loc4_;
  179.          }
  180.          if(_loc2_.itemToLabel(_loc3_))
  181.          {
  182.             _loc4_ = _loc2_.itemToLabel(_loc3_);
  183.          }
  184.          return _loc4_;
  185.       }
  186.       
  187.       private function getItemAt(param1:int) : Object
  188.       {
  189.          var _loc2_:IViewCursor = Tree(master).mx_internal::collectionIterator;
  190.          _loc2_.seek(CursorBookmark.FIRST,param1);
  191.          return _loc2_.current;
  192.       }
  193.       
  194.       override protected function eventHandler(param1:Event) : void
  195.       {
  196.          $eventHandler(param1);
  197.          var _loc2_:int = Tree(master).selectedIndex;
  198.          var _loc3_:uint = uint(_loc2_ + 1);
  199.          switch(param1.type)
  200.          {
  201.             case "change":
  202.                if(_loc2_ >= 0)
  203.                {
  204.                   Accessibility.sendEvent(master,_loc3_,AccConst.EVENT_OBJECT_FOCUS);
  205.                   Accessibility.sendEvent(master,_loc3_,AccConst.EVENT_OBJECT_SELECTION);
  206.                }
  207.                break;
  208.             case TreeEvent.ITEM_OPEN:
  209.             case TreeEvent.ITEM_CLOSE:
  210.                if(_loc2_ >= 0)
  211.                {
  212.                   Accessibility.sendEvent(master,_loc3_,AccConst.EVENT_OBJECT_STATECHANGE);
  213.                }
  214.          }
  215.       }
  216.    }
  217. }
  218.  
  219.