using System;
using System.Collections.Generic;
using System.Text;
namespace HDL_ON.Stan
{
///
/// 消息的逻辑
///
public class HdlMessageLogic
{
#region ■ 变量声明___________________________
///
/// 消息的逻辑
///
private static HdlMessageLogic m_Current = null;
///
/// 消息的逻辑
///
public static HdlMessageLogic Current
{
get
{
if (m_Current == null)
{
m_Current = new HdlMessageLogic();;
}
return m_Current;
}
}
#endregion
#region ■ 一般的方法_________________________
///
/// 显示信息框
///
/// 信息类型
/// 信息
/// 单击确认后执行的回调函数
/// 按钮的文本
/// 等待时间,单位为秒,设置确认按钮在多长时间后才能够点击
public void ShowMassage(ShowMsgType msgType, string msg, Action action = null, string buttonText = null, int i_waitTime = -1)
{
//空对象时,不显示
if (string.IsNullOrEmpty(msg))
{
return;
}
HdlThreadLogic.Current.RunMain(() =>
{
var alert = new ShowMsgControl(msgType, msg, buttonText, null, i_waitTime);
if (action != null)
{
alert.ConfirmClickEvent += () =>
{
try
{
//回调函数
action?.Invoke();
}
catch (Exception ex)
{
//出现未知错误,数据丢失
HdlMessageLogic.Current.ShowAppProgramIsError(ex);
}
action = null;
};
}
alert.Show();
});
}
///
/// 显示App程序出现了致命错误
///
///
public void ShowAppProgramIsError(Exception ex)
{
this.ShowMassage(ShowMsgType.Error, "System Error!", () =>
{
string msg = ex.Message + "\r\n";
msg += ex.StackTrace;
var form = new HideOptionFileContentForm();
form.AddForm(string.Empty);
form.SetTextContent(msg);
}, "View Log");
}
#endregion
}
}