/*$GeekCN$*/
/*
* 2006.7.6
* :
* 1.
* 2.info.xmlCourseFileData
*
*
* 1.www.microsoft.com27
* 2.attributes.xml893.xml
* 3.attributes.xml893.xml564
* 4.756
* 5.893.xml
* 6.attributes.xml
* 6.5.
* 6.6.
* 7.
*
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Threading;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using IReaper.FileData;
namespace IReaper.Initializer{
public delegate void ProgressHandler(int ProgressPercentage);
public delegate void ExceptionHandler(Exception e);
public delegate void MessageHandler(string Message);
public partial class Initalizer : UserControl, IAsyncTaskContainer
{
Thread task;
public event EventHandler OnInit;
public void Init()
{
try
{
if (OnInit != null)
{
this.OnInit(this, EventArgs.Empty);
}
}
catch (Exception ex)
{
this.SetException(ex);
}
}
public Initalizer()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (this.DesignMode)
return;
CourseFileData.InitlizeAsyncObject();
task = new Thread(delegate()
{
this.Init();
this.Invoke(new ThreadStart(delegate()
{
this.ParentForm.DialogResult = DialogResult.OK;
this.ParentForm.Close();
}));
});
task.IsBackground = true;
task.Start();
}
//
//
public void SetException(Exception e)
{
this.SetMessage(e.Message, MessageType.Error);
}
/// <summary>
///
/// Normal
/// </summary>
/// <param name="Message"></param>
public void SetMessage(string Message)
{
this.SetMessage(Message , MessageType.Normal);
}
/// <summary>
///
/// </summary>
/// <param name="Message"></param>
/// <param name="Type"></param>
private void SetMessage(string Message,MessageType Type)
{
if (this.taskMessageLabel.InvokeRequired)
{
this.taskMessageLabel.Invoke(new ThreadStart(delegate()
{
switch (Type)
{
case MessageType.Normal:
this.taskMessageLabel.ForeColor = Color.Black;
break;
case MessageType.Error:
this.taskMessageLabel.ForeColor = Color.Red;
break;
case MessageType.Warning:
this.taskMessageLabel.ForeColor = Color.YellowGreen;
break;
}
this.taskMessageLabel.Text = Message;
}));
}
}
}
}
|