File size: 4,769 Bytes
e26fba6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using HtmlRenderer.Entities;
using MovieTube.Viewer.Data;
using MovieTube.Client.Scraper;
using MovieTube.Viewer.Properties;
namespace MovieTube.Viewer
{
public partial class LinkViewWidget : UserControl, IWidget
{
public event EventHandler<GalleryItemSelectedEventArgs> ViewSelected;
public event EventHandler<GalleryItemSelectedEventArgs> DownloadClicked;
private MovieLink data;
private ClientDataService dataService = ClientDataService.Single;
#region Constructor
public LinkViewWidget()
{
InitializeComponent();
this.MouseClick += new MouseEventHandler(groupBox1_MouseClick);
}
public LinkViewWidget(MovieLink data)
:this()
{
data.ScrappingStatusChanged -= new EventHandler<EventArgs>(data_ScrappingStatusChanged);
data.ScrappingStatusChanged += new EventHandler<EventArgs>(data_ScrappingStatusChanged);
this.SuspendLayout();
this.data = data;
this.labelHeader.Text = data.DownloadSiteID;
this.labelTitle.Text = data.LinkTitle;
this.pictureBoxNew.Visible = Constants.IsNewLink(data);
data_ScrappingStatusChanged(this, null);
this.ResumeLayout();
}
void data_ScrappingStatusChanged(object sender, EventArgs e)
{
this.InvokeEx(() =>
{
switch(this.data.ScrapState)
{
case LinkScrapState.FullyLoaded:
this.pictureBoxDownload.Image = Resources.download_icon;
break;
case LinkScrapState.Idle:
this.pictureBoxDownload.Image = Resources.question_y;
break;
case LinkScrapState.Scraping:
this.pictureBoxDownload.Image = Resources.ProgressIndicator;
break;
case LinkScrapState.VideoDoesNotExists:
this.pictureBoxDownload.Image = Resources.error_icon;
break;
}
});
}
#endregion
#region Events
private void pictureBoxDownload_Click(object sender, EventArgs e)
{
if (DownloadClicked != null && this.data.ScrapState == LinkScrapState.FullyLoaded)
DownloadClicked(this, new GalleryItemSelectedEventArgs(data));
}
private void labelHeader_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left && ViewSelected != null)
ViewSelected(this, new GalleryItemSelectedEventArgs(data));
}
void groupBox1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left && ViewSelected != null)
ViewSelected(this, new GalleryItemSelectedEventArgs(data));
}
private void contextMenuStrip_Opening(object sender, CancelEventArgs e)
{
UpdateFavourite();
}
private void addToFavouriteToolStripMenuItem_Click(object sender, EventArgs e)
{
//dataService.AddToFavourite(this.data);
UpdateFavourite();
}
private void deleteFromFavouriteToolStripMenuItem_Click(object sender, EventArgs e)
{
// dataService.DeleteFromFavourite(this.data);
UpdateFavourite();
}
private void UpdateFavourite()
{
//var fav = this.dataService.IsFavourite(this.data);
//this.addToFavouriteToolStripMenuItem.Visible = !fav;
//this.deleteFromFavouriteToolStripMenuItem.Visible = fav;
}
public void RefreshView()
{
UpdateFavourite();
}
#endregion
#region Methods
public void SelectView()
{
this.BackColor = this.labelHeader.BackColor = SystemColors.ActiveCaption;
}
public void DeselectView()
{
this.BackColor = this.labelHeader.BackColor = SystemColors.Window;
}
public MovieLink Video
{
get
{
return this.data;
}
}
#endregion
}
}
|