Files
BeWoPlaner/BeWo/View/Detail/DebugMessageLogView.xaml.cs
Lyndon Jetten 743fa0ef46 Mobilversion:
Unterschriftenfunktionsprototyp soweit fertig
Alle Dateien werden von unserem Server bereitgestellt
Code-Optimierungen
Aufklappbare Elemente haben jetzt ein Pfeilicon

Fat-Client:
SettingsKeys eingeführt
Aufgaben nur noch im Hilfeplan anlegbar
Debug-Ausgabe
2021-03-17 18:44:40 +01:00

132 lines
4.2 KiB
C#

using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows.Media;
using BeWo.Annotations;
namespace BeWo.View.Detail
{
public partial class DebugMessageLogView : INotifyPropertyChanged
{
private ObservableCollection<DebugWindowMessage> _DebugMessageList;
public ObservableCollection<DebugWindowMessage> DebugMessageList
{
get => _DebugMessageList;
set
{
if(!Equals(_DebugMessageList, value))
{
_DebugMessageList = value;
OnPropertyChanged(nameof(DebugMessageList));
}
}
}
public DebugMessageLogView()
{
InitializeComponent();
DebugMessageList = new ObservableCollection<DebugWindowMessage>();
DataContext = this;
}
public void LogMessage(string message)
{
DebugMessageList.Add(new DebugWindowMessage(message));
}
public void LogMessage(string message, DebugWindowMessageColor debugWindowMessageColor)
{
DebugMessageList.Add(new DebugWindowMessage(message, debugWindowMessageColor));
}
public void LogMessage(string message, Color color)
{
DebugMessageList.Add(new DebugWindowMessage(message, color));
}
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
public class DebugWindowMessage
{
public string MessageText { get; }
public DebugWindowMessageColor DebugWindowMessageColor { get; }
public Color CustomColor { get; }
public SolidColorBrush TextColor
{
get
{
switch(DebugWindowMessageColor)
{
case DebugWindowMessageColor.Blue:
return new SolidColorBrush(Colors.DodgerBlue);
case DebugWindowMessageColor.Black:
return new SolidColorBrush(Colors.Black);
case DebugWindowMessageColor.Green:
return new SolidColorBrush(Colors.MediumSeaGreen);
case DebugWindowMessageColor.Orange:
return new SolidColorBrush(Color.FromRgb(255, 90, 0));
case DebugWindowMessageColor.Red:
return new SolidColorBrush(Colors.Red);
case DebugWindowMessageColor.Yellow:
return new SolidColorBrush(Colors.Yellow);
case DebugWindowMessageColor.Purple:
return new SolidColorBrush(Colors.Purple);
case DebugWindowMessageColor.Custom:
return new SolidColorBrush(CustomColor);
default:
return new SolidColorBrush(Colors.Black);
}
}
}
public DebugWindowMessage(string messageText)
{
MessageText = $"{DateTime.Now:dd.MM.yyyy HH:mm:ss}: {messageText}";
DebugWindowMessageColor = DebugWindowMessageColor.Black;
CustomColor = Colors.Black;
}
public DebugWindowMessage(string messageText, DebugWindowMessageColor debugWindowMessageColor)
{
MessageText = $"{DateTime.Now:dd.MM.yyyy HH:mm:ss}: {messageText}";
DebugWindowMessageColor = debugWindowMessageColor;
CustomColor = Colors.Black;
}
public DebugWindowMessage(string messageText, Color customColor)
{
MessageText = $"{DateTime.Now:dd.MM.yyyy HH:mm:ss}: {messageText}";
DebugWindowMessageColor = DebugWindowMessageColor.Custom;
CustomColor = customColor;
}
}
public enum DebugWindowMessageColor
{
Black,
Green,
Yellow,
Red,
Orange,
Blue,
Custom,
Purple
}
}