Skip to content

Commit 9a4606d

Browse files
committed
Simulate button in the topbar
1 parent 17cb15e commit 9a4606d

5 files changed

Lines changed: 39 additions & 13 deletions

File tree

webapp/components/definition/cellRules/SelectCellTemplate.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ export default class NetPyNENewPlot extends React.Component {
7676
value={"Simple_HH"}
7777
onClick={() => this.handleSelection("Simple_HH")}
7878
>
79-
Simple HH cell
79+
Basic HH cell
8080
</MenuItem>
8181

8282
<MenuItem

webapp/components/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,8 @@ export const SwitchPageButton = connect(
265265
switchToEditModelPage: () => dispatch(editModel),
266266
createNetwork: () => dispatch(createNetwork),
267267
createAndSimulateNetwork: () => dispatch(createAndSimulateNetwork),
268-
showNetwork: () => dispatch(showNetwork)
268+
showNetwork: () => dispatch(showNetwork),
269+
simulateNetwork: () => dispatch(simulateNetwork)
269270
})
270271
)(_SwitchPageButton)
271272

webapp/components/topbar/SwitchPageButton.js

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import React, { Component } from 'react'
22

3-
import { withStyles } from '@material-ui/core/styles'
4-
import Button from '@material-ui/core/Button'
5-
import Icon from '../general/NetPyNEIcons'
6-
import { TOPBAR_CONSTANTS, MODEL_STATE } from '../../constants'
7-
3+
import { withStyles } from '@material-ui/core/styles';
4+
import Button from '@material-ui/core/Button';
5+
import IconButton from '@material-ui/core/IconButton';
6+
import Icon from '../general/NetPyNEIcons';
7+
import { TOPBAR_CONSTANTS, MODEL_STATE } from '../../constants';
8+
import { Tooltip } from 'netpyne/components';
89

910
const styles = ({ palette, shape, spacing, typography }) => ({
1011
container: {},
@@ -14,6 +15,7 @@ const styles = ({ palette, shape, spacing, typography }) => ({
1415
fontSize: '1rem',
1516
borderRadius: 0
1617
},
18+
rocket: { marginRight: spacing(1) },
1719
icon: { color: palette.common.white },
1820
})
1921

@@ -36,9 +38,32 @@ class SwitchPageButton extends Component {
3638
};
3739

3840
render () {
39-
const { classes } = this.props
41+
const { classes, modelState, editModelPage } = this.props;
42+
const disableSimulate = modelState === MODEL_STATE.SIMULATED;
4043
return (
4144
<div className={classes.container}>
45+
{
46+
editModelPage ? null
47+
48+
: <Tooltip
49+
title={disableSimulate ? "You have already simulated the network" : "Simulate the network"}
50+
placement="left"
51+
><span>
52+
<IconButton
53+
color={'default'}
54+
id={"launchSimulationButton"}
55+
className={classes.rocket}
56+
size="small"
57+
onClick={() => this.props.simulateNetwork() }
58+
disabled={disableSimulate}
59+
style={{ opacity: disableSimulate ? 0.5 : 1 }}
60+
>
61+
<Icon name={"rocket"} />
62+
63+
</IconButton>
64+
</span>
65+
</Tooltip>
66+
}
4267
<Button
4368
variant="contained"
4469
size="small"

webapp/components/topbar/Topbar.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,10 @@ class Topbar extends Component {
155155
configuration={toolbarConfig}
156156
menuHandler={this.menuHandler.bind(this)}
157157
/>
158-
<SwitchPageButton/>
158+
<div>
159+
160+
<SwitchPageButton/>
161+
</div>
159162

160163
</div>
161164
{ this.props.modelLoaded ? null : <Splash/> }

webapp/tests/end2end-puppeteer/TestTutorial1.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ describe('Tutorial #1', () => {
3131

3232

3333
await page.waitForSelector('#CellType0')
34-
await page.waitFor(2000);
34+
await page.waitFor(2000);
3535
await page.click('#CellType0')
3636

3737
await page.waitForSelector('#cellRuleName')
@@ -40,7 +40,6 @@ describe('Tutorial #1', () => {
4040

4141
await page.waitForSelector('#newSectionButton')
4242
await page.click('#newSectionButton')
43-
4443

4544

4645
await page.waitForSelector('input\[value="soma"\]')
@@ -64,13 +63,11 @@ describe('Tutorial #1', () => {
6463
await page.waitForSelector('input\[type="number"\]') // num cells, the default id #netParams\.popParams\[\'Population0\'\]\[\'numCells\'\] cannot be targeted
6564
await page.waitFor(1000);
6665
page.$eval('input\[type="number"\]', el => el.value = 30);
67-
6866

6967

7068
// await page.waitForSelector('#netParams\.popParams\[\'Population0\'\]\[\'cellType\'\]')
7169
// await page.waitFor(1000);
7270
// await page.click('#netParams\.popParams\[\'Population0\'\]\[\'cellType\'\]')
73-
7471

7572

7673
// await page.waitForSelector('.MuiSelect-nativeInput')

0 commit comments

Comments
 (0)