Commit 9705c57322dacd60ea64b55f928c747308a0e1a9

Authored by Benjamin Renard
1 parent 8dddc557

Duplicate plot

js/app/models/PlotObjects/MultiplotRequestObject.js
... ... @@ -50,18 +50,27 @@ Ext.define('amdaPlotObj.MultiplotRequestObject', {
50 50 },
51 51  
52 52 duplicatePlot: function(plotNode) {
  53 + var me = this;
53 54 var clonedObject = plotNode.get('object').copy();
54   - console.log(plotNode);
55   - this.plots().each(function(node) {
56   - console.log(node);
  55 + var newPlotNode = null;
  56 + this.plots().each(function(node, index) {
  57 + if (node == plotNode) {
  58 + plotNode.get('object').reject();
  59 + newPlotNode = Ext.create('amdaModel.PlotNode', {
  60 + leaf : true
  61 + });
  62 + newPlotNode.set('object',clonedObject);
  63 + me.plots().removeAt(index);
  64 + me.plots().insert(index, newPlotNode);
  65 + return false;
  66 + }
57 67 });
58   - //this.plots().store.removeAt(index);
59   - //store.insert(index, newValue);
  68 + return newPlotNode;
60 69 },
61 70  
62 71 createNewPlotFromObject: function(plotObject) {
63 72 var plotNode = Ext.create('amdaModel.PlotNode', {
64   - leaf : true,
  73 + leaf : true
65 74 });
66 75 plotNode.set('object',plotObject);
67 76 this.plots().add(plotNode);
... ...
js/app/models/PlotObjects/PlotRequestObject.js
... ... @@ -27,7 +27,6 @@ Ext.define('amdaPlotObj.PlotRequestObject', {
27 27 ],
28 28  
29 29 fields : [
30   - {name: 'id', type: 'int'},
31 30 {name: 'tab-index', type: 'int', defaultValue: 0, persist: false},
32 31 {name: 'tab-title', type: 'string', defaultValue: '', persist: false},
33 32  
... ...
js/app/views/PlotComponents/PlotTabContent.js
... ... @@ -27,6 +27,7 @@ Ext.define('amdaPlotComp.PlotTabContent', {
27 27 plotOutput: null,
28 28  
29 29 tabIndex: 0,
  30 + plotTabPanel: null,
30 31  
31 32 constructor: function(config) {
32 33 this.init(config);
... ... @@ -114,11 +115,15 @@ Ext.define('amdaPlotComp.PlotTabContent', {
114 115 var plotModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.plot.id);
115 116 if (!plotModule)
116 117 return;
117   - this.plotNode = plotModule.linkedNode.get('object').duplicatePlot(this.plotNode);
118   - this.updateUI();
  118 + var newPlotNode = plotModule.linkedNode.get('object').duplicatePlot(this.plotNode);
  119 + if (newPlotNode) {
  120 + this.plotNode = newPlotNode;
  121 + this.updateUI();
  122 + }
119 123 }
120 124 this.plotNode.create();
121 125 }
  126 + this.plotTabPanel.updatePlotTabs();
122 127 },
123 128  
124 129 updateUI : function() {
... ... @@ -131,6 +136,7 @@ Ext.define('amdaPlotComp.PlotTabContent', {
131 136 init : function(config) {
132 137 this.plotNode = config.plotNode;
133 138 this.tabIndex = config.tabIndex;
  139 + this.plotTabPanel = config.plotTabPanel;
134 140  
135 141 this.timeSelector = new amdaUI.TimeSelectorUI( { id: 'plotTimeSelectorTab' + this.plotNode.id, border : false, flex: 6, collapsible: true, collapseDirection : 'bottom'} );
136 142 this.plotElement = new amdaPlotComp.PlotElementPanel({flex: 11});
... ...
js/app/views/PlotComponents/PlotTabPanel.js
... ... @@ -61,7 +61,7 @@ Ext.define('amdaPlotComp.PlotTabPanel', {
61 61 }
62 62  
63 63 var tabNumber = this.getTabBar().items.getCount();
64   - var tabContent = new amdaPlotComp.PlotTabContent({plotNode: plotNode, tabIndex: tabNumber-1});
  64 + var tabContent = new amdaPlotComp.PlotTabContent({plotNode: plotNode, tabIndex: tabNumber-1, plotTabPanel: this});
65 65 var me = this;
66 66 var tabComp = this.add({
67 67 title: tabContent.getPlotTitle(),
... ...