74 lines
2.2 KiB
C#
74 lines
2.2 KiB
C#
using Pf2eDataScrapper.Helpers;
|
|
using Pf2eDataScrapper.Processors;
|
|
|
|
namespace Pf2eDataScrapper.Forms;
|
|
|
|
internal partial class ProgressForm : Form
|
|
{
|
|
public ProcessProgress Progress { get; }
|
|
|
|
public ProgressForm(ProcessProgress progress)
|
|
{
|
|
Progress = progress;
|
|
|
|
InitializeComponent();
|
|
|
|
Progress.ProgressUpdate += Progress_ProgressUpdate;
|
|
Progress.ProgressMessage += Progress_ProgressMessage;
|
|
|
|
MessageListView
|
|
.GetType()
|
|
.GetProperty(
|
|
"DoubleBuffered",
|
|
System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic
|
|
)!
|
|
.SetValue(MessageListView, true, null);
|
|
}
|
|
|
|
private void Progress_ProgressUpdate(ProcessProgress sender)
|
|
{
|
|
if (InvokeRequired)
|
|
{
|
|
Invoke(Progress_ProgressUpdate, sender);
|
|
return;
|
|
}
|
|
|
|
ProcessorsLabel.Text = sender.Processors.ToString();
|
|
ProcessorsProgressBar.Maximum = sender.Processors.Count;
|
|
ProcessorsProgressBar.Value = sender.Processors.Current;
|
|
|
|
LocalLabel.Text = sender.Local.ToString();
|
|
LocalProgressBar.Maximum = sender.Local.Count;
|
|
LocalProgressBar.Value = sender.Local.Current;
|
|
|
|
Application.DoEvents();
|
|
}
|
|
|
|
private void Progress_ProgressMessage(ProcessProgress sender, LogLevel level, string message)
|
|
{
|
|
if (InvokeRequired)
|
|
{
|
|
Invoke(Progress_ProgressMessage, sender, level, message);
|
|
return;
|
|
}
|
|
|
|
ListViewItem item = new([DateTime.Now.ToString("HH:mm:ss.fff"), level.ToString(), message])
|
|
{
|
|
BackColor = level switch
|
|
{
|
|
LogLevel.Important => Color.Salmon,
|
|
LogLevel.Warning => Color.Khaki,
|
|
LogLevel.Information => Color.White,
|
|
LogLevel.Progress => Color.LightGray,
|
|
_ => Color.White,
|
|
},
|
|
};
|
|
|
|
MessageListView.Items.Add(item);
|
|
//MessageListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
|
|
//MessageListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
|
|
|
|
Application.DoEvents();
|
|
}
|
|
}
|