Commit 7cf5fd1694355b5e57e40b00cc00498ed4d47c3c

Authored by Benjamin Renard
1 parent 7ef7ea02

Move param in plot tree

Showing 1 changed file with 127 additions and 3 deletions   Show diff stats
js/app/views/PlotComponents/PlotTree.js
@@ -329,6 +329,104 @@ Ext.define('amdaPlotComp.PlotTree', { @@ -329,6 +329,104 @@ Ext.define('amdaPlotComp.PlotTree', {
329 329
330 moveParam : function(record,targetNode,position) 330 moveParam : function(record,targetNode,position)
331 { 331 {
  332 + if (record.$className != 'amdaPlotObj.PlotParamTreeNode')
  333 + return false;
  334 +
  335 + var fromIndex = record.parentNode.indexOf(record);
  336 + var toIndex = targetNode.parentNode.indexOf(targetNode);
  337 +
  338 + var fromPanelObject = null;
  339 + if (!this.tabObject.get('tree-simplified-view'))
  340 + {
  341 + fromPanelObject = record.parentNode.parentNode.object;
  342 + }
  343 + else
  344 + fromPanelObject = record.parentNode.object;
  345 + if (fromPanelObject == null)
  346 + return false;
  347 +
  348 + switch (targetNode.$className)
  349 + {
  350 + case 'amdaPlotObj.PlotPanelTreeNode' :
  351 + case 'amdaPlotObj.PlotParamsTreeNode' :
  352 + var toPanelObject = targetNode.object;
  353 + if (toPanelObject.get('panel-plot-type') != fromPanelObject.get('panel-plot-type'))
  354 + return false;
  355 + if (toPanelObject == fromPanelObject)
  356 + {
  357 + //Move param on the same panel
  358 + fromPanelObject.params().data.removeAt(fromIndex);
  359 + toPanelObject.params().data.add(record.object);
  360 + this.buildPanelParamsNode(toPanelObject, record.object.get('id'));
  361 + }
  362 + else
  363 + {
  364 + //Move param on another panel
  365 + var clonedObject = record.object.copy();
  366 + fromPanelObject.params().remove(record.object);
  367 + toPanelObject.set('last-param-id', toPanelObject.get('last-param-id')+1);
  368 + clonedObject.set('id', toPanelObject.get('last-param-id'));
  369 + toPanelObject.params().add(clonedObject);
  370 + this.buildPanelParamsNode(fromPanelObject);
  371 + this.buildPanelParamsNode(toPanelObject, clonedObject.get('id'));
  372 + }
  373 + return true;
  374 + case 'amdaPlotObj.PlotParamTreeNode' :
  375 + var toPanelObject = null;
  376 + if (!this.tabObject.get('tree-simplified-view'))
  377 + {
  378 + toPanelObject = targetNode.parentNode.parentNode.object;
  379 + }
  380 + else
  381 + toPanelObject = targetNode.parentNode.object;
  382 + targetNode.object;
  383 + if (toPanelObject.get('panel-plot-type') != fromPanelObject.get('panel-plot-type'))
  384 + return false;
  385 +
  386 + if (toPanelObject == fromPanelObject)
  387 + {
  388 + //Move param on the same panel
  389 + var insertIndex = -1;
  390 + switch (position)
  391 + {
  392 + case 'before' :
  393 + insertIndex = (fromIndex > toIndex) ? toIndex : toIndex - 1;
  394 + break;
  395 + case 'after' :
  396 + default :
  397 + insertIndex = (fromIndex > toIndex) ? toIndex + 1 : toIndex;
  398 + break;
  399 + }
  400 + fromPanelObject.params().data.removeAt(fromIndex);
  401 + toPanelObject.params().data.insert(insertIndex, record.object);
  402 + this.buildPanelParamsNode(toPanelObject, record.object.get('id'));
  403 + }
  404 + else
  405 + {
  406 + //move param on another panel
  407 + var insertIndex = -1;
  408 + switch (position)
  409 + {
  410 + case 'before' :
  411 + insertIndex = (toIndex == 0) ? 0: toIndex - 1;
  412 + break;
  413 + case 'after' :
  414 + default :
  415 + insertIndex = toIndex + 1;
  416 + break;
  417 + }
  418 + var clonedObject = record.object.copy();
  419 + fromPanelObject.params().remove(record.object);
  420 + toPanelObject.set('last-param-id', toPanelObject.get('last-param-id')+1);
  421 + clonedObject.set('id', toPanelObject.get('last-param-id'));
  422 + toPanelObject.params().insert(insertIndex, clonedObject);
  423 + this.buildPanelParamsNode(fromPanelObject);
  424 + this.buildPanelParamsNode(toPanelObject, clonedObject.get('id'));
  425 + }
  426 + return true;
  427 + }
  428 + return false;
  429 +
332 /*var fromIndex = targetNode.parentNode.indexOf(record); 430 /*var fromIndex = targetNode.parentNode.indexOf(record);
333 var toIndex = targetNode.parentNode.indexOf(targetNode); 431 var toIndex = targetNode.parentNode.indexOf(targetNode);
334 432
@@ -357,8 +455,6 @@ Ext.define('amdaPlotComp.PlotTree', { @@ -357,8 +455,6 @@ Ext.define('amdaPlotComp.PlotTree', {
357 return false; 455 return false;
358 }*/ 456 }*/
359 457
360 - console.log('ToDo move param');  
361 -  
362 return true; 458 return true;
363 }, 459 },
364 460
@@ -484,7 +580,35 @@ Ext.define('amdaPlotComp.PlotTree', { @@ -484,7 +580,35 @@ Ext.define('amdaPlotComp.PlotTree', {
484 case 'amdaModel.MyDataParamNode' : 580 case 'amdaModel.MyDataParamNode' :
485 return record.isLeaf(); 581 return record.isLeaf();
486 case 'amdaPlotObj.PlotParamTreeNode' : 582 case 'amdaPlotObj.PlotParamTreeNode' :
487 - return true; 583 + var fromPanelObject = null;
  584 + if (!this.tabObject.get('tree-simplified-view'))
  585 + {
  586 + fromPanelObject = record.parentNode.parentNode.object;
  587 + }
  588 + else
  589 + fromPanelObject = record.parentNode.object;
  590 + if (fromPanelObject == null)
  591 + return false;
  592 +
  593 + var toPanelObject = null;
  594 + switch (targetNode.$className)
  595 + {
  596 + case 'amdaPlotObj.PlotPanelTreeNode' :
  597 + case 'amdaPlotObj.PlotParamsTreeNode' :
  598 + toPanelObject = targetNode.object;
  599 + break;
  600 + case 'amdaPlotObj.PlotParamTreeNode' :
  601 + if (!this.tabObject.get('tree-simplified-view'))
  602 + {
  603 + toPanelObject = targetNode.parentNode.parentNode.object;
  604 + }
  605 + else
  606 + toPanelObject = targetNode.parentNode.object;
  607 + break;
  608 + }
  609 + if (toPanelObject == null)
  610 + return false;
  611 + return (fromPanelObject.get('panel-plot-type') == toPanelObject.get('panel-plot-type'));
488 case 'amdaPlotObj.PlotPanelTreeNode' : 612 case 'amdaPlotObj.PlotPanelTreeNode' :
489 switch (position) 613 switch (position)
490 { 614 {