internal static IDimension UpdateDimension(this INumericValueField numericValueField, IDimension dimension) { var dimensionToUse = dimension ?? Constants.Dimension.NO_DIMENSION; numericValueField.DisplayUnit = dimensionToUse.DefaultUnit; return(dimensionToUse); }
private void mapNumericFieldToModel(PopulationAnalysisField snapshot, INumericValueField field) { field.Dimension = _dimensionFactory.Dimension(snapshot.Dimension); field.Dimension = _dimensionFactory.OptimalDimension(field.Dimension); field.DisplayUnit = field.Dimension.Unit(ModelValueFor(snapshot.Unit)); field.Scaling = ModelValueFor(snapshot.Scaling, field.Scaling); }
protected CurveData <TX, TY> GetCurveData( DataRow row, IReadOnlyList <string> paneFieldNames, IReadOnlyList <IComparer <object> > paneFieldValueComparers, IReadOnlyList <string> seriesFieldNames, IReadOnlyList <IComparer <object> > curveFieldValueComparers, ChartData <TX, TY> chart, INumericValueField yAxisField) { var paneFieldValues = GetFieldValues(paneFieldNames, row); var pane = getOrCreatePane(chart, paneFieldValues, curveFieldValueComparers, yAxisField); var seriesFieldValues = GetFieldValues(seriesFieldNames, row); var series = getOrCreateCurve(pane, seriesFieldValues); var quantityField = yAxisField as IQuantityField; if (quantityField != null) { series.QuantityPath = quantityField.QuantityPath; } SetCurveSettings(series, row); return(series); }
private void mapNumericFieldToModel(PopulationAnalysisField snapshot, INumericValueField field) { field.Dimension = _dimensionRepository.DimensionByName(snapshot.Dimension); var optimalDimension = _dimensionRepository.MergedDimensionFor(field); field.DisplayUnit = optimalDimension.Unit(ModelValueFor(snapshot.Unit)); field.Scaling = ModelValueFor(snapshot.Scaling, field.Scaling); }
protected ChartData <TX, TY> CreateChart( INumericValueField xAxisField, IReadOnlyList <IComparer <object> > paneFieldValueComparers, IReadOnlyList <string> xFieldNames = null, IComparer <TX> xValueComparer = null) { return(new ChartData <TX, TY>(CreateAxisDataFor(xAxisField), paneFieldValueComparers, xFieldNames, xValueComparer)); }
protected override AxisData CreateAxisDataFor(INumericValueField axisField) { //override default implementation to set caption to [display unit], because different DATA_FIELDS are shown at one pane var axis = base.CreateAxisDataFor(axisField); if (axis != null) { axis.Caption = Constants.NameWithUnitFor(_dimensionRepository.MergedDimensionFor(axisField).DisplayName, axisField.DisplayUnit); } return(axis); }
protected virtual AxisData CreateAxisDataFor(INumericValueField axisField) { if (axisField == null) { return(new AxisData(_dimensionRepository.NoDimension, _dimensionRepository.NoDimension.DefaultUnit, Scalings.Linear)); } var mergedDimension = _dimensionRepository.MergedDimensionFor(new NumericFieldContext(axisField, _populationDataCollector)); return(new AxisData(mergedDimension, axisField.DisplayUnit, axisField.Scaling) { Caption = Constants.NameWithUnitFor(axisField.Name, axisField.DisplayUnit) }); }
protected virtual AxisData CreateAxisDataFor(INumericValueField numericValueField) { if (numericValueField == null) { return(new AxisData(_dimensionRepository.NoDimension, _dimensionRepository.NoDimension.DefaultUnit, Scalings.Linear)); } var mergedDimension = createMergedDimensionFor(numericValueField); return(new AxisData(mergedDimension, numericValueField.DisplayUnit, numericValueField.Scaling) { Caption = Constants.NameWithUnitFor(numericValueField.Name, numericValueField.DisplayUnit) }); }
private void mapNumericFieldToSnapshot(PopulationAnalysisField snapshot, INumericValueField field) { snapshot.Dimension = field.Dimension.Name; snapshot.Unit = SnapshotValueFor(field.DisplayUnit.Name); snapshot.Scaling = field.Scaling; }
private void plotContinousData <TObject>(IPopulationDataCollector populationDataCollector, TObject objectToPlot, INumericValueField numericValueField, Func <IPopulationDistributionPresenter, Action <IPopulationDataCollector, TObject, DistributionSettings, IDimension, Unit> > plotFunc) where TObject : class, IWithDimension { if (objectToPlot == null) { return; } var displayUnit = _displayUnitRetriever.PreferredUnitFor(objectToPlot); var dimension = objectToPlot.Dimension; var settings = new DistributionSettings(); if (numericValueField != null) { displayUnit = numericValueField.DisplayUnit; settings.PlotCaption = numericValueField.Name; dimension = _dimensionRepository.MergedDimensionFor(new NumericFieldContext(numericValueField, populationDataCollector)); } plotFunc(_populationDistributionPresenter)(populationDataCollector, objectToPlot, settings, dimension, displayUnit); }
public NumericFieldContext(INumericValueField numericValueField, IPopulationDataCollector populationDataCollector) { NumericValueField = numericValueField; PopulationDataCollector = populationDataCollector; }
public static double ValueInDisplayUnit(this INumericValueField numericValueField, double valueInBaseUnit) { return(numericValueField.ConvertToDisplayUnit(valueInBaseUnit)); }
private PaneData <TX, TY> getOrCreatePane(ChartData <TX, TY> chart, IReadOnlyDictionary <string, string> paneFieldValues, IReadOnlyList <IComparer <object> > curveFieldValueComparers, INumericValueField axisField) { string paneCaption = captionFor(paneFieldValues.Values); string paneId = idFromCaption(paneCaption); // Id cannot be empty string var pane = chart.Panes.FindById(paneId); if (pane != null) { return(pane); } // add new pane pane = new PaneData <TX, TY>(CreateAxisDataFor(axisField), paneFieldValues, curveFieldValueComparers) { Id = paneId, Caption = paneCaption }; chart.AddPane(pane); return(pane); }
private IDimension createMergedDimensionFor(INumericValueField numericValueField) { return(_dimensionRepository.MergedDimensionFor(new NumericFieldContext(numericValueField, _populationDataCollector))); }
private CurveData <TX, TY> getOrCreateCurve(PaneData <TX, TY> pane, IReadOnlyDictionary <string, string> seriesFieldValues, INumericValueField yAxisField) { string curveCaption = captionFor(seriesFieldValues.Values); string curveId = idFromCaption(curveCaption); var series = pane.Curves[curveId]; if (series != null) { return(series); } // add new curve series = new CurveData <TX, TY>(seriesFieldValues) { Id = curveId, Caption = curveCaption, //Save one merge dimension per curve so that we can always convert using the dimension matching the output field exactly (only necessary when converting between molar and mass) YDimension = createMergedDimensionFor(yAxisField) }; pane.AddCurve(series); return(series); }