home *** CD-ROM | disk | FTP | other *** search
- class mx.data.components.datasetclasses.DataSetDataProvider extends Object
- {
- var _dataset;
- var _dg;
- var _dgInit;
- var _desiredTypes;
- function DataSetDataProvider(aDataSet)
- {
- super();
- this._dataset = aDataSet;
- }
- function get length()
- {
- if(this._dg != null && this._dgInit != true)
- {
- this._dgInit = true;
- var _loc2_ = undefined;
- for(var _loc3_ in this._dg.columns)
- {
- _loc2_ = this._dg.columns[_loc3_];
- _loc2_.editable = _loc2_.editable && !this.isFieldReadOnly(_loc2_.columnName);
- }
- }
- return this._dataset.length;
- }
- function addEventListener(eventName, handler)
- {
- this._desiredTypes = handler.getBindingMetaData("acceptedTypes");
- if(handler instanceof mx.controls.DataGrid)
- {
- if(this._dataset.readOnly)
- {
- handler.editable = false;
- }
- else
- {
- this._dg = handler;
- this._dgInit = false;
- }
- }
- this._dataset.addEventListener(eventName,handler);
- }
- function addItem(item)
- {
- this._dataset.addItem(item);
- }
- function addItemAt(index, transferObj)
- {
- this._dataset.addItemAt(index,transferObj);
- }
- function editField(index, fieldName, newData)
- {
- var _loc3_ = this._dataset.__curItem;
- try
- {
- this._dataset.__curItem = this._dataset._iterator.getItemAt(index);
- var _loc2_ = this._desiredTypes[fieldName];
- if(_loc2_ == null)
- {
- _loc2_ = "String";
- }
- this._dataset.getField(fieldName).setTypedValue(new mx.data.binding.TypedValue(newData,_loc2_));
- }
- finally
- {
- this._dataset.__curItem = _loc3_;
- }
- }
- function getColumnNames()
- {
- var _loc2_ = new Array();
- for(var _loc3_ in this._dataset.properties)
- {
- _loc2_.push(_loc3_);
- }
- _loc2_.reverse();
- return _loc2_;
- }
- function getEditingData(index, fieldName)
- {
- return this._dataset.getEditingData(fieldName,this._dataset._iterator.getItemAt(index),this._desiredTypes);
- }
- function getItemAt(index)
- {
- if(index >= this._dataset.length)
- {
- return null;
- }
- var _loc2_ = this._dataset._iterator.getItemAt(index);
- if(_loc2_ != null)
- {
- return this._dataset.getDataProviderItem(_loc2_,this._desiredTypes);
- }
- return null;
- }
- function getItemID(index)
- {
- return this._dataset.getItemId(index);
- }
- function removeAll()
- {
- this._dataset.removeAll();
- }
- function removeItemAt(index)
- {
- this._dataset.removeItemAt(index);
- }
- function replaceItemAt(index, item)
- {
- this.removeItemAt(index);
- this.addItemAt(index,item);
- }
- function sortItemsBy(fieldNames, options)
- {
- var _loc4_ = undefined;
- var _loc3_ = 0;
- if(typeof options == "string")
- {
- _loc3_ = options.toUpperCase() != "DESC" ? mx.data.components.datasetclasses.DataSetIterator.Ascending : Array.DESCENDING;
- }
- else
- {
- _loc3_ = options;
- }
- if(typeof fieldNames == "array")
- {
- _loc4_ = fieldNames.join("_");
- }
- else
- {
- _loc4_ = fieldNames;
- fieldNames = new Array(fieldNames);
- }
- for(var _loc5_ in fieldNames)
- {
- if(this._dataset.properties[fieldNames[_loc5_]].type.name == "String")
- {
- _loc3_ |= Array.CASEINSENSITIVE;
- break;
- }
- }
- if(this._dataset.hasSort(_loc4_))
- {
- this._dataset.useSort(_loc4_,_loc3_);
- }
- else
- {
- this._dataset.addSort(_loc4_,fieldNames,_loc3_);
- }
- }
- function isFieldReadOnly(name)
- {
- return this._dataset.properties[name].type.readonly == true;
- }
- }
-