awv3
Version:
⚡ AWV3 embedded CAD
169 lines (124 loc) • 7.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
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-tagential", "assembly", "aufklappen", "axis", "behind", "cancel", "chamfer-sketch", "chamfer", "circle-3points", "circle-center-radius", "circle-ellipse", "coincident", "colinear", "concentric", "csys", "down", "equal-distance", "equal-radius", "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('./resources/' + 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));
_this.addElement(_this.createToolbar(keys, function (children) {
return children.map(function (name) {
return new _elements.Button(_this, { name: name, icon: name });
});
}));
_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" });
_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;