diff --git a/js/app/models/InteractiveNode.js b/js/app/models/InteractiveNode.js index 9f23131..2f831f0 100644 --- a/js/app/models/InteractiveNode.js +++ b/js/app/models/InteractiveNode.js @@ -565,50 +565,54 @@ Ext.define('amdaModel.InteractiveNode', { if (this.parentNode) { if (this.isLeaf()){ var moduleId = this.get('moduleId'); - // if really interactive node + // if really interactive node if (moduleId) { - var me = this; - myDesktopApp.getLoadedModule(moduleId, true, function (module) { - var editedNode = module.getLinkedNode(); - - // file node is not linked directly to the module - var isThisFile = false; - if (editedNode && editedNode.$className == 'amdaModel.MyDataParamNode') - if (editedNode.get('fileObject').get('fileName') == me.get('text')) - isThisFile = true; + var win = myDesktopApp.getDesktop().getWindow(moduleId); + // if window is really open + if (win) { + var me = this; + myDesktopApp.getLoadedModule(moduleId, true, function (module) { + var editedNode = module.getLinkedNode(); - // node was created BEFORE tree loading; node.id are different ; but it is the same node - if ( editedNode && editedNode.get('id') == me.get('id') && editedNode !== me ) { - module.setLinkedNode(me); - isThisFile = true; - } - - if (me.$className == 'amdaModel.DerivedParamNode') { - var obj = { - paramId : 'ws_'+me.get('text') - }; - AmdaAction.compilParamDelete(obj); - } - - if (editedNode === me || isThisFile ){ - var newNode = Ext.ModelManager.create({leaf : true}, me.$className); - // several tabs could be connected to one node - if (moduleId === myDesktopApp.dynamicModules.plot.id) { - var linkedNodes = module.linkedNodes; - - if (linkedNodes) { - linkedNodes.each(function(key, value){ - if (value === me) { - linkedNodes.replace(key,newNode); - var tabPanel = module.getUiContent().tabPanel.items.getByKey(key); - tabPanel.setObject(Ext.create(amdaModel.Plot.$className, {})); - } - }, me); - } - } - newNode.editInModule(); - } - }); + // file node is not linked directly to the module + var isThisFile = false; + if (editedNode && editedNode.$className == 'amdaModel.MyDataParamNode') + if (editedNode.get('fileObject').get('fileName') == me.get('text')) + isThisFile = true; + + // node was created BEFORE tree loading; node.id are different ; but it is the same node + if ( editedNode && editedNode.get('id') == me.get('id') && editedNode !== me ) { + module.setLinkedNode(me); + isThisFile = true; + } + + if (me.$className == 'amdaModel.DerivedParamNode') { + var obj = { + paramId : 'ws_'+me.get('text') + }; + AmdaAction.compilParamDelete(obj); + } + + if (editedNode === me || isThisFile ){ + var newNode = Ext.ModelManager.create({leaf : true}, me.$className); + // several tabs could be connected to one node + if (moduleId === myDesktopApp.dynamicModules.plot.id) { + var linkedNodes = module.linkedNodes; + + if (linkedNodes) { + linkedNodes.each(function(key, value){ + if (value === me) { + linkedNodes.replace(key,newNode); + var tabPanel = module.getUiContent().tabPanel.items.getByKey(key); + tabPanel.setObject(Ext.create(amdaModel.Plot.$className, {})); + } + }, me); + } + } + newNode.editInModule(); + } + }); + } } } //update mask info in myData -- libgit2 0.21.2