diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-03-27 19:51:29 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-03-27 19:51:29 +0300 |
| commit | 953fc4deb9d94a63afe07d66ccf78ff42f54c3bb (patch) | |
| tree | 9bc9eb73130a7f8bdc82f8f64b81476f78123d52 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters | |
| parent | 69fb24f927bd0954a2765c71b09545df3fbba73c (diff) | |
| download | Tango-953fc4deb9d94a63afe07d66ccf78ff42f54c3bb.tar.gz Tango-953fc4deb9d94a63afe07d66ccf78ff42f54c3bb.zip | |
Working on logging module!
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters')
5 files changed, 178 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/DateIsInListToBooleanConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/DateIsInListToBooleanConverter.cs new file mode 100644 index 000000000..cd4f60d4c --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/DateIsInListToBooleanConverter.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using Tango.MachineStudio.Logging.ViewModels; + +namespace Tango.MachineStudio.Logging.Converters +{ + public class DateIsInListToBooleanConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + if (values.Length < 2 || !(values[0] is DateTime) || !(values[1] is IEnumerable<DateTime>)) + return false; + + var date = (DateTime)values[0]; + var dateList = (IEnumerable<DateTime>)values[1]; + + return dateList.ToList().Exists(x => x.ToLocalTime().ToShortDateString() == date.ToLocalTime().ToShortDateString()); + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/EventsToTimeRulerTicksConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/EventsToTimeRulerTicksConverter.cs new file mode 100644 index 000000000..35df1723b --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/EventsToTimeRulerTicksConverter.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using Tango.MachineStudio.Logging.ViewModels; + +namespace Tango.MachineStudio.Logging.Converters +{ + public class EventsToTimeRulerTicksConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + ObservableCollection<TimelineEventGroup> groups = value as ObservableCollection<TimelineEventGroup>; + + DateTime maxTime = groups.SelectMany(x => x.Events).Max(x => x.DateTime); + DateTime minTime = groups.SelectMany(x => x.Events).Min(x => x.DateTime); + + List<DateTime> dates = new List<DateTime>(); + + for (DateTime time = minTime; time < maxTime; time = time.AddSeconds(1)) + { + dates.Add(time); + } + + return dates; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/MachineEventToXConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/MachineEventToXConverter.cs new file mode 100644 index 000000000..193a63ffc --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/MachineEventToXConverter.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using Tango.BL.Entities; +using Tango.MachineStudio.Logging.Helpers; +using Tango.MachineStudio.Logging.ViewModels; + +namespace Tango.MachineStudio.Logging.Converters +{ + public class MachineEventToXConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + if (values.Length == 3) + { + MachinesEvent ev = values[0] as MachinesEvent; + + if (ev != null) + { + ObservableCollection<TimelineEventGroup> groups = values[1] as ObservableCollection<TimelineEventGroup>; + + if (groups.Count > 0) + { + double scale = (double)values[2]; + + DateTime maxTime = groups.SelectMany(x => x.Events).Max(x => x.DateTime); + DateTime minTime = groups.SelectMany(x => x.Events).Min(x => x.DateTime); + + TimeSpan range = maxTime - minTime; + TimeSpan time = maxTime - ev.DateTime; + + time = range - time; + + return TimelineHelper.ConvertTimeToPixels(time, scale); + } + } + } + + return 0.0; + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/SecondsToWidthConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/SecondsToWidthConverter.cs new file mode 100644 index 000000000..66e888cc0 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/SecondsToWidthConverter.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using Tango.MachineStudio.Logging.Helpers; + +namespace Tango.MachineStudio.Logging.Converters +{ + public class SecondsToWidthConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + double scale = (double)value; + double seconds = System.Convert.ToDouble(parameter.ToString()); + + return TimelineHelper.ConvertTimeToPixels(TimeSpan.FromSeconds(seconds), scale); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/TimeSpanToXConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/TimeSpanToXConverter.cs new file mode 100644 index 000000000..4c9f5b569 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/TimeSpanToXConverter.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using Tango.MachineStudio.Logging.Helpers; + +namespace Tango.MachineStudio.Logging.Converters +{ + public class TimeSpanToXConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + if (values.Length == 2) + { + TimeSpan time = (TimeSpan)values[0]; + double scale = (double)values[1]; + + return TimelineHelper.ConvertTimeToPixels(time, scale) + 300; + } + + return null; + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} |
