view src/djol/ToolBoxController.js @ 21:7c22fc01fcec

rewritten ./text/template-compile
author cin
date Thu, 30 Nov 2017 11:01:22 +0300
parents f0035923ff3e
children
line wrap: on
line source

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;
            });
        }
    });
});