Beispiel #1
0
        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;*/
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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;
        }
Beispiel #4
0
        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();
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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;
                }
            }
        }
Beispiel #8
0
        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];
                }
            }
        }
Beispiel #9
0
        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);
                }
            }
        }