94 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Data;
 | 
						|
using System.Drawing;
 | 
						|
using System.Text;
 | 
						|
using System.Windows.Forms;
 | 
						|
 | 
						|
namespace profviewer
 | 
						|
{
 | 
						|
    public partial class Main : Form
 | 
						|
    {
 | 
						|
        private ProfileReport m_Report;
 | 
						|
 | 
						|
        public Main()
 | 
						|
        {
 | 
						|
            InitializeComponent();
 | 
						|
        }
 | 
						|
 | 
						|
        private void menu_file_open_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            DialogResult res;
 | 
						|
            
 | 
						|
            res = dialog_open.ShowDialog(this);
 | 
						|
 | 
						|
            if (res != DialogResult.OK)
 | 
						|
            {
 | 
						|
                return;
 | 
						|
            }
 | 
						|
 | 
						|
            m_Report = null;
 | 
						|
 | 
						|
            try
 | 
						|
            {
 | 
						|
                m_Report = new ProfileReport(dialog_open.FileName);
 | 
						|
            }
 | 
						|
            catch (System.Exception ex)
 | 
						|
            {
 | 
						|
                MessageBox.Show("Error opening or parsing file: " + ex.Message);
 | 
						|
            }
 | 
						|
 | 
						|
            UpdateListView();
 | 
						|
        }
 | 
						|
 | 
						|
        private void UpdateListView()
 | 
						|
        {
 | 
						|
            ProfileItem atom;
 | 
						|
            ListViewItem item;
 | 
						|
 | 
						|
            report_list.Items.Clear();
 | 
						|
            report_info_duration.Text = "";
 | 
						|
            report_info_starttime.Text = "";
 | 
						|
 | 
						|
            report_info_duration.Text = m_Report.Duration.ToString() + " seconds";
 | 
						|
            report_info_starttime.Text = m_Report.StartTime.ToString();
 | 
						|
 | 
						|
            for (int i = 0; i < m_Report.Count; i++)
 | 
						|
            {
 | 
						|
                atom = m_Report.GetItem(i);
 | 
						|
                item = new ListViewItem(ProfileReport.TypeStrings[(int)atom.type]);
 | 
						|
 | 
						|
                item.SubItems.Add(atom.name);
 | 
						|
                item.SubItems.Add(atom.num_calls.ToString());
 | 
						|
                item.SubItems.Add(atom.AverageTime.ToString("F6"));
 | 
						|
                item.SubItems.Add(atom.min_time.ToString("F6"));
 | 
						|
                item.SubItems.Add(atom.max_time.ToString("F6"));
 | 
						|
                item.SubItems.Add(atom.total_time.ToString("F6"));
 | 
						|
 | 
						|
                report_list.Items.Add(item);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private void menu_file_exit_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            Application.Exit();
 | 
						|
        }
 | 
						|
 | 
						|
        private void report_list_ColumnClick(object sender, ColumnClickEventArgs e)
 | 
						|
        {
 | 
						|
            if (e.Column == 1)
 | 
						|
            {
 | 
						|
                report_list.ListViewItemSorter = new LIStringComparator(1);
 | 
						|
            }
 | 
						|
            else if (e.Column == 2)
 | 
						|
            {
 | 
						|
                report_list.ListViewItemSorter = new LIIntComparator(2);
 | 
						|
            }
 | 
						|
            else if (e.Column > 2)
 | 
						|
            {
 | 
						|
                report_list.ListViewItemSorter = new LIDoubleComparator(e.Column);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |