/** * Project  : AMDA-NG * Name : PlotPreviewUI.js * @class amdaPlotComp.PlotPreviewUI * @extends Ext. panel.Panel * @brief Plot Preview UI definition (View) * @author * @version $Id: PlotPreviewUI.js benjamin $ ******************************************************************************** * FT Id : Date : Name - Description ******************************************************************************* * */ Ext.define('amdaPlotComp.PlotPreviewUI', { extend: 'Ext.panel.Panel', alias: 'widget.plotPreview', requires: [ 'amdaPlotComp.PlotContextManager', 'amdaPlotComp.PlotResultImage' ], panelImage : null, crtContext : null, sliderPage : null, constructor: function(config) { this.init(config); this.callParent(arguments); }, getImageSize : function() { if (!this.crtContext) return { width : 0, height : 0 }; return { width : this.crtContext.page.width * this.sliderPage.getValue()/100., height : this.crtContext.page.height * this.sliderPage.getValue()/100. } }, getImageUrl: function(resultFolder, plotFile) { return 'data/'+sessionID +'/RES/'+resultFolder+ '/' + plotFile; }, createPlotImage: function(resultFolder, plotFile) { var me = this; var size = this.getImageSize(); this.panelImage = Ext.create('amdaPlotComp.PlotResultImage', { src : this.getImageUrl(resultFolder, plotFile), width : size.width, height : size.height }); return this.panelImage; }, updatePlotImage: function(configResult, newPlot) { this.crtContext = configResult.context; this.panelImage.setSrc(this.getImageUrl(configResult.folder, configResult.plotFile)); var size = this.getImageSize(); this.panelImage.setSize(size.width, size.height); this.panelImage.refreshMe(); }, init: function(configResult){ this.crtContext = configResult.context; this.tabId = configResult.tabId; this.sliderPage = new Ext.slider.Single({ width: 130, value: 75, increment: 5, minValue: 50, maxValue: 100, fieldLabel : 'Resize', labelWidth : 40, listeners: { scope : this, changecomplete: function(s, v) { var size = this.getImageSize(); this.panelImage.width = size.width; this.panelImage.height = size.height; this.panelImage.doComponentLayout(); } } }); var bottomToolbar = { xtype: 'toolbar', height: 25, dock: 'bottom', items:[ '->', this.sliderPage ] }; var plotPreviewPanelConfig = { preventHeader : true, autoScroll: true, items: [ this.createPlotImage(configResult.folder, configResult.plotFile) ], dockedItems: [bottomToolbar] }; Ext.apply(this , plotPreviewPanelConfig); } });