diff --git a/js/app/controllers/InteropModule.js b/js/app/controllers/InteropModule.js index 1993608..e93fa36 100644 --- a/js/app/controllers/InteropModule.js +++ b/js/app/controllers/InteropModule.js @@ -6,10 +6,6 @@ * @brief Interop Module controller definition * @author Benjamin RENARD * $Id: InteropModule.js 1870 2013-11-22 13:43:34Z elena $ - ***************************************************************************** - * FT Id : Date : Name - Description - ******************************************************************************* - * 23/04/2012: BRE - file creation */ @@ -17,17 +13,17 @@ Ext.define('amdaDesktop.InteropModule', { extend: 'amdaDesktop.AmdaModule', requires: [ - 'amdaUI.InteropUI', - 'amdaDesktop.SampModule', + 'amdaUI.InteropUI', + 'amdaDesktop.SampModule', 'amdaDesktop.EpnTapModule' - ], + ], contentId : 'interopUI', - /** - * @cfg {String} window definitions - * @required - */ + /** + * @cfg {String} window definitions + * @required + */ // height: 650, // width: 1050, uiType : 'panelInterop', @@ -38,206 +34,201 @@ Ext.define('amdaDesktop.InteropModule', { sampclientsStore : new Ext.data.SimpleStore({ idProperty: 'id', - fields: [ - {name: 'id'}, - {name: 'name'}, - {name: 'descriptionText'}, - {name: 'iconUrl'}, - {name: 'acceptVOTable', type : 'boolean'}, - {name: 'acceptFITS', type : 'boolean'} - ] - }), + fields: [ + {name: 'id'}, + {name: 'name'}, + {name: 'descriptionText'}, + {name: 'iconUrl'}, + {name: 'acceptVOTable', type : 'boolean'}, + {name: 'acceptFITS', type : 'boolean'} + ] + }), init : function() { - this.launcher = { - text : this.title, - iconCls : this.icon, - handler : this.createWindow, - scope : this + this.launcher = { + text : this.title, + iconCls : this.icon, + handler : this.createWindow, + scope : this }; - }, - - initSampConnector : function(successfn) - { - var me = this; - if (!this.samp) - { - this.samp = Ext.create('amdaDesktop.SampModule',{ - listeners : { - connected : function(o,success) - { - if (!success) - Ext.Msg.show( { - title : 'SAMP', - msg : 'Cannot connect AMDA to a hub', - modal : false, - icon : Ext.Msg.ERROR, - buttons : Ext.Msg.OK - }); - me.updateStatus(); - me.updateClients(); - }, - disconnected : function(o,success) - { - me.updateStatus(); - me.sampclientsStore.removeAll(); - me.updateClients(); - }, - clientregister : function(o,id) - { - me.updateClients(); - }, - clientunregister : function(o,id) - { - var record = me.sampclientsStore.getById(id); - if (record) - { - me.sampclientsStore.remove(record); - me.updateClients(); - } - }, - clientmetachange : function(o,id,data,subs) - { - var record = me.sampclientsStore.getById(id); - - if (!record) - { - me.sampclientsStore.add({id : id}); - record = me.sampclientsStore.getById(id); - } - - if (record) - { - record.set('descriptionText',data['samp.description.text']); - record.set('iconUrl',data['samp.icon.url']); - record.set('name',data['samp.name']); - if (subs) - { - record.set('acceptVOTable', - me.samp.isSubscribed(subs,"table.load.votable")); - record.set('acceptFITS', - me.samp.isSubscribed(subs,"image.load.fits")); - } - } - - me.updateClients(); - }, - clientsubs : function(o,id,data) - { - var record = me.sampclientsStore.getById(id); - - if (!record) - return; - - if (record) - { - record.set('acceptVOTable', - me.samp.isSubscribed(data,"table.load.votable")); - record.set('acceptFITS', - me.samp.isSubscribed(data,"image.load.fits")); - } - - me.updateClients(); - }, - uploadfile : function(o,clientName,url,format) - { - myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.upload.id, true, function (module) { - module.uploadNotification(url,format); - }); - } - } - }); - this.samp.loadScript(function (s){ - if (successfn) - successfn.call(me.samp); - }); - } - else - this.samp.loadScript(function (s){ - if (successfn) - successfn.call(me.samp); - }); - }, - - updateStatus : function() - { - if (this.app && this.samp) - { - var desktop = this.app.getDesktop(); - - var isConnected = this.samp.isConnected(); - - if (desktop) - { - var win = desktop.getWindow(this.id); - if (win && win.isVisible) - win.items.items[0].updateStatus(isConnected); - - var taskbar = desktop.taskbar; - - if (taskbar) - { - var samptb = taskbar.getComponent('samptb'); - if (samptb) - samptb.updateStatus(isConnected); - } - } - } - }, - - updateClients : function() - { - if (this.app && this.samp) - { - var desktop = this.app.getDesktop(); - - var isConnected = this.samp.isConnected(); - - if (desktop) - { - var win = desktop.getWindow(this.id); - - var taskbar = desktop.taskbar; - - if (taskbar) - { - var samptb = taskbar.getComponent('samptb'); - if (samptb) - samptb.updateClients(this.sampclientsStore); - } - } - } - }, - - sampConnected : function() - { - if (!this.samp) - return false; - return this.samp.isConnected(); - }, - - sendVOTable : function(file,clientId) - { - if (!this.samp) - return false; - var href = window.location.href; - var baseurl = href.replace('desktop.php',''); - this.samp.sendVOTable(baseurl+file,clientId); - }, - - sendAladinScript : function(script) - { - if (!this.samp) - return false; - this.samp.sendAladinScript(script); - }, - - sendFITS : function(url,name) - { - if (!this.samp) - return false; - this.samp.sendFITS(url,name); - }, + }, + + initSampConnector : function(successfn){ + var me = this; + + if (!this.samp) + { + this.samp = Ext.create('amdaDesktop.SampModule',{ + listeners : { + connected : function(o,success) + { + if (!success) + Ext.Msg.show( { + title : 'SAMP', + msg : 'Cannot connect AMDA to a hub', + modal : false, + icon : Ext.Msg.ERROR, + buttons : Ext.Msg.OK + }); + me.updateStatus(); + me.updateClients(); + }, + disconnected : function(o,success) + { + me.updateStatus(); + me.sampclientsStore.removeAll(); + me.updateClients(); + }, + clientregister : function(o,id) + { + me.updateClients(); + }, + clientunregister : function(o,id) + { + var record = me.sampclientsStore.getById(id); + if (record) + { + me.sampclientsStore.remove(record); + me.updateClients(); + } + }, + clientmetachange : function(o,id,data,subs) + { + var record = me.sampclientsStore.getById(id); + + if (!record){ + me.sampclientsStore.add({id : id}); + record = me.sampclientsStore.getById(id); + } + + if (record){ + record.set('descriptionText',data['samp.description.text']); + record.set('iconUrl',data['samp.icon.url']); + record.set('name',data['samp.name']); + + if (subs){ + record.set('acceptVOTable', + me.samp.isSubscribed(subs,"table.load.votable")); + record.set('acceptFITS', + me.samp.isSubscribed(subs,"image.load.fits")); + } + } + + me.updateClients(); + }, + clientsubs : function(o,id,data) + { + var record = me.sampclientsStore.getById(id); + + if (!record) + return; + + if (record){ + record.set('acceptVOTable', + me.samp.isSubscribed(data,"table.load.votable")); + record.set('acceptFITS', + me.samp.isSubscribed(data,"image.load.fits")); + } + + me.updateClients(); + }, + uploadfile : function(o,clientName,url,format) + { + myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.upload.id, true, function (module) { + module.uploadNotification(url,format); + }); + } + } + }); + this.samp.loadScript(function (s){ + if (successfn) + successfn.call(me.samp); + }); + } + else + this.samp.loadScript(function (s){ + if (successfn) + successfn.call(me.samp); + }); + }, + + updateStatus : function() + { + if (this.app && this.samp) + { + var desktop = this.app.getDesktop(); + + var isConnected = this.samp.isConnected(); + + if (desktop){ + var win = desktop.getWindow(this.id); + if (win && win.isVisible) + win.items.items[0].updateStatus(isConnected); + + var taskbar = desktop.taskbar; + + if (taskbar){ + var samptb = taskbar.getComponent('samptb'); + if (samptb) + samptb.updateStatus(isConnected); + } + } + } + }, + + updateClients : function() + { + if (this.app && this.samp) + { + var desktop = this.app.getDesktop(); + + var isConnected = this.samp.isConnected(); + + if (desktop) + { + var win = desktop.getWindow(this.id); + + var taskbar = desktop.taskbar; + + if (taskbar) + { + var samptb = taskbar.getComponent('samptb'); + if (samptb) + samptb.updateClients(this.sampclientsStore); + } + } + } + }, + + sampConnected : function() + { + if (!this.samp) + return false; + return this.samp.isConnected(); + }, + + sendVOTable : function(file,clientId) + { + if (!this.samp) + return false; + var href = window.location.href; + var baseurl = href.replace('desktop.php',''); + this.samp.sendVOTable(baseurl+file,clientId); + }, + + sendAladinScript : function(script) + { + if (!this.samp) + return false; + this.samp.sendAladinScript(script); + }, + + sendFITS : function(url,name) + { + if (!this.samp) + return false; + this.samp.sendFITS(url,name); + }, loadEpnTap: function(filter) { if(!this.epntap) { @@ -246,81 +237,9 @@ Ext.define('amdaDesktop.InteropModule', { this.epntap.loadTarget(filter); }, - generateAladinScript : function(urlList, scriptType) - { - /*var script="reset;"; //reset all views & all planes - // first get files - var scriptHead=''; - //var script="#AJS;\n"; - //scriptHead+="trace 3;"; // - for( var i=0; i < urlList.length; i++) - { - var url = urlList[i].url; - var name = urlList[i].name; - scriptHead += 'get File(' + url +','+name+');'; - scriptHead += 'sync;'; - }*/ - - //scriptHead += 'sync;'; - - /*for( var i=0; i < urlList.length; i++) - { - //then modify some fits values - var name = urlList[i].name; - scriptHead += 'set '+name+' FITS:CRVAL1=0;'; - scriptHead += 'set '+name+' FITS:CRVAL2=0;'; - }*/ - - //scriptHead += 'sync;'; - - // add som method specific lines - /*switch( scriptType ) - { - case( 'mosaic' ): - // first insert the modeview - script += "mview 16;"; - // then download the files - script += scriptHead; - //for( var i=0; i < urlList.length; i++){ - // // we also shall position each image in the grid - // var gridCols = ["A", "B", "C", "D"]; - // var colIndex = i%4; - // var lineIndex = 1+Math.floor(i/4); - // script += "cview "+i+" "+gridCols[colIndex]+lineIndex+";\n"; - //} - break; - - case( 'movie' ): - // download first - script += scriptHead; - script += 'blink '; - for( var i=1; i < urlList.length; i++){ - script += urlList[i].name+" "; - } - script += ';'; - break; - - case( 'diff' ): - // download first - script += scriptHead; - for( var i=1; i < urlList.length; i++){ - var diffName = 'diff' + i; - var currRawName = urlList[i].name; - var prevRawNum = i-1; - var prevRawName = urlList[prevRawNum].name; - script += diffName + ' = ' + currRawName + ' - ' + prevRawName + ';\n'; - } - script += 'sync;'; - script += 'diff_movie = blink '; - for( var i=1; i < urlList.length; i++){ - script += 'diff'+i+' '; - } - script += ';'; - break; - } - //script += 'sync;';*/ - - var script = 'reset;'; + generateAladinScript : function(urlList, scriptType) + { + var script = 'reset;'; for( var i=0; i < urlList.length; i++) { var url = urlList[i].url; @@ -328,162 +247,149 @@ Ext.define('amdaDesktop.InteropModule', { script += 'get File(' + url +','+name+');'; } - script += 'sync;'; - - /*for( var i=0; i < urlList.length; i++) - { - //then modify some fits values - var name = urlList[i].name; - script += 'set '+name+' FITS:CRPIX1=100;'; - script += 'set '+name+' FITS:CRPIX2=0;'; - }*/ - - switch( scriptType ) - { - case('mosaic'): - { - - script += 'sync;mview 16'; - } - break; - case('movie'): - { - script += 'blink '; - for( var i=1; i < urlList.length; i++){ - script += urlList[i].name+" "; - } - script += ';'; - } - break; - } - - - - return script; + script += 'sync;'; + switch( scriptType ) + { + case('mosaic'): + { + script += 'sync;mview 16'; + } + break; + case('movie'): + { + script += 'blink '; + for( var i=1; i < urlList.length; i++){ + script += urlList[i].name+" "; + } + script += ';'; + } + break; + } + return script; + }, + + switchSampConnect : function() + { + var me = this; + //loadMask.show(); + this.initSampConnector(function (s){ + if (me.samp.isConnected()) + { + me.samp.disconnect(); + } + else + { + me.samp.connect(); + // loadMask.hide(); + } + }); + }, + + forceSampDisconnect : function() + { + if (!this.samp) + return; + + if (!this.samp.isConnected()) + return; + + this.samp.disconnect(); }, - switchSampConnect : function() - { - var me = this; - //loadMask.show(); - this.initSampConnector(function (s){ - if (me.samp.isConnected()) - { - me.samp.disconnect(); - } - else - { - me.samp.connect(); - // loadMask.hide(); - } - }); - - }, - - forceSampDisconnect : function() - { - if (!this.samp) - return; - - if (!this.samp.isConnected()) - return; - - this.samp.disconnect(); - }, - - getVOTableClients : function () - { - //return list of all clients that can receive a VOTable - if (!this.samp) - return []; - var result = new Array(); - this.sampclientsStore.each(function (client){ - if (client.get('acceptVOTable')) - result.push({id : client.get('id'), name : client.get('name'), icon : client.get('iconUrl')}); - - },this); - return result; - }, - - getFITSClients : function () - { - //return list of all clients that can receive a FITS image - if (!this.samp) - return []; - var result = new Array(); - this.sampclientsStore.each(function (client){ - if (client.get('acceptFITS')) - result.push({id : client.get('id'), name : client.get('name'), icon : client.get('iconUrl')}); - - },this); - return result; - - }, + getVOTableClients : function () + { + //return list of all clients that can receive a VOTable + if (!this.samp) + return []; + var result = new Array(); + this.sampclientsStore.each(function (client){ + if (client.get('acceptVOTable')) + result.push({id : client.get('id'), name : client.get('name'), icon : client.get('iconUrl')}); + + },this); + return result; + }, + + getFITSClients : function () + { + //return list of all clients that can receive a FITS image + if (!this.samp) + return []; + var result = new Array(); + this.sampclientsStore.each(function (client){ + if (client.get('acceptFITS')) + result.push({id : client.get('id'), name : client.get('name'), icon : client.get('iconUrl')}); + + },this); + return result; + }, + // arguments from launcher : CONFIG (OBJECT!!!) createWindow : function(config){ - var me = this; - var baseId = null; + var me = this; + var baseId = null; - if (!Ext.isObject(config)) { - baseId = config; - } - var desktop = this.app.getDesktop(); - var win = desktop.getWindow(this.id); - var activeTab = (config && 'activeTab' in config) ? config['activeTab']: 1; - - if(!win) - { - win = desktop.createWindow({ - id: this.id, - title:this.title, + if (!Ext.isObject(config)) { + baseId = config; + var activeTab = 1; + } + else { + var activeTab = ('activeTab' in config) ? config['activeTab'] : 1; + } + var desktop = this.app.getDesktop(); + var win = desktop.getWindow(this.id); + + if(!win) + { + win = desktop.createWindow({ + id: this.id, + title:this.title, layout: 'fit', minWidth: 650, minHeight: 350, minimizable: false, - iconCls: this.icon, - animCollapse:false, - constrainHeader:true, - bodyPadding : 5, - stateful : true, - stateId : this.id, - stateEvents: ['move','show','resize'], - tools: [{ - type:'help', - qtip: this.helpTitle, - scope:this, - handler: function(event, toolEl, panel) { - myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.info.id, true, function(module) { - module.createWindow(me.helpFile, me.helpTitle); - }); - } - }], - items : [ - { - xtype: 'panelInterop', - clientsStore : this.sampclientsStore, - activeTab : activeTab, - baseId : baseId, - loadTab: function(tab) { - if(tab['id'] === 'epntapTab') { - me.loadEpnTap(config && 'epntapFilter' in config ? config['epntapFilter']: false); - } - }, - onSwitchConnect : function () - { - me.switchSampConnect(); - } - } - ] - }); - } else if(activeTab == 2) { + iconCls: this.icon, + animCollapse:false, + constrainHeader:true, + bodyPadding : 5, + stateful : true, + stateId : this.id, + stateEvents: ['move','show','resize'], + tools: [{ + type:'help', + qtip: this.helpTitle, + scope:this, + handler: function(event, toolEl, panel) { + myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.info.id, true, function(module) { + module.createWindow(me.helpFile, me.helpTitle); + }); + } + }], + items : [ + { + xtype: 'panelInterop', + clientsStore : this.sampclientsStore, + activeTab : activeTab, + baseId : baseId, + loadTab: function(tab) { + if(tab['id'] === 'epntapTab') { + me.loadEpnTap(config && 'epntapFilter' in config ? config['epntapFilter']: false); + } + }, + onSwitchConnect : function () + { + me.switchSampConnect(); + } + }] + }); + } else if(activeTab == 2) { me.loadEpnTap(config && 'epntapFilter' in config ? config['epntapFilter']: false); } - if (me.samp && me.samp.ready) - this.updateStatus(); + if (me.samp && me.samp.ready) + this.updateStatus(); - win.show(); - return win; + win.show(); + return win; } - }); -- libgit2 0.21.2