Mercurial > pub > ImplabJs
comparison src/djol/ToolBoxController.js @ 10:8705103f074f
Слияние
author | cin |
---|---|
date | Mon, 21 Aug 2017 18:03:00 +0300 |
parents | f0035923ff3e |
children |
comparison
equal
deleted
inserted
replaced
9:37e9e6bbe87a | 10:8705103f074f |
---|---|
1 define([ | |
2 "dojo/_base/declare", | |
3 "implab/safe", | |
4 "implab/components/ActivationController", | |
5 "./ToolType" ], | |
6 | |
7 function(declare, safe, ActivationController, ToolType) { | |
8 return declare([ ActivationController ], { | |
9 _stack : null, | |
10 _tools : null, | |
11 | |
12 constructor : function() { | |
13 this._stack = new Array(); | |
14 this._tools = new Array(); | |
15 }, | |
16 | |
17 activate : function(tool) { | |
18 safe.argumentNotNull(tool, "tool"); | |
19 | |
20 var me = this, current = me.getCurrent(); | |
21 | |
22 return this.inherited(arguments).then(function(success) { | |
23 if (success) { | |
24 if (tool.toolType == ToolType.Oneshot && current) | |
25 me._stack.push(current); | |
26 else | |
27 me._stack = []; | |
28 } | |
29 return success; | |
30 }); | |
31 }, | |
32 | |
33 deactivate : function() { | |
34 var me = this; | |
35 return me.inherited(arguments).then(function(success) { | |
36 if (success && me._stack.length) | |
37 return me.activate(me._stack.pop()); | |
38 | |
39 return success; | |
40 }); | |
41 } | |
42 }); | |
43 }); |