protected void removeSelectedItemsFromPlaylistManagementList() { SortedList <int, int> deleteList; int rowStartPos = -1, prevPos = -1, curPos = -1; IEnumerator selectedItemsEnum = PlaylistManagementListControl.SelectedItems.GetEnumerator(); IEnumerator <KeyValuePair <int, int> > listEnum; deleteList = this.removeSelectedItemsFromMediaItemList(PlaylistManagementListControl); PlaylistObjectMediaList playlistList = (PlaylistObjectMediaList)rfController.playlistBrowser.getCurrentList(); // run through sorted list from the backwards listEnum = deleteList.GetEnumerator(); while (listEnum.MoveNext()) { curPos = listEnum.Current.Value; if (rowStartPos == -1) { rowStartPos = curPos; } if (prevPos != -1 && prevPos - 1 != curPos) { playlistList.removeItem(prevPos, rowStartPos); rowStartPos = curPos; } prevPos = curPos; } playlistList.removeItem(curPos, rowStartPos); }
private void playlistManagementControl_PreviewMouseUpSink(object sender, MouseButtonEventArgs e) { MediaItem mediaInfo; HitTestResult result = VisualTreeHelper.HitTest(PlaylistManagementListControl, e.GetPosition(PlaylistManagementListControl)); if (result == null) { return; } ListBoxItem lbi = findVisualParent <ListBoxItem>(result.VisualHit); if (lbi == null) { return; } mediaInfo = (MediaItem)lbi.Content; if (mediaInfo == null) { return; } PlaylistObjectMediaList mediaList = (PlaylistObjectMediaList)rfController.playlistBrowser.getCurrentList(); if (mediaList.isPlaylistLevel) { ListBoxItem listBoxItem = (ListBoxItem)PlaylistManagementListControl.ItemContainerGenerator.ContainerFromItem(mediaInfo); if (e.GetPosition(PlaylistManagementListControl).X <= 55) { this.showPlaylistManagementListActionContextMenu(mediaInfo, e.GetPosition(PlaylistManagementListControl), listBoxItem); } } }
protected void DragOverPlaylistManagementList(IDropInfo _dropInfo) { MediaItem mediaItem = (MediaItem)_dropInfo.DragInfo.SourceItem; ListBox listBoxTarget, listBoxSource; PlaylistObjectMediaList playlistList = this.currentPlaylistManagementList(); listBoxTarget = (ListBox)_dropInfo.VisualTarget; listBoxSource = (ListBox)_dropInfo.DragInfo.VisualSource; if (playlistList == null || !mediaItem.isAllowedToDropOnTrackList() || !playlistList.isEditable) { _dropInfo.Effects = System.Windows.DragDropEffects.None; return; } this.savePlaylistManagementListPosition(); listBoxTarget = (ListBox)_dropInfo.VisualTarget; listBoxSource = (ListBox)_dropInfo.DragInfo.VisualSource; if (listBoxTarget.Name == listBoxSource.Name) { _dropInfo.Effects = System.Windows.DragDropEffects.Move; } else { _dropInfo.Effects = System.Windows.DragDropEffects.Copy; } }
void playlistManagementContextMenu_actionRenamePlaylistSink(RaumfeldNET.WPFControls.PlaylistManagementContextMenuControl _control, string _playlistObjectId, string _newName) { MediaItem mediaItem = (MediaItem)_control.DataContext; PlaylistObjectMediaList playlistList = (PlaylistObjectMediaList)rfController.playlistBrowser.getCurrentList(); this.setPlaylistManagementListOnUpdate(true); this.savePlaylistManagementListPosition(); this.hidePlaylistManagementActionContextMenu(); // TODO: doesn't work properly //rfController.playlistManagement.renamePlaylist(mediaItem.objectId, _newName); rfController.playlistBrowser.rereadCurrentList(); }
void playlistManagementContextMenu_actionDeletePlaylistSink(RaumfeldNET.WPFControls.PlaylistManagementContextMenuControl _control, string _playlistObjectId) { MediaItem mediaItem = (MediaItem)_control.DataContext; PlaylistObjectMediaList playlistList = (PlaylistObjectMediaList)rfController.playlistBrowser.getCurrentList(); this.setPlaylistManagementListOnUpdate(true); this.hidePlaylistManagementActionContextMenu(); if (MessageBox.Show("Playliste wirklich löschen?", "Playliste löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { rfController.playlistManagement.deletePlaylist(mediaItem.objectId); rfController.playlistBrowser.rereadCurrentList(); } else { this.setPlaylistManagementListOnUpdate(false); } }
protected void removeSelectedPlaylists() { int curPos = -1; SortedList <int, int> deleteList; deleteList = this.removeSelectedItemsFromMediaItemList(PlaylistManagementListControl); IEnumerator <KeyValuePair <int, int> > listEnum; PlaylistObjectMediaList playlistList = (PlaylistObjectMediaList)rfController.playlistBrowser.getCurrentList(); // run through sorted list from the backwards listEnum = deleteList.GetEnumerator(); while (listEnum.MoveNext()) { curPos = listEnum.Current.Value; rfController.playlistManagement.deletePlaylist(playlistList.list[curPos].objectId); } rfController.playlistBrowser.rereadCurrentList(); }
protected void DropOnPlaylistManagementList(IDropInfo _dropInfo) { ListBox listBoxTarget, listBoxSource; PlaylistObjectMediaList playlistList = this.currentPlaylistManagementList(); listBoxTarget = (ListBox)_dropInfo.VisualTarget; listBoxSource = (ListBox)_dropInfo.DragInfo.VisualSource; if (playlistList == null || !playlistList.isEditable) { return; } this.savePlaylistManagementListPosition(); this.setPlaylistManagementListOnUpdate(true); MediaItem mediaItem = (MediaItem)_dropInfo.DragInfo.SourceItem; if (listBoxTarget.Name == listBoxSource.Name) { if (_dropInfo.InsertIndex > mediaItem.listIndex) { playlistList.moveItem(mediaItem.listIndex, _dropInfo.InsertIndex - 1); } else { playlistList.moveItem(mediaItem.listIndex, _dropInfo.InsertIndex); } } else { List <MediaItem> selectedList = this.getSelectedItemsFromMediaItemList(listBoxSource); if (selectedList.Count > 1) { playlistList.addItems(selectedList, _dropInfo.InsertIndex, true); } else { playlistList.addItem(mediaItem, _dropInfo.InsertIndex); } } }
private void playlistManagementList_KeyUpSink(object sender, KeyEventArgs e) { this.savePlaylistManagementListPosition(); if (e.Key == Key.Delete) { this.setPlaylistManagementListOnUpdate(true); PlaylistObjectMediaList playlistList = (PlaylistObjectMediaList)rfController.playlistBrowser.getCurrentList(); if (playlistList.isEditable) { this.removeSelectedItemsFromPlaylistManagementList(); } else { if (MessageBox.Show("Markierte Playlisten wirklich löschen?", "Playlisten löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { this.removeSelectedPlaylists(); } else { this.setPlaylistManagementListOnUpdate(false); } } } }