import DataCollection = require("./DataCollection"); import DataModel = require("./DataModel"); import DataModelListener = require("./DataModelListener"); import DataCollectionChangeListener = require("./DataCollectionChangeListener"); class DataComponentUpdater implements DataModelListener, DataCollectionChangeListener { protected collections:DataCollection[] = [] protected dataModels:DataModel[] = [] constructor(collections?:DataCollection[]|DataCollection) { if (collections) { if (collections instanceof Array) { collections.forEach((collection) => { this.addCollection(collection) }) } else { this.addCollection(collections) } } } public addCollection(collection:DataCollection) { collection.addChangeListener(this) this.collections.push(collection) } public addDataModel(dataModel:DataModel) { dataModel.addListener(this, true) this.dataModels.push(dataModel) } public destroy() { this.collections.forEach((collection) => { collection.removeChangeListener(this) }) this.collections.slice(0, 0) this.dataModels.forEach((dataModel) => { dataModel.removeListener(this) }) this.dataModels.slice(0, 0) } dataModelChanged(dataModel:DataModel) { } dataCollectionChanged(dataCollection:DataCollection, forceTriggerChildren?:boolean) { } } export = DataComponentUpdater