/[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 54 by william, Fri Mar 8 08:51:10 2013 UTC revision 63 by william, Fri Mar 8 14:26:48 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              string log_path = Application.StartupPath;              string log_path = Application.StartupPath;
34              string log_filename = string.Format("{0}.log", typeof(main).Assembly.GetName().Name);              string log_filename = string.Format("{0}.log", typeof(main).Assembly.GetName().Name);
35              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));
36                gLog.SetLogLevel(gLog.LogLevel & ~LogLevel.kLogLevel_VerboseDebug);
37                gLog.ReportProgressEvent += new EventHandler<ReportProgressEventArgs>(gLog_ReportProgress);
38          }          }
39    
40            private void ReportProgress(int progress)
41            {
42                if (this.InvokeRequired)
43                {
44                    try
45                    {
46                        this.Invoke((Action)(delegate { ReportProgress(progress); }));
47                    }
48                    catch { }
49                    return;
50                }
51                progress_status.Value = progress;
52            }
53            private void gLog_ReportProgress(object sender, ReportProgressEventArgs e) { ReportProgress(e.Progress); }
54    
55          StringBuilder log_flusher = new StringBuilder();          StringBuilder log_flusher = new StringBuilder();
56            
57          void Log_OnFlush(object sender, LoggerOnFlushEventArgs e)          void Log_OnFlush(object sender, LoggerOnFlushEventArgs e)
58          {          {
59              OnLogFlush(e.Buffer);              OnLogFlush(e.Buffer);
# Line 52  namespace xmltv_parser Line 71  namespace xmltv_parser
71          void OnLogFlush(string logmessage)          void OnLogFlush(string logmessage)
72          {          {
73              if (this.IsDisposed) { return; }              if (this.IsDisposed) { return; }
             Console.Write(logmessage);  
74              UpdateStatus(logmessage);              UpdateStatus(logmessage);
75              UpdateLogOutput(logmessage);              UpdateLogOutput(logmessage);
76              Application.DoEvents();              Application.DoEvents();
77          }          }
78    
79          void UpdateStatus(string logmessage)          void UpdateStatus(string logmessage)
80          {                      {
81              txtStatus.Text = logmessage.Replace(System.Environment.NewLine, "");              txtStatus.Text = logmessage.Replace(System.Environment.NewLine, "");
82          }          }
83          void UpdateLogOutput(string logmessage)          void UpdateLogOutput(string logmessage)
84          {          {
85              if (txtLog.InvokeRequired)              if (txtLog.InvokeRequired)
86              {              {
87                  txtLog.Invoke((Action)(delegate { UpdateLogOutput(logmessage); }));                  try
88                    {
89                        txtLog.Invoke((Action)(delegate { UpdateLogOutput(logmessage); }));
90                    }
91                    catch { }
92                  return;                  return;
93              }              }
94              txtLog.AppendText(logmessage);              txtLog.AppendText(logmessage);
# Line 91  namespace xmltv_parser Line 113  namespace xmltv_parser
113          {          {
114              //XMLTV.CreateInstance(schedule_xml, new EventHandler<CancelEventArgs>(xmltv_cancelevent));              //XMLTV.CreateInstance(schedule_xml, new EventHandler<CancelEventArgs>(xmltv_cancelevent));
115              XMLTV.CreateInstance(schedule_xml);              XMLTV.CreateInstance(schedule_xml);
116              XMLTV.OnInstanceCreated += new EventHandler<EventArgs>(XMLTV_OnInstanceCreated);                        XMLTV.OnInstanceCreated += new EventHandler<EventArgs>(XMLTV_OnInstanceCreated);
117          }          }
118    
119          void XMLTV_OnInstanceCreated(object sender, EventArgs e)          void XMLTV_OnInstanceCreated(object sender, EventArgs e)
120          {          {
121                ReportProgress(0);
122              var instance = XMLTV.GetInstance();              var instance = XMLTV.GetInstance();
123              if (instance != null)              if (instance != null)
124              {              {
# Line 123  namespace xmltv_parser Line 146  namespace xmltv_parser
146                  this.Invoke((Action)(delegate { CreateControls(); }));                  this.Invoke((Action)(delegate { CreateControls(); }));
147                  return;                  return;
148              }              }
149                List<ListViewItem> items = new List<ListViewItem>();
150              foreach (var program in Programs)              foreach (var program in Programs)
151              {              {
152                  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));
153                    li.Tag = program;
154                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Title));                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Title));
155                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.SubTitle));                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.SubTitle));
156                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Description));                  li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Description));
157                  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")));
158                  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")));
159                  lstPrograms.Items.Add(li);                  //lstPrograms.Items.Add(li);
160                    items.Add(li);
161              }              }
162    
163                lstPrograms.Items.AddRange(items.ToArray());
164          }          }
165    
166          private void mnuItemOpenXMLTVFile_Click(object sender, EventArgs e)          private void mnuItemOpenXMLTVFile_Click(object sender, EventArgs e)
167          {          {
168              try              try
169              {              {
170                    lstPrograms.Items.Clear();
171                  //LoadXMLTVShcedule("20130307_continuum_schedule.xml");                  //LoadXMLTVShcedule("20130307_continuum_schedule.xml");
172                  var result = xmltv_file_chooser.ShowDialog();                  var result = xmltv_file_chooser.ShowDialog();
173                  if (result != DialogResult.OK) return;                  if (result != DialogResult.OK) return;
# Line 148  namespace xmltv_parser Line 177  namespace xmltv_parser
177              }              }
178              catch (Exception ex)              catch (Exception ex)
179              {              {
180                  gLog.Log.Error.WriteLine(ex.ToString());                  gLog.Error.WriteLine(ex.ToString());
181              }              }
182          }          }
183    
# Line 162  namespace xmltv_parser Line 191  namespace xmltv_parser
191                  IXMLTVRuntimeInstance xmltv = null;                  IXMLTVRuntimeInstance xmltv = null;
192                  bool status = false;                  bool status = false;
193                  xmltv = XMLTV.DeSerialize(filename, out status);                  xmltv = XMLTV.DeSerialize(filename, out status);
194                    XMLTV.CreateFromInstance(xmltv, new EventHandler<EventArgs>(XMLTV_OnInstanceCreated));
195                  if (!status)                  if (!status)
196                  {                  {
197                      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);
198                      return;                      return;
199                  }                  }
200                  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();  
201              }              }
202              catch (Exception ex)              catch (Exception ex)
203              {              {
204                  gLog.Log.Error.WriteLine(ex.ToString());                  gLog.Error.WriteLine(ex.ToString());
205              }              }
206          }          }
207    
# Line 192  namespace xmltv_parser Line 221  namespace xmltv_parser
221              }              }
222              catch (Exception ex)              catch (Exception ex)
223              {              {
224                  gLog.Log.Error.WriteLine(ex.ToString());                  gLog.Error.WriteLine(ex.ToString());
225              }              }
226          }          }
227    
# Line 219  namespace xmltv_parser Line 248  namespace xmltv_parser
248              }              }
249          }          }
250    
251            private void mnuItemExit_Click(object sender, EventArgs e)
252            {
253                this.Close();
254            }
255    
256            private void lstPrograms_SelectedIndexChanged(object sender, EventArgs e)
257            {
258                IXMLTVProgram program = null;
259                var item = lstPrograms.SelectedItems[0];
260                int selected_index = lstPrograms.Items.IndexOf(item);
261                program = (item.Tag as IXMLTVProgram);
262                gLog.Debug.WriteLine("Selected ListViewItem at index: {0}", selected_index);
263                if (program == null) { return; }
264                txtStatus.Text = program.ToString();
265                //gLog.Debug.WriteLine(program.ToString());
266    
267            }
268    
269            private void lstPrograms_ColumnClick(object sender, ColumnClickEventArgs e)
270            {
271                if (!(lstPrograms.ListViewItemSorter is ListViewSorter)) return;
272                ListViewSorter Sorter = (ListViewSorter)lstPrograms.ListViewItemSorter;
273                Sorter.LastColumn = Sorter.CurrentColumn;
274                Sorter.CurrentColumn = e.Column;
275                if (Sorter.LastColumn == e.Column)
276                {
277                    if (lstPrograms.Sorting == SortOrder.Ascending) { lstPrograms.Sorting = SortOrder.Descending; }
278                    else { lstPrograms.Sorting = SortOrder.Ascending; }
279                }
280                else { lstPrograms.Sorting = SortOrder.Descending; }
281                lstPrograms.Sort();
282            }
283      }      }
284  }  }
285    

Legend:
Removed from v.54  
changed lines
  Added in v.63

  ViewVC Help
Powered by ViewVC 1.1.22