home *** CD-ROM | disk | FTP | other *** search
/ One Click 5 / ONCE005.iso / Interface / it.dig / scripts / __Packages / mx / data / components / datasetclasses / DataSetDataProvider.as next >
Encoding:
Text File  |  2006-06-12  |  4.0 KB  |  156 lines

  1. class mx.data.components.datasetclasses.DataSetDataProvider extends Object
  2. {
  3.    var _dataset;
  4.    var _dg;
  5.    var _dgInit;
  6.    var _desiredTypes;
  7.    function DataSetDataProvider(aDataSet)
  8.    {
  9.       super();
  10.       this._dataset = aDataSet;
  11.    }
  12.    function get length()
  13.    {
  14.       if(this._dg != null && this._dgInit != true)
  15.       {
  16.          this._dgInit = true;
  17.          var _loc2_ = undefined;
  18.          for(var _loc3_ in this._dg.columns)
  19.          {
  20.             _loc2_ = this._dg.columns[_loc3_];
  21.             _loc2_.editable = _loc2_.editable && !this.isFieldReadOnly(_loc2_.columnName);
  22.          }
  23.       }
  24.       return this._dataset.length;
  25.    }
  26.    function addEventListener(eventName, handler)
  27.    {
  28.       this._desiredTypes = handler.getBindingMetaData("acceptedTypes");
  29.       if(handler instanceof mx.controls.DataGrid)
  30.       {
  31.          if(this._dataset.readOnly)
  32.          {
  33.             handler.editable = false;
  34.          }
  35.          else
  36.          {
  37.             this._dg = handler;
  38.             this._dgInit = false;
  39.          }
  40.       }
  41.       this._dataset.addEventListener(eventName,handler);
  42.    }
  43.    function addItem(item)
  44.    {
  45.       this._dataset.addItem(item);
  46.    }
  47.    function addItemAt(index, transferObj)
  48.    {
  49.       this._dataset.addItemAt(index,transferObj);
  50.    }
  51.    function editField(index, fieldName, newData)
  52.    {
  53.       var _loc3_ = this._dataset.__curItem;
  54.       try
  55.       {
  56.          this._dataset.__curItem = this._dataset._iterator.getItemAt(index);
  57.          var _loc2_ = this._desiredTypes[fieldName];
  58.          if(_loc2_ == null)
  59.          {
  60.             _loc2_ = "String";
  61.          }
  62.          this._dataset.getField(fieldName).setTypedValue(new mx.data.binding.TypedValue(newData,_loc2_));
  63.       }
  64.       finally
  65.       {
  66.          this._dataset.__curItem = _loc3_;
  67.       }
  68.    }
  69.    function getColumnNames()
  70.    {
  71.       var _loc2_ = new Array();
  72.       for(var _loc3_ in this._dataset.properties)
  73.       {
  74.          _loc2_.push(_loc3_);
  75.       }
  76.       _loc2_.reverse();
  77.       return _loc2_;
  78.    }
  79.    function getEditingData(index, fieldName)
  80.    {
  81.       return this._dataset.getEditingData(fieldName,this._dataset._iterator.getItemAt(index),this._desiredTypes);
  82.    }
  83.    function getItemAt(index)
  84.    {
  85.       if(index >= this._dataset.length)
  86.       {
  87.          return null;
  88.       }
  89.       var _loc2_ = this._dataset._iterator.getItemAt(index);
  90.       if(_loc2_ != null)
  91.       {
  92.          return this._dataset.getDataProviderItem(_loc2_,this._desiredTypes);
  93.       }
  94.       return null;
  95.    }
  96.    function getItemID(index)
  97.    {
  98.       return this._dataset.getItemId(index);
  99.    }
  100.    function removeAll()
  101.    {
  102.       this._dataset.removeAll();
  103.    }
  104.    function removeItemAt(index)
  105.    {
  106.       this._dataset.removeItemAt(index);
  107.    }
  108.    function replaceItemAt(index, item)
  109.    {
  110.       this.removeItemAt(index);
  111.       this.addItemAt(index,item);
  112.    }
  113.    function sortItemsBy(fieldNames, options)
  114.    {
  115.       var _loc4_ = undefined;
  116.       var _loc3_ = 0;
  117.       if(typeof options == "string")
  118.       {
  119.          _loc3_ = options.toUpperCase() != "DESC" ? mx.data.components.datasetclasses.DataSetIterator.Ascending : Array.DESCENDING;
  120.       }
  121.       else
  122.       {
  123.          _loc3_ = options;
  124.       }
  125.       if(typeof fieldNames == "array")
  126.       {
  127.          _loc4_ = fieldNames.join("_");
  128.       }
  129.       else
  130.       {
  131.          _loc4_ = fieldNames;
  132.          fieldNames = new Array(fieldNames);
  133.       }
  134.       for(var _loc5_ in fieldNames)
  135.       {
  136.          if(this._dataset.properties[fieldNames[_loc5_]].type.name == "String")
  137.          {
  138.             _loc3_ |= Array.CASEINSENSITIVE;
  139.             break;
  140.          }
  141.       }
  142.       if(this._dataset.hasSort(_loc4_))
  143.       {
  144.          this._dataset.useSort(_loc4_,_loc3_);
  145.       }
  146.       else
  147.       {
  148.          this._dataset.addSort(_loc4_,fieldNames,_loc3_);
  149.       }
  150.    }
  151.    function isFieldReadOnly(name)
  152.    {
  153.       return this._dataset.properties[name].type.readonly == true;
  154.    }
  155. }
  156.