Skip to content
Snippets Groups Projects
Commit 4792beea authored by Sandro Weber's avatar Sandro Weber
Browse files

first flexlayout

parent c55aba47
No related branches found
No related tags found
No related merge requests found
...@@ -6939,6 +6939,11 @@ ...@@ -6939,6 +6939,11 @@
"resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz",
"integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg=="
}, },
"flexlayout-react": {
"version": "0.5.5",
"resolved": "https://registry.npmjs.org/flexlayout-react/-/flexlayout-react-0.5.5.tgz",
"integrity": "sha512-y8fQQ1nfBdSmBELoD/nEplEIxRZfDtHT1Lg50M4iXkvlF9blnkQktmngiYR2tO/wr6fy2+2cV+tX0HXoeHY8cQ=="
},
"flush-write-stream": { "flush-write-stream": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
"private": true, "private": true,
"dependencies": { "dependencies": {
"bootstrap": "4.5", "bootstrap": "4.5",
"flexlayout-react": "0.5.5",
"jszip": "3.2.0", "jszip": "3.2.0",
"react": "^17.0.1", "react": "^17.0.1",
"react-bootstrap": "1.4.0", "react-bootstrap": "1.4.0",
......
...@@ -2,20 +2,18 @@ import React from 'react'; ...@@ -2,20 +2,18 @@ import React from 'react';
import { HashRouter, Switch, Route } from 'react-router-dom'; import { HashRouter, Switch, Route } from 'react-router-dom';
import EntryPage from './components/entry-page/entry-page.js'; import EntryPage from './components/entry-page/entry-page';
import ExperimentOverview from './components/experiment-overview/experiment-overview.js'; import ExperimentOverview from './components/experiment-overview/experiment-overview';
import SimulationView from './components/simulation-view/simulation-view';
class App extends React.Component { class App extends React.Component {
render() { render() {
return ( return (
<HashRouter> <HashRouter>
<Switch> <Switch>
<Route path='/experiments-overview'> <Route path='/experiments-overview' component={ExperimentOverview} />
<ExperimentOverview /> <Route path='/simulation-view/:simID' component={SimulationView} />
</Route> <Route path='/' component={EntryPage} />
<Route path='/'>
<EntryPage />
</Route>
</Switch> </Switch>
</HashRouter> </HashRouter>
); );
......
import React from 'react'; import React from 'react';
import { FaStop, FaStopCircle } from 'react-icons/fa'; import { FaStop, FaStopCircle } from 'react-icons/fa';
import { ImEnter } from 'react-icons/im'; import { ImEnter } from 'react-icons/im';
import { withRouter } from 'react-router-dom';
import timeDDHHMMSS from '../../utility/time-filter.js'; import timeDDHHMMSS from '../../utility/time-filter.js';
import { EXPERIMENT_STATE } from '../../services/experiments/experiment-constants.js'; import { EXPERIMENT_STATE } from '../../services/experiments/experiment-constants.js';
...@@ -8,7 +9,7 @@ import ExperimentExecutionService from '../../services/experiments/execution/exp ...@@ -8,7 +9,7 @@ import ExperimentExecutionService from '../../services/experiments/execution/exp
import './simulation-details.css'; import './simulation-details.css';
export default class SimulationDetails extends React.Component { class SimulationDetails extends React.Component {
constructor() { constructor() {
super(); super();
...@@ -78,7 +79,13 @@ export default class SimulationDetails extends React.Component { ...@@ -78,7 +79,13 @@ export default class SimulationDetails extends React.Component {
ng-click="(simulation.runningSimulation.state === STATE.CREATED) || ng-click="(simulation.runningSimulation.state === STATE.CREATED) ||
simulation.stopping || joinExperiment(simulation, exp);"*/ simulation.stopping || joinExperiment(simulation, exp);"*/
type="button" className='nrp-btn btn-default' type="button" className='nrp-btn btn-default'
disabled={this.isJoinDisabled(simulation)}> disabled={this.isJoinDisabled(simulation)}
onClick={() => {
console.info(simulation);
this.props.history.push({
pathname: '/simulation-view/' + simulation.runningSimulation.simulationID
});
}}>
<ImEnter className='icon' />Join <ImEnter className='icon' />Join
</button> </button>
{/* Stop button enabled provided simulation state is consistent */} {/* Stop button enabled provided simulation state is consistent */}
...@@ -106,3 +113,4 @@ export default class SimulationDetails extends React.Component { ...@@ -106,3 +113,4 @@ export default class SimulationDetails extends React.Component {
); );
} }
} }
export default withRouter(SimulationDetails);
import React from 'react';
import FlexLayout from 'flexlayout-react';
import '../../../node_modules/flexlayout-react/style/light.css';
const jsonBaseLayout = {
global: {},
borders: [],
layout:{
'type': 'row',
'weight': 100,
'children': [
{
'type': 'tabset',
'weight': 50,
'selected': 0,
'children': [
{
'type': 'tab',
'name': 'FX',
'component':'grid'
}
]
},
{
'type': 'tabset',
'weight': 50,
'selected': 0,
'children': [
{
'type': 'tab',
'name': 'FI',
'component':'grid'
}
]
}
]
}
};
export default class SimulationView extends React.Component {
constructor(props) {
super(props);
console.info(this.state);
console.info(this.props);
this.state = {model: FlexLayout.Model.fromJson(jsonBaseLayout)};
console.info(this.state);
}
factory = (node) => {
var component = node.getComponent();
if (component === 'button') {
return <button>{node.getName()}</button>;
}
}
render() {
return (
<div>
<FlexLayout.Layout model={this.state.model} factory={this.factory}/>
</div>
);
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment