Commit 2a0b8d2c38ec3d32180dbb2276de2d91686fb7d1

Authored by Benjamin Renard
1 parent 35c71481

Restore node state in tree for a plot request

js/app/models/PlotObjects/PlotPanelObject.js
... ... @@ -31,6 +31,14 @@ Ext.define('amdaPlotObj.PlotPanelObject', {
31 31  
32 32 fields : [
33 33 {name: 'id', type: 'string'},
  34 + {name: 'panel-node-state', type: 'int', defaultValue: 2}, //0 : collapsed, 1 : expanded, 2 : not set
  35 + {name: 'axes-node-state', type: 'int', defaultValue: 2}, //0 : collapsed, 1 : expanded, 2 : not set
  36 + {name: 'params-node-state', type: 'int', defaultValue: 2}, //0 : collapsed, 1 : expanded, 2 : not set
  37 + {name: 'add-objects-node-state', type: 'int', defaultValue: 2}, //0 : collapsed, 1 : expanded, 2 : not set
  38 + {name: 'legends-node-state', type: 'int', defaultValue: 2}, //0 : collapsed, 1 : expanded, 2 : not set
  39 + {name: 'text-legends-node-state', type: 'int', defaultValue: 2}, //0 : collapsed, 1 : expanded, 2 : not set
  40 + {name: 'drawing-objects-node-state', type: 'int', defaultValue: 2}, //0 : collapsed, 1 : expanded, 2 : not set
  41 + {name: 'fills-node-state', type: 'int', defaultValue: 2}, //0 : collapsed, 1 : expanded, 2 : not set
34 42 {name: 'panel-index', type: 'int'},
35 43 {name: 'panel-background-color', type: 'string'},
36 44 {name: 'panel-title-text', type: 'string'},
... ... @@ -613,6 +621,15 @@ Ext.define('amdaPlotObj.PlotPanelObject', {
613 621  
614 622 panelValues['id'] = this.get('id');
615 623  
  624 + panelValues['panel-node-state'] = this.get('panel-node-state');
  625 + panelValues['axes-node-state'] = this.get('axes-node-state');
  626 + panelValues['params-node-state'] = this.get('params-node-state');
  627 + panelValues['add-objects-node-state'] = this.get('add-objects-node-state');
  628 + panelValues['legends-node-state'] = this.get('legends-node-state');
  629 + panelValues['text-legends-node-state'] = this.get('text-legends-node-state');
  630 + panelValues['drawing-objects-node-state'] = this.get('drawing-objects-node-state');
  631 + panelValues['fills-node-state'] = this.get('fills-node-state');
  632 +
616 633 panelValues['panel-index'] = this.get('panel-index');
617 634  
618 635 panelValues['panel-background-color'] = this.get('panel-background-color');
... ...
js/app/models/PlotObjects/PlotTabObject.js
... ... @@ -29,7 +29,9 @@ Ext.define('amdaPlotObj.PlotTabObject', {
29 29 {name: 'id', type: 'int'},
30 30 {name: 'tree-simplified-view', type: 'boolean'},
31 31 {name: 'multi-plot-linked', type: 'boolean'},
32   - {name: 'page-title-text', type: 'string'},
  32 + {name: 'page-node-state', type: 'int', defaultValue: 2}, //0 : collapsed, 1 : expanded, 2 : not set
  33 + {name: 'panels-node-state', type: 'int', defaultValue: 2}, //0 : collapsed, 1 : expanded, 2 : not set
  34 + {name: 'page-title-text', type: 'string'},
33 35 {name: 'page-title-color', type: 'string'},
34 36 {name: 'page-title-position', type: 'string'},
35 37 {name: 'page-title-alignment', type: 'string'},
... ... @@ -223,6 +225,8 @@ Ext.define('amdaPlotObj.PlotTabObject', {
223 225 tabValues['id'] = this.get('id');
224 226 tabValues['tree-simplified-view'] = this.get('tree-simplified-view');
225 227 tabValues['multi-plot-linked'] = this.get('multi-plot-linked');
  228 + tabValues['page-node-state'] = this.get('page-node-state');
  229 + tabValues['panels-node-state'] = this.get('panels-node-state');
226 230 tabValues['page-title-text'] = this.get('page-title-text');
227 231 tabValues['page-title-color'] = this.get('page-title-color');
228 232 tabValues['page-title-position'] = this.get('page-title-position');
... ...
js/app/models/PlotObjects/PlotTreeNode.js
... ... @@ -43,17 +43,38 @@ Ext.define('amdaPlotObj.PlotTreeNode', {
43 43 //Additional information about a node to show in the tree view
44 44 getAdditionalText : null,
45 45  
  46 + getNodeStateKey : null,
  47 +
  48 + getNodeState : function()
  49 + {
  50 + if (!this.getNodeStateKey || !this.object)
  51 + return;
  52 + return this.object.get(this.getNodeStateKey());
  53 + },
  54 +
  55 + setNodeState : function(state)
  56 + {
  57 + if (!this.getNodeStateKey || !this.object)
  58 + return;
  59 + this.object.set(this.getNodeStateKey(), state);
  60 + },
  61 +
46 62 constructor : function(config)
47 63 {
48 64 this.callParent(arguments);
49 65 this.set('text',this.text);
50 66 this.set('iconCls',this.iconCls);
51 67 this.set('leaf',this.leaf);
52   - this.set('expanded',this.expanded);
53 68 this.set('type',this.type);
54 69 this.set('removable',this.removable);
55 70 if (config && config.object)
56 71 this.object = config.object;
  72 + if (this.getNodeState() != 2)
  73 + this.set('expanded',(this.getNodeState() == 1));
  74 + else {
  75 + this.set('expanded',this.expanded);
  76 + this.setNodeState(this.expanded ? 1 : 0);
  77 + }
57 78 }
58 79 }, function () {
59 80 Ext.data.NodeInterface.decorate(this);
... ... @@ -68,6 +89,11 @@ Ext.define('amdaPlotObj.PlotPageTreeNode', {
68 89  
69 90 type: 'page',
70 91  
  92 + getNodeStateKey: function()
  93 + {
  94 + return 'page-node-state';
  95 + },
  96 +
71 97 getAdditionalText: function()
72 98 {
73 99 return ' ('+this.object.getPageShortInfo()+')';
... ... @@ -98,7 +124,12 @@ Ext.define('amdaPlotObj.PlotPanelsTreeNode', {
98 124  
99 125 text: 'Panels list',
100 126  
101   - type: 'panels'
  127 + type: 'panels',
  128 +
  129 + getNodeStateKey: function()
  130 + {
  131 + return 'panels-node-state';
  132 + }
102 133 });
103 134  
104 135 Ext.define('amdaPlotObj.PlotPanelTreeNode', {
... ... @@ -112,6 +143,11 @@ Ext.define('amdaPlotObj.PlotPanelTreeNode', {
112 143  
113 144 removable: true,
114 145  
  146 + getNodeStateKey: function()
  147 + {
  148 + return 'panel-node-state';
  149 + },
  150 +
115 151 getAdditionalText: function()
116 152 {
117 153 return ' ('+this.object.getPanelShortInfo()+')';
... ... @@ -127,7 +163,12 @@ Ext.define('amdaPlotObj.PlotAxesTreeNode', {
127 163  
128 164 text: 'Axes',
129 165  
130   - type: 'axes'
  166 + type: 'axes',
  167 +
  168 + getNodeStateKey: function()
  169 + {
  170 + return 'axes-node-state';
  171 + }
131 172 });
132 173  
133 174 Ext.define('amdaPlotObj.PlotTimeAxisTreeNode', {
... ... @@ -209,7 +250,12 @@ Ext.define('amdaPlotObj.PlotParamsTreeNode', {
209 250  
210 251 text: 'Params',
211 252  
212   - type: 'params'
  253 + type: 'params',
  254 +
  255 + getNodeStateKey: function()
  256 + {
  257 + return 'params-node-state';
  258 + }
213 259 });
214 260  
215 261 Ext.define('amdaPlotObj.PlotParamTreeNode', {
... ... @@ -242,7 +288,12 @@ Ext.define('amdaPlotObj.PlotAdditionalObjectsTreeNode', {
242 288  
243 289 text: 'Additional Objects',
244 290  
245   - type: 'objects'
  291 + type: 'objects',
  292 +
  293 + getNodeStateKey: function()
  294 + {
  295 + return 'add-objects-node-state';
  296 + }
246 297 });
247 298  
248 299 Ext.define('amdaPlotObj.PlotLegendsTreeNode', {
... ... @@ -252,7 +303,12 @@ Ext.define('amdaPlotObj.PlotLegendsTreeNode', {
252 303  
253 304 text: 'Legends',
254 305  
255   - type: 'legends'
  306 + type: 'legends',
  307 +
  308 + getNodeStateKey: function()
  309 + {
  310 + return 'legends-node-state';
  311 + }
256 312 });
257 313  
258 314 Ext.define('amdaPlotObj.PlotSeriesLegendTreeNode', {
... ... @@ -281,7 +337,12 @@ Ext.define('amdaPlotObj.PlotTextLegendsTreeNode', {
281 337  
282 338 text: 'Text Legends',
283 339  
284   - type: 'text-legends'
  340 + type: 'text-legends',
  341 +
  342 + getNodeStateKey: function()
  343 + {
  344 + return 'text-legends-node-state';
  345 + }
285 346 });
286 347  
287 348 Ext.define('amdaPlotObj.PlotTextLegendTreeNode', {
... ... @@ -310,7 +371,12 @@ Ext.define('amdaPlotObj.PlotDrawingObjectsTreeNode', {
310 371  
311 372 text: 'Drawing objects',
312 373  
313   - type: 'drawing-objects'
  374 + type: 'drawing-objects',
  375 +
  376 + getNodeStateKey: function()
  377 + {
  378 + return 'drawing-objects-node-state';
  379 + }
314 380 });
315 381  
316 382 Ext.define('amdaPlotObj.PlotConstantTreeNode', {
... ... @@ -367,7 +433,12 @@ Ext.define('amdaPlotObj.PlotFillsTreeNode', {
367 433  
368 434 text: 'Fills',
369 435  
370   - type: 'fills'
  436 + type: 'fills',
  437 +
  438 + getNodeStateKey: function()
  439 + {
  440 + return 'fills-node-state';
  441 + }
371 442 });
372 443  
373 444 Ext.define('amdaPlotObj.PlotFillTreeNode', {
... ...
js/app/views/PlotComponents/PlotTree.js
... ... @@ -59,7 +59,7 @@ Ext.define('amdaPlotComp.PlotTree', {
59 59 pageNode.appendChild(new amdaPlotObj.PlotLayoutTreeNode({object : tabObject}));
60 60  
61 61 //Panels node
62   - this.panelsNode = pageNode.appendChild(new amdaPlotObj.PlotPanelsTreeNode());
  62 + this.panelsNode = pageNode.appendChild(new amdaPlotObj.PlotPanelsTreeNode({object : tabObject}));
63 63 }
64 64 else
65 65 this.panelsNode = this.store.getRootNode();
... ... @@ -510,6 +510,14 @@ Ext.define('amdaPlotComp.PlotTree', {
510 510 }
511 511 },
512 512  
  513 + onNodeCollapse: function(node) {
  514 + node.setNodeState(0);
  515 + },
  516 +
  517 + onNodeExpand: function(node) {
  518 + node.setNodeState(1);
  519 + },
  520 +
513 521 getSelectedNode: function() {
514 522 var selection = this.getSelectionModel().getSelection();
515 523 if ((selection == null) || (selection.length == 0))
... ... @@ -855,6 +863,8 @@ Ext.define('amdaPlotComp.PlotTree', {
855 863 select: me.onNodeSelect,
856 864 deselect: me.onNodeDeselect,
857 865 cellclick: me.onCellClick,
  866 + itemcollapse: me.onNodeCollapse,
  867 + itemexpand: me.onNodeExpand,
858 868 scope: me
859 869 },
860 870 columns: [
... ...