Cosmos/source/Archive/Cosmos.Kernel.LogTail/Handlers/MessageLogHandler.cs

60 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Cosmos.Kernel.LogTail.Handlers
{
public partial class MessageLogHandler : LogHandler
{
public override string Title
{
get
{
return "Messages";
}
}
public MessageLogHandler()
{
InitializeComponent();
}
public override void Clear()
{
if (InvokeRequired)
{
this.BeginInvoke(new Action(Clear));
return;
}
listView.Items.Clear();
}
private delegate void Handler(LogMessage message);
public override void HandleMessage(LogMessage message)
{
if (InvokeRequired)
{
this.BeginInvoke(new Handler(HandleMessage), message);
return;
}
// We only handle these.
if (message.Name != "Warning" && message.Name != "Error" && message.Name != "Message")
return;
// Create the item.
ListViewItem item = new ListViewItem(new string[] { message["Module"], message["String"] });
item.ImageKey = message.Name.ToLowerInvariant();
// Add it.
listView.Items.Add(item);
}
}
}