covid19-dashboard
Version:
Dashboard App displaying COVID-19 numbers by country
68 lines (58 loc) • 1.8 kB
JavaScript
import ComponentController from '../../../../node_modules/neo.mjs/src/controller/Component.mjs';
/**
* @class Covid.view.mapboxGl.ContainerController
* @extends Neo.controller.Component
*/
class ContainerController extends ComponentController {
static getConfig() {return {
/**
* @member {String} className='Covid.view.mapboxGl.ContainerController'
* @protected
*/
className: 'Covid.view.mapboxGl.ContainerController',
/**
* @member {String} ntype='mapboxgl-container-controller'
* @protected
*/
ntype: 'mapboxgl-container-controller'
}}
/**
* @param {String} layerId
* @param {String} visibility
*/
changeLayerVisibility(layerId, visibility) {
this.getReference('mapboxglmap').setLayoutProperty({
layerId: layerId,
key : 'visibility',
value : visibility
});
}
/**
* @param {Object} data
*/
onDetailCirclesChange(data) {
const visibility = data.value ? 'visible' : 'none';
this.changeLayerVisibility('covid19-circle', visibility);
this.changeLayerVisibility('covid19-circle-text', visibility);
}
/**
* @param {Object} data
*/
onHeatMapChange(data) {
this.changeLayerVisibility('covid19-heat', data.value ? 'visible' : 'none');
}
/**
* @param {Object} data
*/
onHideMapControlsButtonClick(data) {
console.log('onHideMapControlsButtonClick', data);
}
/**
* @param {Object} data
*/
onTerrainChange(data) {
this.changeLayerVisibility('hillshading', data.value ? 'visible' : 'none');
}
}
Neo.applyClassConfig(ContainerController);
export {ContainerController as default};