aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/JobToColumnDefinitionsConverter.cs
blob: 2ce5886c66c5a9884f2a920f83b883bb1dfddad2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using Tango.BL.Entities;

namespace Tango.MachineStudio.Developer.Converters
{
    public class JobToColumnDefinitionsConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            Job job = value as Job;

            List<ColumnDefinition> columns = new List<ColumnDefinition>();

            double totalLength = job.Segments.Sum(x => x.Length);

            foreach (var segment in job.OrderedSegments)
            {
                columns.Add(new ColumnDefinition() { Width = new GridLength(segment.Length / totalLength, GridUnitType.Star) });
            }

            return columns;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
/// Gets or sets the extra message when the notification panel is expanded. /// </summary> public String ExpandedMessage { get { return _expandedMessage; } set { _expandedMessage = value; RaisePropertyChangedAuto(); } } private MessageNotificationItemTypes _messageType; /// <summary> /// Gets or sets the type of the message. /// </summary> public MessageNotificationItemTypes MessageType { get { return _messageType; } set { _messageType = value; RaisePropertyChangedAuto(); } } /// <summary> /// Gets or sets the view type. /// </summary> public override Type ViewType { get { return typeof(MessageNotificationItemView); } } /// <summary> /// Initializes a new instance of the <see cref="MessageNotificationItem"/> class. /// </summary> public MessageNotificationItem() : base() { } /// <summary> /// Initializes a new instance of the <see cref="MessageNotificationItem"/> class. /// </summary> /// <param name="message">The message.</param> /// <param name="expandedMessage">The expanded message.</param> /// <param name="type">The type.</param> /// <param name="pressedAction">The pressed action.</param> public MessageNotificationItem(String message, String expandedMessage, MessageNotificationItemTypes type, Action pressedAction) : this() { Message = message; ExpandedMessage = expandedMessage; MessageType = type; Pressed += (_, __) => pressedAction?.Invoke(); } /// <summary> /// Initializes a new instance of the <see cref="MessageNotificationItem"/> class. /// </summary> /// <param name="message">The message.</param> /// <param name="type">The type.</param> /// <param name="pressedAction">The pressed action.</param> public MessageNotificationItem(String message, MessageNotificationItemTypes type, Action pressedAction) : this(message, null, type, pressedAction) { } /// <summary> /// Initializes a new instance of the <see cref="MessageNotificationItem"/> class. /// </summary> /// <param name="message">The message.</param> /// <param name="expandedMessage">The expanded message.</param> /// <param name="type">The type.</param> public MessageNotificationItem(String message, String expandedMessage, MessageNotificationItemTypes type) : this(message, expandedMessage, type, null) { } /// <summary> /// Initializes a new instance of the <see cref="MessageNotificationItem"/> class. /// </summary> /// <param name="message">The message.</param> /// <param name="type">The type.</param> public MessageNotificationItem(String message, MessageNotificationItemTypes type) : this(message, null, type) { } /// <summary> /// Initializes a new instance of the <see cref="MessageNotificationItem"/> class. /// </summary> /// <param name="message">The message.</param> public MessageNotificationItem(String message) : this(message, MessageNotificationItemTypes.Info) { } } }