UNPKG

awv3

Version:
175 lines (131 loc) 6.97 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _extends3 = require('babel-runtime/helpers/extends'); var _extends4 = _interopRequireDefault(_extends3); var _plugin = require('../../session/plugin'); var _plugin2 = _interopRequireDefault(_plugin); var _elements = require('../../session/elements'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var resources = ['isometric'].reduce(function (prev, item) { return (0, _extends4.default)({}, prev, (0, _defineProperty3.default)({}, item, require('!!url-loader!awv3-icons/32x32/' + item + '.png'))); }, {}); function setResults(label, results) { label.value = results.reduce(function (text, result) { text = result.errors.reduce(function (t, e) { return t + e.errorMessage + '\n'; }, text); return result.results.reduce(function (t, r) { return t + r.result + '\n'; }, text); }, ''); } var Interpreter = function (_Plugin) { (0, _inherits3.default)(Interpreter, _Plugin); function Interpreter(session, args) { (0, _classCallCheck3.default)(this, Interpreter); var _this = (0, _possibleConstructorReturn3.default)(this, (Interpreter.__proto__ || (0, _getPrototypeOf2.default)(Interpreter)).call(this, session, (0, _extends4.default)({ type: 'Interpreter', icon: 'isometric', resources: resources, text: '' }, args))); _this.chunks = true; _this.sequence = new _elements.Checkbox(_this, { name: 'Sequence', value: _this.chunks }); _this.addElement(new _elements.Group(_this, { format: _elements.Group.Format.Table, children: [_this.sequence] })); _this.input = new _elements.Input(_this, { name: 'Command', value: _this.text, format: _elements.Input.Format.MultiLine, style: { fontSize: '0.8em', fontFamily: 'monospace' } }); _this.addElement(_this.input); _this.label = new _elements.Label(_this, { name: 'Result', value: '' }); _this.addElement(_this.label); _this.okButton = new _elements.Button(_this, { name: 'Execute', color: 'blue' }); _this.clearButton = new _elements.Button(_this, { name: 'Clear', color: 'red' }); _this.addElement(new _elements.Group(_this, { format: _elements.Group.Format.Buttons, children: [_this.clearButton, _this.okButton] })); return _this; } (0, _createClass3.default)(Interpreter, [{ key: 'onEnabled', value: function onEnabled() { var _this2 = this; this.resetElements(); this.clearButton.observe(function (state) { return state.lastEvent; }, function (event) { _this2.session.activeConnectionClass.execute('_O.ToolBuilder.Clear();'); }); this.okButton.observe(function (state) { return state.lastEvent; }, function () { var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(event) { var results; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: console.time('INTERPRETER'); results = void 0; if (!_this2.chunks) { _context.next = 8; break; } _context.next = 5; return _promise2.default.all(_this2.input.value.split(';').filter(function (e) { return e; }).map(function (command) { return command.length && _this2.session.activeConnectionClass.execute(command + ';'); })); case 5: results = _context.sent; _context.next = 12; break; case 8: _context.next = 10; return _this2.session.activeConnectionClass.execute(_this2.input.value); case 10: _context.t0 = _context.sent; results = [_context.t0]; case 12: _this2.connection.updateView(); _this2.view.controls.focus().zoom(); console.timeEnd('INTERPRETER'); setResults(_this2.label, results); case 16: case 'end': return _context.stop(); } } }, _callee, _this2); })); return function (_x) { return _ref.apply(this, arguments); }; }()); this.sequence.observe(function (state) { return state.value; }, function (value) { return _this2.chunks = value; }); } }]); return Interpreter; }(_plugin2.default); exports.default = Interpreter;