Commit 0ca19f36 authored by Francesco Carraro's avatar Francesco Carraro
Browse files

working on chart options panel...

parent fbeeaf12
Loading
Loading
Loading
Loading
+117 −0
Original line number Diff line number Diff line
using INAF.Libraries.NetStandard.ScienceModels;
using INAF.Libraries.NetStandard.ScienceModels.Spectra;
using System;
using System.Collections.Generic;
using System.Linq;
using Telerik.UI.Xaml.Controls.Chart;
using static INAF.Apps.Uwp.SLabDataManager.Constants.Enums;
using static INAF.Libraries.NetStandard.ScienceModels.Enums.Enums;

namespace INAF.Apps.Uwp.Charts
{
    public class SpectrumChartOptionsModel : ObservableModel
    {
        public SpectrumChartOptionsModel(SpectrumModel spectrum)
        {
            Spectrum = spectrum;

            MajorLinesVisibilityValues = Enum.GetValues(typeof(GridLineVisibility)).Cast<GridLineVisibility>().ToList();
            SelectedMajorLinesVisibility = GridLineVisibility.XY;

            StripLinesVisibilityValues = Enum.GetValues(typeof(GridLineVisibility)).Cast<GridLineVisibility>().ToList();
            SelectedStripLinesVisibility = GridLineVisibility.XY;

            WavelengthMeasureUnits = Enum.GetValues(typeof(WavelengthMeasureUnit)).Cast<WavelengthMeasureUnit>().ToList();
            SelectedWavelengthMeasureUnit = WavelengthMeasureUnit.Nanometers;

            ChartPanModeValues = Enum.GetValues(typeof(ChartPanZoomMode)).Cast<ChartPanZoomMode>().ToList();
            SelectedChartPanMode = ChartPanZoomMode.Both;

            ChartZoomModeValues = Enum.GetValues(typeof(ChartPanZoomMode)).Cast<ChartPanZoomMode>().ToList();
            SelectedChartZoomMode = ChartPanZoomMode.Both;
        }

        public SpectrumModel Spectrum { get; set; }

        public string Filename { get; set; }

        #region MajorLinesVisibility
        private List<GridLineVisibility> majorLinesVisibilityValues;
        public List<GridLineVisibility> MajorLinesVisibilityValues
        {
            get { return majorLinesVisibilityValues; }
            set { majorLinesVisibilityValues = value; RaisePropertyChanged(nameof(MajorLinesVisibilityValues)); }
        }

        private GridLineVisibility selectedMajorLinesVisibility;
        public GridLineVisibility SelectedMajorLinesVisibility
        {
            get { return selectedMajorLinesVisibility; }
            set { selectedMajorLinesVisibility = value; RaisePropertyChanged(nameof(SelectedMajorLinesVisibility)); }
        }
        #endregion

        #region StripLinesVisibility
        private GridLineVisibility selectedStripLinesVisibility;
        public GridLineVisibility SelectedStripLinesVisibility
        {
            get { return selectedStripLinesVisibility; }
            set { selectedStripLinesVisibility = value; RaisePropertyChanged(nameof(SelectedStripLinesVisibility)); }
        }

        private List<GridLineVisibility> stripLinesVisibilityValues;
        public List<GridLineVisibility> StripLinesVisibilityValues
        {
            get { return stripLinesVisibilityValues; }
            set { stripLinesVisibilityValues = value; RaisePropertyChanged(nameof(StripLinesVisibilityValues)); }
        }
        #endregion

        #region Pan mode
        private List<ChartPanZoomMode> chartPanModeValues;
        public List<ChartPanZoomMode> ChartPanModeValues
        {
            get { return chartPanModeValues; }
            set { chartPanModeValues = value; RaisePropertyChanged(nameof(ChartPanModeValues)); }
        }

        private ChartPanZoomMode selectedChartPanMode;
        public ChartPanZoomMode SelectedChartPanMode
        {
            get { return selectedChartPanMode; }
            set { selectedChartPanMode = value; RaisePropertyChanged(nameof(SelectedChartPanMode)); }
        }
        #endregion

        #region Zoom mode
        private List<ChartPanZoomMode> chartZoomModeValues;
        public List<ChartPanZoomMode> ChartZoomModeValues
        {
            get { return chartZoomModeValues; }
            set { chartZoomModeValues = value; RaisePropertyChanged(nameof(ChartZoomModeValues)); }
        }

        private ChartPanZoomMode selectedChartZoomMode;
        public ChartPanZoomMode SelectedChartZoomMode
        {
            get { return selectedChartZoomMode; }
            set { selectedChartZoomMode = value; RaisePropertyChanged(nameof(SelectedChartZoomMode)); }
        }
        #endregion

        #region WavelengthMeasureUnits
        private WavelengthMeasureUnit selectedWavelengthMeasureUnit;
        public WavelengthMeasureUnit SelectedWavelengthMeasureUnit
        {
            get { return selectedWavelengthMeasureUnit; }
            set { selectedWavelengthMeasureUnit = value; RaisePropertyChanged(nameof(SelectedWavelengthMeasureUnit)); }
        }

        public List<WavelengthMeasureUnit> WavelengthMeasureUnits { get; set; }
        #endregion

        public string XAxisTitle { get; set; }

        public string YAxisTitle { get; set; }
    }
}
+25 −3
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters

                return "ChartTooltipLabel".GetText()
                                            .Replace("rv_1", scatterDataPoint.XValue.ToString())
                                            .Replace("rv_mu", workingItemsModel.Spectrum.SelectedWavelengthMeasureUnit.GetDescription())
                                            .Replace("rv_mu", workingItemsModel.SpectrumChartOptions.SelectedWavelengthMeasureUnit.GetDescription())
                                            .Replace("rv_2", scatterDataPoint.YValue.ToDoubleInvariant());
            }
            catch (Exception)
@@ -39,6 +39,28 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters
        }
    }

    public sealed class ChartGridItemsVisibilityConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            try
            {
                WorkingItemsModel workingItemsModel = Ioc.Default.GetService<WorkingItemsModel>();

                return workingItemsModel.SpectrumChartOptions.SelectedMajorLinesVisibility.ToString();
            }
            catch (Exception)
            {
                return string.Empty;
            }
        }

        public object ConvertBack(object value, Type targetType, object parameter, string language)
        {
            throw new NotImplementedException();
        }
    }

    public sealed class XAxisTitleConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
@@ -47,7 +69,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters
            {
                WorkingItemsModel workingItemsModel = Ioc.Default.GetService<WorkingItemsModel>();

                return "SpectrumXAxisTitle".GetText().Replace("r_v", workingItemsModel.Spectrum.SelectedWavelengthMeasureUnit.GetDescription());
                return "SpectrumXAxisTitle".GetText().Replace("r_v", workingItemsModel.SpectrumChartOptions.SelectedWavelengthMeasureUnit.GetDescription());
            }
            catch (Exception)
            {
@@ -71,7 +93,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters

                WorkingItemsModel workingItemsModel = Ioc.Default.GetService<WorkingItemsModel>();

                var selectedUnitMeasure = workingItemsModel.Spectrum.SelectedWavelengthMeasureUnit;
                var selectedUnitMeasure = workingItemsModel.SpectrumChartOptions.SelectedWavelengthMeasureUnit;

                switch (selectedUnitMeasure)
                {
+1 −0
Original line number Diff line number Diff line
@@ -151,6 +151,7 @@
    <Compile Include="Activation\ActivationHandler.cs" />
    <Compile Include="Behaviors\NavigationViewHeaderBehavior.cs" />
    <Compile Include="Behaviors\NavigationViewHeaderMode.cs" />
    <Compile Include="Charts\SpectrumChartOptionsModel.cs" />
    <Compile Include="Constants\Constants.cs" />
    <Compile Include="Constants\Enums.cs" />
    <Compile Include="Converters\Converters.cs" />
+9 −1
Original line number Diff line number Diff line
using INAF.Apps.Uwp.SLabDataManager.Helpers;
using INAF.Apps.Uwp.Charts;
using INAF.Apps.Uwp.SLabDataManager.Helpers;
using INAF.Libraries.NetStandard.ScienceModels.Spectra;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using static INAF.Apps.Uwp.SLabDataManager.Constants.Enums;
@@ -34,6 +35,13 @@ namespace INAF.Apps.Uwp.SLabDataManager.Models
            set { SetProperty(ref rawSpectrumReadingErrorMessage, value); }
        }

        private SpectrumChartOptionsModel spectrumChartOptions;
        public SpectrumChartOptionsModel SpectrumChartOptions
        {
            get { return spectrumChartOptions; }
            set { SetProperty(ref spectrumChartOptions, value); }
        }

        public SpectrumModel Spectrum { get; set; }

        public SpectrumSummaryModel SpectrumSummary { get; set; }
+13 −1
Original line number Diff line number Diff line
@@ -212,8 +212,17 @@
  <data name="ChartTooltipLabel" xml:space="preserve">
    <value>x,y: rv_1 rv_mu, rv_2</value>
  </data>
  <data name="SpectrumMajorLinesVisibilitySelectionLabel.Text" xml:space="preserve">
    <value>Major lines visibility:</value>
  </data>
  <data name="SpectrumMeasurementUnitSelectionLabel.Text" xml:space="preserve">
    <value>Select measurement units:</value>
    <value>X axis Measurement units:</value>
  </data>
  <data name="SpectrumPanModeSelectionLabel.Text" xml:space="preserve">
    <value>Pan mode:</value>
  </data>
  <data name="SpectrumStripLinesVisibilitySelectionLabel.Text" xml:space="preserve">
    <value>Strip lines visibility:</value>
  </data>
  <data name="SpectrumXAxisTitle" xml:space="preserve">
    <value>Wavelengths (r_v)</value>
@@ -221,4 +230,7 @@
  <data name="SpectrumYAxisTitle" xml:space="preserve">
    <value>Reflectance</value>
  </data>
  <data name="SpectrumZoomModeSelectionLabel.Text" xml:space="preserve">
    <value>Zoom mode:</value>
  </data>
</root>
 No newline at end of file
Loading