Commit 9705c57322dacd60ea64b55f928c747308a0e1a9
1 parent
8dddc557
Exists in
master
and in
96 other branches
Duplicate plot
Showing
4 changed files
with
24 additions
and
10 deletions
Show diff stats
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(), |
... | ... |