Loading INAF.Apps.Uwp.SLabDataManager/App.xaml.cs +2 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ using INAF.Apps.Uwp.SLabDataManager.Charts; using INAF.Apps.Uwp.SLabDataManager.Charts.Containers; using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Apps.Uwp.SLabDataManager.Helpers.RemoteOperations; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI.Chart; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI.Chart.ProcessingHelpers; using INAF.Apps.Uwp.SLabDataManager.Helpers.XmlReaders; Loading Loading @@ -140,6 +141,7 @@ namespace INAF.Apps.Uwp.SLabDataManager .AddSingleton<WorkingFoldersContainer>() .AddSingleton<WorkingItemsModel>() /* transient */ .AddTransient<AnimationsHelper>() .AddTransient<AuthenticationManager>() .AddTransient<ConfigReader>() .AddTransient<ContinuumRemovalHelper>() Loading INAF.Apps.Uwp.SLabDataManager/Charts/Containers/SpectraContainerBase.cs +57 −18 Original line number Diff line number Diff line Loading @@ -41,6 +41,13 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers } #region properties private bool areBoundariesChanged; public bool AreBoundariesChanged { get { return areBoundariesChanged; } set { SetProperty(ref areBoundariesChanged, value); } } protected bool isAnySummaryUpdated; public bool IsAnySummaryUpdated { Loading Loading @@ -117,6 +124,32 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers #endregion #endregion #region raise methods public void raiseAreBoundariesChanged() { AreBoundariesChanged = true; areBoundariesChanged = false;// trick to enable for the next added spectrum } public void raiseIsAnySpectrumLoaded() { IsAnySpectrumLoaded = true; isAnySpectrumLoaded = false;// trick to enable for the next added spectrum } public void raiseIsAnySpectrumRemoved() { IsAnySpectrumRemoved = true; isAnySpectrumRemoved = false;// trick to enable for the next added spectrum } public void raiseIsAnySpectrumUpdated() { IsAnySpectrumUpdated = true; isAnySpectrumUpdated = false;// trick to enable for the next added spectrum } #endregion protected async Task<(double xMin, double xMax, double yMin, double yMax)> getSpectrumAxesBoundariesAsync() { List<Task> tasks = new List<Task>(); Loading Loading @@ -180,6 +213,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers public virtual void init() { AreBoundariesChanged = false; IsAnySpectrumLoaded = false; XAxisMajorStepValues = new List<double>(2); Loading @@ -187,24 +221,6 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers XAxisMajorStepValues.Add(Constants.Constants.X_AXIS_MAJOR_STEP_100); } public void raiseIsAnySpectrumLoaded() { IsAnySpectrumLoaded = true; isAnySpectrumLoaded = false;// trick to enable for the next added spectrum } public void raiseIsAnySpectrumRemoved() { IsAnySpectrumRemoved = true; isAnySpectrumRemoved = false;// trick to enable for the next added spectrum } public void raiseIsAnySpectrumUpdated() { IsAnySpectrumUpdated = true; isAnySpectrumUpdated = false;// trick to enable for the next added spectrum } public async Task setBoundariesAsync() { (double xMin, double xMax, double yMin, double yMax) result = await getSpectrumAxesBoundariesAsync(); Loading @@ -218,6 +234,20 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers YAxisTitle = title; } public void moveBoundariesToLeft(double value) { XAxisBoundaries.changeMinValue(value); XAxisBoundaries.changeMaxValue(value); raiseAreBoundariesChanged(); } public void moveBoundariesToRight(double value) { XAxisBoundaries.changeMinValue(value); XAxisBoundaries.changeMaxValue(value); raiseAreBoundariesChanged(); } public async Task updateBoundariesAsync() { (double xMin, double xMax, double yMin, double yMax) result = await getSpectrumAxesBoundariesAsync(); Loading @@ -226,6 +256,15 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers YAxisBoundaries.updateAxisBoundaries(result.yMin, result.yMax); } public void updateBoundaries(double xMin, double xMax, double yMin, double yMax) { XAxisBoundaries.updateAxisBoundaries(xMin, xMax); YAxisBoundaries.updateAxisBoundaries(yMin, yMax); /* warn ChartBaseViewModel about update of chart boundaries */ raiseAreBoundariesChanged(); } public virtual Task addOrUpdateSpectrumAsync(SpectrumModel spectrum) { throw new NotImplementedException(); Loading INAF.Apps.Uwp.SLabDataManager/Converters/Converters.cs +19 −1 Original line number Diff line number Diff line using INAF.Apps.Uwp.SLabDataManager.Charts.Containers; using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Apps.Uwp.SLabDataManager.Models; using INAF.Apps.Uwp.SLabDataManager.ViewModels; using INAF.Libraries.NetStandard.Extensions; using INAF.Libraries.NetStandard.ScienceModels.Extensions; using Microsoft.Toolkit.Mvvm.DependencyInjection; Loading Loading @@ -270,11 +271,28 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters } } public sealed class ZoomIconConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { var viewModel = Ioc.Default.GetRequiredService<ChartViewModel>(); if (viewModel.IsZoomDrawRegionRequested) return "\uE8A3"; else return "\uE71E"; } public object ConvertBack(object value, Type targetType, object parameter, string language) { throw new NotImplementedException(); } } public sealed class XScaleLabelFormatConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { return "{0:G}"; ; return "{0:G}"; } public object ConvertBack(object value, Type targetType, object parameter, string language) Loading INAF.Apps.Uwp.SLabDataManager/Extensions/Extensions.cs +1 −1 Original line number Diff line number Diff line Loading @@ -324,7 +324,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions return string.Join(string.Empty, "color", type.ToString().ToLowerInvariant()); } public static SegmentFitModel ToSegmentFitModel(this INAF.Apps.Uwp.SLabDataManager.Models.Fit.SegmentFitModel segment) public static SegmentFitModel ToSegmentFitModel(this Models.Fit.SegmentFitModel segment) { return new SegmentFitModel(segment.Id, segment.SelectedFitMethod.MethodName, Loading INAF.Apps.Uwp.SLabDataManager/Helpers/UI/AnimationsHelper.cs 0 → 100644 +66 −0 Original line number Diff line number Diff line using System; using Windows.UI.Xaml; using Windows.UI.Xaml.Media.Animation; namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI { public class AnimationsHelper { public static Storyboard GetExpandWidthStoryboard(FrameworkElement frameworkElement, double refWidth) { DoubleAnimation expandWidthAnimation = new DoubleAnimation() { From = frameworkElement.Width, To = refWidth, Duration = TimeSpan.FromMilliseconds(300), EnableDependentAnimation = true, EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseOut } }; Storyboard.SetTarget(expandWidthAnimation, frameworkElement); Storyboard.SetTargetProperty(expandWidthAnimation, "Width"); Storyboard storyboard = new Storyboard(); storyboard.Children.Add(expandWidthAnimation); return storyboard; } public static Storyboard GetShrinkWidthStoryboard(FrameworkElement frameworkElement, double destWidth) { DoubleAnimation shrinkWidthAnimation = new DoubleAnimation() { From = frameworkElement.Width, To = destWidth, Duration = TimeSpan.FromMilliseconds(300), EnableDependentAnimation = true, EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseOut } }; Storyboard.SetTarget(shrinkWidthAnimation, frameworkElement); Storyboard.SetTargetProperty(shrinkWidthAnimation, "Width"); Storyboard storyboard = new Storyboard(); storyboard.Children.Add(shrinkWidthAnimation); return storyboard; } public static Storyboard GetTranslateXAnimation(FrameworkElement frameworkElement, double from) { DoubleAnimation translateAnimation = new DoubleAnimation() { From = from, To = 0, Duration = TimeSpan.FromMilliseconds(300), EnableDependentAnimation = true, EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseIn } }; Storyboard.SetTarget(translateAnimation, frameworkElement); Storyboard.SetTargetProperty(translateAnimation, "(UIElement.RenderTransform).(TranslateTransform.X)"); Storyboard storyboard = new Storyboard(); storyboard.Children.Add(translateAnimation); return storyboard; } } } Loading
INAF.Apps.Uwp.SLabDataManager/App.xaml.cs +2 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ using INAF.Apps.Uwp.SLabDataManager.Charts; using INAF.Apps.Uwp.SLabDataManager.Charts.Containers; using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Apps.Uwp.SLabDataManager.Helpers.RemoteOperations; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI.Chart; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI.Chart.ProcessingHelpers; using INAF.Apps.Uwp.SLabDataManager.Helpers.XmlReaders; Loading Loading @@ -140,6 +141,7 @@ namespace INAF.Apps.Uwp.SLabDataManager .AddSingleton<WorkingFoldersContainer>() .AddSingleton<WorkingItemsModel>() /* transient */ .AddTransient<AnimationsHelper>() .AddTransient<AuthenticationManager>() .AddTransient<ConfigReader>() .AddTransient<ContinuumRemovalHelper>() Loading
INAF.Apps.Uwp.SLabDataManager/Charts/Containers/SpectraContainerBase.cs +57 −18 Original line number Diff line number Diff line Loading @@ -41,6 +41,13 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers } #region properties private bool areBoundariesChanged; public bool AreBoundariesChanged { get { return areBoundariesChanged; } set { SetProperty(ref areBoundariesChanged, value); } } protected bool isAnySummaryUpdated; public bool IsAnySummaryUpdated { Loading Loading @@ -117,6 +124,32 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers #endregion #endregion #region raise methods public void raiseAreBoundariesChanged() { AreBoundariesChanged = true; areBoundariesChanged = false;// trick to enable for the next added spectrum } public void raiseIsAnySpectrumLoaded() { IsAnySpectrumLoaded = true; isAnySpectrumLoaded = false;// trick to enable for the next added spectrum } public void raiseIsAnySpectrumRemoved() { IsAnySpectrumRemoved = true; isAnySpectrumRemoved = false;// trick to enable for the next added spectrum } public void raiseIsAnySpectrumUpdated() { IsAnySpectrumUpdated = true; isAnySpectrumUpdated = false;// trick to enable for the next added spectrum } #endregion protected async Task<(double xMin, double xMax, double yMin, double yMax)> getSpectrumAxesBoundariesAsync() { List<Task> tasks = new List<Task>(); Loading Loading @@ -180,6 +213,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers public virtual void init() { AreBoundariesChanged = false; IsAnySpectrumLoaded = false; XAxisMajorStepValues = new List<double>(2); Loading @@ -187,24 +221,6 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers XAxisMajorStepValues.Add(Constants.Constants.X_AXIS_MAJOR_STEP_100); } public void raiseIsAnySpectrumLoaded() { IsAnySpectrumLoaded = true; isAnySpectrumLoaded = false;// trick to enable for the next added spectrum } public void raiseIsAnySpectrumRemoved() { IsAnySpectrumRemoved = true; isAnySpectrumRemoved = false;// trick to enable for the next added spectrum } public void raiseIsAnySpectrumUpdated() { IsAnySpectrumUpdated = true; isAnySpectrumUpdated = false;// trick to enable for the next added spectrum } public async Task setBoundariesAsync() { (double xMin, double xMax, double yMin, double yMax) result = await getSpectrumAxesBoundariesAsync(); Loading @@ -218,6 +234,20 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers YAxisTitle = title; } public void moveBoundariesToLeft(double value) { XAxisBoundaries.changeMinValue(value); XAxisBoundaries.changeMaxValue(value); raiseAreBoundariesChanged(); } public void moveBoundariesToRight(double value) { XAxisBoundaries.changeMinValue(value); XAxisBoundaries.changeMaxValue(value); raiseAreBoundariesChanged(); } public async Task updateBoundariesAsync() { (double xMin, double xMax, double yMin, double yMax) result = await getSpectrumAxesBoundariesAsync(); Loading @@ -226,6 +256,15 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers YAxisBoundaries.updateAxisBoundaries(result.yMin, result.yMax); } public void updateBoundaries(double xMin, double xMax, double yMin, double yMax) { XAxisBoundaries.updateAxisBoundaries(xMin, xMax); YAxisBoundaries.updateAxisBoundaries(yMin, yMax); /* warn ChartBaseViewModel about update of chart boundaries */ raiseAreBoundariesChanged(); } public virtual Task addOrUpdateSpectrumAsync(SpectrumModel spectrum) { throw new NotImplementedException(); Loading
INAF.Apps.Uwp.SLabDataManager/Converters/Converters.cs +19 −1 Original line number Diff line number Diff line using INAF.Apps.Uwp.SLabDataManager.Charts.Containers; using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Apps.Uwp.SLabDataManager.Models; using INAF.Apps.Uwp.SLabDataManager.ViewModels; using INAF.Libraries.NetStandard.Extensions; using INAF.Libraries.NetStandard.ScienceModels.Extensions; using Microsoft.Toolkit.Mvvm.DependencyInjection; Loading Loading @@ -270,11 +271,28 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters } } public sealed class ZoomIconConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { var viewModel = Ioc.Default.GetRequiredService<ChartViewModel>(); if (viewModel.IsZoomDrawRegionRequested) return "\uE8A3"; else return "\uE71E"; } public object ConvertBack(object value, Type targetType, object parameter, string language) { throw new NotImplementedException(); } } public sealed class XScaleLabelFormatConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { return "{0:G}"; ; return "{0:G}"; } public object ConvertBack(object value, Type targetType, object parameter, string language) Loading
INAF.Apps.Uwp.SLabDataManager/Extensions/Extensions.cs +1 −1 Original line number Diff line number Diff line Loading @@ -324,7 +324,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions return string.Join(string.Empty, "color", type.ToString().ToLowerInvariant()); } public static SegmentFitModel ToSegmentFitModel(this INAF.Apps.Uwp.SLabDataManager.Models.Fit.SegmentFitModel segment) public static SegmentFitModel ToSegmentFitModel(this Models.Fit.SegmentFitModel segment) { return new SegmentFitModel(segment.Id, segment.SelectedFitMethod.MethodName, Loading
INAF.Apps.Uwp.SLabDataManager/Helpers/UI/AnimationsHelper.cs 0 → 100644 +66 −0 Original line number Diff line number Diff line using System; using Windows.UI.Xaml; using Windows.UI.Xaml.Media.Animation; namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI { public class AnimationsHelper { public static Storyboard GetExpandWidthStoryboard(FrameworkElement frameworkElement, double refWidth) { DoubleAnimation expandWidthAnimation = new DoubleAnimation() { From = frameworkElement.Width, To = refWidth, Duration = TimeSpan.FromMilliseconds(300), EnableDependentAnimation = true, EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseOut } }; Storyboard.SetTarget(expandWidthAnimation, frameworkElement); Storyboard.SetTargetProperty(expandWidthAnimation, "Width"); Storyboard storyboard = new Storyboard(); storyboard.Children.Add(expandWidthAnimation); return storyboard; } public static Storyboard GetShrinkWidthStoryboard(FrameworkElement frameworkElement, double destWidth) { DoubleAnimation shrinkWidthAnimation = new DoubleAnimation() { From = frameworkElement.Width, To = destWidth, Duration = TimeSpan.FromMilliseconds(300), EnableDependentAnimation = true, EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseOut } }; Storyboard.SetTarget(shrinkWidthAnimation, frameworkElement); Storyboard.SetTargetProperty(shrinkWidthAnimation, "Width"); Storyboard storyboard = new Storyboard(); storyboard.Children.Add(shrinkWidthAnimation); return storyboard; } public static Storyboard GetTranslateXAnimation(FrameworkElement frameworkElement, double from) { DoubleAnimation translateAnimation = new DoubleAnimation() { From = from, To = 0, Duration = TimeSpan.FromMilliseconds(300), EnableDependentAnimation = true, EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseIn } }; Storyboard.SetTarget(translateAnimation, frameworkElement); Storyboard.SetTargetProperty(translateAnimation, "(UIElement.RenderTransform).(TranslateTransform.X)"); Storyboard storyboard = new Storyboard(); storyboard.Children.Add(translateAnimation); return storyboard; } } }