Commit a2edf8c0 authored by Francesco Carraro's avatar Francesco Carraro
Browse files

fixed alignment options, added recent files

parent b45fe200
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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;
@@ -83,6 +84,7 @@ namespace INAF.Apps.Uwp.SLabDataManager
                .AddSingleton<AlignmentConfigModel>()
                .AddSingleton<SpectrumChartOptionsModel>()
                .AddSingleton<Logger>(logger)
                .AddSingleton<RecentFilesHelper>()
                .AddSingleton<SettingsHelper>()
                .AddSingleton<StorageItemsSettingsHelper>()
                .AddSingleton<StorageItemsAccessHelper>()
+24 −4
Original line number Diff line number Diff line
@@ -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>
+21 −14
Original line number Diff line number Diff line
@@ -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()
@@ -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;
                }

@@ -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;
            }  
@@ -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);
        }
    }
}
+38 −0
Original line number Diff line number Diff line
@@ -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
{
@@ -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)
+20 −6
Original line number Diff line number Diff line
@@ -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
{
@@ -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