/**
* Project : AMDA-NG4
* Name : MyDataParamNode.js
* @class amdaModel.MyDataParamNode
* @extends amdaModel.InteractiveNode
* @brief
* @author
* @version $Id: MyDataNode.js 2267 2014-04-03 10:13:16Z elena $
* @todo
*******************************************************************************
* FT Id : Date : Name - Description
*******************************************************************************
*
*/
Ext.define('amdaModel.MyDataNode', {
extend: 'amdaModel.InteractiveNode',
fields:
[
{name: 'globalStart', type: 'string', persist: false},
{name: 'globalStop', type: 'string', persist: false}
],
constructor : function(config){
this.callParent(arguments);
this.set('moduleId',myDesktopApp.dynamicModules.my_data.id);
this.set('objectDataModel','amdaModel.FileObject');
this.set('ownerTreeId',amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
this.set('nodeType',amdaModel.MyDataNode.nodeType);
},
statics:{
nodeType: 'myData'
},
dependentRootNodeId : 'myDataParam-treeRootNode',
localMenuItems : function() {
var menuItems =
[{
fnId : 'root-upload',
text : 'Upload File',
hidden : true
}, {
fnId : 'dire-upload',
text : 'Upload File',
hidden : true
}, {
fnId : 'dire-deleteNode',
text : 'Delete Folder',
hidden : true
}, {
fnId : 'leaf-editLeaf',
text : 'Edit File'
}, {
fnId : 'leaf-deleteNode',
text : 'Delete File'
}
];
return menuItems;
},
getAllContextMenuItems: function(){
// var menuItems = this.allMenuItems('File');
var locMenuItems = this.localMenuItems();
// return Ext.Array.merge(menuItems,locMenuItems);
return locMenuItems;
},
onMenuItemClick : function(menu,item,event) {
var fnId = Ext.util.Format.substr(item.fnId, 5, item.fnId.length);
switch (fnId) {
case 'deleteNode':
this.deleteMyDataNode();
break;
case 'editLeaf':
this.editLeaf(this);
break;
case 'upload':
this.uploadFile();
break;
default:
break;
} // switch end
},
uploadFile: function() {
var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.upload.id, true, function (module) {
module.createWindow();
});
},
// delete empty folders
deleteMyDataNode : function() {
if (this.isLeaf()) {
if (this.parentNode) {
var emptyFolder = this.parentNode.childNodes.length == 1;
if (emptyFolder && this.parentNode.getDepth() == 2) {
this.parentNode.realDelete();
}
else {
this.deleteNode();
}
}
}
else {
this.deleteNode();
}
},
// file has been already added at server side!!!
create : function(folderName, fileDesc, folderDesc) {
// if ownerTree panel is not active
if (this.myGetOwnerTree().ownerCt.getActiveTab()!==this.myGetOwnerTree()){
// set ownerTree panel as the active tab
this.myGetOwnerTree().ownerCt.setActiveTab(this.myGetOwnerTree());
// to enable selection of this node his ownerTree must have a view
}
this.getRootNode().expand(false, function() {
if (!this.get('contextNode')) {
// set the root node of 'my data' tree as contextNode
var folder = folderName ? this.getRootNode().findChild('text', folderName) : this.getRootNode();
this.set('contextNode', folder);
}
// expand the contextNode - new node will be added automatically
if (!this.get('contextNode').isExpanded()){
this.get('contextNode').expand(false);
}
else {
if (!this.get('contextNode').findChild('text', this.get('text')))
this.get('contextNode').appendChild(this);
}
if (folderDesc) this.get('contextNode').set('info',folderDesc);
if (fileDesc) this.set('info',fileDesc);
// select the new node
this.myGetOwnerTree().getSelectionModel().select(this);
}, this);
},
/*
* Delete myDataParams
*/
deleteDependence : function(params) {
// CLOSE MyDataUI
var myDataModule = myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.my_data.id);
if (myDataModule) {
myDataModule.close();
}
var myParamRootNode = this.myGetOwnerTree().getRootNode().firstChild.findChild('id',this.dependentRootNodeId);
if (myParamRootNode.isExpanded) {
Ext.Array.each(params, function(param) {
var paramNode = myParamRootNode.findChild('id', param, true);
if (paramNode) paramNode.parentNode.removeChild(paramNode);
});
}
else {
myParamRootNode.expand(true,true);
}
myDesktopApp.warningMsg("Attention! Parameters which are made from these files have been deleted");
},
/*
* Update myDataParams Info only if node is exapnded
*/
updateMyDataParam : function(mask, maskDesc){
var myParamRootNode = this.myGetOwnerTree().getRootNode().firstChild.findChild('id',this.dependentRootNodeId);
if (myParamRootNode.isExpanded) {
Ext.Array.each(myParamRootNode.childNodes, function(node) {
if (node.get('linkedMask') && node.get('linkedMask') == mask) {
var globalStart = maskDesc.substr(0,16);
var globalStop = maskDesc.substr(17,16);
node.set('globalStart', globalStart);
node.set('globalStop', globalStop);
if (node.get('info')) {
var info = node.get('info').split("
");
node.set('info',info[0] + "
" + globalStart + "-" + globalStop + "
Mask: " + mask);
}
}
});
}
}
});