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