diff --git a/generic_data/defaultValues.json b/generic_data/defaultValues.json index f213d51..5fa344b 100644 --- a/generic_data/defaultValues.json +++ b/generic_data/defaultValues.json @@ -132,6 +132,11 @@ "ybinnumber":100, "smoothfactor":1 }, + "histogram1D":{ + "histo1DFunction":"density", + "xbinnumber":100, + "color":"#FF0000" + }, "sauvaud":{ "yAxis":"y-right", "resolution":3000 diff --git a/generic_data/defaultValuesConfig.json b/generic_data/defaultValuesConfig.json index 6b56b78..146cda0 100644 --- a/generic_data/defaultValuesConfig.json +++ b/generic_data/defaultValuesConfig.json @@ -38,7 +38,8 @@ { "key": "epochPlot", "value": "Epoch Plot" }, { "key": "instantPlot", "value": "Instant Plot" }, { "key": "statusPlot", "value": "Status Plot" }, - { "key": "tickPlot", "value": "Tick Plot" } + { "key": "tickPlot", "value": "Tick Plot" }, + { "key": "histoPlot", "value": "Histogram Plot" } ], "availableFontNames": [ @@ -254,6 +255,11 @@ { "key": "stadev", "value": "Standard Deviation" } ], + "availableHistogram1DFunctions": [ + { "key": "density", "value": "Density" }, + { "key": "normdensity", "value": "Normalised Density" } + ], + "availableDimsOnXAxis": [ { "key": "0", "value": "First dimension" }, { "key": "1", "value": "Second dimension" } diff --git a/generic_data/defaultValuesLinks.json b/generic_data/defaultValuesLinks.json index aa67bcf..85235e9 100644 --- a/generic_data/defaultValuesLinks.json +++ b/generic_data/defaultValuesLinks.json @@ -226,6 +226,11 @@ "type":"combobox", "store":"availableHistogram2DFunctions" }, + "plot.histogram1D.histo1DFunction": + { + "type":"combobox", + "store":"availableHistogram1DFunctions" + }, "plot.sauvaud.yAxis": { "type":"combobox", diff --git a/js/app/models/PlotObjects/PlotHistogram1DSerieObject.js b/js/app/models/PlotObjects/PlotHistogram1DSerieObject.js new file mode 100644 index 0000000..55ab3bc --- /dev/null +++ b/js/app/models/PlotObjects/PlotHistogram1DSerieObject.js @@ -0,0 +1,58 @@ +/** + * Project : TMA-AMDA + * Name : PlotHistogram1DSerieObject.js + * @class amdaPlotObj.PlotHistogram1DSerieObject + * @extends amdaPlotObj.PlotBaseSerieObject + * @brief Plot Histogram1D Business Object Definition + * @author Furkan Erdogan + * @version $Id: PlotHistogram1DSerieObject.js furkan $ + ****************************************************************************** + * FT Id : Date : Name - Description + ****************************************************************************** + * : :08/02/2023: FER - file creation + */ + + +Ext.define('amdaPlotObj.PlotHistogram1DSerieObject', { + extend: 'amdaPlotObj.PlotBaseSerieObject', + requires: ['amdaPlotObj.PlotAxisObject'], + fields : [ + // {name: 'serie-xaxis-param', type: 'string'}, + // {name: 'serie-resampling-mode', type: 'string'}, + {name: 'histo1d-function', type: 'string'}, + {name: 'histo1d-xbinnumber', type: 'int'}, + {name: 'histo1d-color', type: 'string', defaultValue: "none"} + ], + + constructor: function(){ + var me = this; + me.callParent(arguments); + }, + + setDefaultValues: function() + { + // this.set('serie-xaxis-param', ''); + // this.set('serie-resampling-mode', amdaDefaultValues.plot.serie.resamplingMode); + this.set('histo1d-function', amdaDefaultValues.plot.histogram1D.histo1DFunction); + // this.set('histotype-param', ''); + this.set('histo1d-xbinnumber', amdaDefaultValues.plot.histogram1D.xbinnumber); + this.set('histo1d-color', amdaDefaultValues.plot.histogram1D.color); + + this.callParent(arguments); + }, + + getJsonValues : function() + { + var serieValues = this.callParent(arguments); + // serieValues['serie-xaxis-param'] = this.get('serie-xaxis-param'); + // serieValues['serie-resampling-mode'] = this.get('serie-resampling-mode'); + serieValues['histo1d-function'] = this.get('histo1d-function'); + // serieValues['histotype-param'] = this.get('histotype-param'); + serieValues['histo1d-xbinnumber'] = this.get('histo1d-xbinnumber'); + serieValues['histo1d-color'] = this.get('histo1d-color'); + // serieValues['histo1D-ybinnumber'] = this.get('histo1D-ybinnumber'); + // serieValues['histo1D-smoothfactor'] = this.get('histo1D-smoothfactor'); + + return serieValues; + } +}); diff --git a/js/app/models/PlotObjects/PlotPanelObject.js b/js/app/models/PlotObjects/PlotPanelObject.js index 37347ce..6182ccd 100644 --- a/js/app/models/PlotObjects/PlotPanelObject.js +++ b/js/app/models/PlotObjects/PlotPanelObject.js @@ -248,6 +248,7 @@ Ext.define('amdaPlotObj.PlotPanelObject', { recs = this.axes().add({id : 'color'}); recs[0].setDefaultValues('color'); break; + case 'histoPlot': case 'xyPlot' : //X Axis var recs = this.axes().add({id : 'xaxis_id'}); diff --git a/js/app/models/PlotObjects/PlotParamObject.js b/js/app/models/PlotObjects/PlotParamObject.js index 44ddfee..8db923c 100644 --- a/js/app/models/PlotObjects/PlotParamObject.js +++ b/js/app/models/PlotObjects/PlotParamObject.js @@ -21,6 +21,7 @@ Ext.define('amdaPlotObj.PlotParamObject', { 'amdaPlotObj.PlotSerieObject', 'amdaPlotObj.PlotOrbitSerieObject', 'amdaPlotObj.PlotHistogram2DSerieObject', + 'amdaPlotObj.PlotHistogram1DSerieObject', 'amdaPlotObj.PlotSpectroObject', 'amdaPlotObj.PlotSauvaudObject', 'amdaPlotObj.PlotStatusBarObject', @@ -75,6 +76,8 @@ Ext.define('amdaPlotObj.PlotParamObject', { return new amdaPlotObj.PlotSerieObject(data); case 'histogram2d' : return new amdaPlotObj.PlotHistogram2DSerieObject(data); + case 'histogram1d' : + return new amdaPlotObj.PlotHistogram1DSerieObject(data); case 'orbit-serie' : return new amdaPlotObj.PlotOrbitSerieObject(data); case 'spectro' : @@ -135,6 +138,11 @@ Ext.define('amdaPlotObj.PlotParamObject', { {'key' : 'orbit-serie', 'value' : 'Orbit Serie'}, {'key' : 'histogram2d', 'value' : '2D Histogram'} ]; + case 'histoPlot' : + return [ + {'key' : 'histogram1d', 'value' : 'Histogram'}, + {'key' : 'histogram2d', 'value' : '2D Histogram'} + ]; case 'instantPlot' : return [ {'key' : 'iserie', 'value' : 'Serie'}, diff --git a/js/app/views/PlotComponents/PlotHistogram1DSerieForm.js b/js/app/views/PlotComponents/PlotHistogram1DSerieForm.js new file mode 100644 index 0000000..4a63828 --- /dev/null +++ b/js/app/views/PlotComponents/PlotHistogram1DSerieForm.js @@ -0,0 +1,95 @@ +/** + * Project : TMA-AMDA + * Name : PlotHistogram1DSerieForm.js + * @class amdaPlotComp.PlotHistogram1DSerieForm + * @extends amdaPlotComp.PlotBaseSerieForm + * @brief Form to define specifics histogram1d serie options + * @author Furkan Erdogan + * @version $Id: PlotHistogram1DSerieForm.js furkan $ + */ + +Ext.define('amdaPlotComp.PlotHistogram1DSerieForm', { + extend: 'amdaPlotComp.PlotBaseSerieForm', + + setObject: function (object) { + this.callParent(arguments); + }, + + setParentObject: function (parentObject) { + this.callParent(arguments); + this.updateAxesRanges(parentObject); + + }, + + updateAxesRanges: function(parentObject) { + var xAxisObj = parentObject.axes().getById('xaxis_id'); + + this.getForm().findField('histo1d-xmin').setValue(xAxisObj.get('axis-range-min')); + this.getForm().findField('histo1d-xmax').setValue(xAxisObj.get('axis-range-max')); + }, + + getRangeForms: function(){ + var me = this; + return { + xtype: 'fieldset', + bodyStyle: { background: '#dfe8f6' }, + title: 'X ranges', + name: 'histo1d-ranges', + renderTo: Ext.getBody(), + fieldDefaults: { + labelAlign: 'right', + msgTarget: 'side', + labelWidth: 40, + }, + defaults: { + xtype: 'panel', + bodyStyle: {background: '#dfe8f6'}, + flex: 1, + border:false, + layout: 'anchor', + }, + layout:'hbox', + frame: true, + //bodyPadding: '5 5 5 5', + items: + [{ + items:[ + me.addStandardFloat2('histo1d-xmin', 'X Min', -Number.MAX_VALUE, Number.MAX_VALUE, false, false, function(name, newValue, oldValue){ + me.parentObject.axes().getById('xaxis_id').set('axis-range-min', newValue); + }) + ] + }, + { + items:[ + me.addStandardFloat2('histo1d-xmax', 'X Max', -Number.MAX_VALUE, Number.MAX_VALUE, false, false, function(name, newValue, oldValue){ + me.parentObject.axes().getById('xaxis_id').set('axis-range-max', newValue); + }) + ] + }] + }; + + }, + getFormItems: function() { + var me = this; + + var histogram1DItems = [ + // this.addStandardParamDropTarget('serie-xaxis-param', 'X Parameter', function(name, value, oldValue) { + // me.object.set('serie-xaxis-param', value); + // me.crtTree.refresh(); + // }), + me.getRangeForms(), + // this.addStandardCombo('serie-resampling-mode', 'Reference parameter for resampling', amdaDefaultConfigs.availableResamplingModes), + this.addStandardCombo('histo1d-function', 'Function to apply', amdaDefaultConfigs.availableHistogram1DFunctions, function(name, value, oldValue) { + me.object.set('histo1d-function', value); + }), + // this.addStandardParamDropTarget('histotype-param', 'Z Parameter', function(name, value, oldValue) { + // me.object.set('histotype-param', value); + // me.crtTree.refresh(); + // }), + this.addStandardInteger('histo1d-xbinnumber', 'Nb. of bins'), + this.addColorsPicker('histo1d-color', 'Color', amdaDefaultConfigs.availableColorsNew, 'none') + + ]; + return histogram1DItems; + } +}); diff --git a/js/app/views/PlotComponents/PlotParamForm.js b/js/app/views/PlotComponents/PlotParamForm.js index 43d7b6f..f855fe5 100644 --- a/js/app/views/PlotComponents/PlotParamForm.js +++ b/js/app/views/PlotComponents/PlotParamForm.js @@ -15,6 +15,7 @@ Ext.define('amdaPlotComp.PlotParamForm', { 'amdaPlotComp.PlotSerieForm', 'amdaPlotComp.PlotOrbitSerieForm', 'amdaPlotComp.PlotHistogram2DSerieForm', + 'amdaPlotComp.PlotHistogram1DSerieForm', 'amdaPlotComp.PlotSpectroForm', 'amdaPlotComp.PlotSauvaudForm', 'amdaPlotComp.PlotStatusBarForm', @@ -67,6 +68,9 @@ Ext.define('amdaPlotComp.PlotParamForm', { case 'histogram2d': this.drawingOptionsFormsManager.register(new amdaPlotComp.PlotHistogram2DSerieForm({ id: formId })); break; + case 'histogram1d': + this.drawingOptionsFormsManager.register(new amdaPlotComp.PlotHistogram1DSerieForm({ id: formId })); + break; case 'sauvaud': if(this.object.get('type') !=2){ myDesktopApp.warningMsg('Sauvaud Plot requires <b>2D Parameter</b> '); -- libgit2 0.21.2