/[xmltv_parser]/trunk/xmltv_parser/main.cs
ViewVC logotype

Diff of /trunk/xmltv_parser/main.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 55 by william, Fri Mar 8 10:19:32 2013 UTC revision 62 by william, Fri Mar 8 14:24:17 2013 UTC
# Line 28  namespace xmltv_parser Line 28  namespace xmltv_parser
28          public main()          public main()
29          {          {
30              InitializeComponent();              InitializeComponent();
31                ListViewSorter Sorter = new ListViewSorter();
32                lstPrograms.ListViewItemSorter = Sorter;
33    
34              string log_path = Application.StartupPath;              string log_path = Application.StartupPath;
35              string log_filename = string.Format("{0}.log", typeof(main).Assembly.GetName().Name);              string log_filename = string.Format("{0}.log", typeof(main).Assembly.GetName().Name);
36              gLog.CreateLog(string.Format(@"{0}\{1}", log_path, log_filename), false, LogLevel.kLogLevel_All, new EventHandler<LoggerOnFlushEventArgs>(Log_OnFlush));              gLog.CreateLog(string.Format(@"{0}\{1}", log_path, log_filename), false, LogLevel.kLogLevel_All_NoProgress, new EventHandler<LoggerOnFlushEventArgs>(Log_OnFlush));
37                gLog.SetLogLevel(gLog.LogLevel & ~LogLevel.kLogLevel_VerboseDebug);
38                gLog.ReportProgressEvent += new EventHandler<ReportProgressEventArgs>(gLog_ReportProgress);
39          }          }
40    
41            private void ReportProgress(int progress)
42            {
43                if (this.InvokeRequired)
44                {
45                    try
46                    {
47                        this.Invoke((Action)(delegate { ReportProgress(progress); }));
48                    }
49                    catch { }
50                    return;
51                }
52                progress_status.Value = progress;
53            }
54            private void gLog_ReportProgress(object sender, ReportProgressEventArgs e) { ReportProgress(e.Progress); }
55    
56          StringBuilder log_flusher = new StringBuilder();          StringBuilder log_flusher = new StringBuilder();
57            
58          void Log_OnFlush(object sender, LoggerOnFlushEventArgs e)          void Log_OnFlush(object sender, LoggerOnFlushEventArgs e)
59          {          {
60              OnLogFlush(e.Buffer);              OnLogFlush(e.Buffer);
# Line 58  namespace xmltv_parser Line 78  namespace xmltv_parser
78          }          }
79    
80          void UpdateStatus(string logmessage)          void UpdateStatus(string logmessage)
81          {                      {
82              txtStatus.Text = logmessage.Replace(System.Environment.NewLine, "");              txtStatus.Text = logmessage.Replace(System.Environment.NewLine, "");
83          }          }
84          void UpdateLogOutput(string logmessage)          void UpdateLogOutput(string logmessage)
85          {          {
86              if (txtLog.InvokeRequired)              if (txtLog.InvokeRequired)
87              {              {
88                  txtLog.Invoke((Action)(delegate { UpdateLogOutput(logmessage); }));                  try
89                    {
90                        txtLog.Invoke((Action)(delegate { UpdateLogOutput(logmessage); }));
91                    }
92                    catch { }
93                  return;                  return;
94              }              }
95              txtLog.AppendText(logmessage);              txtLog.AppendText(logmessage);
# Line 90  namespace xmltv_parser Line 114  namespace xmltv_parser
114          {          {
115              //XMLTV.CreateInstance(schedule_xml, new EventHandler<CancelEventArgs>(xmltv_cancelevent));              //XMLTV.CreateInstance(schedule_xml, new EventHandler<CancelEventArgs>(xmltv_cancelevent));
116              XMLTV.CreateInstance(schedule_xml);              XMLTV.CreateInstance(schedule_xml);
117              XMLTV.OnInstanceCreated += new EventHandler<EventArgs>(XMLTV_OnInstanceCreated);                        XMLTV.OnInstanceCreated += new EventHandler<EventArgs>(XMLTV_OnInstanceCreated);
118          }          }
119    
120          void XMLTV_OnInstanceCreated(object sender, EventArgs e)          void XMLTV_OnInstanceCreated(object sender, EventArgs e)
121          {          {
122                ReportProgress(0);
123              var instance = XMLTV.GetInstance();              var instance = XMLTV.GetInstance();
124              if (instance != null)              if (instance != null)
125              {              {
# Line 122  namespace xmltv_parser Line 147  namespace xmltv_parser
147                  this.Invoke((Action)(delegate { CreateControls(); }));                  this.Invoke((Action)(delegate { CreateControls(); }));
148                  return;                  return;
149              }              }
150                List<ListViewItem> items = new List<ListViewItem>();
151              foreach (var program in Programs)              foreach (var program in Programs)
152              {              {
153                  ListViewItem li = new ListViewItem(string.Format("{0} {1}", program.Channel.Number, program.Channel.CallSign));                  ListViewItem li = new ListViewItem(string.Format("{0} {1}", program.Channel.Number, program.Channel.CallSign));
154                    li.Tag = program;
155                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Title));                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Title));
156                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.SubTitle));                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.SubTitle));
157                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Description));                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Description));
158                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Start.ToString("yyyy/MM/dd hh:mm tt")));                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Start.ToString("yyyy/MM/dd hh:mm tt")));
159                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Stop.ToString("yyyy/MM/dd hh:mm tt")));                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Stop.ToString("yyyy/MM/dd hh:mm tt")));
160                  lstPrograms.Items.Add(li);                  //lstPrograms.Items.Add(li);
161                    items.Add(li);
162              }              }
163    
164                lstPrograms.Items.AddRange(items.ToArray());
165          }          }
166    
167          private void mnuItemOpenXMLTVFile_Click(object sender, EventArgs e)          private void mnuItemOpenXMLTVFile_Click(object sender, EventArgs e)
168          {          {
169              try              try
170              {              {
171                    lstPrograms.Items.Clear();
172                  //LoadXMLTVShcedule("20130307_continuum_schedule.xml");                  //LoadXMLTVShcedule("20130307_continuum_schedule.xml");
173                  var result = xmltv_file_chooser.ShowDialog();                  var result = xmltv_file_chooser.ShowDialog();
174                  if (result != DialogResult.OK) return;                  if (result != DialogResult.OK) return;
# Line 161  namespace xmltv_parser Line 192  namespace xmltv_parser
192                  IXMLTVRuntimeInstance xmltv = null;                  IXMLTVRuntimeInstance xmltv = null;
193                  bool status = false;                  bool status = false;
194                  xmltv = XMLTV.DeSerialize(filename, out status);                  xmltv = XMLTV.DeSerialize(filename, out status);
195                    XMLTV.CreateFromInstance(xmltv, new EventHandler<EventArgs>(XMLTV_OnInstanceCreated));
196                  if (!status)                  if (!status)
197                  {                  {
198                      MessageBox.Show("Failed to load data - check log", "Failed to load data", MessageBoxButtons.OK, MessageBoxIcon.Error);                      MessageBox.Show("Failed to load data - check log", "Failed to load data", MessageBoxButtons.OK, MessageBoxIcon.Error);
199                      return;                      return;
200                  }                  }
201                  MessageBox.Show("Successfully loaded data", "Successfully loaded data", MessageBoxButtons.OK, MessageBoxIcon.Information);                  MessageBox.Show("Successfully loaded data", "Successfully loaded data", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 CreateControls();  
202              }              }
203              catch (Exception ex)              catch (Exception ex)
204              {              {
# Line 218  namespace xmltv_parser Line 249  namespace xmltv_parser
249              }              }
250          }          }
251    
252            private void mnuItemExit_Click(object sender, EventArgs e)
253            {
254                this.Close();
255            }
256    
257            private void lstPrograms_SelectedIndexChanged(object sender, EventArgs e)
258            {
259                IXMLTVProgram program = null;
260                var item = lstPrograms.SelectedItems[0];
261                int selected_index = lstPrograms.Items.IndexOf(item);
262                program = (item.Tag as IXMLTVProgram);
263                gLog.Debug.WriteLine("Selected ListViewItem at index: {0}", selected_index);
264                if (program == null) { return; }
265                txtStatus.Text = program.ToString();
266                //gLog.Debug.WriteLine(program.ToString());
267    
268            }
269    
270            private void lstPrograms_ColumnClick(object sender, ColumnClickEventArgs e)
271            {
272                if (!(lstPrograms.ListViewItemSorter is ListViewSorter)) return;
273                ListViewSorter Sorter = (ListViewSorter)lstPrograms.ListViewItemSorter;
274                Sorter.LastColumn = Sorter.CurrentColumn;
275                Sorter.CurrentColumn = e.Column;
276                if (Sorter.LastColumn == e.Column)
277                {
278                    if (lstPrograms.Sorting == SortOrder.Ascending) { lstPrograms.Sorting = SortOrder.Descending; }
279                    else { lstPrograms.Sorting = SortOrder.Ascending; }
280                }
281                else { lstPrograms.Sorting = SortOrder.Descending; }
282                lstPrograms.Sort();
283            }
284      }      }
285  }  }
286    

Legend:
Removed from v.55  
changed lines
  Added in v.62

  ViewVC Help
Powered by ViewVC 1.1.22