view src/djol/PopupContainer.js @ 20:9718e8de0cb2

Слияние
author nickolay
date Fri, 06 Oct 2017 09:17:41 +0300
parents f0035923ff3e
children
line wrap: on
line source

define([       
    "dijit/_WidgetBase",
    "dijit/_TemplatedMixin",
    "dijit/_WidgetsInTemplateMixin",
    "dijit/_Container",
    "dojo/_base/declare",
    "dojo/Evented",
    "dojo/dom-class",
    "dojo/on",
    "dojo/text!./resources/PopupContainerTemplate.html",
    "ol"
],
    function (_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, _Container, declare, Evented, domClass, on, templateString, ol) {
        return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, _Container/*, Evented*/], {

            templateString: templateString,
            
            overlay: null,
            
            map : null,

            constructor: function (options) {
                options = options || {};                
            },

            postCreate: function () {
                var me = this;                
                this.inherited(arguments);
                on(this.popupCloser, "click", function () {
                    me.destroyRecursive();
                    me.onClose();
                });
            },
                        
            show: function (widget, opts) {
                opts = opts || "only";
                if (widget) {
                    widget.placeAt(this.popupContent, opts);
                }                
            },

            hideOverlay: function () {
                domClass.add(this.popupOverlay, "hidden")
            },

            showOverlay: function () {
                domClass.remove(this.popupOverlay, "hidden")
            },

            destroy : function() {
                this.map.removeOverlay(this.overlay);                
                this.inherited(arguments);
            },

            onClose: function () {                
                this.emit("close");
            }

        });
    });