/** * Project  : AMDA-NG * Name : PlotParamForm.js * @class amdaPlotComp.PlotParamForm * @extends amdaPlotComp.amdaPlotComp.PlotStandardForm * @brief Form to define specifics param options * @author Benjamin Renard * @version $Id: PlotParamForm.js benjamin $ */ Ext.define('amdaPlotComp.PlotParamForm', { extend: 'amdaPlotComp.PlotStandardForm', requires: [ 'amdaPlotComp.PlotSerieForm', 'amdaPlotComp.PlotSpectroForm', 'amdaPlotComp.PlotStatusBarForm', 'amdaPlotComp.PlotTickBarForm', 'amdaPlotComp.PlotInstantSerieForm', 'amdaPlotComp.PlotInstantSpectroForm' ], drawingOptionsContainer: null, drawingOptionsFormsManager : new Ext.AbstractManager(), setObject : function(object) { this.object = object; this.loadRecord(this.object); this.updateDrawingOptions(); }, getDrawingOptionsForm: function(type) { var formId = ''; if (!type || (type == '')) formId = 'none'; else formId = type; formId += '-drawing-options-form'; if (!this.drawingOptionsFormsManager.get(formId)) { switch(type) { //Create drawing options form case 'serie' : this.drawingOptionsFormsManager.register(new amdaPlotComp.PlotSerieForm({id : formId})); break; case 'spectro' : this.drawingOptionsFormsManager.register(new amdaPlotComp.PlotSpectroForm({id : formId})); break; case 'status-bar' : this.drawingOptionsFormsManager.register(new amdaPlotComp.PlotStatusBarForm({id : formId})); break; case 'tick-bar' : this.drawingOptionsFormsManager.register(new amdaPlotComp.PlotTickBarForm({id : formId})); break; case 'iserie' : this.drawingOptionsFormsManager.register(new amdaPlotComp.PlotInstantSerieForm({id : formId})); break; case 'ispectro' : this.drawingOptionsFormsManager.register(new amdaPlotComp.PlotInstantSpectroForm({id : formId})); break; default : this.drawingOptionsFormsManager.register(new Ext.form.Label({id : formId, text: 'No available options for this drawing type'})); } } return this.drawingOptionsFormsManager.get(formId); }, updateDrawingOptions: function(forceUpdate) { var typeField = this.getForm().findField('param-drawing-type'); var availableDrawingObjects = this.object.getAvailableDrawingObjectByPlotType(this.crtTree.getSelectedPlotType()); typeField.getStore().loadData(availableDrawingObjects); var drawingType = typeField.getValue(); this.object.updateDrawingType(drawingType, forceUpdate); this.drawingOptionsContainer.removeAll(false); var drawingOptionsForm = this.getDrawingOptionsForm(drawingType); this.drawingOptionsContainer.add(drawingOptionsForm); drawingOptionsForm.crtTree = this.crtTree; if (drawingOptionsForm.setObject) drawingOptionsForm.setObject(this.object); }, getFormItems: function() { var me = this; this.drawingOptionsContainer = Ext.create('Ext.container.Container', { layout: 'fit' }); return [ this.addStandardCombo('param-drawing-type', 'Drawing type', [{'key' : '', 'value' : 'None'}], function(name, value, oldValue) { me.updateDrawingOptions(value != oldValue); me.crtTree.getView().refresh(); }), this.drawingOptionsContainer ]; } });