150 lines
4.7 KiB
C#
150 lines
4.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace UniversalEditor.UserInterface
|
|
{
|
|
public enum HostApplicationMessageSeverity
|
|
{
|
|
None = 0,
|
|
Notice = 1,
|
|
Warning = 2,
|
|
Error = 3
|
|
}
|
|
public delegate void HostApplicationMessageModifyingEventHandler(object sender, HostApplicationMessageModifyingEventArgs e);
|
|
public class HostApplicationMessageModifyingEventArgs
|
|
: CancelEventArgs
|
|
{
|
|
public HostApplicationMessageModifyingEventArgs(HostApplicationMessage message)
|
|
{
|
|
mvarMessage = message;
|
|
}
|
|
|
|
private HostApplicationMessage mvarMessage = null;
|
|
public HostApplicationMessage Message { get { return mvarMessage; } }
|
|
}
|
|
public delegate void HostApplicationMessageModifiedEventHandler(object sender, HostApplicationMessageModifiedEventArgs e);
|
|
public class HostApplicationMessageModifiedEventArgs
|
|
: EventArgs
|
|
{
|
|
public HostApplicationMessageModifiedEventArgs(HostApplicationMessage message)
|
|
{
|
|
mvarMessage = message;
|
|
}
|
|
|
|
private HostApplicationMessage mvarMessage = null;
|
|
public HostApplicationMessage Message { get { return mvarMessage; } }
|
|
}
|
|
|
|
public class HostApplicationMessage
|
|
{
|
|
public class HostApplicationMessageCollection
|
|
: System.Collections.ObjectModel.Collection<HostApplicationMessage>
|
|
{
|
|
public event HostApplicationMessageModifyingEventHandler MessageAdding;
|
|
public event HostApplicationMessageModifyingEventHandler MessageRemoving;
|
|
|
|
public event HostApplicationMessageModifiedEventHandler MessageAdded;
|
|
public event HostApplicationMessageModifiedEventHandler MessageRemoved;
|
|
|
|
public HostApplicationMessage Add(HostApplicationMessageSeverity severity, string description, string fileName = null, int? lineNumber = null, int? columnNumber = null, string projectName = null)
|
|
{
|
|
HostApplicationMessage message = new HostApplicationMessage();
|
|
message.Severity = severity;
|
|
message.Description = description;
|
|
message.FileName = fileName;
|
|
message.LineNumber = lineNumber;
|
|
message.ColumnNumber = columnNumber;
|
|
message.ProjectName = projectName;
|
|
Add(message);
|
|
return message;
|
|
}
|
|
|
|
protected virtual void OnMessageAdding(HostApplicationMessageModifyingEventArgs e)
|
|
{
|
|
if (MessageAdding != null)
|
|
{
|
|
MessageAdding(this, e);
|
|
}
|
|
}
|
|
protected virtual void OnMessageAdded(HostApplicationMessageModifiedEventArgs e)
|
|
{
|
|
if (MessageAdded != null)
|
|
{
|
|
MessageAdded(this, e);
|
|
}
|
|
}
|
|
|
|
protected virtual void OnMessageRemoving(HostApplicationMessageModifyingEventArgs e)
|
|
{
|
|
if (MessageRemoving != null)
|
|
{
|
|
MessageRemoving(this, e);
|
|
}
|
|
}
|
|
protected virtual void OnMessageRemoved(HostApplicationMessageModifiedEventArgs e)
|
|
{
|
|
if (MessageRemoved != null)
|
|
{
|
|
MessageRemoved(this, e);
|
|
}
|
|
}
|
|
|
|
public event EventHandler MessagesCleared;
|
|
protected virtual void OnMessagesCleared(EventArgs e)
|
|
{
|
|
if (MessagesCleared != null) MessagesCleared(this, e);
|
|
}
|
|
|
|
protected override void InsertItem(int index, HostApplicationMessage item)
|
|
{
|
|
HostApplicationMessage message = item;
|
|
HostApplicationMessageModifyingEventArgs e = new HostApplicationMessageModifyingEventArgs(message);
|
|
OnMessageAdding(e);
|
|
if (e.Cancel) return;
|
|
|
|
base.InsertItem(index, item);
|
|
|
|
OnMessageAdded(new HostApplicationMessageModifiedEventArgs(message));
|
|
}
|
|
protected override void RemoveItem(int index)
|
|
{
|
|
HostApplicationMessage message = this[index];
|
|
HostApplicationMessageModifyingEventArgs e = new HostApplicationMessageModifyingEventArgs(message);
|
|
OnMessageRemoving(e);
|
|
if (e.Cancel) return;
|
|
|
|
base.RemoveItem(index);
|
|
|
|
OnMessageRemoved(new HostApplicationMessageModifiedEventArgs(message));
|
|
}
|
|
protected override void ClearItems()
|
|
{
|
|
base.ClearItems();
|
|
OnMessagesCleared(EventArgs.Empty);
|
|
}
|
|
}
|
|
|
|
private HostApplicationMessageSeverity mvarSeverity = HostApplicationMessageSeverity.None;
|
|
public HostApplicationMessageSeverity Severity { get { return mvarSeverity; } set { mvarSeverity = value; } }
|
|
|
|
private string mvarDescription = String.Empty;
|
|
public string Description { get { return mvarDescription; } set { mvarDescription = value; } }
|
|
|
|
private string mvarFileName = null;
|
|
public string FileName { get { return mvarFileName; } set { mvarFileName = value; } }
|
|
|
|
private int? mvarLineNumber = null;
|
|
public int? LineNumber { get { return mvarLineNumber; } set { mvarLineNumber = value; } }
|
|
|
|
private int? mvarColumnNumber = null;
|
|
public int? ColumnNumber { get { return mvarColumnNumber; } set { mvarColumnNumber = value; } }
|
|
|
|
private string mvarProjectName = null;
|
|
public string ProjectName { get { return mvarProjectName; } set { mvarProjectName = value; } }
|
|
|
|
}
|
|
}
|