private void ButtonMultiLineEdit_Click(object sender, RoutedEventArgs e) { DataGridRow row = VisualTreeExtensions.FindParent <DataGridRow>(e.OriginalSource as DependencyObject); DataGridCell cell = VisualTreeExtensions.FindParent <DataGridCell>(e.OriginalSource as DependencyObject); Field field = (Field)cell.Column.GetValue(Big3.Hitbase.Controls.DataGridExtensions.FieldProperty); AlbumItem album = row.DataContext as AlbumItem; WindowMultiline wm = new WindowMultiline(); wm.Owner = Window.GetWindow(this); object textValue = album.Comment; if (textValue != null) { wm.Text = textValue.ToString(); } wm.Title = DataBase.GetNameOfField(field); if (wm.ShowDialog() == true) { // Im Moment hier nur Read-Only /* cell.IsEditing = true; * track.SetValueToField(field, wm.Text); * cell.IsEditing = false;*/ } }
private bool FilterRow(object row) { if (string.IsNullOrEmpty(FullTextSearch)) { return(true); } string filterString = FullTextSearch.ToLower(); bool found = false; AlbumItem cdItem = row as AlbumItem; foreach (object value in cdItem.Items) { if (value != null) { if (CatalogView.CompareString(value.ToString(), filterString)) { found = true; break; } } } return(found); }
void bwCDList_DoWork(object sender, DoWorkEventArgs e) { SafeObservableCollection <AlbumItem> items = new SafeObservableCollection <AlbumItem>(); int count = 0; Big3.Hitbase.DataBaseEngine.Condition searchCondition = Big3.Hitbase.DataBaseEngine.Condition.Combine(Condition, ConditionFromTree); using (DataBaseView view = AlbumView.CreateView(this.DataBase, this.CdListFields.GetFields(), new SortFieldCollection(), 0, searchCondition)) { object[] values; while ((values = view.Read()) != null) { AlbumItem newItem = new AlbumItem(); newItem.ID = (int)values[0]; newItem.Items = new object[values.Length - 1]; FillRowValues(newItem, values); items.AddItemFromThread(newItem); count++; } } e.Result = items; }
private void UpdateAlbumItem(AlbumItem albumItem) { DataBaseView view = AlbumView.CreateView(DataBase, CdListFields.GetFields(), CdListSort, albumItem.ID); object[] values = view.Read(); FillRowValues(albumItem, values); ListCollectionView lcv = this.dataGrid.ItemsSource as ListCollectionView; lcv.Refresh(); }
private void RatingCell_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { DataGridRow row = VisualTreeExtensions.FindParent <DataGridRow>((DependencyObject)e.OriginalSource); AlbumItem albumItem = row.DataContext as AlbumItem; RatingUserControl ratingUserControl = sender as RatingUserControl; int rating = ratingUserControl.Rating; CD cd = DataBase.GetCDById(albumItem.ID); cd.Rating = rating; cd.Save(DataBase); }
int IComparer.Compare(object X, object Y) { int result = 0; int columnIndex = 0; foreach (DataGridSortColumn sortItem in columnSortDirections) { columnIndex = sortItem.Index; AlbumItem albumItem1 = (AlbumItem)X; AlbumItem albumItem2 = (AlbumItem)Y; if (albumItem1.Items[columnIndex] is Int32) { int val1 = albumItem1.Items[columnIndex] is DBNull ? 0 : (int)albumItem1.Items[columnIndex]; int val2 = albumItem2.Items[columnIndex] is DBNull ? 0 : (int)albumItem2.Items[columnIndex]; result = Int32Compare(val1, val2, sortItem.SortDirection); } else if (IsDateField(Fields[columnIndex].Field)) { DateTime val1 = albumItem1.Items[columnIndex] is DBNull ? DateTime.MinValue : (DateTime)albumItem1.Items[columnIndex]; DateTime val2 = albumItem2.Items[columnIndex] is DBNull ? DateTime.MinValue : (DateTime)albumItem2.Items[columnIndex]; result = DateTimeCompare(val1, val2, sortItem.SortDirection); } else if (Fields[columnIndex].Field == Field.ArchiveNumber && Settings.Current.SortArchiveNumberNumeric) { int val1 = albumItem1.Items[columnIndex] is DBNull ? 0 : Misc.Atoi((string)albumItem1.Items[columnIndex]); int val2 = albumItem2.Items[columnIndex] is DBNull ? 0 : Misc.Atoi((string)albumItem2.Items[columnIndex]); result = Int32Compare(val1, val2, sortItem.SortDirection); } else { string str1 = albumItem1.Items[columnIndex].ToString(); string str2 = albumItem2.Items[columnIndex].ToString(); result = StringCompare(str1, str2, sortItem.SortDirection); } if (result != 0) { return(result); } } return(result); }
private void dataGrid_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e) { if (VisualTreeExtensions.FindParent <DataGridRow>(e.OriginalSource as DependencyObject) != null) { AlbumItem selItem = dataGrid.SelectedItem as AlbumItem; if (selItem != null) { dataGrid.CancelEdit(DataGridEditingUnit.Row); OpenCD(this, new EventArgs()); UpdateAlbumItem(selItem); e.Handled = true; } } }
private void FillRowValues(AlbumItem newItem, object[] values) { FieldCollection fc = this.CdListFields.GetFields(); for (int i = 1; i < values.Length; i++) { if (fc[i - 1] == Field.Comment) { newItem.Comment = values[i] is DBNull ? "" : (string)values[i]; } else { newItem.Items[i - 1] = values[i]; } } }
void dataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { if (e.EditAction == DataGridEditAction.Commit) { if (!isManualEditCommit) { isManualEditCommit = true; try { DataGrid grid = (DataGrid)sender; grid.CommitEdit(DataGridEditingUnit.Row, true); AlbumItem item = e.Row.Item as AlbumItem; Field field = (Field)e.Column.GetValue(DataGridExtensions.FieldProperty); CD cd = DataBase.GetCDById(item.ID); if (e.EditingElement is TextBox) { object newValue = item.Items[e.Column.DisplayIndex]; cd.SetValueToField(field, newValue); } if (field == Field.Rating) { AlbumItem albumItem = e.Row.Item as AlbumItem; cd.SetValueToField(field, albumItem.Items[e.Column.DisplayIndex]); } cd.Save(this.DataBase); Big3.Hitbase.SoundEngine.SoundFileInformation.WriteMP3Tags(cd); } finally { isManualEditCommit = false; } } } }
public new void Drop(Controls.DragDrop.IDropInfo dropInfo) { if (dropInfo.Data is PlaylistItem) { Controls.DragDrop.DragDrop.DefaultDropHandler.Drop(dropInfo); } if (dropInfo.Data is Big3.Hitbase.CDUtilities.WishlistItem) { Big3.Hitbase.CDUtilities.WishlistItem wishlistItem = dropInfo.Data as Big3.Hitbase.CDUtilities.WishlistItem; AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; addTracksParams.TrackIds.Add(wishlistItem.TrackID); HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } if (dropInfo.Data is AlbumViewItem) { AlbumViewItem item = dropInfo.Data as AlbumViewItem; CD cd = DataBase.GetCDById(item.ID); AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; foreach (Track track in cd.Tracks) { addTracksParams.TrackIds.Add(track.ID); } HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } if (dropInfo.Data is AlbumItem) { AlbumItem item = dropInfo.Data as AlbumItem; CD cd = DataBase.GetCDById(item.ID); AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; foreach (Track track in cd.Tracks) { addTracksParams.TrackIds.Add(track.ID); } HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } if (dropInfo.Data is Track || dropInfo.Data is List <Track> ) { // Prüfen, ob ein Track einer CD gedropped wurde MainCDUserControl mainCDUserControl = VisualTreeExtensions.FindParent <MainCDUserControl>(dropInfo.DragInfo.VisualSource); if (mainCDUserControl != null) { Track track = dropInfo.Data as Track; List <Track> trackList = dropInfo.Data as List <Track>; AddCDTracksToPlaylistParameter addTracksParams = new AddCDTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; if (track != null) { addTracksParams.Tracks.Add(track); } if (trackList != null) { addTracksParams.Tracks.AddRange(trackList); } HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } else { Track track = dropInfo.Data as Track; List <Track> trackList = dropInfo.Data as List <Track>; AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; if (track != null) { addTracksParams.TrackIds.Add(track.ID); } if (trackList != null) { foreach (Track trackItem in trackList) { addTracksParams.TrackIds.Add(trackItem.ID); } } HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } } if (dropInfo.Data is MyMusicListItem) { MyMusicListItem item = dropInfo.Data as MyMusicListItem; AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; addTracksParams.TrackIds.Add(item.ID); HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } if (dropInfo.Data is List <MyMusicListItem> ) { List <MyMusicListItem> items = dropInfo.Data as List <MyMusicListItem>; AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; foreach (MyMusicListItem item in items) { addTracksParams.TrackIds.Add(item.ID); } HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } if (dropInfo.Data is DataObject) { DataObject dataObject = dropInfo.Data as DataObject; if (dataObject.GetDataPresent(DataFormats.FileDrop)) { AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; foreach (string item in dataObject.GetFileDropList()) { addTracksParams.Filenames.Add(item); } HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } } }