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);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| } |