@turbox3d/command-manager
Version:
Large-scale productivity application command management library
68 lines (67 loc) • 1.96 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.CommandManager = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _create = require("./create");
var _compose = require("./compose");
var _manager = require("./manager");
var _install = require("./install");
var CommandManager = exports.CommandManager = /*#__PURE__*/function () {
function CommandManager() {
(0, _classCallCheck2["default"])(this, CommandManager);
}
return (0, _createClass2["default"])(CommandManager, [{
key: "installed",
value: function installed() {
//
}
}, {
key: "toggleCommand",
value: function toggleCommand(command) {
this.activeCommand = command;
}
}, {
key: "clearCommand",
value: function clearCommand() {
this.activeCommand = undefined;
}
/**
* 判断当前激活的 Command 是否为入参 command
* @param command
*/
}, {
key: "isCommandActive",
value: function isCommandActive(command) {
return this.activeCommand === command;
}
}, {
key: "distributeEvent",
value: function distributeEvent(eventType, ev, event, tools) {
if (this.activeCommand) {
this.activeCommand.distributeEvent(eventType, ev, event, tools);
}
}
}]);
}();
/**
* 构建一个 Command 基类
*
* 范型类型为激活时的函数参数
*/
CommandManager.create = _create.create;
/**
* 构建一个组合了其他 Command 的结构(本质依然是一个 Command)
*/
CommandManager.compose = _compose.compose;
/**
* 构建一个 CommandManager 基类
*/
CommandManager.manager = _manager.manager;
/**
* 安装声明一系列指令集
*/
CommandManager.install = _install.install;