public ActionResult Details(int id) { ViewDetails perfume = (from p in db.perfume join b in db.brand on p.id_brand equals b.id where p.id == id select new ViewDetails() { id = p.id, image = p.image, name = p.name, brand = b.name, origin = b.origin, detail = p.details, price = p.price, price_sale = p.price - p.saleoff * p.price / 100 }).FirstOrDefault(); var gallery = (from i in db.image where i.id_perfume == id select i).ToList(); var comments = (from c in db.feedback where c.id_perfume == id select c).ToList(); //var comments = db.feedback.OrderByDescending(c => c.id).ToList().Where(c => c.id_perfume == id); PerfumeAndComment pac = new PerfumeAndComment(); pac.img_gallery = gallery; pac.perfumeView = perfume; pac.comments = comments; return(View(pac)); //return View(perfume); }
private void Remove() { try { ErrorMessage = WarningMessage = InfoMessage = string.Empty; var studentObj = new Student { RollNo = _rollNo, StudentName = _studentname, BranchName = _branchName, RegistrationID = _registrationId }; var Student = ViewDetails.GetStudentDetails(RollNo).FirstOrDefault(); if (RemoveDetails.RemoveStudentDetails(Student)) { InfoMessage = studentObj.ToString(); GetAllStudents(); } else { WarningMessage = "Data is already removed from database."; } } catch (Exception e) { ErrorMessage = e.Message.ToString(); logmsg.Log(LogMessage.LogType.Error, e.ToString()); } }
// GET: perfumes_backend/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ViewDetails perfume = (from p in db.perfume join b in db.brand on p.id_brand equals b.id where p.id == id select new ViewDetails() { id = p.id, image = p.image, name = p.name, brand = b.name, origin = b.origin, detail = p.details, price = p.price, quantity = p.quantity, rating = p.rating, saleoff = p.saleoff, status = p.status, price_sale = p.price - p.saleoff * p.price / 100 }).FirstOrDefault(); if (perfume == null) { return(HttpNotFound()); } return(View(perfume)); }
private void OnOpenRegionView(ViewDetails details) { if (viewManager.ActivateView(details)) { return; } viewManager.OpenView(details); }
public ViewResult DataFriend(int?id) { ViewDetails details = new ViewDetails(); details.Friend = friendStore.friendGetData(id ?? 1); details.Title = "Data from DataFriend<ViewDetails>"; return(View(details)); }
protected void ShowViewController(MvxViewModelRequest request, int cacheKey = -1) { ViewDetails viewDetails = IdentifyView(request); if (viewDetails.category == ViewCategory.Fragment) { ShowFragment(request, cacheKey); } else { ShowActivity(request, cacheKey); } }
private void DoubleClick([NotNull] object sender, [NotNull] MouseButtonEventArgs e) { Debug.ArgumentNotNull(sender, nameof(sender)); Debug.ArgumentNotNull(e, nameof(e)); var command = new ViewDetails(); var context = GetContext(); if (command.CanExecute(context)) { AppHost.Usage.ReportCommand(command, context); command.Execute(context); } }
private void root_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (Parent.EditEnabled) { // Get Point relative to this Control (relative position of the cursor on the control) controlPoint = e.GetPosition(this); var element = sender as FrameworkElement; element.CaptureMouse(); StartDrag(); e.Handled = true; } else { ViewDetails?.Invoke(this); } }
private void GetAllStudents() { try { ErrorMessage = WarningMessage = InfoMessage = string.Empty; Students = ViewDetails.GetAllStudentsDetails(); if (Students.Count < 1) { WarningMessage = "No data found."; } } catch (Exception e) { ErrorMessage = e.Message.ToString(); logmsg.Log(Logger.LogMessage.LogType.Error, e.ToString()); } }
private void GetStudent() { try { ErrorMessage = WarningMessage = InfoMessage = string.Empty; Students = ViewDetails.GetStudentDetails(RollNo); if (Students.Count < 1) { WarningMessage = "No data found with selected roll number."; } } catch (Exception e) { ErrorMessage = e.Message.ToString(); logmsg.Log(LogMessage.LogType.Error, e.ToString()); } }
private MenuItem CreateItem(ViewDetails details) { var result = new MenuItem { Header = details.Name, Command = OpenRegionView, CommandParameter = details }; if (details.ImageUri != null) { var image = new Image { Source = details.ImageUri.CreateSource(), Width = 16, Height = 16 }; result.Icon = image; } return(result); }
public ActionResult Details(int id, PerfumeAndComment model) { var user = db.AspNetUsers.Find(HttpContext.User.Identity.GetUserId()); ViewDetails perfume = (from p in db.perfume join b in db.brand on p.id_brand equals b.id where p.id == id select new ViewDetails() { id = p.id, image = p.image, name = p.name, brand = b.name, origin = b.origin, detail = p.details, price = p.price, price_sale = p.price - p.saleoff * p.price / 100 }).FirstOrDefault(); var gallery = (from i in db.image where i.id_perfume == id select i).ToList(); var comments = (from c in db.feedback where c.id_perfume == id select c).ToList(); model.img_gallery = gallery; model.perfumeView = perfume; model.comments = comments; string query = "Insert into dbo.feedback(subject,message,email,hoten,phone,id_perfume) values('comment','" + model.newcomment.message + "','" + user.Email + "','" + user.FullName + "','" + user.PhoneNumber + "'," + id + ")"; db.Database.ExecuteSqlCommand(query); //model.subject = "comment"; //model.email = user.Email; //model.hoten = user.FullName; //model.phone = user.PhoneNumber; //model.id_perfume = id; //db.feedback.Add(model); //return View(model); ViewBag.number = "100"; return(RedirectToAction("Details")); }
public ViewDetails GetViewDetails(int ProductId, int UserId) { ViewDetails vd = new ViewDetails(); vd.ProductId = ProductId; vd.UserId = UserId; var query1 = from m in Db.ProductVieweds where m.Product.Id == ProductId select m; var query2 = from m in query1 where m.User.Id == UserId select m; ViewedProduct view = null; foreach (var it in query2) { view = it; } if (view != null) { vd.ViewId = view.Id; vd.CurrentEpisode = view.Current; } vd.MaxEpisode = 0; vd.AvatarURI = view.Product.AvatarURI; vd.Year = 0; vd.Names = new List <string>(); vd.Names.Add(view.Product.Name); vd.FromURI = null; vd.PosterFromURI = null; if (view != null) { vd.Reminder = view.Reminder; vd.Condition = view.Condition; vd.Star = view.Star; } foreach (var it in view.Product.MetaData) { switch (it.Type) { case TypeOfMetaProduct.NumberOfEpisode: vd.MaxEpisode = it.Int; break; case TypeOfMetaProduct.Begin: vd.Year = it.Date.Year; break; case TypeOfMetaProduct.Name: vd.Names.Add(it.String); break; case TypeOfMetaProduct.FromURI: vd.FromURI = it.String; break; case TypeOfMetaProduct.PosterFromURI: vd.PosterFromURI = it.String; break; } } return(vd); }
public void ViewDetails_Click(object sender, EventArgs e) { viewDialog = new ViewDetails(); viewDialog.DisplayDetails(detailElement); if (sender is Button) { viewDialog.ShowDialog(); } }
public ActionResult Details(int id) { ViewDetails perfume = (from p in db.perfume join b in db.brand on p.id_brand equals b.id where p.id == id select new ViewDetails() { id = p.id, image = p.image, name = p.name, brand = b.name, origin = b.origin, detail = p.details, price = p.price, status = p.status, price_sale = p.price - p.saleoff * p.price / 100 }).FirstOrDefault(); var gallery = (from i in db.image where i.id_perfume == id select i).ToList(); var comments = (from c in db.feedback where c.id_perfume == id select c).ToList(); var correl = (from c in db.ItemCorrel where c.product_1 == id || c.product_2 == id orderby c.correl descending select c).Take(5).ToArray(); var it = new List <ViewItem>(); foreach (var i in correl) { if (i.product_1 != id) { var itm = (from p in db.perfume where p.id == i.product_1 select new ViewItem() { id = p.id, image = p.image, name = p.name, price = p.price }).FirstOrDefault(); if (itm != null) { it.Add(itm); } } else if (i.product_2 != id) { var itm = (from p in db.perfume where p.id == i.product_2 select new ViewItem() { id = p.id, image = p.image, name = p.name, price = p.price }).FirstOrDefault(); if (itm != null) { it.Add(itm); } } } it.OrderByDescending(i => i.correl).ToArray(); var br = (from i in db.perfume where i.id == id select i).FirstOrDefault(); var br_per = (from p in db.perfume where p.id_brand == br.id_brand select p).ToList(); PerfumeAndComment pac = new PerfumeAndComment(); pac.img_gallery = gallery; pac.perfumeView = perfume; pac.comments = comments; pac.item_correl = new List <ViewItem>(); pac.item_correl = it; pac.it_brand = new List <perfume>(); pac.it_brand = br_per; if (HttpContext.User.Identity != null) { var user_id = HttpContext.User.Identity.GetUserId(); var user_rating = (from p in db.UserRating where p.user_id == user_id && p.product_id == id select p.rating).FirstOrDefault(); pac.your_rating = user_rating; } var all_rating = (from i in db.UserRating where i.product_id == id select i.rating).ToList(); pac.rates = new ProductRatings(); if (all_rating.Count() > 0) { pac.rates.all = all_rating.Count(); foreach (var rating in all_rating) { if (rating == 5) { pac.rates.five++; } if (rating == 4.5) { pac.rates.four_half++; } if (rating == 4) { pac.rates.four++; } if (rating == 3.5) { pac.rates.three_half++; } if (rating == 3) { pac.rates.three++; } if (rating == 2.5) { pac.rates.two_half++; } if (rating == 1) { pac.rates.two++; } if (rating == 1.5) { pac.rates.one_half++; } if (rating == 1) { pac.rates.one++; } if (rating == 0.5) { pac.rates.half++; } } } else { pac.rates.all = 1; } return(View(pac)); }
private void MenuItem_ViewDetails_Click(object sender, RoutedEventArgs e) { ViewDetails?.Invoke(this); }
/// <summary> /// Updates the view and shows a new navigation according to /// SettingsManager.CurrentSelectedNavigation. /// Assumes that the navigation pane already is up-to-date. /// </summary> public void SwitchNavigation() { FrameworkElement content = null; FrameworkElement info = null; ViewDetailsConfig vdc = null; string header, subtitle, tracks, time; header = subtitle = tracks = time = null; RefreshDetails(); switch (SettingsManager.CurrentSelectedNavigation) { case "Now playing": case "Music": case "Playlists": return; case "Video": if (VideoContainer == null) InitVideo(); content = VideoContainer; header = SettingsManager.CurrentTrack == null ? U.T("PlaybackEmpty") : SettingsManager.CurrentTrack.Title; subtitle = SettingsManager.CurrentTrack == null ? "" : SettingsManager.CurrentTrack.Artist; break; case "Visualizer": if (VisualizerContainer == null) { VisualizerContainer = new Platform.Windows7.GUI.Controls.Visualizer(); Grid.SetRow(VisualizerContainer, 1); ContentContainer.Children.Add(VisualizerContainer); UpdateSelectedVisualizer(); } content = VisualizerContainer; info = VisualizerList; header = VisualizerContainer.Title; subtitle = VisualizerContainer.Description; break; case "YouTube": vdc = SettingsManager.YouTubeListConfig; if (YouTubeTracks == null) YouTubeTracks = (YouTubeTracks)InitTrackList(new YouTubeTracks(), vdc); content = YouTubeTracks; header = U.T("NavigationYouTubeTitle"); subtitle = U.T("NavigationYouTubeDescription"); break; case "SoundCloud": vdc = SettingsManager.SoundCloudListConfig; if (SoundCloudTracks == null) SoundCloudTracks = (SoundCloudTracks)InitTrackList(new SoundCloudTracks(), vdc); content = SoundCloudTracks; header = U.T("NavigationSoundCloudTitle"); subtitle = U.T("NavigationSoundCloudDescription"); break; case "Jamendo": vdc = SettingsManager.JamendoListConfig; if (JamendoTracks == null) JamendoTracks = (JamendoTracks)InitTrackList(new JamendoTracks(), vdc); content = JamendoTracks; header = U.T("NavigationJamendoTitle"); subtitle = U.T("NavigationJamendoDescription"); break; case "Library": case "Files": vdc = SettingsManager.FileListConfig; if (FileTracks == null) FileTracks = InitTrackList(new ViewDetails(), vdc, SettingsManager.FileTracks); content = FileTracks; header = U.T("NavigationFilesTitle"); time = U.TimeSpanToLongString(new TimeSpan(0, 0, (int)LibraryTime)); tracks = String.Format(U.T("HeaderTracks"), SettingsManager.FileTracks.Count); break; case "Radio": vdc = SettingsManager.RadioListConfig; if (RadioTracks == null) RadioTracks = InitTrackList(new ViewDetails(), vdc, SettingsManager.RadioTracks); content = RadioTracks; header = U.T("NavigationRadioTitle"); time = ""; tracks = String.Format(U.T("HeaderStations"), SettingsManager.RadioTracks.Count); break; case "Disc": vdc = SettingsManager.DiscListConfig; if (DiscTracks == null) DiscTracks = InitTrackList(new ViewDetails(), vdc); content = DiscTracks; header = U.T("NavigationDiscTitle"); time = U.TimeSpanToLongString(new TimeSpan(0, 0, 0)); tracks = String.Format(U.T("HeaderTracks"), 0); break; case "History": vdc = SettingsManager.HistoryListConfig; if (HistoryTracks == null) HistoryTracks = InitTrackList(new ViewDetails(), vdc, SettingsManager.HistoryTracks); content = HistoryTracks; header = U.T("NavigationHistoryTitle"); time = U.TimeSpanToLongString(new TimeSpan(0, 0, (int)HistoryTime)); tracks = String.Format(U.T("HeaderTracks"), SettingsManager.HistoryTracks.Count); break; case "Queue": vdc = SettingsManager.QueueListConfig; if (QueueTracks == null) QueueTracks = InitTrackList(new ViewDetails(), vdc, SettingsManager.QueueTracks); content = QueueTracks; header = U.T("NavigationQueueTitle"); time = U.TimeSpanToLongString(new TimeSpan(0, 0, (int)QueueTime)); tracks = String.Format(U.T("HeaderTracks"), SettingsManager.QueueTracks.Count); break; // playlist default: foreach (DictionaryEntry pltl in PlaylistTrackLists) { PlaylistData playlist = PlaylistManager.FindPlaylist((string)pltl.Key); if (playlist != null && SettingsManager.CurrentSelectedNavigation == "Playlist:"+playlist.Name) { vdc = playlist.ListConfig; if (pltl.Value == null) PlaylistTrackLists[pltl.Key] = InitTrackList(new ViewDetails(), vdc, playlist.Tracks); content = (ViewDetails)PlaylistTrackLists[pltl.Key]; header = U.T("NavigationPlaylistTitle") + " '" + playlist.Name + "'"; time = U.TimeSpanToLongString(new TimeSpan(0, 0, (int)playlist.Time)); tracks = String.Format(U.T("HeaderTracks"), playlist.Tracks.Count); break; } } break; } // switch back from ControlPanel if needed if (MainContainer.Children.Contains(ControlPanel)) MainContainer.Children.Remove(ControlPanel); PlaybackControls.Search.Box.IsEnabled = true; MusicPanel.Visibility = System.Windows.Visibility.Visible; // set visibility of content elements var contentElements = new FrameworkElement[] { FileTracks, HistoryTracks, QueueTracks, RadioTracks, SoundCloudTracks, JamendoTracks, YouTubeTracks, VideoContainer, VisualizerContainer }; foreach (FrameworkElement e in contentElements) if (e != null) e.Visibility = e == content ? Visibility.Visible : Visibility.Collapsed; foreach (DictionaryEntry pltl in PlaylistTrackLists) if (pltl.Value != null) ((ViewDetails)pltl.Value).Visibility = ((ViewDetails)pltl.Value) == content ? Visibility.Visible : Visibility.Collapsed; // set visibility of info elements var infoElements = new FrameworkElement[] { VisualizerList }; foreach (FrameworkElement e in infoElements) e.Visibility = e == info ? Visibility.Visible : Visibility.Collapsed; // set info text InfoPaneTitle.Text = header; if (subtitle != null) { InfoPaneDuration.Visibility = Visibility.Collapsed; InfoPaneTracks.Visibility = Visibility.Collapsed; InfoPaneSubtitle.Visibility = Visibility.Visible; InfoPaneSubtitle.Text = subtitle; } else { InfoPaneDuration.Visibility = Visibility.Visible; InfoPaneTracks.Visibility = Visibility.Visible; InfoPaneSubtitle.Visibility = Visibility.Collapsed; InfoPaneDuration.Text = time; InfoPaneTracks.Text = tracks; } // set search text if (vdc == null || vdc.Filter == null || vdc.Filter == "" || vdc.Filter == U.T("PlaybackSearch")) PlaybackControls.Search.IsActive = false; else { PlaybackControls.Search.IsActive = true; PlaybackControls.Search.IsConnected = false; PlaybackControls.Search.Text = vdc.Filter; PlaybackControls.Search.IsConnected = true; } RefreshViewButton(); }
/// <summary> /// Reapply the sorting on a tracklist /// </summary> /// <param name="tl">The tracklist to re-sort</param> /// <param name="paths">A list of the paths that was changed</param> private void ResortTracklist(ViewDetails tl, List<string> paths) { if (tl == null) return; bool resort = false; foreach (TrackData t in SettingsManager.FileTracks) { if (paths.Contains(t.Path)) { resort = true; break; } } if (resort) { if (tl.Items.SortDescriptions.Count > 0) { SortDescription sd = tl.Items.SortDescriptions[0]; tl.Items.SortDescriptions.Remove(sd); tl.Items.SortDescriptions.Insert(0, sd); tl.UpdateScrollPosition(); } } }
/// <summary> /// Initializes a track list control. /// </summary> /// <param name="list">The track list to initialize</param> /// <param name="config">The configuration for the list</param> /// <param name="tracks">The track collection</param> /// <returns>The initialized list</returns> private ViewDetails InitTrackList(ViewDetails list, ViewDetailsConfig config, ObservableCollection<TrackData> tracks = null) { list.Config = config; list.ContextMenu = listMenu; list.Visibility = Visibility.Collapsed; list.BorderThickness = new Thickness(0); list.Config.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged); list.MouseDoubleClick += new MouseButtonEventHandler(TrackList_MouseDoubleClick); list.SelectionChanged += new SelectionChangedEventHandler(TrackList_SelectionChanged); list.ContextMenuOpening += new ContextMenuEventHandler(TrackList_ContextMenuOpening); list.GotFocus += new RoutedEventHandler(TrackList_GotFocus); list.MoveItem += new MoveItemEventHandler(TrackList_MoveItem); list.SelectIndices(config.SelectedIndices); if (config == SettingsManager.SoundCloudListConfig) { SoundCloudTracks sct = list as SoundCloudTracks; if (sct != null) sct.Search(config.Filter); list.Primary = "Title"; list.Secondary1 = "Artist"; list.Secondary2 = "Genre"; list.Tertiary1 = "Length"; list.Tertiary2 = "PlayCount"; list.Tertiary1Converter = "Duration"; } else if (config == SettingsManager.YouTubeListConfig) { YouTubeTracks ytt = list as YouTubeTracks; if (ytt != null) ytt.Search(config.Filter); list.Primary = "Title"; list.Secondary1 = "Artist"; list.Secondary2 = "Views"; list.Tertiary1 = "Length"; list.Tertiary2 = "Path"; list.Secondary2Format = U.T("ColumnViews", "Format"); list.Secondary2Converter = "Number"; list.Tertiary1Converter = "Duration"; } else if (config == SettingsManager.JamendoListConfig) { JamendoTracks jt = list as JamendoTracks; if (jt != null) jt.Search(config.Filter); list.Primary = "Title"; list.Secondary1 = "Artist"; list.Secondary2 = "Album"; list.Tertiary1 = "Genre"; list.Tertiary2 = "Length"; list.Tertiary2Converter = "Duration"; } else { if (config == SettingsManager.RadioListConfig) { list.Primary = "Title"; list.Secondary1 = "Genre"; list.Secondary2 = "URL"; list.Tertiary1 = "PlayCount"; list.Tertiary2 = "LastPlayed"; list.Tertiary2Converter = "DateTime"; } else { list.Primary = "Title"; list.Secondary1 = "Artist"; list.Secondary2 = "Album"; list.Tertiary1 = "Genre"; list.Tertiary2 = "Length"; list.Tertiary2Converter = "Duration"; } list.FilterMatch = TrackList_SearchMatch; list.ItemsSource = tracks; list.FilesDropped += new FileDropEventHandler(TrackList_FilesDropped); list.PropertyChanged += new PropertyChangedEventHandler(TrackList_PropertyChanged); if (tracks != null) tracks.CollectionChanged += new NotifyCollectionChangedEventHandler(list.ItemsSource_CollectionChanged); } Grid.SetRow(list, 1); ContentContainer.Children.Add(list); return list; }
/// <summary> /// Creates a playlist track list and navigation items /// </summary> /// <param name="playlist">The data for the playlist to create</param> /// <param name="select">Whether to select the playlist after it has been created</param> private void CreatePlaylist(PlaylistData playlist, bool select = true) { Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate() { // create track list ViewDetails vd = new ViewDetails(); Grid.SetRow(vd, 1); ContentContainer.Children.Add(vd); vd.ItemsSource = playlist.Tracks; playlist.Tracks.CollectionChanged += new NotifyCollectionChangedEventHandler(vd.ItemsSource_CollectionChanged); playlist.Tracks.CollectionChanged += new NotifyCollectionChangedEventHandler(PlaylistTracks_CollectionChanged); if (playlist.ListConfig == null) { ViewDetailsConfig vdc = SettingsManager.CreateListConfig(); SettingsManager.InitViewDetailsConfig(vdc); vdc.HasNumber = true; vdc.Sorts.Add("asc:Title"); vdc.Sorts.Add("asc:Track"); vdc.Sorts.Add("asc:Album"); vdc.Sorts.Add("asc:Artist"); if (SettingsManager.SearchPolicy == SearchPolicy.Global) vdc.Filter = SettingsManager.FileListConfig.Filter; else if (SettingsManager.SearchPolicy == SearchPolicy.Partial && SettingsManager.Playlists.Count > 1) vdc.Filter = SettingsManager.Playlists[0].ListConfig.Filter; playlist.ListConfig = vdc; } if (PlaylistTrackLists.ContainsKey(playlist.Name)) PlaylistTrackLists.Remove(playlist.Name); PlaylistTrackLists.Add(playlist.Name, vd); vd.ContextMenu = listMenu; vd.Visibility = Visibility.Collapsed; vd.BorderThickness = new Thickness(0); vd.ItemsSource = playlist.Tracks; vd.FilterMatch = TrackList_SearchMatch; vd.Config = playlist.ListConfig; vd.SelectionChanged += new SelectionChangedEventHandler(TrackList_SelectionChanged); vd.MouseDoubleClick += new MouseButtonEventHandler(TrackList_MouseDoubleClick); vd.ContextMenuOpening += new ContextMenuEventHandler(TrackList_ContextMenuOpening); vd.GotFocus += new RoutedEventHandler(TrackList_GotFocus); vd.FilesDropped += new FileDropEventHandler(TrackList_FilesDropped); vd.MoveItem += new MoveItemEventHandler(TrackList_MoveItem); playlist.PropertyChanged += new PropertyChangedEventHandler(Playlist_PropertyChanged); vd.Config.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged); // create the item in the navigation tree TreeViewItem item = new TreeViewItem(); item.Selected += NavigationPane.Playlist_Selected; item.Drop += NavigationPane.Playlist_Drop; item.KeyDown += NavigationPlaylist_KeyDown; item.Tag = playlist.Name; item.Padding = new Thickness(8, 0, 0, 0); item.HorizontalAlignment = HorizontalAlignment.Stretch; item.HorizontalContentAlignment = HorizontalAlignment.Stretch; DockPanel dp = new DockPanel(); dp.LastChildFill = false; dp.HorizontalAlignment = HorizontalAlignment.Stretch; Image img = new Image(); img.Source = Utilities.GetIcoImage("pack://application:,,,/Platform/Windows 7/GUI/Images/Icons/DiscAudio.ico", 16, 16); img.Width = 16; img.Height = 16; img.Style = (Style)TryFindResource("HandHover"); dp.Children.Add(img); EditableTextBlock etb = new EditableTextBlock(); etb.EnteredEditMode += new EventHandler(EditableTextBlock_EnteredEditMode); etb.Text = playlist.Name; etb.Margin = new Thickness(5, 0, 5, 0); etb.Edited += NavigationPane.Playlist_Edited; etb.Canceled += NavigationPane.Playlist_Canceled; etb.HandHover = true; dp.Children.Add(etb); Image simg = new Image(); simg.Source = Utilities.GetIcoImage("pack://application:,,,/Platform/Windows 7/GUI/Images/Icons/Search.ico", 16, 16); simg.Width = 16; simg.Height = 16; simg.Margin = new Thickness(5, 0, 5, 0); simg.Visibility = Visibility.Collapsed; DockPanel.SetDock(simg, Dock.Right); dp.Children.Add(simg); item.Header = dp; item.ContextMenuOpening += new ContextMenuEventHandler(NavigationPane.Playlist_ContextMenuOpening); item.ContextMenuClosing += new ContextMenuEventHandler(NavigationPane.Playlist_ContextMenuClosing); item.ContextMenu = NavigationPane.playlistMenu; NavigationPane.Playlists.Items.Insert(NavigationPane.Playlists.Items.Count - 1, item); if (select) item.Focus(); // create list context menu items MenuItem miAdd = new MenuItem(); miAdd.Header = playlist.Name; miAdd.Click += new RoutedEventHandler(listMenuAddToPlaylist_Click); listMenuAddToPlaylist.Visibility = System.Windows.Visibility.Visible; listMenuAddToPlaylist.Items.Insert(listMenuAddToPlaylist.Items.Count - 1, miAdd); MenuItem miDel = new MenuItem(); miDel.Header = playlist.Name; miDel.Click += new RoutedEventHandler(listMenuRemoveFromPlaylist_Click); listMenuRemoveFromPlaylist.Visibility = System.Windows.Visibility.Visible; listMenuRemoveFromPlaylist.Items.Add(miDel); PlaybackControls.Search.AddPlaylist(playlist); NavigationPane.SetSearchIndicator("Playlist:" + playlist.Name, vd.Config); })); }
protected virtual void OnViewDetails(ViewDetailsEventArgs e) { ViewDetails?.Invoke(this, e); }
private void ViewDetailButton_Click(object sender, EventArgs e) { ViewDetails ob = new ViewDetails(x); ob.Show(); }
/// <summary> /// Initializes the GUI /// </summary> private void InitGUI() { // create glass effect RefreshGlassEffect(); #region Events handlers NavigationPane.GotFocus += new RoutedEventHandler(NavigationPane_GotFocus); SettingsManager.QueueTracks.CollectionChanged += new NotifyCollectionChangedEventHandler(QueueTracks_CollectionChanged); SettingsManager.HistoryTracks.CollectionChanged += new NotifyCollectionChangedEventHandler(HistoryTracks_CollectionChanged); SettingsManager.FileTracks.CollectionChanged += new NotifyCollectionChangedEventHandler(LibraryTracks_CollectionChanged); SettingsManager.RadioTracks.CollectionChanged += new NotifyCollectionChangedEventHandler(RadioTracks_CollectionChanged); if (SettingsManager.FileListConfig != null) SettingsManager.FileListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged); if (SettingsManager.YouTubeListConfig != null) SettingsManager.YouTubeListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged); if (SettingsManager.SoundCloudListConfig != null) SettingsManager.SoundCloudListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged); if (SettingsManager.RadioListConfig != null) SettingsManager.RadioListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged); if (SettingsManager.JamendoListConfig != null) SettingsManager.JamendoListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged); if (SettingsManager.QueueListConfig != null) SettingsManager.QueueListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged); if (SettingsManager.HistoryListConfig != null) SettingsManager.HistoryListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged); FilesystemManager.SourceModified += new SourceModifiedEventHandler(FilesystemManager_SourceModified); FilesystemManager.TrackModified += new PropertyChangedEventHandler(FilesystemManager_TrackModified); FilesystemManager.PathModified += new PathModifiedEventHandler(FilesystemManager_PathModified); FilesystemManager.PathRenamed += new RenamedEventHandler(FilesystemManager_PathRenamed); FilesystemManager.ProgressChanged += new ProgressChangedEventHandler(FilesystemManager_ProgressChanged); FilesystemManager.SourceAdded += new SourcesModifiedEventHandler(FilesystemManager_SourceAdded); FilesystemManager.SourceRemoved += new SourcesModifiedEventHandler(FilesystemManager_SourceRemoved); MediaManager.TrackSwitched += new TrackSwitchedEventHandler(MediaManager_TrackSwitched); MediaManager.LoadedTrack += new LoadedTrackDelegate(MediaManager_LoadedTrack); MediaManager.Started += new EventHandler(MediaManager_Started); MediaManager.SearchMatch = TrackList_SearchMatch; UpgradeManager.Checked += new EventHandler(UpgradeManager_Checked); UpgradeManager.ErrorOccured += new Core.ErrorEventHandler(UpgradeManager_ErrorOccured); UpgradeManager.ProgressChanged += new ProgressChangedEventHandler(UpgradeManager_ProgressChanged); UpgradeManager.Upgraded += new EventHandler(UpgradeManager_Upgraded); UpgradeManager.UpgradeFound += new EventHandler(UpgradeManager_UpgradeFound); PluginManager.RefreshVisualizerSelector += new EventHandler(PluginManager_RefreshVisualizerSelector); PluginManager.Installed += new EventHandler<PluginEventArgs>(PluginManager_Installed); PluginManager.Uninstalled += new EventHandler<PluginEventArgs>(PluginManager_Uninstalled); PluginManager.Initialize(); SettingsManager.PropertyChanged += new PropertyChangedWithValuesEventHandler(SettingsManager_PropertyChanged); ServiceManager.ModifyTracks += new EventHandler<ModifiedEventArgs>(ServiceManager_ModifyTracks); NavigationPane.CreateNewPlaylistETB.EnteredEditMode += new EventHandler(EditableTextBlock_EnteredEditMode); SystemEvents.SessionSwitch += new SessionSwitchEventHandler(SystemEvents_SessionSwitch); resortDelay.Interval = new TimeSpan(0, 0, 0, 0, 500); resortDelay.Tick += new EventHandler(ResortDelay_Tick); sourceModifiedDelay.Tick += new EventHandler(SourceModifiedDelay_Tick); sourceModifiedDelay.Interval = new TimeSpan(0, 0, 0, 1, 500); #endregion #region Tray icon // create system tray icon trayIcon = (TaskbarIcon)FindResource("NotifyIcon"); trayIcon.TrayToolTip = new TrayToolTip(this); trayIcon.TrayLeftMouseUp += TaskbarClicked; trayMenu = new ContextMenu(); trayMenuShow = new MenuItem(); trayMenuExit = new MenuItem(); trayMenuPlay = new MenuItem(); trayMenuNext = new MenuItem(); trayMenuPrev = new MenuItem(); trayMenuShow.Header = U.T("TrayShow"); trayMenuExit.Header = U.T("TrayExit"); trayMenuPlay.Header = U.T("TrayPlay"); trayMenuNext.Header = U.T("TrayNext"); trayMenuPrev.Header = U.T("TrayPrev"); trayMenuShow.Click += TrayShow_Clicked; trayMenuExit.Click += TrayExit_Clicked; trayMenuPlay.Click += TrayPlayPause_Clicked; trayMenuNext.Click += TrayNext_Clicked; trayMenuPrev.Click += TrayPrevious_Clicked; trayMenu.Items.Add(trayMenuShow); trayMenu.Items.Add(new Separator()); trayMenu.Items.Add(trayMenuPlay); trayMenu.Items.Add(trayMenuNext); trayMenu.Items.Add(trayMenuPrev); trayMenu.Items.Add(new Separator()); trayMenu.Items.Add(trayMenuExit); trayIcon.ContextMenu = trayMenu; #endregion #region Thumbnail buttons //// create thumbnail buttons taskbarPrev = new ThumbnailToolbarButton(Properties.Resources.Previous, U.T("TaskbarPrev")); taskbarPrev.Enabled = true; taskbarPrev.Click += TaskbarPrevious_Clicked; taskbarPlay = new ThumbnailToolbarButton(Properties.Resources.Play, U.T("TaskbarPlay")); taskbarPlay.Enabled = true; taskbarPlay.Click += TaskbarPlayPause_Clicked; taskbarNext = new ThumbnailToolbarButton(Properties.Resources.Next, U.T("TaskbarNext")); taskbarNext.Enabled = true; taskbarNext.Click += TaskbarNext_Clicked; TaskbarManager.Instance.ThumbnailToolbars.AddButtons( new WindowInteropHelper(this).Handle, new ThumbnailToolbarButton[] { taskbarPrev, taskbarPlay, taskbarNext } ); #endregion #region Jump lists jumpTaskPlay = new JumpTask() { Title = U.T("JumpPlay", "Title"), Arguments = "/play", Description = U.T("JumpPlay", "Description"), IconResourceIndex = -1, ApplicationPath = Assembly.GetEntryAssembly().CodeBase, }; jumpTaskNext = new JumpTask() { Title = U.T("JumpNext", "Title"), Arguments = "/next", Description = U.T("JumpNext", "Description"), IconResourceIndex = -1, ApplicationPath = Assembly.GetEntryAssembly().CodeBase, }; jumpTaskPrev = new JumpTask() { Title = U.T("JumpPrev", "Title"), Arguments = "/previous", Description = U.T("JumpPrev", "Description"), IconResourceIndex = -1, ApplicationPath = Assembly.GetEntryAssembly().CodeBase, }; jumpList = new System.Windows.Shell.JumpList(); jumpList.JumpItems.Add(jumpTaskPlay); jumpList.JumpItems.Add(jumpTaskNext); jumpList.JumpItems.Add(jumpTaskPrev); jumpList.ShowRecentCategory = true; jumpList.ShowFrequentCategory = true; System.Windows.Shell.JumpList.SetJumpList(Application.Current, jumpList); #endregion #region Style Utilities.DefaultAlbumArt = "/Platform/Windows 7/GUI/Images/AlbumArt/Default.jpg"; // rough detection of aero vs classic // you'll se a lot more of these around the code if (System.Windows.Forms.VisualStyles.VisualStyleInformation.DisplayName == "") { // applying classic theme SolidColorBrush scb = (SolidColorBrush)FindResource("DetailsPaneKey"); scb.Color = SystemColors.ControlTextColor; scb = (SolidColorBrush)FindResource("DetailsPaneValue"); scb.Color = SystemColors.ControlTextColor; scb = (SolidColorBrush)FindResource("InfoPaneTitle"); scb.Color = SystemColors.ControlTextColor; scb = (SolidColorBrush)FindResource("InfoPaneText"); scb.Color = SystemColors.ControlTextColor; MainFrame.BorderBrush = SystemColors.ControlBrush; MainFrame.Background = SystemColors.ControlBrush; MainContainer.Background = SystemColors.ControlBrush; InfoPane.Background = SystemColors.WindowBrush; VerticalSplitter.Background = SystemColors.ControlBrush; TopToolbar.Style = null; DetailsPane.Style = (Style)FindResource("ClassicDetailsPaneStyle"); OuterBottomRight.BorderBrush = SystemColors.ControlLightLightBrush; OuterTopLeft.BorderBrush = SystemColors.ControlDarkBrush; InnerBottomRight.BorderBrush = SystemColors.ControlDarkBrush; InnerTopLeft.BorderBrush = SystemColors.ControlLightLightBrush; ControlPanel.AboutTitle.Style = (Style)FindResource("ClassicControlPanelTitleStyle"); ControlPanel.ShortcutTitle.Style = (Style)FindResource("ClassicControlPanelTitleStyle"); ControlPanel.GeneralTitle.Style = (Style)FindResource("ClassicControlPanelTitleStyle"); Utilities.DefaultAlbumArt = "/Platform/Windows 7/GUI/Images/AlbumArt/Classic.jpg"; } #endregion VisualizerList.ItemsSource = PluginManager.VisualizerSelector; LibraryTime = 0; QueueTime = 0; HistoryTime = 0; if (SettingsManager.FileTracks != null) foreach (TrackData track in SettingsManager.FileTracks) LibraryTime += track.Length; if (SettingsManager.QueueTracks != null) foreach (TrackData track in SettingsManager.QueueTracks) QueueTime += track.Length; if (SettingsManager.HistoryTracks != null) foreach (TrackData track in SettingsManager.HistoryTracks) HistoryTime += track.Length; NavigationColumn.Width = new GridLength(SettingsManager.NavigationPaneWidth); double h = SettingsManager.DetailsPaneHeight; DetailsRow.Height = new GridLength(h); UpdateVisibility("menubar"); UpdateVisibility("details"); RefreshStrings(); U.ListenForShortcut = true; FilesystemManager.AddSystemFolders(true); #region Create playlists foreach (PlaylistData playlist in SettingsManager.Playlists) CreatePlaylist(playlist, false); PlaylistManager.PlaylistModified += new ModifiedEventHandler(PlaylistManager_PlaylistModified); PlaylistManager.PlaylistRenamed += new RenamedEventHandler(PlaylistManager_PlaylistRenamed); if (SettingsManager.CurrentSelectedNavigation == "YouTube") NavigationPane.Youtube.Focus(); else if (SettingsManager.CurrentSelectedNavigation == "SoundCloud") NavigationPane.SoundCloud.Focus(); else if (SettingsManager.CurrentSelectedNavigation == "Radio") NavigationPane.Radio.Focus(); else if (SettingsManager.CurrentSelectedNavigation == "Jamendo") NavigationPane.Jamendo.Focus(); else if (SettingsManager.CurrentSelectedNavigation == "Queue") NavigationPane.Queue.Focus(); else if (SettingsManager.CurrentSelectedNavigation == "History") NavigationPane.History.Focus(); else if (SettingsManager.CurrentSelectedNavigation == "Video") NavigationPane.Video.Focus(); else if (SettingsManager.CurrentSelectedNavigation == "Visualizer") NavigationPane.Visualizer.Focus(); else if (!SettingsManager.CurrentSelectedNavigation.StartsWith("Playlist:")) NavigationPane.Files.Focus(); else { string name = SettingsManager.CurrentSelectedNavigation.Split(new[] { ':' }, 2)[1]; foreach (TreeViewItem tvi in NavigationPane.Playlists.Items) { if ((string)tvi.Tag == name) { tvi.Focus(); break; } } } #endregion #region Load track lists U.L(LogLevel.Debug, "main", "Initialize track lists"); switch (SettingsManager.CurrentActiveNavigation) { case "Queue": if (FileTracks == null) FileTracks = InitTrackList(new ViewDetails(), SettingsManager.FileListConfig, SettingsManager.FileTracks); break; case "Radio": if (RadioTracks == null) RadioTracks = InitTrackList(new ViewDetails(), SettingsManager.RadioListConfig, SettingsManager.RadioTracks); break; case "YouTube": if (YouTubeTracks == null) YouTubeTracks = (YouTubeTracks)InitTrackList(new YouTubeTracks(), SettingsManager.YouTubeListConfig); break; case "SoundCloud": if (SoundCloudTracks == null) SoundCloudTracks = (SoundCloudTracks)InitTrackList(new SoundCloudTracks(), SettingsManager.SoundCloudListConfig); break; case "Jamendo": if (JamendoTracks == null) JamendoTracks = (JamendoTracks)InitTrackList(new JamendoTracks(), SettingsManager.JamendoListConfig); break; default: if (SettingsManager.CurrentActiveNavigation.StartsWith("Playlist:")) { string pname = SettingsManager.CurrentActiveNavigation.Split(new[] { ':' }, 2)[1]; PlaylistData p = PlaylistManager.FindPlaylist(pname); if (p != null) { ViewDetails vd = (ViewDetails)PlaylistTrackLists[pname]; if (vd == null) vd = InitTrackList(new ViewDetails(), p.ListConfig, p.Tracks); } } break; } if (FileTracks == null) FileTracks = InitTrackList(new ViewDetails(), SettingsManager.FileListConfig, SettingsManager.FileTracks); #endregion #region File association prompt if (SettingsManager.FirstRun) { Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate() { // Show welcome dialog TaskDialogResult tdr = Welcome.Show(new WindowInteropHelper(this).Handle); Associations a = new Associations(); ProcessStartInfo assProcInfo = new ProcessStartInfo(); assProcInfo.FileName = U.FullPath; assProcInfo.Verb = "runas"; string assProcArgs = "--associate {0}"; try { switch (tdr) { case TaskDialogResult.Yes: assProcInfo.Arguments = String.Format(assProcArgs, string.Join(",", a.FullFileList.ToArray())); Process.Start(assProcInfo); break; case TaskDialogResult.CustomButtonClicked: a.ShowDialog(); assProcInfo.Arguments = String.Format(assProcArgs, string.Join(",", a.FileList.ToArray())); Process.Start(assProcInfo); break; case TaskDialogResult.Cancel: break; } } catch (Exception e) { U.L(LogLevel.Warning, "MAIN", "Could not set associations: " + e.Message); } })); SettingsManager.FirstRun = false; } #endregion #region Commented //System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.PerUserRoamingAndLocal); #endregion }