Mercurial > pub > ImplabJs
diff src/djol/_ToolBase.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/_ToolBase.js Mon Aug 21 18:03:00 2017 +0300 @@ -0,0 +1,46 @@ +define([ + "dojo/_base/declare", + "dojo/when", + "implab/safe", + "implab/guard", + "implab/components/_ActivatableMixin", + "implab/log/_LogMixin", + "dojo/Evented", + "./ToolType" ], + +function(declare, when, safe, guard, _ActivatableMixin, _LogMixin, Evented, ToolType) { + return declare([ _ActivatableMixin, Evented ], { + toolType : ToolType.Activatable, + + module : null, + + constructor : function(opts) { + if (opts) { + if (opts.controller) + this.setController(opts.controller); + } + }, + + onActivating : function() { + var me = this, inherited = this.getInherited(arguments); + if (me.module && !me.module.isActive()) + return me.module.activate().then(function(active) { + return active ? inherited.apply(me) : false; + }); + else + return inherited.apply(me); + }, + + onActivated : function() { + this.emit("active", true); + }, + + onDeactivated : function() { + this.emit("active", false); + }, + + destroy : function() { + + } + }); +}); \ No newline at end of file