/[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 131 by william, Wed Mar 13 15:16:59 2013 UTC revision 137 by william, Wed Mar 13 16:59:40 2013 UTC
# Line 200  namespace xmltv_parser Line 200  namespace xmltv_parser
200              catch (Exception ex) { gLog.Error.WriteLine(ex.ToString()); }              catch (Exception ex) { gLog.Error.WriteLine(ex.ToString()); }
201          }          }
202    
203            
204          void CreatControlsFromType(Type data_type)          void CreatControlsFromType(Type data_type)
205          {          {
206  #if USE_DYNAMIC_SORTING_FILTERING_CONTROLS  #if USE_DYNAMIC_SORTING_FILTERING_CONTROLS
# Line 244  namespace xmltv_parser Line 244  namespace xmltv_parser
244          {          {
245              gLog.Warn.WriteLine("No controls have been defined for: {0}", data_type.Name);              gLog.Warn.WriteLine("No controls have been defined for: {0}", data_type.Name);
246          }          }
247          #endregion              #endregion
248    
249    
250          #region Column Sorting Support          #region Column Sorting Support
# Line 257  namespace xmltv_parser Line 257  namespace xmltv_parser
257              dataGrid.DataSource = datasource;              dataGrid.DataSource = datasource;
258              ToggleDescedning();              ToggleDescedning();
259          }          }
260          private void btnSortChannelName_Click(object sender, EventArgs e)  
261            private void SortByColumn(Button button)
262          {          {
263                string column = (button.Tag as string);
264              object data = dataGrid.DataSource;              object data = dataGrid.DataSource;
265              XMLTV.CreateSorterFromDataSource(ref data, Descending, "channelname");              XMLTV.CreateSorterFromDataSource(ref data, Descending, column);
266              dataGrid.DataSource = data;              dataGrid.DataSource = data;
267              ToggleDescedning();              ToggleDescedning();
268          }          }
269    
270            private void btnSortChannelName_Click(object sender, EventArgs e)
271            {
272                Button button = (sender as Button);
273                SortByColumn(button);
274            }
275            private void btnSortChannelNumber_Click(object sender, EventArgs e)
276            {
277                Button button = (sender as Button);
278                SortByColumn(button);
279            }
280          private void btnSortStart_Click(object sender, EventArgs e)          private void btnSortStart_Click(object sender, EventArgs e)
281          {          {
282              object data = dataGrid.DataSource;              Button button = (sender as Button);
283              XMLTV.CreateSorterFromDataSource(ref data, Descending, "start");              SortByColumn(button);
             dataGrid.DataSource = data;  
             ToggleDescedning();  
284          }          }
285          private void btnSortStop_Click(object sender, EventArgs e)          private void btnSortStop_Click(object sender, EventArgs e)
286          {          {
287              object data = dataGrid.DataSource;              Button button = (sender as Button);
288              XMLTV.CreateSorterFromDataSource(ref data, Descending, "stop");              SortByColumn(button);
             dataGrid.DataSource = data;  
             ToggleDescedning();  
289          }          }
290          private void btnSortTitle_Click(object sender, EventArgs e)          private void btnSortTitle_Click(object sender, EventArgs e)
291          {          {
292              object data = dataGrid.DataSource;              Button button = (sender as Button);
293              XMLTV.CreateSorterFromDataSource(ref data, Descending, "title");              SortByColumn(button);
             dataGrid.DataSource = data;  
             ToggleDescedning();  
294          }          }
295          private void btnSortSubTitle_Click(object sender, EventArgs e)          private void btnSortSubTitle_Click(object sender, EventArgs e)
296          {          {
297              object data = dataGrid.DataSource;              Button button = (sender as Button);
298              XMLTV.CreateSorterFromDataSource(ref data, Descending, "subtitle");              SortByColumn(button);
             dataGrid.DataSource = data;  
             ToggleDescedning();  
299          }          }
300          private void btnSortDescription_Click(object sender, EventArgs e)          private void btnSortDescription_Click(object sender, EventArgs e)
301          {          {
302              object data = dataGrid.DataSource;              Button button = (sender as Button);
303              XMLTV.CreateSorterFromDataSource(ref data, Descending, "description");              SortByColumn(button);
             dataGrid.DataSource = data;  
             ToggleDescedning();  
304          }          }
305          #endregion          #endregion
306            private void FilterByColumn(RadioButton button)
307            {
308                Type data_type;
309                string column = (button.Tag as string);
310                object data = XMLTV.CreateBindingSourceFromData(XMLTV.GetPrograms(), out data_type);
311                XMLTV.CreateFilterFromDataSource(ref data, column, txtFilterText.Text);
312                dataGrid.DataSource = data;
313            }
314            private void btnFilter_Click(object sender, EventArgs e)
315            {            
316                if (radio_filter_channelnumber.Checked)
317                {
318                    FilterByColumn(radio_filter_channelnumber);
319                }
320                else if (radio_filter_title.Checked)
321                {
322                    FilterByColumn(radio_filter_title);
323                }
324                else if (radio_filter_subtitle.Checked)
325                {
326                    FilterByColumn(radio_filter_subtitle);
327                }
328                else if (radio_filter_description.Checked)
329                {
330                    FilterByColumn(radio_filter_description);
331                }
332                else if (radio_filter_channelname.Checked)
333                {
334                    FilterByColumn(radio_filter_channelname);
335                }
336                else
337                {
338                    // unknown filter
339                    gLog.Warn.WriteLine("Unkown filter value used.  Was not: channelname, title, subtitle, or description.");
340                }            
341            }
342    
343            private void dataGrid_SelectionChanged(object sender, EventArgs e)
344            {
345                try
346                {
347                    DataGridView dgv = (DataGridView)sender;
348                    //var row = dgv.SelectedRows[0]; // the row that was selected
349                    //var cell = dgv.SelectedCells[0];
350                    DataGridViewRow row = null;
351                    string data = string.Empty;
352                    if (dgv.SelectedCells.Count > 0)
353                    {
354                        var cell = dgv.SelectedCells[0];
355                        row = dgv.Rows[cell.RowIndex];
356                    }
357                    if (dgv.SelectedRows.Count > 0)
358                    {
359                        row = dgv.SelectedRows[0];
360                    }
361                    if (radio_filter_channelnumber.Checked)
362                    {
363                        data = row.Cells[GetColumnIndexForRadioButton(radio_filter_channelnumber)].Value.ToString();
364                    }
365                    else if (radio_filter_title.Checked)
366                    {
367                        data = row.Cells[GetColumnIndexForRadioButton(radio_filter_title)].Value.ToString();
368                    }
369                    else if (radio_filter_subtitle.Checked)
370                    {
371                        data = row.Cells[GetColumnIndexForRadioButton(radio_filter_subtitle)].Value.ToString();
372                    }
373                    else if (radio_filter_description.Checked)
374                    {
375                        data = row.Cells[GetColumnIndexForRadioButton(radio_filter_description)].Value.ToString();
376                    }
377                    else if (radio_filter_channelname.Checked)
378                    {
379                        data = row.Cells[GetColumnIndexForRadioButton(radio_filter_channelname)].Value.ToString();
380                    }
381                    else
382                    {
383                        // unknown filter
384                        gLog.Warn.WriteLine("Unkown filter value used.  Was not: channelname, title, subtitle, or description.");
385                    }
386    
387                    txtFilterText.Text = data;
388                }
389                catch (Exception ex)
390                {
391                    gLog.Verbose.Error.WriteLine(ex.ToString());
392                }
393            }
394    
395    
396            private int GetColumnIndexForRadioButton(RadioButton radio)
397            {
398                return GetColumnIndex(radio.Tag as string);
399            }
400            private int GetColumnIndex(string columnname)
401            {
402                int index =0;
403                Type t = typeof(IProgramDefinition);
404    
405                var props = t.GetProperties();
406                foreach (var prop in props)
407                {
408                    if (prop.Name.ToLower() == columnname.ToLower()) { break; }
409                    index++;
410                }
411                return index;
412            }
413    
414            private void UpdateFilterText(RadioButton radio, DataGridView dgv)
415            {            
416                if (radio.Checked)
417                {
418                    int cellindex = GetColumnIndexForRadioButton(radio);
419                    string t = radio.Tag as string;
420                    DataGridViewRow row = null;
421                    string data = string.Empty;
422                    if (dgv.SelectedCells.Count > 0)
423                    {
424                        var cell = dgv.SelectedCells[0];
425                        row = dgv.Rows[cell.RowIndex];
426                    }
427                    if (dgv.SelectedRows.Count > 0)
428                    {
429                        row = dgv.SelectedRows[0];
430                    }
431                    data = row.Cells[cellindex].Value.ToString();
432                    txtFilterText.Text = data;
433                }
434            }
435            private void radio_filter_channelnumber_CheckedChanged(object sender, EventArgs e)
436            {
437                RadioButton radio = (sender as RadioButton);
438                UpdateFilterText(radio, dataGrid);
439            }
440            private void radio_filter_title_CheckedChanged(object sender, EventArgs e)
441            {
442                RadioButton radio = (sender as RadioButton);
443                UpdateFilterText(radio, dataGrid);
444            }
445    
446            private void radio_filter_subtitle_CheckedChanged(object sender, EventArgs e)
447            {
448                RadioButton radio = (sender as RadioButton);
449                UpdateFilterText(radio, dataGrid);
450            }
451    
452            private void radio_filter_description_CheckedChanged(object sender, EventArgs e)
453            {
454                RadioButton radio = (sender as RadioButton);
455                UpdateFilterText(radio, dataGrid);
456            }
457    
458            private void radio_filter_channelname_CheckedChanged(object sender, EventArgs e)
459            {
460                RadioButton radio = (sender as RadioButton);
461                UpdateFilterText(radio, dataGrid);
462            }
463    
464          
465    
466          
467                
468      }      }
469  }  }

Legend:
Removed from v.131  
changed lines
  Added in v.137

  ViewVC Help
Powered by ViewVC 1.1.22