RemoteParamNode.js 3.2 KB
/**
 * Project  : AMDA-NG4
 * Name     : RemoteParamNode.js
 * @class   amdaModel.RemoteParamNode
 * @extends amdaModel.LocalParamNode
 * @author elena
 */

Ext.define('amdaModel.RemoteParamNode', {
	extend: 'amdaModel.LocalParamNode',

	statics:{
		nodeType: 'remoteParam'
	},

	fields: [{name: 'isRemoteDataSet', type:'boolean', persist: false, defaultValue: true},
			{name: 'isSimulation', type:'boolean', defaultValue: false}],

	constructor : function(config){		
		this.callParent(arguments);
		
		//TODO only for INTEROPER TREE
		if (!this.get('leaf')) this.set('allowDrag', false);
		if (this.get('isParameter')) this.set('allowDrag',true);
		if (this.get('leaf') && this.get('isSpectra')) this.set('iconCls', 'icon-spectra');
			
		if (this.get('disable')) {
			this.set('cls', 'icon-disabled');
			this.set('allowDrag', false);
		}
	},

	allMenuItems : function() {
		var menuItems =
		[{
			fnId : 'dire-addData',
			text : 'Add Data'
		},{
			fnId : 'root-addData',
			text : 'Add Data'
		},{
			fnId : 'dire-deleteNode',
			text : 'Delete Data'
		},{
			fnId : 'root-collapseAll',
			text : 'Close All'
		}, {
			fnId : 'dire-collapseAll',
			text : 'Close All'
		}, {
			fnId : 'para-plotParam',
			text : 'Plot Parameter',
			hidden : true
		}, {
		fnId : 'para-downParam',
			text : 'Download Parameter',
			hidden : true
		},{
			fnId : 'leaf-createAlias',
			text : 'Create/Edit Alias'
		}, {
			fnId : 'leaf-createDerivedParam',
			text : 'Create Derived Parameter'
		},{
			fnId : 'leaf-deleteNode',
			text : 'Delete Parameter'
		},{
			fnId : 'leaf-plotParam',
			text : 'Plot Parameter',
			hidden : true
		}, {
			fnId : 'leaf-downParam',
			text : 'Download Parameter',
			hidden : true
		}];

		return menuItems;
	},

	onMenuItemClick : function(menu,item,event) {
		if (item) {
			switch (item.fnId) {
				case 'root-collapseAll':
				case 'dire-collapseAll':
						if(this && !this.isLeaf()) {
							this.collapse(true);
						}
						break;
				case 'leaf-createDerivedParam':
						this.createLeaf(this);
						break;
				case 'leaf-createAlias':
						this.createAlias(this);
						break;
				case  'leaf-deleteNode':
				case 'dire-deleteNode' :
						this.deleteData();
						break;
				case  'dire-addData':
				case  'root-addData':
						this.addData();
						break;
				case 'leaf-plotParam':
				case 'para-plotParam':
							this.createPlot(this);
						break;
				case 'leaf-downParam':
				case 'para-downParam':
							this.createDownload(this);
						break;
				default:
					break;
			}
		}
	},

	deleteData : function() {
	//  var parent = this.parentNode;
		AmdaAction.deleteFromTree({nodeType: this.get('nodeType'), id : this.get('id')}, function(res,e){
			//TODO  if () not error ??
			this.remove();
			this.destroy();
		},this);
	},

	addData : function() {
		if (this.get('disable')) return;

		var me = this;
		myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interop.id, true, function (module) {
			module.createWindow(me.getBaseId());
		});
	},

	// Depth of Base Root Node = 3 : root, Parameters, Remote Parameters, BaseName
	getBaseId : function() {
		if (this.getDepth() < 3) return 'root';

		var node = this;
		while (node.getDepth() > 3) {
			node = node.parentNode;
		}
		return node.get('id');
	}
});