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