Loading INAF.Apps.Uwp.SLabDataManager/App.xaml.cs +2 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ using INAF.Apps.Uwp.SLabDataManager.Services; using INAF.Apps.Uwp.SLabDataManager.ViewModels; using INAF.Libraries.Uwp.Logging; using INAF.Libraries.Uwp.Settings; using INAF.Libraries.Uwp.Settings.RecentFiles; using INAF.Libraries.Uwp.StorageItemsAccess; using INAF.Libraries.Uwp.Xml; using Microsoft.AppCenter; Loading Loading @@ -83,6 +84,7 @@ namespace INAF.Apps.Uwp.SLabDataManager .AddSingleton<AlignmentConfigModel>() .AddSingleton<SpectrumChartOptionsModel>() .AddSingleton<Logger>(logger) .AddSingleton<RecentFilesHelper>() .AddSingleton<SettingsHelper>() .AddSingleton<StorageItemsSettingsHelper>() .AddSingleton<StorageItemsAccessHelper>() Loading INAF.Apps.Uwp.SLabDataManager/Assets/xml/config.xml +24 −4 Original line number Diff line number Diff line Loading @@ -2,10 +2,30 @@ <config> <spectrumAlignment> <separators> <wavelength>350</wavelength> <wavelength>1000</wavelength> <wavelength>1800</wavelength> <wavelength>2500</wavelength> <wavelength> <currentValue>350</currentValue> <semiRange>100</semiRange> <step>10</step> <measureUnit desc="nanometers">1</measureUnit> </wavelength> <wavelength> <currentValue>1000</currentValue> <semiRange>100</semiRange> <step>10</step> <measureUnit desc="nanometers">1</measureUnit> </wavelength> <wavelength> <currentValue>1800</currentValue> <semiRange>100</semiRange> <step>10</step> <measureUnit desc="nanometers">1</measureUnit> </wavelength> <wavelength> <currentValue>2500</currentValue> <semiRange>100</semiRange> <step>10</step> <measureUnit desc="nanometers">1</measureUnit> </wavelength> </separators> </spectrumAlignment> </config> INAF.Apps.Uwp.SLabDataManager/Charts/AlignmentConfigModel.cs +21 −14 Original line number Diff line number Diff line Loading @@ -68,9 +68,9 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts settingsHelper.save(Constants.Constants.ARE_SEPARATORS_VISIBLE, areVisible.ToString()); } private void saveWavelengthModel(int index, double value) private void saveWavelengthModel(int index, double value, double semiRange, double step, WavelengthMeasureUnit wavelengthMeasureUnit) { settingsHelper.save<WavelengthSerializableModel>($"index{index}", new WavelengthSerializableModel(index, value)); settingsHelper.save<WavelengthSerializableModel>($"index{index}", new WavelengthSerializableModel(index, value, semiRange, step, (int)wavelengthMeasureUnit)); } public bool tryReadAreSeparatorsVisible() Loading @@ -92,19 +92,26 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts if (settingsHelper.contains($"index{index}")) { WavelengthSerializableModel wavelengthSerializableModel = settingsHelper.get<WavelengthSerializableModel>($"index{index}"); var separatorWavelength = new WavelengthModel(index, wavelengthSerializableModel.CurrentValue, wavelengthSerializableModel.SemiRange, wavelengthSerializableModel.Step, wavelengthSerializableModel.MeasureUnit, "WavelengthLabel".GetText()); switch (index) { case 0: SeparatorWavelength0 = new WavelengthModel(0, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); SeparatorWavelength0 = separatorWavelength; break; case 1: SeparatorWavelength1 = new WavelengthModel(1, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); SeparatorWavelength1 = separatorWavelength; break; case 2: SeparatorWavelength2 = new WavelengthModel(2, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); SeparatorWavelength2 = separatorWavelength; break; case 3: SeparatorWavelength3 = new WavelengthModel(3, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); SeparatorWavelength3 = separatorWavelength; break; } Loading Loading @@ -142,28 +149,28 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts SeparatorWavelength0.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(0, wavelengthModel.CurrentValue); saveWavelengthModel(0, wavelengthModel.CurrentValue, wavelengthModel.SemiRange, wavelengthModel.StepValue, wavelengthModel.MeasureUnit); }; break; case 1: SeparatorWavelength1.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(1, wavelengthModel.CurrentValue); saveWavelengthModel(1, wavelengthModel.CurrentValue, wavelengthModel.SemiRange, wavelengthModel.StepValue, wavelengthModel.MeasureUnit); }; break; case 2: SeparatorWavelength2.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(2, wavelengthModel.CurrentValue); saveWavelengthModel(2, wavelengthModel.CurrentValue, wavelengthModel.SemiRange, wavelengthModel.StepValue, wavelengthModel.MeasureUnit); }; break; case 3: SeparatorWavelength3.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(3, wavelengthModel.CurrentValue); saveWavelengthModel(3, wavelengthModel.CurrentValue, wavelengthModel.SemiRange, wavelengthModel.StepValue, wavelengthModel.MeasureUnit); }; break; } Loading Loading @@ -194,10 +201,10 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts public async Task switchToMeasureUnitAsync(WavelengthMeasureUnit newMeasureUnit) { await SeparatorWavelength0.switchToMeasureUnitAsync(newMeasureUnit); await SeparatorWavelength1.switchToMeasureUnitAsync(newMeasureUnit); await SeparatorWavelength2.switchToMeasureUnitAsync(newMeasureUnit); await SeparatorWavelength3.switchToMeasureUnitAsync(newMeasureUnit); SeparatorWavelength0.switchToMeasureUnit(newMeasureUnit); SeparatorWavelength1.switchToMeasureUnit(newMeasureUnit); SeparatorWavelength2.switchToMeasureUnit(newMeasureUnit); SeparatorWavelength3.switchToMeasureUnit(newMeasureUnit); } } } INAF.Apps.Uwp.SLabDataManager/Converters/Converters.cs +38 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,9 @@ using static INAF.Apps.Uwp.SLabDataManager.Constants.Enums; using INAF.Libraries.NetStandard.Extensions; using INAF.Apps.Uwp.SLabDataManager.Models; using Microsoft.Toolkit.Mvvm.DependencyInjection; using System.IO; using System.Text; using System.Collections.Generic; namespace INAF.Apps.Uwp.SLabDataManager.Converters { Loading Loading @@ -61,6 +64,41 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters } } public sealed class ShortFilepathConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { try { string shortFilepath = value as string; string filepath = value as string; string[] tmp = filepath.Split(Path.DirectorySeparatorChar); if (tmp.Length > 4) { List<string> list = new List<string>(); list.Add(tmp[0]); list.Add("..."); list.Add(tmp[tmp.Length - 2]); list.Add(tmp[tmp.Length - 1]); shortFilepath = string.Join(Path.DirectorySeparatorChar, list); } return shortFilepath; } catch (Exception) { return string.Empty; } } public object ConvertBack(object value, Type targetType, object parameter, string language) { throw new NotImplementedException(); } } public sealed class StatusToImageConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) Loading INAF.Apps.Uwp.SLabDataManager/Helpers/ConfigHelpers/ConfigReader.cs +20 −6 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ using System; using System.Threading.Tasks; using Windows.Data.Xml.Dom; using Windows.Storage; using INAF.Libraries.NetStandard.Extensions; namespace INAF.Apps.Uwp.SLabDataManager.Helpers.ConfigHelpers { Loading Loading @@ -49,14 +50,27 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.ConfigHelpers int index = 0; foreach (var node in wavelengthNodes) { if (int.TryParse(node.InnerText, out var value)) { IXmlNode currentValueNode = node.SelectSingleNode("descendant::currentValue"); string _currentValue = currentValueNode.InnerText; double currentValue = _currentValue.ToDoubleInvariant(); IXmlNode semiRangeNode = node.SelectSingleNode("descendant::semiRange"); string _semiRange = semiRangeNode.InnerText; double semiRange = _semiRange.ToDoubleInvariant(); IXmlNode stepNode = node.SelectSingleNode("descendant::step"); string _step = stepNode.InnerText; double step = _step.ToDoubleInvariant(); IXmlNode measureUnitNode = node.SelectSingleNode("descendant::measureUnit"); string _measureUnit = measureUnitNode.InnerText; int measureUnit = _measureUnit.ToIntInvariant(); if (!alignmentConfig.contains(index)) alignmentConfig.addSeparatorWavelength(index, new WavelengthModel(index, value, "WavelengthLabel".GetText())); alignmentConfig.addSeparatorWavelength(index, new WavelengthModel(index, currentValue, semiRange, step, measureUnit, "WavelengthLabel".GetText())); index++; } } } catch (Exception ex) { logger.Write<ConfigReader>($"Error while parsing config.xml - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); Loading Loading
INAF.Apps.Uwp.SLabDataManager/App.xaml.cs +2 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ using INAF.Apps.Uwp.SLabDataManager.Services; using INAF.Apps.Uwp.SLabDataManager.ViewModels; using INAF.Libraries.Uwp.Logging; using INAF.Libraries.Uwp.Settings; using INAF.Libraries.Uwp.Settings.RecentFiles; using INAF.Libraries.Uwp.StorageItemsAccess; using INAF.Libraries.Uwp.Xml; using Microsoft.AppCenter; Loading Loading @@ -83,6 +84,7 @@ namespace INAF.Apps.Uwp.SLabDataManager .AddSingleton<AlignmentConfigModel>() .AddSingleton<SpectrumChartOptionsModel>() .AddSingleton<Logger>(logger) .AddSingleton<RecentFilesHelper>() .AddSingleton<SettingsHelper>() .AddSingleton<StorageItemsSettingsHelper>() .AddSingleton<StorageItemsAccessHelper>() Loading
INAF.Apps.Uwp.SLabDataManager/Assets/xml/config.xml +24 −4 Original line number Diff line number Diff line Loading @@ -2,10 +2,30 @@ <config> <spectrumAlignment> <separators> <wavelength>350</wavelength> <wavelength>1000</wavelength> <wavelength>1800</wavelength> <wavelength>2500</wavelength> <wavelength> <currentValue>350</currentValue> <semiRange>100</semiRange> <step>10</step> <measureUnit desc="nanometers">1</measureUnit> </wavelength> <wavelength> <currentValue>1000</currentValue> <semiRange>100</semiRange> <step>10</step> <measureUnit desc="nanometers">1</measureUnit> </wavelength> <wavelength> <currentValue>1800</currentValue> <semiRange>100</semiRange> <step>10</step> <measureUnit desc="nanometers">1</measureUnit> </wavelength> <wavelength> <currentValue>2500</currentValue> <semiRange>100</semiRange> <step>10</step> <measureUnit desc="nanometers">1</measureUnit> </wavelength> </separators> </spectrumAlignment> </config>
INAF.Apps.Uwp.SLabDataManager/Charts/AlignmentConfigModel.cs +21 −14 Original line number Diff line number Diff line Loading @@ -68,9 +68,9 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts settingsHelper.save(Constants.Constants.ARE_SEPARATORS_VISIBLE, areVisible.ToString()); } private void saveWavelengthModel(int index, double value) private void saveWavelengthModel(int index, double value, double semiRange, double step, WavelengthMeasureUnit wavelengthMeasureUnit) { settingsHelper.save<WavelengthSerializableModel>($"index{index}", new WavelengthSerializableModel(index, value)); settingsHelper.save<WavelengthSerializableModel>($"index{index}", new WavelengthSerializableModel(index, value, semiRange, step, (int)wavelengthMeasureUnit)); } public bool tryReadAreSeparatorsVisible() Loading @@ -92,19 +92,26 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts if (settingsHelper.contains($"index{index}")) { WavelengthSerializableModel wavelengthSerializableModel = settingsHelper.get<WavelengthSerializableModel>($"index{index}"); var separatorWavelength = new WavelengthModel(index, wavelengthSerializableModel.CurrentValue, wavelengthSerializableModel.SemiRange, wavelengthSerializableModel.Step, wavelengthSerializableModel.MeasureUnit, "WavelengthLabel".GetText()); switch (index) { case 0: SeparatorWavelength0 = new WavelengthModel(0, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); SeparatorWavelength0 = separatorWavelength; break; case 1: SeparatorWavelength1 = new WavelengthModel(1, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); SeparatorWavelength1 = separatorWavelength; break; case 2: SeparatorWavelength2 = new WavelengthModel(2, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); SeparatorWavelength2 = separatorWavelength; break; case 3: SeparatorWavelength3 = new WavelengthModel(3, wavelengthSerializableModel.Value, "WavelengthLabel".GetText()); SeparatorWavelength3 = separatorWavelength; break; } Loading Loading @@ -142,28 +149,28 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts SeparatorWavelength0.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(0, wavelengthModel.CurrentValue); saveWavelengthModel(0, wavelengthModel.CurrentValue, wavelengthModel.SemiRange, wavelengthModel.StepValue, wavelengthModel.MeasureUnit); }; break; case 1: SeparatorWavelength1.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(1, wavelengthModel.CurrentValue); saveWavelengthModel(1, wavelengthModel.CurrentValue, wavelengthModel.SemiRange, wavelengthModel.StepValue, wavelengthModel.MeasureUnit); }; break; case 2: SeparatorWavelength2.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(2, wavelengthModel.CurrentValue); saveWavelengthModel(2, wavelengthModel.CurrentValue, wavelengthModel.SemiRange, wavelengthModel.StepValue, wavelengthModel.MeasureUnit); }; break; case 3: SeparatorWavelength3.PropertyChanged += (s, e) => { WavelengthModel wavelengthModel = s as WavelengthModel; saveWavelengthModel(3, wavelengthModel.CurrentValue); saveWavelengthModel(3, wavelengthModel.CurrentValue, wavelengthModel.SemiRange, wavelengthModel.StepValue, wavelengthModel.MeasureUnit); }; break; } Loading Loading @@ -194,10 +201,10 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts public async Task switchToMeasureUnitAsync(WavelengthMeasureUnit newMeasureUnit) { await SeparatorWavelength0.switchToMeasureUnitAsync(newMeasureUnit); await SeparatorWavelength1.switchToMeasureUnitAsync(newMeasureUnit); await SeparatorWavelength2.switchToMeasureUnitAsync(newMeasureUnit); await SeparatorWavelength3.switchToMeasureUnitAsync(newMeasureUnit); SeparatorWavelength0.switchToMeasureUnit(newMeasureUnit); SeparatorWavelength1.switchToMeasureUnit(newMeasureUnit); SeparatorWavelength2.switchToMeasureUnit(newMeasureUnit); SeparatorWavelength3.switchToMeasureUnit(newMeasureUnit); } } }
INAF.Apps.Uwp.SLabDataManager/Converters/Converters.cs +38 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,9 @@ using static INAF.Apps.Uwp.SLabDataManager.Constants.Enums; using INAF.Libraries.NetStandard.Extensions; using INAF.Apps.Uwp.SLabDataManager.Models; using Microsoft.Toolkit.Mvvm.DependencyInjection; using System.IO; using System.Text; using System.Collections.Generic; namespace INAF.Apps.Uwp.SLabDataManager.Converters { Loading Loading @@ -61,6 +64,41 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters } } public sealed class ShortFilepathConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { try { string shortFilepath = value as string; string filepath = value as string; string[] tmp = filepath.Split(Path.DirectorySeparatorChar); if (tmp.Length > 4) { List<string> list = new List<string>(); list.Add(tmp[0]); list.Add("..."); list.Add(tmp[tmp.Length - 2]); list.Add(tmp[tmp.Length - 1]); shortFilepath = string.Join(Path.DirectorySeparatorChar, list); } return shortFilepath; } catch (Exception) { return string.Empty; } } public object ConvertBack(object value, Type targetType, object parameter, string language) { throw new NotImplementedException(); } } public sealed class StatusToImageConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) Loading
INAF.Apps.Uwp.SLabDataManager/Helpers/ConfigHelpers/ConfigReader.cs +20 −6 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ using System; using System.Threading.Tasks; using Windows.Data.Xml.Dom; using Windows.Storage; using INAF.Libraries.NetStandard.Extensions; namespace INAF.Apps.Uwp.SLabDataManager.Helpers.ConfigHelpers { Loading Loading @@ -49,14 +50,27 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.ConfigHelpers int index = 0; foreach (var node in wavelengthNodes) { if (int.TryParse(node.InnerText, out var value)) { IXmlNode currentValueNode = node.SelectSingleNode("descendant::currentValue"); string _currentValue = currentValueNode.InnerText; double currentValue = _currentValue.ToDoubleInvariant(); IXmlNode semiRangeNode = node.SelectSingleNode("descendant::semiRange"); string _semiRange = semiRangeNode.InnerText; double semiRange = _semiRange.ToDoubleInvariant(); IXmlNode stepNode = node.SelectSingleNode("descendant::step"); string _step = stepNode.InnerText; double step = _step.ToDoubleInvariant(); IXmlNode measureUnitNode = node.SelectSingleNode("descendant::measureUnit"); string _measureUnit = measureUnitNode.InnerText; int measureUnit = _measureUnit.ToIntInvariant(); if (!alignmentConfig.contains(index)) alignmentConfig.addSeparatorWavelength(index, new WavelengthModel(index, value, "WavelengthLabel".GetText())); alignmentConfig.addSeparatorWavelength(index, new WavelengthModel(index, currentValue, semiRange, step, measureUnit, "WavelengthLabel".GetText())); index++; } } } catch (Exception ex) { logger.Write<ConfigReader>($"Error while parsing config.xml - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error); Loading