Commit 3e9f7a84a8c006c4da6925b452273ba8005360f6
1 parent
6a679ab8
Exists in
master
and in
107 other branches
check if window is open when delete node
Showing
1 changed file
with
46 additions
and
42 deletions
Show diff stats
js/app/models/InteractiveNode.js
@@ -565,50 +565,54 @@ Ext.define('amdaModel.InteractiveNode', { | @@ -565,50 +565,54 @@ Ext.define('amdaModel.InteractiveNode', { | ||
565 | if (this.parentNode) { | 565 | if (this.parentNode) { |
566 | if (this.isLeaf()){ | 566 | if (this.isLeaf()){ |
567 | var moduleId = this.get('moduleId'); | 567 | var moduleId = this.get('moduleId'); |
568 | - // if really interactive node | 568 | + // if really interactive node |
569 | if (moduleId) { | 569 | if (moduleId) { |
570 | - var me = this; | ||
571 | - myDesktopApp.getLoadedModule(moduleId, true, function (module) { | ||
572 | - var editedNode = module.getLinkedNode(); | ||
573 | - | ||
574 | - // file node is not linked directly to the module | ||
575 | - var isThisFile = false; | ||
576 | - if (editedNode && editedNode.$className == 'amdaModel.MyDataParamNode') | ||
577 | - if (editedNode.get('fileObject').get('fileName') == me.get('text')) | ||
578 | - isThisFile = true; | 570 | + var win = myDesktopApp.getDesktop().getWindow(moduleId); |
571 | + // if window is really open | ||
572 | + if (win) { | ||
573 | + var me = this; | ||
574 | + myDesktopApp.getLoadedModule(moduleId, true, function (module) { | ||
575 | + var editedNode = module.getLinkedNode(); | ||
579 | 576 | ||
580 | - // node was created BEFORE tree loading; node.id are different ; but it is the same node | ||
581 | - if ( editedNode && editedNode.get('id') == me.get('id') && editedNode !== me ) { | ||
582 | - module.setLinkedNode(me); | ||
583 | - isThisFile = true; | ||
584 | - } | ||
585 | - | ||
586 | - if (me.$className == 'amdaModel.DerivedParamNode') { | ||
587 | - var obj = { | ||
588 | - paramId : 'ws_'+me.get('text') | ||
589 | - }; | ||
590 | - AmdaAction.compilParamDelete(obj); | ||
591 | - } | ||
592 | - | ||
593 | - if (editedNode === me || isThisFile ){ | ||
594 | - var newNode = Ext.ModelManager.create({leaf : true}, me.$className); | ||
595 | - // several tabs could be connected to one node | ||
596 | - if (moduleId === myDesktopApp.dynamicModules.plot.id) { | ||
597 | - var linkedNodes = module.linkedNodes; | ||
598 | - | ||
599 | - if (linkedNodes) { | ||
600 | - linkedNodes.each(function(key, value){ | ||
601 | - if (value === me) { | ||
602 | - linkedNodes.replace(key,newNode); | ||
603 | - var tabPanel = module.getUiContent().tabPanel.items.getByKey(key); | ||
604 | - tabPanel.setObject(Ext.create(amdaModel.Plot.$className, {})); | ||
605 | - } | ||
606 | - }, me); | ||
607 | - } | ||
608 | - } | ||
609 | - newNode.editInModule(); | ||
610 | - } | ||
611 | - }); | 577 | + // file node is not linked directly to the module |
578 | + var isThisFile = false; | ||
579 | + if (editedNode && editedNode.$className == 'amdaModel.MyDataParamNode') | ||
580 | + if (editedNode.get('fileObject').get('fileName') == me.get('text')) | ||
581 | + isThisFile = true; | ||
582 | + | ||
583 | + // node was created BEFORE tree loading; node.id are different ; but it is the same node | ||
584 | + if ( editedNode && editedNode.get('id') == me.get('id') && editedNode !== me ) { | ||
585 | + module.setLinkedNode(me); | ||
586 | + isThisFile = true; | ||
587 | + } | ||
588 | + | ||
589 | + if (me.$className == 'amdaModel.DerivedParamNode') { | ||
590 | + var obj = { | ||
591 | + paramId : 'ws_'+me.get('text') | ||
592 | + }; | ||
593 | + AmdaAction.compilParamDelete(obj); | ||
594 | + } | ||
595 | + | ||
596 | + if (editedNode === me || isThisFile ){ | ||
597 | + var newNode = Ext.ModelManager.create({leaf : true}, me.$className); | ||
598 | + // several tabs could be connected to one node | ||
599 | + if (moduleId === myDesktopApp.dynamicModules.plot.id) { | ||
600 | + var linkedNodes = module.linkedNodes; | ||
601 | + | ||
602 | + if (linkedNodes) { | ||
603 | + linkedNodes.each(function(key, value){ | ||
604 | + if (value === me) { | ||
605 | + linkedNodes.replace(key,newNode); | ||
606 | + var tabPanel = module.getUiContent().tabPanel.items.getByKey(key); | ||
607 | + tabPanel.setObject(Ext.create(amdaModel.Plot.$className, {})); | ||
608 | + } | ||
609 | + }, me); | ||
610 | + } | ||
611 | + } | ||
612 | + newNode.editInModule(); | ||
613 | + } | ||
614 | + }); | ||
615 | + } | ||
612 | } | 616 | } |
613 | } | 617 | } |
614 | //update mask info in myData | 618 | //update mask info in myData |