PageRenderTime 52ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/NfoLibrary/TV/TvEpisode.Treeview.vb

#
Visual Basic | 104 lines | 83 code | 13 blank | 8 comment | 0 complexity | a3b9a6d5c30bd1fe4d1f8fae232f9f9a MD5 | raw file
Possible License(s): GPL-2.0
  1. Imports System.Windows.Forms
  2. Imports Media_Companion
  3. Partial Public Class TvEpisode
  4. Public EpisodeNode As New TreeNode With {.SelectedImageKey = "blank", .ImageKey = "blank"}
  5. Public Sub UpdateTreenode(Optional ByVal scraping As Boolean = False)
  6. Me.EpisodeNode.Tag = Me
  7. Dim episode_count = 1
  8. If Me.SeasonObj IsNot Nothing Then
  9. If Me.SeasonObj.MaxEpisodeCount > 99 Then
  10. episode_count = 3
  11. ElseIf Me.SeasonObj.MaxEpisodeCount > 9 Then
  12. episode_count = 2
  13. End If
  14. End If
  15. If scraping = True Then
  16. For Each EpisodeNode2 As TreeNode In Me.SeasonObj.SeasonNode.Nodes
  17. Try
  18. Dim TempEpisodeNo As String = EpisodeNode2.Text.Substring(0, EpisodeNode2.Text.IndexOf("-") - 1)
  19. Dim TempEpisodeTitle As String = EpisodeNode2.Text.Substring(TempEpisodeNo.Length + 2, EpisodeNode2.Text.Length - (TempEpisodeNo.Length + 2))
  20. TempEpisodeTitle = TempEpisodeTitle.Trim
  21. EpisodeNode2.Text = Utilities.PadNumber(TempEpisodeNo, episode_count) & " - " & TempEpisodeTitle
  22. Catch ex As Exception
  23. End Try
  24. Next
  25. End If
  26. If Me.Title.Value IsNot Nothing Then
  27. Me.EpisodeNode.Name = Me.NfoFilePath ' save nfo path in this node
  28. If Me.Episode.Value IsNot Nothing Then
  29. If IsNumeric(Me.Episode.Value) Then
  30. Dim seasonstring As String = Me.Episode.Value.ToString
  31. Me.EpisodeNode.Text = Utilities.PadNumber(Me.Episode.Value, episode_count) & " - " & Me.Title.Value
  32. Else
  33. Me.EpisodeNode.Text = Utilities.PadNumber(Me.Episode.Value, episode_count) & " - " & Me.Title.Value
  34. End If
  35. Else
  36. Me.EpisodeNode.Text = Me.Title.Value
  37. End If
  38. Else
  39. Me.EpisodeNode.Text = Me.NfoFilePath
  40. End If
  41. If Me.IsMissing Then
  42. Dim ThisDate As Date = If(Media_Companion.Pref.TvMissingEpOffset, Now.AddDays(-1), Now)
  43. ' Phyonics - Fix for issue #208
  44. If String.IsNullOrEmpty(Aired.Value) Then
  45. ' Change the colour to gray
  46. EpisodeNode.ForeColor = Drawing.Color.Gray
  47. Else
  48. Try
  49. ' Is the episode in the future?
  50. If Convert.ToDateTime(Aired.Value) > ThisDate Then
  51. ' Yes, so change its colour to Red
  52. EpisodeNode.ForeColor = Drawing.Color.Red
  53. Else
  54. EpisodeNode.ForeColor = Drawing.Color.Blue
  55. End If
  56. Catch ex As Exception
  57. ' Set the colour to the missing colour
  58. EpisodeNode.ForeColor = Drawing.Color.Blue
  59. End Try
  60. End If
  61. Else
  62. EpisodeNode.ForeColor = Drawing.Color.Black
  63. End If
  64. If Me.FailedLoad Then
  65. EpisodeNode.ForeColor = Drawing.Color.Red
  66. End If
  67. 'If Me.IsAltered Then
  68. ' EpisodeNode.ImageKey = "edit"
  69. ' EpisodeNode.SelectedImageKey = "edit"
  70. If Me.PlayCount.Value <> "0" AndAlso Me.PlayCount.Value <> "" Then
  71. EpisodeNode.ImageKey = "watched"
  72. EpisodeNode.SelectedImageKey = "watched"
  73. Else
  74. EpisodeNode.ImageKey = "blank"
  75. EpisodeNode.SelectedImageKey = "blank"
  76. End If
  77. If Me.EpisodeNode.TreeView Is Nothing Then
  78. If Me.SeasonObj IsNot Nothing Then
  79. Me.SeasonObj.SeasonNode.Nodes.Add(Me.EpisodeNode)
  80. End If
  81. End If
  82. End Sub
  83. Public Overrides Sub Load()
  84. MyBase.Load()
  85. UpdateTreenode()
  86. End Sub
  87. Public Overrides Sub Load(ByVal Path As String)
  88. MyBase.Load(Path)
  89. UpdateTreenode()
  90. End Sub
  91. End Class