Mercurial > pub > ImplabJs
diff src/djol/LayerRadioButton.js @ 10:8705103f074f
Слияние
author | cin |
---|---|
date | Mon, 21 Aug 2017 18:03:00 +0300 |
parents | f0035923ff3e |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/djol/LayerRadioButton.js Mon Aug 21 18:03:00 2017 +0300 @@ -0,0 +1,50 @@ +define([ + "dojo/_base/declare", + "dijit/_WidgetBase", + "dijit/_TemplatedMixin", + "dijit/_WidgetsInTemplateMixin", + "dojo/text!./resources/LayerRadioButtonTemplate.html", + "dijit/form/RadioButton" ], function(declare, _WidgetBase, _TemplatedMixin, + _WidgetsInTemplateMixin, templateString) { + return declare([ _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin ], { + templateString : templateString, + + labelNode : null, + radioButton : null, + + label : "", + _setLabelAttr : { + node : "labelNode", + type : "innerHTML" + }, + + name : "layers", + + _layer : null, + + constructor : function(options) { + options = options || {}; + + if (!options.layer) + throw new Error("The layer is required"); + + this._layer = options.layer; + this.label = options.layer.get("label") || "unnamed"; + }, + + postCreate : function() { + var me = this; + me.inherited(arguments); + + me.radioButton.set('name', me.name); + me.radioButton.set('value', me._layer.getVisible()); + this.radioButton.on("change", function(value) { + me._changed(value); + }); + }, + + _changed : function(visible) { + this._layer.setVisible(visible); + } + }); +}); \ No newline at end of file