Mercurial > pub > ImplabJs
diff src/djol/ToolBoxController.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/ToolBoxController.js Mon Aug 21 18:03:00 2017 +0300 @@ -0,0 +1,43 @@ +define([ + "dojo/_base/declare", + "implab/safe", + "implab/components/ActivationController", + "./ToolType" ], + +function(declare, safe, ActivationController, ToolType) { + return declare([ ActivationController ], { + _stack : null, + _tools : null, + + constructor : function() { + this._stack = new Array(); + this._tools = new Array(); + }, + + activate : function(tool) { + safe.argumentNotNull(tool, "tool"); + + var me = this, current = me.getCurrent(); + + return this.inherited(arguments).then(function(success) { + if (success) { + if (tool.toolType == ToolType.Oneshot && current) + me._stack.push(current); + else + me._stack = []; + } + return success; + }); + }, + + deactivate : function() { + var me = this; + return me.inherited(arguments).then(function(success) { + if (success && me._stack.length) + return me.activate(me._stack.pop()); + + return success; + }); + } + }); +}); \ No newline at end of file