UNPKG

catreact

Version:

Catavolt Core React Components

48 lines (47 loc) 2.81 kB
/** * Created by rburson on 3/17/16. */ "use strict"; var React = require('react'); var catreact_core_1 = require('./../core/catreact-core'); var catavolt_sdk_1 = require('catavolt-sdk'); exports.CvGraphicalWorkbenchMenuBase = { appWinDef: function () { return this.props.appWinDef || this.firstInScope(catavolt_sdk_1.AppWinDef); }, componentWillMount: function () { var id = this.props.initialSelectedWorkbenchId; var workbench = catavolt_sdk_1.ArrayUtil.find(this.appWinDef().workbenches, function (workbench) { return workbench.workbenchId === id; }) || this.appWinDef().workbenches[0]; this._workbenchSelected(workbench); }, getDefaultProps: function () { return { appWinDef: null, workbenchSelectionListener: null, initialSelectedWorkbenchId: null }; }, getInitialState: function () { return { selectedWorkbenchId: null }; }, _workbenchSelected: function (workbench) { this.setState({ selectedWorkbenchId: workbench.workbenchId }); if (this.props.workbenchSelectionListener) { this.props.workbenchSelectionListener(workbench); } } }; exports.CvDropdownWorkbenchMenu = React.createClass({ mixins: [catreact_core_1.CvBaseMixin, exports.CvGraphicalWorkbenchMenuBase], render: function () { var _this = this; return (React.createElement("span", {className: "dropdown"}, React.createElement("button", {className: "btn btn-default dropdown-toggle cv-dropdown-button", type: "button", id: "workbenchmenu", "data-toggle": "dropdown", "aria-haspopup": "true", "aria-expanded": "true"}, "Workbenches", React.createElement("span", {className: "caret"})), React.createElement(catreact_core_1.CvWorkbenchMenu, {appWinDef: this.appWinDef(), wrapperElemName: 'ul', wrapperElemProps: { className: 'dropdown-menu', 'aria-labelledby': 'workbenchmenu' }, menuItemRenderer: function (workbench) { return React.createElement("li", {onClick: _this._workbenchSelected.bind(_this, workbench), key: workbench.workbenchId}, React.createElement("a", {className: "cv-target"}, workbench.name)); }}))); }, }); exports.CvTabbedWorkbenchMenu = React.createClass({ mixins: [catreact_core_1.CvBaseMixin, exports.CvGraphicalWorkbenchMenuBase], render: function () { var _this = this; return (React.createElement(catreact_core_1.CvWorkbenchMenu, {appWinDef: this.appWinDef(), wrapperElemName: 'ul', wrapperElemProps: { className: 'nav nav-pills' }, menuItemRenderer: function (workbench) { return React.createElement("li", {onClick: _this._workbenchSelected.bind(_this, workbench), key: workbench.workbenchId, role: "presentation"}, React.createElement("a", {className: "cv-target"}, workbench.name)); }})); }, });