awv3
Version:
⚡ AWV3 embedded CAD
175 lines (131 loc) • 6.97 kB
JavaScript
;
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;