avocado-old/packages/topdown/layers-view.js

38 lines
796 B
JavaScript
Raw Normal View History

2019-03-27 01:52:24 -05:00
import {Container} from '@avocado/graphics';
import {LayerView} from './layer-view';
export class LayersView extends Container {
constructor(layers, renderer) {
super();
this.layers = layers;
this.layerViews = [];
this.renderer = renderer;
this.layers.on('layerAdded', (layer) => {
this.onLayerAdded(layer);
});
for (const layer of layers) {
this.onLayerAdded(layer);
}
}
onLayerAdded(layer) {
const layerView = new LayerView(layer, this.renderer);
this.layerViews.push(layerView);
this.addChild(layerView);
}
onLayerRemoved(layer) {
const layerView = this.layerViews.find((layerView) => {
return layerView.layer === layer;
});
if (!layerView) {
return;
}
this.removeChild(layerView);
}
}