Files
mRemoteNG/mRemoteV1/Messages/MessageWriters/NotificationPanelMessageWriter.cs
2019-02-24 19:26:50 -05:00

38 lines
1.2 KiB
C#

using System;
using System.Windows.Forms;
using mRemoteNG.UI.Controls;
using mRemoteNG.UI.Window;
namespace mRemoteNG.Messages.MessageWriters
{
public class NotificationPanelMessageWriter : IMessageWriter
{
private readonly ErrorAndInfoWindow _messageWindow;
public NotificationPanelMessageWriter(ErrorAndInfoWindow messageWindow)
{
if (messageWindow == null)
throw new ArgumentNullException(nameof(messageWindow));
_messageWindow = messageWindow;
}
public void Write(IMessage message)
{
var lvItem = new NotificationMessageListViewItem(message);
AddToList(lvItem);
}
private void AddToList(ListViewItem lvItem)
{
if (_messageWindow.lvErrorCollector.InvokeRequired)
_messageWindow.lvErrorCollector.Invoke((MethodInvoker)(() => AddToList(lvItem)));
else
{
_messageWindow.lvErrorCollector.Items.Insert(0, lvItem);
if (_messageWindow.lvErrorCollector.Items.Count > 0)
_messageWindow.pbError.Visible = true;
}
}
}
}