Loading INAF.Apps.Uwp.SLabDataManager/App.xaml.cs +1 −0 Original line number Diff line number Diff line using INAF.Apps.Uwp.Charts; using INAF.Apps.Uwp.SLabDataManager.Charts; using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Apps.Uwp.SLabDataManager.Helpers.ConfigHelpers; using INAF.Apps.Uwp.SLabDataManager.Models; Loading INAF.Apps.Uwp.SLabDataManager/Charts/AlignmentConfigModel.cs 0 → 100644 +203 −0 Original line number Diff line number Diff line using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Libraries.NetStandard.ScienceModels; using INAF.Libraries.NetStandard.ScienceModels.Spectra; using INAF.Libraries.NetStandard.ScienceModels.Spectra.Serializable; using INAF.Libraries.Uwp.Settings; using System.Threading.Tasks; using static INAF.Libraries.NetStandard.ScienceModels.Enums.Enums; namespace INAF.Apps.Uwp.SLabDataManager.Charts { public sealed class AlignmentConfigModel : ObservableModel { private readonly SettingsHelper settingsHelper; public AlignmentConfigModel(SettingsHelper settingsHelper) { this.settingsHelper = settingsHelper; if (!tryReadAreSeparatorsVisible()) AreSeparatorsVisible = true; tryReadWavelengthModel(0); tryReadWavelengthModel(1); tryReadWavelengthModel(2); tryReadWavelengthModel(3); } #region properties private bool areSeparatorsVisible; public bool AreSeparatorsVisible { get { return areSeparatorsVisible; } set { areSeparatorsVisible = value; saveAreSeparatorsVisible(value); RaisePropertyChanged(nameof(AreSeparatorsVisible)); } } private WavelengthModel separatorWavelength0; public WavelengthModel SeparatorWavelength0 { get { return separatorWavelength0; } set { separatorWavelength0 = value; RaisePropertyChanged(nameof(SeparatorWavelength0)); } } private WavelengthModel separatorWavelength1; public WavelengthModel SeparatorWavelength1 { get { return separatorWavelength1; } set { separatorWavelength1 = value; RaisePropertyChanged(nameof(SeparatorWavelength1)); } } private WavelengthModel separatorWavelength2; public WavelengthModel SeparatorWavelength2 { get { return separatorWavelength2; } set { separatorWavelength2 = value; RaisePropertyChanged(nameof(SeparatorWavelength2)); } } private WavelengthModel separatorWavelength3; public WavelengthModel SeparatorWavelength3 { get { return separatorWavelength3; } set { separatorWavelength3 = value; RaisePropertyChanged(nameof(SeparatorWavelength3)); } } #endregion #region save/read settings private void saveAreSeparatorsVisible(bool areVisible) { settingsHelper.save(Constants.Constants.ARE_SEPARATORS_VISIBLE, areVisible.ToString()); } private void saveWavelengthModel(int index, double value) { settingsHelper.save<WavelengthSerializableModel>($"index{index}", new WavelengthSerializableModel(index, value)); } public bool tryReadAreSeparatorsVisible() { bool isFound = false; string value = settingsHelper.get(Constants.Constants.ARE_SEPARATORS_VISIBLE); if (!string.IsNullOrEmpty(value)) { AreSeparatorsVisible = bool.Parse(value); isFound = true; } return isFound; } private void tryReadWavelengthModel(int index) { if (settingsHelper.contains($"index{index}")) { WavelengthSerializableModel wavelengthSerializableModel = settingsHelper.get<WavelengthSerializableModel>($"index{index}"); switch (index) { case 0: SeparatorWavelength0 = new WavelengthModel(0, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); break; case 1: SeparatorWavelength1 = new WavelengthModel(1, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); break; case 2: SeparatorWavelength2 = new WavelengthModel(2, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); break; case 3: SeparatorWavelength3 = new WavelengthModel(3, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); break; } addSeparatorWavelengthEventListener(index); } } #endregion public void addSeparatorWavelength(int index, WavelengthModel wavelength) { switch (index) { case 0: SeparatorWavelength0 = wavelength; break; case 1: SeparatorWavelength1 = wavelength; break; case 2: SeparatorWavelength2 = wavelength; break; case 3: SeparatorWavelength3 = wavelength; break; } addSeparatorWavelengthEventListener(index); } private void addSeparatorWavelengthEventListener(int index) { switch (index) { case 0: SeparatorWavelength0.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(0, wavelengthModel.CurrentValue); }; break; case 1: SeparatorWavelength1.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(1, wavelengthModel.CurrentValue); }; break; case 2: SeparatorWavelength2.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(2, wavelengthModel.CurrentValue); }; break; case 3: SeparatorWavelength3.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(3, wavelengthModel.CurrentValue); }; break; } } public bool contains(int index) { bool contains = false; switch (index) { case 0: contains = SeparatorWavelength0 != null; break; case 1: contains = SeparatorWavelength1 != null; break; case 2: contains = SeparatorWavelength2 != null; break; case 3: contains = SeparatorWavelength3 != null; break; } return contains; } public async Task switchToMeasureUnitAsync(WavelengthMeasureUnit newMeasureUnit) { await SeparatorWavelength0.switchToMeasureUnitAsync(newMeasureUnit); await SeparatorWavelength1.switchToMeasureUnitAsync(newMeasureUnit); await SeparatorWavelength2.switchToMeasureUnitAsync(newMeasureUnit); await SeparatorWavelength3.switchToMeasureUnitAsync(newMeasureUnit); } } } INAF.Apps.Uwp.SLabDataManager/Charts/SpectrumChartOptionsModel.cs +1 −74 Original line number Diff line number Diff line using INAF.Apps.Uwp.SLabDataManager.Constants; using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Libraries.NetStandard.ScienceModels; using INAF.Libraries.NetStandard.ScienceModels.Spectra; using INAF.Libraries.Uwp.Settings; using INAF.Libraries.Uwp.TelerikChartsExtensions; using System; Loading Loading @@ -39,14 +38,8 @@ namespace INAF.Apps.Uwp.Charts ChartZoomModeValues = Enum.GetValues(typeof(ChartPanZoomMode)).Cast<ChartPanZoomMode>().ToList(); if (!tryReadChartZoomMode()) SelectedChartZoomMode = ChartPanZoomMode.Both; XAxisMajorStepValues = new List<double>(2); XAxisMajorStepValues.Add(0.1); XAxisMajorStepValues.Add(100); } public SpectrumModel Spectrum { get; set; } public string Filename { get; set; } #region MajorLinesVisibility Loading Loading @@ -194,7 +187,7 @@ namespace INAF.Apps.Uwp.Charts public WavelengthMeasureUnit SelectedWavelengthMeasureUnit { get { return selectedWavelengthMeasureUnit; } set { selectedWavelengthMeasureUnit = value; saveWavelengthMeasureUnits(value); switchXAxisValues(); RaisePropertyChanged(nameof(SelectedWavelengthMeasureUnit)); } set { selectedWavelengthMeasureUnit = value; saveWavelengthMeasureUnits(value); RaisePropertyChanged(nameof(SelectedWavelengthMeasureUnit)); } } public List<WavelengthMeasureUnit> WavelengthMeasureUnits { get; private set; } Loading @@ -218,71 +211,5 @@ namespace INAF.Apps.Uwp.Charts settingsHelper.save(Constants.WAVELENGTH_MEASURE_UNITS, wavelengthMeasureUnit.ToString()); } #endregion #region major step private double selectedXAxisMajorStep; public double SelectedXAxisMajorStep { get { return selectedXAxisMajorStep; } private set { selectedXAxisMajorStep = value; RaisePropertyChanged(nameof(SelectedXAxisMajorStep)); } } public List<double> XAxisMajorStepValues { get; private set; } private void setXAxisMajorStep() { switch (SelectedWavelengthMeasureUnit) { case WavelengthMeasureUnit.Nanometers: SelectedXAxisMajorStep = XAxisMajorStepValues.FirstOrDefault(x => x == Constants.X_AXIS_MAJOR_STEP_NANOMETERS); break; case WavelengthMeasureUnit.Microns: SelectedXAxisMajorStep = XAxisMajorStepValues.FirstOrDefault(x => x == Constants.X_AXIS_MAJOR_STEP_MICRONS); break; } } #endregion #region axes boundaries public AxisBoundariesModel XAxisBoundaries { get; private set; } public AxisBoundariesModel YAxisBoundaries { get; private set; } #endregion public string XAxisTitle { get; set; } public string YAxisTitle { get; set; } public void createSummary() { double xmax = Spectrum.Elements.Max(x => x.X); double xmin = Spectrum.Elements.Min(x => x.X); XAxisBoundaries = new AxisBoundariesModel("x", xmin, xmax, Spectrum.Elements.FirstOrDefault().MeasureUnit); double ymax = Spectrum.Elements.Max(x => x.Y); double ymin = Spectrum.Elements.Min(x => x.Y); YAxisBoundaries = new AxisBoundariesModel("y", ymin, ymax, Spectrum.Elements.FirstOrDefault().MeasureUnit); } public void setSpectrum(SpectrumModel spectrum) { Spectrum = spectrum; createSummary(); setXAxisMajorStep(); } private void switchXAxisValues() { if (Spectrum != null) { Spectrum.switchToMeasureUnit(SelectedWavelengthMeasureUnit); XAxisBoundaries.switchToMeasureUnit(SelectedWavelengthMeasureUnit); setXAxisMajorStep(); } } } } INAF.Apps.Uwp.SLabDataManager/Constants/Constants.cs +1 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ public static readonly string PAN_MODE = "panmode"; public static readonly string ZOOM_MODE = "zoommode"; public static readonly double X_AXIS_MAJOR_STEP_MICRONS = 0.1; public static readonly double X_AXIS_MAJOR_STEP_NANOMETERS = 100; public static readonly string ARE_SEPARATORS_VISIBLE = "areseparatorsvisible"; } } INAF.Apps.Uwp.SLabDataManager/Constants/Enums.cs +0 −8 Original line number Diff line number Diff line Loading @@ -10,14 +10,6 @@ namespace INAF.Apps.Uwp.SLabDataManager.Constants Txt } public enum FileType { [Description("Raw")] Raw, [Description("Ref")] Ref } public enum Status { None, Loading Loading
INAF.Apps.Uwp.SLabDataManager/App.xaml.cs +1 −0 Original line number Diff line number Diff line using INAF.Apps.Uwp.Charts; using INAF.Apps.Uwp.SLabDataManager.Charts; using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Apps.Uwp.SLabDataManager.Helpers.ConfigHelpers; using INAF.Apps.Uwp.SLabDataManager.Models; Loading
INAF.Apps.Uwp.SLabDataManager/Charts/AlignmentConfigModel.cs 0 → 100644 +203 −0 Original line number Diff line number Diff line using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Libraries.NetStandard.ScienceModels; using INAF.Libraries.NetStandard.ScienceModels.Spectra; using INAF.Libraries.NetStandard.ScienceModels.Spectra.Serializable; using INAF.Libraries.Uwp.Settings; using System.Threading.Tasks; using static INAF.Libraries.NetStandard.ScienceModels.Enums.Enums; namespace INAF.Apps.Uwp.SLabDataManager.Charts { public sealed class AlignmentConfigModel : ObservableModel { private readonly SettingsHelper settingsHelper; public AlignmentConfigModel(SettingsHelper settingsHelper) { this.settingsHelper = settingsHelper; if (!tryReadAreSeparatorsVisible()) AreSeparatorsVisible = true; tryReadWavelengthModel(0); tryReadWavelengthModel(1); tryReadWavelengthModel(2); tryReadWavelengthModel(3); } #region properties private bool areSeparatorsVisible; public bool AreSeparatorsVisible { get { return areSeparatorsVisible; } set { areSeparatorsVisible = value; saveAreSeparatorsVisible(value); RaisePropertyChanged(nameof(AreSeparatorsVisible)); } } private WavelengthModel separatorWavelength0; public WavelengthModel SeparatorWavelength0 { get { return separatorWavelength0; } set { separatorWavelength0 = value; RaisePropertyChanged(nameof(SeparatorWavelength0)); } } private WavelengthModel separatorWavelength1; public WavelengthModel SeparatorWavelength1 { get { return separatorWavelength1; } set { separatorWavelength1 = value; RaisePropertyChanged(nameof(SeparatorWavelength1)); } } private WavelengthModel separatorWavelength2; public WavelengthModel SeparatorWavelength2 { get { return separatorWavelength2; } set { separatorWavelength2 = value; RaisePropertyChanged(nameof(SeparatorWavelength2)); } } private WavelengthModel separatorWavelength3; public WavelengthModel SeparatorWavelength3 { get { return separatorWavelength3; } set { separatorWavelength3 = value; RaisePropertyChanged(nameof(SeparatorWavelength3)); } } #endregion #region save/read settings private void saveAreSeparatorsVisible(bool areVisible) { settingsHelper.save(Constants.Constants.ARE_SEPARATORS_VISIBLE, areVisible.ToString()); } private void saveWavelengthModel(int index, double value) { settingsHelper.save<WavelengthSerializableModel>($"index{index}", new WavelengthSerializableModel(index, value)); } public bool tryReadAreSeparatorsVisible() { bool isFound = false; string value = settingsHelper.get(Constants.Constants.ARE_SEPARATORS_VISIBLE); if (!string.IsNullOrEmpty(value)) { AreSeparatorsVisible = bool.Parse(value); isFound = true; } return isFound; } private void tryReadWavelengthModel(int index) { if (settingsHelper.contains($"index{index}")) { WavelengthSerializableModel wavelengthSerializableModel = settingsHelper.get<WavelengthSerializableModel>($"index{index}"); switch (index) { case 0: SeparatorWavelength0 = new WavelengthModel(0, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); break; case 1: SeparatorWavelength1 = new WavelengthModel(1, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); break; case 2: SeparatorWavelength2 = new WavelengthModel(2, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); break; case 3: SeparatorWavelength3 = new WavelengthModel(3, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); break; } addSeparatorWavelengthEventListener(index); } } #endregion public void addSeparatorWavelength(int index, WavelengthModel wavelength) { switch (index) { case 0: SeparatorWavelength0 = wavelength; break; case 1: SeparatorWavelength1 = wavelength; break; case 2: SeparatorWavelength2 = wavelength; break; case 3: SeparatorWavelength3 = wavelength; break; } addSeparatorWavelengthEventListener(index); } private void addSeparatorWavelengthEventListener(int index) { switch (index) { case 0: SeparatorWavelength0.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(0, wavelengthModel.CurrentValue); }; break; case 1: SeparatorWavelength1.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(1, wavelengthModel.CurrentValue); }; break; case 2: SeparatorWavelength2.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(2, wavelengthModel.CurrentValue); }; break; case 3: SeparatorWavelength3.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(3, wavelengthModel.CurrentValue); }; break; } } public bool contains(int index) { bool contains = false; switch (index) { case 0: contains = SeparatorWavelength0 != null; break; case 1: contains = SeparatorWavelength1 != null; break; case 2: contains = SeparatorWavelength2 != null; break; case 3: contains = SeparatorWavelength3 != null; break; } return contains; } public async Task switchToMeasureUnitAsync(WavelengthMeasureUnit newMeasureUnit) { await SeparatorWavelength0.switchToMeasureUnitAsync(newMeasureUnit); await SeparatorWavelength1.switchToMeasureUnitAsync(newMeasureUnit); await SeparatorWavelength2.switchToMeasureUnitAsync(newMeasureUnit); await SeparatorWavelength3.switchToMeasureUnitAsync(newMeasureUnit); } } }
INAF.Apps.Uwp.SLabDataManager/Charts/SpectrumChartOptionsModel.cs +1 −74 Original line number Diff line number Diff line using INAF.Apps.Uwp.SLabDataManager.Constants; using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Libraries.NetStandard.ScienceModels; using INAF.Libraries.NetStandard.ScienceModels.Spectra; using INAF.Libraries.Uwp.Settings; using INAF.Libraries.Uwp.TelerikChartsExtensions; using System; Loading Loading @@ -39,14 +38,8 @@ namespace INAF.Apps.Uwp.Charts ChartZoomModeValues = Enum.GetValues(typeof(ChartPanZoomMode)).Cast<ChartPanZoomMode>().ToList(); if (!tryReadChartZoomMode()) SelectedChartZoomMode = ChartPanZoomMode.Both; XAxisMajorStepValues = new List<double>(2); XAxisMajorStepValues.Add(0.1); XAxisMajorStepValues.Add(100); } public SpectrumModel Spectrum { get; set; } public string Filename { get; set; } #region MajorLinesVisibility Loading Loading @@ -194,7 +187,7 @@ namespace INAF.Apps.Uwp.Charts public WavelengthMeasureUnit SelectedWavelengthMeasureUnit { get { return selectedWavelengthMeasureUnit; } set { selectedWavelengthMeasureUnit = value; saveWavelengthMeasureUnits(value); switchXAxisValues(); RaisePropertyChanged(nameof(SelectedWavelengthMeasureUnit)); } set { selectedWavelengthMeasureUnit = value; saveWavelengthMeasureUnits(value); RaisePropertyChanged(nameof(SelectedWavelengthMeasureUnit)); } } public List<WavelengthMeasureUnit> WavelengthMeasureUnits { get; private set; } Loading @@ -218,71 +211,5 @@ namespace INAF.Apps.Uwp.Charts settingsHelper.save(Constants.WAVELENGTH_MEASURE_UNITS, wavelengthMeasureUnit.ToString()); } #endregion #region major step private double selectedXAxisMajorStep; public double SelectedXAxisMajorStep { get { return selectedXAxisMajorStep; } private set { selectedXAxisMajorStep = value; RaisePropertyChanged(nameof(SelectedXAxisMajorStep)); } } public List<double> XAxisMajorStepValues { get; private set; } private void setXAxisMajorStep() { switch (SelectedWavelengthMeasureUnit) { case WavelengthMeasureUnit.Nanometers: SelectedXAxisMajorStep = XAxisMajorStepValues.FirstOrDefault(x => x == Constants.X_AXIS_MAJOR_STEP_NANOMETERS); break; case WavelengthMeasureUnit.Microns: SelectedXAxisMajorStep = XAxisMajorStepValues.FirstOrDefault(x => x == Constants.X_AXIS_MAJOR_STEP_MICRONS); break; } } #endregion #region axes boundaries public AxisBoundariesModel XAxisBoundaries { get; private set; } public AxisBoundariesModel YAxisBoundaries { get; private set; } #endregion public string XAxisTitle { get; set; } public string YAxisTitle { get; set; } public void createSummary() { double xmax = Spectrum.Elements.Max(x => x.X); double xmin = Spectrum.Elements.Min(x => x.X); XAxisBoundaries = new AxisBoundariesModel("x", xmin, xmax, Spectrum.Elements.FirstOrDefault().MeasureUnit); double ymax = Spectrum.Elements.Max(x => x.Y); double ymin = Spectrum.Elements.Min(x => x.Y); YAxisBoundaries = new AxisBoundariesModel("y", ymin, ymax, Spectrum.Elements.FirstOrDefault().MeasureUnit); } public void setSpectrum(SpectrumModel spectrum) { Spectrum = spectrum; createSummary(); setXAxisMajorStep(); } private void switchXAxisValues() { if (Spectrum != null) { Spectrum.switchToMeasureUnit(SelectedWavelengthMeasureUnit); XAxisBoundaries.switchToMeasureUnit(SelectedWavelengthMeasureUnit); setXAxisMajorStep(); } } } }
INAF.Apps.Uwp.SLabDataManager/Constants/Constants.cs +1 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ public static readonly string PAN_MODE = "panmode"; public static readonly string ZOOM_MODE = "zoommode"; public static readonly double X_AXIS_MAJOR_STEP_MICRONS = 0.1; public static readonly double X_AXIS_MAJOR_STEP_NANOMETERS = 100; public static readonly string ARE_SEPARATORS_VISIBLE = "areseparatorsvisible"; } }
INAF.Apps.Uwp.SLabDataManager/Constants/Enums.cs +0 −8 Original line number Diff line number Diff line Loading @@ -10,14 +10,6 @@ namespace INAF.Apps.Uwp.SLabDataManager.Constants Txt } public enum FileType { [Description("Raw")] Raw, [Description("Ref")] Ref } public enum Status { None, Loading