Skip to content

Commit a11180c

Browse files
committed
#142 Drawer on/off ok
1 parent e310b48 commit a11180c

6 files changed

Lines changed: 69 additions & 33 deletions

File tree

webapp/components/general/NetPyNEPythonConsole.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,13 @@ import React, { Component } from 'react'
33
import PythonConsole from '@geppettoengine/geppetto-client/js/components/interface/pythonConsole/PythonConsole';
44

55
export default class NetPyNEPythonConsole extends Component {
6-
76

87

98
componentWillUnmount () {
109
console.log("unmounting python console")
1110
}
1211

1312
componentDidMount () {
14-
15-
1613

1714

1815
}

webapp/components/index.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,7 @@ export const NetPyNECellRule = connect((state, ownProps) => ({
9797

9898

9999
import { getInstance as getLayoutManagerInstance } from "./layout/LayoutManager";
100-
export const LayoutManager = () => connect(state => ({
101-
layout: state.layout,
102-
}))(getLayoutManagerInstance().getComponent());
100+
export const LayoutManager = () => connect(state => ({ layout: state.layout, }))(getLayoutManagerInstance().getComponent());
103101

104102

105103
import _NetPyNEPopulation from "./definition/populations/NetPyNEPopulation";
@@ -204,7 +202,7 @@ export const NetPyNEPythonConsole = connect(
204202

205203
import _Drawer from './settings/Drawer'
206204
export const Drawer = connect(
207-
state => ({ editMode: state.general.editMode, layout: state.layout }),
205+
state => ({ editMode: state.general.editMode, layout: state.layout }),
208206
dispatch => ({
209207
updateWidget: newConf => dispatch(updateWidget(newConf)),
210208
newWidget: widget => dispatch(newWidget(widget)),

webapp/components/layout/LayoutManager.tsx

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,14 @@ class LayoutManager {
4444
widgetFactory: WidgetFactory;
4545
tabsetIconFactory: TabsetIconFactory;
4646
dispatch;
47-
47+
layoutManager = this;
48+
enableMinimize = false;
4849

4950
constructor(
5051
model,
5152
widgetFactory: WidgetFactory = null,
5253
tabsetIconFactory: TabsetIconFactory = null,
54+
enableMinimize = false
5355
) {
5456
this.model = FlexLayout.Model.fromJson(
5557
model ? model : defaultLayoutConfiguration
@@ -61,6 +63,7 @@ class LayoutManager {
6163
: new TabsetIconFactory();
6264
this.middleware = this.middleware.bind(this);
6365
this.factory = this.factory.bind(this);
66+
this.enableMinimize = enableMinimize;
6467
}
6568

6669
addWidget(widgetConfiguration) {
@@ -79,23 +82,33 @@ class LayoutManager {
7982
);
8083
}
8184

82-
Component = ({classes}) => (
85+
onRenderTabSet = (panel, renderValues) => {
86+
if (panel.getType() === "tabset" && this.enableMinimize) {
87+
if (panel.getId() != 'leftPanel' && panel.getChildren().length > 0){
88+
renderValues.buttons.push(<div key={panel.getId()} className="fa fa-window-minimize customIconFlexLayout" onClick={() => {
89+
this.minimizeWidget(panel.getSelectedNode().getId())
90+
}} />);
91+
}
92+
}
93+
}
94+
95+
Component = (layoutManager: LayoutManager) => ({classes}) => (
8396
<div className={classes.container}>
8497
<div className={classes.spacer}/>
8598
<div className={classes.flexlayout}>
8699
<FlexLayout.Layout
87100
model={this.model}
88101
factory={this.factory}
89102
// iconFactory={layoutManager.iconFactory.bind(this)}
90-
onAction={action => this.onAction(action)}
91-
onRenderTab={(node,renderValues) => null}
103+
onAction={action => layoutManager.onAction(action)}
104+
onRenderTab={(node,renderValues) => layoutManager.onRenderTabSet(node, renderValues)}
92105
/>
93106
</div>
94107
<div className={classes.spacer}/>
95108
</div>
96109
);
97110

98-
getComponent = () => withStyles(styles)(this.Component);
111+
getComponent = () => withStyles(styles)(this.Component(this));
99112

100113

101114
private createTabSet(tabsetID) {
@@ -194,7 +207,7 @@ class LayoutManager {
194207
break;
195208
case Actions.DELETE_TAB: {
196209
if (this.getWidget(action.data.node).hideOnClose) {
197-
this.moveWidgetToBorder(action);
210+
this.minimizeWidget(action.data.node);
198211
defaultAction = false;
199212
}
200213
break;
@@ -273,15 +286,19 @@ class LayoutManager {
273286
}
274287
}
275288

276-
moveWidgetToBorder(action) {
289+
290+
291+
292+
minimizeWidget(widgetId) {
277293

278-
var updatedWidget = this.getWidget(action.id);
294+
var updatedWidget = this.getWidget(widgetId);
279295
if (updatedWidget === undefined) {
280296
return;
281297
}
282-
updatedWidget.status = WidgetStatus.BORDER;
298+
updatedWidget.status = WidgetStatus.MINIMIZED;
283299
updatedWidget.panelName = "border_bottom";
284300
this.updateWidget(updatedWidget);
301+
// this.model.doAction(FlexLayout.Actions.moveNode(widgetId, "border_bottom", FlexLayout.DockLocation.CENTER, 0));
285302
}
286303

287304
updateWidget (widget: Widget) {
@@ -290,6 +307,7 @@ class LayoutManager {
290307
this.widgetFactory.updateWidget(widget);
291308
model.doAction(Actions.updateNodeAttributes(widget.id, widget2Node(widget)));
292309
}
310+
this.model.doAction(FlexLayout.Actions.moveNode(widget.id, widget.panelName, FlexLayout.DockLocation.CENTER, widget.pos));
293311

294312
}
295313
onActionMaximizeWidget(action) {

webapp/components/layout/model.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ export enum WidgetStatus {
1212
ACTIVE = "ACTIVE",
1313
MAXIMIZED = "MAXIMIZED",
1414
MINIMIZED = "MINIMIZED",
15-
BORDER = "BORDER",
1615
}
1716

1817
export interface ExtendedNode extends Node {
@@ -22,7 +21,7 @@ export interface ExtendedNode extends Node {
2221
export interface Widget {
2322
id: string;
2423
status: WidgetStatus;
25-
panelName: String;
24+
panelName: string;
2625
hideOnClose?: boolean;
2726
name: string;
2827
enableClose?: boolean;

webapp/components/settings/Drawer.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import Typography from '@material-ui/core/Typography';
1414
import { WidgetStatus } from '../layout/model';
1515
import {
1616
DEFAULT_HLS_WIDGETS, getPythonDefaultConsoleWidget,
17-
DEFAULT_MORPHOLOGY_WIDGET,DEFAULT_PLOTS_WIDGETS
17+
DEFAULT_MORPHOLOGY_WIDGET,DEFAULT_PLOTS_WIDGETS, TOP_PANEL
1818
} from '../../constants';
1919

2020
import DrawerIcon from '../general/NetPyNEIcons';
@@ -36,7 +36,7 @@ export default ({ newWidget, editMode, activateWidget, updateWidget }) => {
3636
const widgetConf = getNewWidgetConf(widgetId)
3737
newWidget({ path: widgetConf.id, ...widgetConf })
3838
} else {
39-
if (widget.status === WidgetStatus.BORDER) {
39+
if (widget.status === WidgetStatus.MINIMIZED) {
4040
updateBorderWidget(widgetId)
4141
} else if (widget.status !== WidgetStatus.ACTIVE) {
4242
activateWidget(widgetId)
@@ -48,7 +48,7 @@ export default ({ newWidget, editMode, activateWidget, updateWidget }) => {
4848
function updateBorderWidget (widgetId) {
4949
const updatedWidget = { ...layoutManager.getWidget(widgetId) }
5050
updatedWidget.status = WidgetStatus.ACTIVE
51-
updatedWidget.panelName = getPythonDefaultConsoleWidget(editMode).panelName
51+
updatedWidget.panelName = TOP_PANEL;
5252
updateWidget(updatedWidget)
5353
}
5454

@@ -68,7 +68,7 @@ export default ({ newWidget, editMode, activateWidget, updateWidget }) => {
6868

6969

7070
function getMenu () {
71-
return layoutManager.getWidgets();
71+
return layoutManager.getWidgets().sort((w1, w2) => w1.pos - w2.pos);
7272
/*
7373
* if (editMode) {
7474
* const array = [...Object.values(DEFAULT_HLS_WIDGETS),
@@ -91,7 +91,7 @@ export default ({ newWidget, editMode, activateWidget, updateWidget }) => {
9191
const widget = layoutManager.getWidget(id);
9292
return <ListItem button key={name} dense disableGutters className={widget ? classes.selected : classes.unselected} onClick={() => createOrFocusWidget(id)}>
9393
<ListItemIcon className={classes.icon}>
94-
<DrawerIcon widgetId={id} selected={widget && widget.status !== WidgetStatus.BORDER} />
94+
<DrawerIcon widgetId={id} selected={widget && widget.status !== WidgetStatus.MINIMIZED} />
9595
</ListItemIcon>
9696
<ListItemText className={classes.text}>
9797
<Typography noWrap>{name}</Typography>

0 commit comments

Comments
 (0)