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