aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/StringToFirstLineConverter.cs
blob: 2fa456054e45cf81f817f28a7fcb666dc59e2304 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;

namespace Tango.MachineStudio.Logging.Converters
{
    public class StringToFirstLineConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return value.ToString().ToLines().First();
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
.Documents; using System.Windows.Input; using System.Windows.Markup; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Tango.Touch.Controls; namespace Tango.PPC.Maintenance.Controls { public class ButtonState : DependencyObject { public Object Value { get { return (Object)GetValue(ValueProperty); } set { SetValue(ValueProperty, value); } } public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(Object), typeof(ButtonState), new PropertyMetadata(null)); public Object Content { get { return (Object)GetValue(ContentProperty); } set { SetValue(ContentProperty, value); } } public static readonly DependencyProperty ContentProperty = DependencyProperty.Register("Content", typeof(Object), typeof(ButtonState), new PropertyMetadata(null)); } [ContentProperty(nameof(States))] public class StateTouchButton : TouchButton { public ObservableCollection<Object> States { get { return (ObservableCollection<Object>)GetValue(StatesProperty); } set { SetValue(StatesProperty, value); } } public static readonly DependencyProperty StatesProperty = DependencyProperty.Register("States", typeof(ObservableCollection<Object>), typeof(StateTouchButton), new PropertyMetadata(null, (d, e) => (d as StateTouchButton).OnStatesChanged())); public Object SelectedState { get { return (Object)GetValue(SelectedStateProperty); } set { SetValue(SelectedStateProperty, value); } } public static readonly DependencyProperty SelectedStateProperty = DependencyProperty.Register("SelectedState", typeof(Object), typeof(StateTouchButton), new PropertyMetadata(null, (d, e) => (d as StateTouchButton).OnSelectedStateChanged())); public StateTouchButton() { States = new ObservableCollection<object>(); } private void OnStatesChanged() { if (States != null) { States.CollectionChanged -= States_CollectionChanged; States.CollectionChanged += States_CollectionChanged; OnSelectedStateChanged(); } } private void OnSelectedStateChanged() { if (SelectedState == null) { Content = null; return; } if (States != null) { var converter = TypeDescriptor.GetConverter(SelectedState.GetType()); var matchingState = States.OfType<ButtonState>().ToList().FirstOrDefault(x => x.Value != null && converter.ConvertFrom(x.Value).Equals(SelectedState)); if (matchingState != null) { Content = matchingState.Content; } else { Content = null; } } else { Content = null; } } private void States_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { OnSelectedStateChanged(); } } }