webgme-dss
Version:
Design Studio for Dynamic Systems with Modelica as backend
68 lines (60 loc) • 2.4 kB
JSX
import React from 'react';
import PropTypes from 'prop-types';
import Button from '@material-ui/core/Button';
import Dialog from '@material-ui/core/Dialog';
import DialogActions from '@material-ui/core/DialogActions';
import DialogContent from '@material-ui/core/DialogContent';
import DialogTitle from '@material-ui/core/DialogTitle';
import ModiaCodeGenerator from '../../plugins/ModiaCodeGenerator/ModiaCodeGenerator';
export default class ConfirmDialog extends React.Component {
static propTypes = {
onClose: PropTypes.func.isRequired,
gmeClient: PropTypes.object.isRequired,
nodeId: PropTypes.string.isRequired,
};
state = {
modiaCode: 'Generating Modia code ...',
}
componentDidMount() {
const {gmeClient, nodeId} = this.props;
const pluginId = ModiaCodeGenerator.id;
const context = gmeClient.getCurrentPluginContext(pluginId, nodeId);
// TODO: Remove when engine is bumped
// context.managerConfig.activeNode = nodeId;
gmeClient.runBrowserPlugin(ModiaCodeGenerator, context, (err, result) => {
if (err) {
console.error(err);
} else {
console.log(result);
this.setState({modiaCode: result.messages[0].message});
}
});
}
render() {
const {modiaCode} = this.state;
return (
<div>
<Dialog
fullWidth
maxWidth={false}
open
onClose={() => this.props.onClose()}
aria-labelledby="alert-dialog-title"
aria-describedby="alert-dialog-description"
>
<DialogTitle id="alert-dialog-title">Modia</DialogTitle>
<DialogContent style={{minHeight: '30vh', minWidth: '80hh'}}>
<pre>
{modiaCode}
</pre>
</DialogContent>
<DialogActions>
<Button onClick={() => this.props.onClose()} color="primary" autoFocus>
Close
</Button>
</DialogActions>
</Dialog>
</div>
);
}
}