awv3
Version:
⚡ AWV3 embedded CAD
200 lines (154 loc) • 8.43 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = undefined;
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 _three = require('three');
var THREE = _interopRequireWildcard(_three);
var _object = require('awv3/three/object3');
var _object2 = _interopRequireDefault(_object);
var _plugin = require('../../session/plugin');
var _plugin2 = _interopRequireDefault(_plugin);
var _dimension = require('../dimension/');
var _dimension2 = _interopRequireDefault(_dimension);
var _elements = require('../../session/elements');
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var keys = ['arc-3points', 'arc-midpoint', 'arc-tangential', 'assembly', 'aufklappen', 'axis', 'behind', 'cancel', 'chamfer-sketch', 'chamfer', 'circle-3points', 'circle-center-radius', 'circle-ellipse', 'coincident', 'colinear', 'concentric', 'csys', 'down', 'equal', 'equal', 'extrusion', 'fillet-sketch', 'fillet', 'fixation', 'front', 'hdimension', 'help', 'horizontality', 'isometric', 'left', 'line', 'measure', 'midpoint', 'ok', 'parallelity', 'part', 'perpendicularity', 'plane', 'point', 'rectangle-2points', 'rectangle-center-point', 'revolve', 'right', 'schliessen', 'symmetric', 'tangency', 'top', 'vdimension', 'verticality'];
var resources = keys.reduce(function (prev, item) {
return (0, _extends4.default)({}, prev, (0, _defineProperty3.default)({}, item, require('!!url-loader!awv3-icons/32x32/' + item + '.png')));
}, {});
var Test = function (_Plugin) {
(0, _inherits3.default)(Test, _Plugin);
function Test(session, args) {
(0, _classCallCheck3.default)(this, Test);
var _this = (0, _possibleConstructorReturn3.default)(this, (Test.__proto__ || (0, _getPrototypeOf2.default)(Test)).call(this, session, (0, _extends4.default)({ type: 'Test', icon: 'ok', resources: resources }, args)));
_this.okButton = new _elements.Button(_this, { name: 'OK', color: 'blue' });
_this.cancelButton = new _elements.Button(_this, { name: 'Toggle', format: _elements.Button.Format.Toggle });
_this.header = new _elements.Group(_this, { format: _elements.Group.Format.Buttons, children: [_this.okButton, _this.cancelButton] });
_this.addElement(_this.header);
_this.addElement(new _elements.Spacer(_this));
var buttons = keys.map(function (name) {
if (name === 'arc-3points') {
return new _elements.Button(_this, {
name: name,
icon: name,
format: _elements.Button.Format.Menu,
children: [new _elements.Label(_this, { value: 'hi world', icon: name }), new _elements.Button(_this, { name: 'Test', icon: name })]
});
} else return new _elements.Button(_this, { name: name, icon: name });
});
_this.addElement(new _elements.Group(_this, { format: _elements.Group.Format.Buttons, limit: 7, children: buttons }));
_this.offsetInput = new _elements.Input(_this, { name: 'Offset', value: '' });
_this.label = new _elements.Label(_this, { name: 'Calc', visible: false });
_this.checkbox = new _elements.Checkbox(_this, { name: 'Option', value: true });
_this.dropdown = new _elements.Dropdown(_this, { name: 'Features', children: ['hello', 'there'], value: 'hello' });
_this.sliderX = new _elements.Slider(_this, {
name: 'Rotation X',
max: 360,
step: 10,
positions: { 0: '0°', 90: '90°', 180: '180°', 270: '270°', 360: '360°' }
});
_this.sliderY = new _elements.Slider(_this, {
name: 'Rotation Y',
max: 360,
step: 10,
positions: { 0: '0°', 90: '90°', 180: '180°', 270: '270°', 360: '360°' }
});
_this.sliderZ = new _elements.Slider(_this, {
name: 'Rotation Z',
max: 360,
step: 10,
positions: { 0: '0°', 90: '90°', 180: '180°', 270: '270°', 360: '360°' }
});
_this.selection = new _elements.Selection(_this, { name: 'Objects', types: ['Object'] });
_this.main = new _elements.Group(_this, {
format: _elements.Group.Format.Table,
children: [_this.offsetInput, _this.checkbox, _this.label, _this.selection, _this.sliderX, _this.sliderY, _this.sliderZ, _this.dropdown]
});
_this.addElement(_this.main);
_this.labels = new _elements.Group(_this, { format: _elements.Group.Format.Default });
_this.addElement(_this.labels);
_this.dimension = new _dimension2.default(_this.session, {
name: 'This is a link',
collapsed: false,
closeable: false,
parent: _this.id
});
_this.addElement(new _elements.Link(_this, { value: _this.dimension.id }));
// This makes the plugin a direct dependency that gets capped when the host goes away
_this.dependencies.push(_this.dimension);
_this.console = new _elements.Console(_this);
_this.addElement(_this.console);
return _this;
}
(0, _createClass3.default)(Test, [{
key: 'onEnabled',
value: function onEnabled() {
var _this2 = this;
console.log('onEnabled');
this.resetElements();
// The linked plugin should enable once the host enables, otherwise there may not be a session yet
this.dimension.enabled = true;
this.okButton.observe(function (state) {
return state.lastEvent;
}, function (event) {
return console.log('OK BUTTON CLICKED');
});
this.checkbox.observe(function (state) {
return state.value;
}, function (value) {
return console.log('CHECKBOX set to ' + value);
});
this.dropdown.observe(function (state) {
return state.value;
}, function (value) {
return console.log('DROPDOWN set to ' + value);
});
this.offsetInput.observe(function (state) {
return state.value;
}, function (value) {
_this2.label.value = value;
_this2.label.visible = value.length > 0;
});
this.console.observe(function (state) {
return state.value;
}, function (value) {
console.log(value);
_this2.console.children = !value ? [] : [value, value + value, value + value + value];
});
this.console.observe(function (state) {
return state.lastEvent;
}, function (event) {
console.log(event);
});
window.selection = this.selection;
}
}, {
key: 'onDisabled',
value: function onDisabled() {
console.log('onDisabled');
}
}, {
key: 'onDestroyed',
value: function onDestroyed() {
console.log('onDestroyed');
}
}]);
return Test;
}(_plugin2.default);
exports.default = Test;