import {ValueType} from "./common"; export interface IRowData{ [fieldName:string]:ValueType; } export class DataCollector{ private _data:Array; constructor(){ this._data = []; } public get data(){ return this._data; } public setData(data:Array){ let rowsLen = this._data.length; let newRowsLen = data.length; for(let i =0;i=rowsLen){ let dataRowObject:RowData = new RowData(); this._data.push(dataRowObject); } this._data[i].setData(data[i]); } } public getRowData(rowIndex: number):RowData{ return this._data[rowIndex]; } public getDatum(rowIndex: number, fieldName:string):ValueType{ return this._data[rowIndex].getDatum(fieldName); } public get dataLength():number{ return this._data.length; } public updateDatum(rowIndex: number, fieldName: string, value: ValueType){ this._data[rowIndex].updateDatum(fieldName, value); } public addRowsData(rows:Array){ let rowsLen = rows.length; for (let i =0;i){ let rowsLen = this._data.length; let len = indexes.length for(let i = 0; irowsLen-1){ continue; } this._data.splice(indexes[i], 1); } } } export class RowData{ private _data:{[fieldName:string]:ValueType}; constructor(){ this._data = {}; } public getDatum(fieldName:string):ValueType{ return this._data[fieldName]; } public setData(row:IRowData){ for(let datum in row){ this._data[datum]=row[datum]; } } public updateDatum(fieldName:string, value:ValueType){ this._data[fieldName]=value; } }