|
using System.ComponentModel.Composition;
using System.Windows;
using MediaAssistant.Controls.Dialog;
using MediaAssistant.Data;
using MediaAssistant.Helper;
using MefBasic;
using MediaAssistant.DAL;
namespace MediaAssistant.Controls.PlaylistSelector
{
[Export]
[PartCreationPolicy(CreationPolicy.NonShared)]
public class PlaylistSelectorPresenter : APresenter<PlaylistSelectorView>, IDialogContentPresenter
{
[ImportingConstructor]
public PlaylistSelectorPresenter(PlaylistSelectorView view) : base(view)
{
}
[Import]
public LibraryDataSource DataSource
{
get { return (LibraryDataSource)GetValue(DataSourceProperty); }
set { SetValue(DataSourceProperty, value); }
}
public static readonly DependencyProperty DataSourceProperty =
DependencyProperty.Register("DataSource", typeof(LibraryDataSource), typeof(PlaylistSelectorPresenter), new UIPropertyMetadata(null, OnPropertyChanged));
protected override void DoPropertyChanged(DependencyPropertyChangedEventArgs e)
{
switch (e.Property.Name)
{
case "DataSource":
if (string.IsNullOrWhiteSpace(RegistryHelper.LastSelectedPlaylist) == false && DataSource.IsPlaylistExists(RegistryHelper.LastSelectedPlaylist))
{
PlaylistTitle = RegistryHelper.LastSelectedPlaylist;
}
else
PlaylistTitle = DatabaseManager.Instance.GetNowPlayingPlaylist().Title;
break;
}
}
public string PlaylistTitle
{
get { return (string)GetValue(PlaylistTitleProperty); }
set { SetValue(PlaylistTitleProperty, value); }
}
public static readonly DependencyProperty PlaylistTitleProperty =
DependencyProperty.Register("PlaylistTitle", typeof(string), typeof(PlaylistSelectorPresenter), new UIPropertyMetadata(null));
#region Implementation of IDialogContentPresenter
public bool OnClosing(DialogResult dialogResult)
{
if (dialogResult == DialogResult.Cancel)
return true;
if (string.IsNullOrWhiteSpace(PlaylistTitle))
return false;
Playlist = !DataSource.IsPlaylistExists(PlaylistTitle) ? DataSource.CreatePlaylist(PlaylistTitle) : DataSource.GetPlaylist(PlaylistTitle);
RegistryHelper.LastSelectedPlaylist = Playlist.Title;
return true;
}
public LibraryItem Playlist { get; set; }
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.