public void FillList() { if (dataGrid.Columns.Count > 0) { SaveDataGridColumnWidths(); } SortFieldCollection defaultCdListSort = new SortFieldCollection(); if (ShowItemType == MainControls.ShowItemType.Directory) { defaultCdListSort.Add(new SortField(Field.TrackSoundFile, SortDirection.Ascending)); trackListSort = SortFieldCollection.LoadFromRegistry("DirectoryTableSort", defaultCdListSort); } else { defaultCdListSort.Add(new SortField(Field.ArtistTrackName, SortDirection.Ascending)); defaultCdListSort.Add(new SortField(Field.TrackTitle, SortDirection.Ascending)); trackListSort = SortFieldCollection.LoadFromRegistry("MyMusicTableSort", defaultCdListSort); } CreateHeader(trackListFields); this.dataGrid.ItemsSource = null; if (!backgroundWorker.IsBusy) { backgroundWorker = new BackgroundWorker(); backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwTrackList_RunWorkerCompleted); backgroundWorker.DoWork += new DoWorkEventHandler(bwTrackList_DoWork); backgroundWorker.RunWorkerAsync(); } }
private void buttonSort_Click(object sender, EventArgs e) { FormSort formSort; if (printType != PrintType.TrackList) { formSort = new FormSort(dataBase, FieldType.CD, cdSortFields); } else { formSort = new FormSort(dataBase, FieldType.All, trackSortFields); } if (formSort.ShowDialog(this) == DialogResult.OK) { if (printType != PrintType.TrackList) { cdSortFields = formSort.SortFields; } else { trackSortFields = formSort.SortFields; } printPreviewControl.InvalidatePreview(); } }
public FormSort(DataBase dataBase, FieldType fieldType, SortFieldCollection sortFields) { InitializeComponent(); FillList(dataBase, comboBoxSortField1, fieldType, sortFields.Count > 0 ? sortFields[0].Field : Field.None); if (sortFields.Count > 0 && sortFields[0].SortDirection == SortDirection.Descending) { radioButtonSortDirection1Descending.Checked = true; } else { radioButtonSortDirection1Ascending.Checked = true; } FillList(dataBase, comboBoxSortField2, fieldType, sortFields.Count > 1 ? sortFields[1].Field : Field.None); if (sortFields.Count > 1 && sortFields[1].SortDirection == SortDirection.Descending) { radioButtonSortDirection2Descending.Checked = true; } else { radioButtonSortDirection2Ascending.Checked = true; } FillList(dataBase, comboBoxSortField3, fieldType, sortFields.Count > 2 ? sortFields[2].Field : Field.None); if (sortFields.Count > 2 && sortFields[2].SortDirection == SortDirection.Descending) { radioButtonSortDirection3Descending.Checked = true; } else { radioButtonSortDirection3Ascending.Checked = true; } }
private void buttonOK_Click(object sender, RoutedEventArgs e) { SortFields = new SortFieldCollection(); AddSortField(comboBoxSort1, radioButtonSort1Ascending, radioButtonSort1Descending); AddSortField(comboBoxSort2, radioButtonSort2Ascending, radioButtonSort2Descending); AddSortField(comboBoxSort3, radioButtonSort3Ascending, radioButtonSort3Descending); if (OKClicked != null) { OKClicked(this, new EventArgs()); } }
public SortUserControl(DataBase dataBase, bool cdOnly, SortFieldCollection sfc) { InitializeComponent(); this.dataBase = dataBase; comboBoxSort1.ItemsSource = GetFieldList(cdOnly); comboBoxSort1.DisplayMemberPath = "DisplayName"; comboBoxSort1.SelectedValuePath = "Field"; if (sfc.Count > 0) { comboBoxSort1.SelectedValue = sfc[0].Field; radioButtonSort1Ascending.IsChecked = (sfc[0].SortDirection == SortDirection.Ascending); radioButtonSort1Descending.IsChecked = (sfc[0].SortDirection == SortDirection.Descending); } else { comboBoxSort1.SelectedIndex = 0; } comboBoxSort2.ItemsSource = GetFieldList(cdOnly); comboBoxSort2.DisplayMemberPath = "DisplayName"; comboBoxSort2.SelectedValuePath = "Field"; if (sfc.Count > 1) { comboBoxSort2.SelectedValue = sfc[1].Field; radioButtonSort2Ascending.IsChecked = (sfc[1].SortDirection == SortDirection.Ascending); radioButtonSort2Descending.IsChecked = (sfc[1].SortDirection == SortDirection.Descending); } else { comboBoxSort2.SelectedIndex = 0; } comboBoxSort3.ItemsSource = GetFieldList(cdOnly); comboBoxSort3.DisplayMemberPath = "DisplayName"; comboBoxSort3.SelectedValuePath = "Field"; if (sfc.Count > 2) { comboBoxSort3.SelectedValue = sfc[2].Field; radioButtonSort3Ascending.IsChecked = (sfc[2].SortDirection == SortDirection.Ascending); radioButtonSort3Descending.IsChecked = (sfc[2].SortDirection == SortDirection.Descending); } else { comboBoxSort3.SelectedIndex = 0; } }
private void SaveDataGridColumnWidths() { // Spaltenbreiten auslesen int i = 0; SortedList <int, ColumnField> displayColumns = new SortedList <int, ColumnField>(); SortFieldCollection sfc = new SortFieldCollection(); bool firstColumn = true; foreach (DataGridColumn col in dataGrid.Columns) { // Erste Spalte überspringen (Play-Buttons) if (firstColumn) { firstColumn = false; continue; } ColumnField cf = new ColumnField(); cf.Width = (int)col.Width.DisplayValue; cf.Field = trackListFields[i].Field; displayColumns.Add(col.DisplayIndex, cf); i++; } ColumnFieldCollection cfc = new ColumnFieldCollection(); foreach (ColumnField cf in displayColumns.Values) { cfc.Add(cf); } trackListFields = cfc; cfc.SaveToRegistry("MyMusicTable"); if (ShowItemType == MainControls.ShowItemType.Directory) { trackListSort.SaveToRegistry("DirectoryTableSort"); } else { trackListSort.SaveToRegistry("MyMusicTableSort"); } }
public AlbumViewTable() { InitializeComponent(); ColumnFieldCollection defaultcdListFields = new ColumnFieldCollection(); defaultcdListFields.Add(Field.ArtistCDName); defaultcdListFields.Add(Field.Title); defaultcdListFields.Add(Field.NumberOfTracks); defaultcdListFields.Add(Field.TotalLength); defaultcdListFields.Add(Field.Category); defaultcdListFields.Add(Field.ArchiveNumber); defaultcdListFields.Add(Field.Rating); cdListFields = ColumnFieldCollection.LoadFromRegistry("AlbumViewTable", defaultcdListFields); SortFieldCollection defaultCdListSort = new SortFieldCollection(); defaultCdListSort.Add(new SortField(Field.ArtistCDName, SortDirection.Ascending)); defaultCdListSort.Add(new SortField(Field.Title, SortDirection.Ascending)); CdListSort = SortFieldCollection.LoadFromRegistry("AlbumViewTableSort", defaultCdListSort); }
private void CommandBindingEditSort_Executed(object sender, ExecutedRoutedEventArgs e) { SortFieldCollection sfc = View.SortFields; bool cdOnly = false; if (View is AlbumViewTable || View is AlbumViewSymbols) { cdOnly = true; } SortUserControl sortUserControl = new SortUserControl(DataBase, cdOnly, sfc); GlobalServices.ModalService.NavigateTo(sortUserControl, StringTable.Sort, delegate(bool returnValue) { if (returnValue == true) { View.SortFields = sortUserControl.SortFields; FillList(); } }); }
public AlbumViewSymbols() { InitializeComponent(); ColumnFieldCollection defaultcdListFields = new ColumnFieldCollection(); defaultcdListFields.Add(Field.ArtistCDName); defaultcdListFields.Add(Field.ArtistCDSaveAs); defaultcdListFields.Add(Field.Title); defaultcdListFields.Add(Field.CDCoverFront); defaultcdListFields.Add(Field.Category); defaultcdListFields.Add(Field.ArchiveNumber); defaultcdListFields.Add(Field.YearRecorded); cdListFields = defaultcdListFields; //cdListFields = ColumnFieldCollection.LoadFromRegistry("Catalog", defaultcdListFields); SortFieldCollection defaultCdListSort = new SortFieldCollection(); defaultCdListSort.Add(new SortField(Field.ArtistCDName, SortDirection.Ascending)); defaultCdListSort.Add(new SortField(Field.Title, SortDirection.Ascending)); CdListSort = defaultCdListSort; //CdListSort = SortFieldCollection.LoadFromRegistry("CatalogSort", defaultCdListSort); }
public MySort(DataBase db, DataGrid dataGrid, ColumnFieldCollection fields, SortFieldCollection sfc) { DataBase = db; DataGrid = dataGrid; Fields = fields; columnSortDirections = new List <DataGridSortColumn>(); foreach (SortField sf in sfc) { for (int i = 0; i < dataGrid.Columns.Count; i++) { Field field = (Field)dataGrid.Columns[i].GetValue(DataGridExtensions.FieldProperty); if (field == sf.Field) { columnSortDirections.Add(new DataGridSortColumn() { Field = field, Index = i, SortDirection = (ListSortDirection)dataGrid.Columns[i].SortDirection }); break; } } } }
private void Search() { Big3.Hitbase.DataBaseEngine.Condition sel = new Big3.Hitbase.DataBaseEngine.Condition(); // Diese Sachen direkt speichern, wenn einmal gesucht wurde. Settings.SetValue("LinkSameNumber", checkBoxSameTrackCount.IsChecked == true ? (int)1 : (int)0); Settings.SetValue("LinkNotLinked", checkBoxNotAssigned.IsChecked == true ? (int)1 : (int)0); // Nur CDs. sel.Add(Field.AlbumType, Operator.Equal, 0); if (this.checkBoxNotAssigned.IsChecked == true) { sel.Add(Field.Identity, Operator.Empty, 0); } if (this.checkBoxSameTrackCount.IsChecked == true) { sel.Add(Field.NumberOfTracks, Operator.Equal, cdInDrive.NumberOfTracks); } if (textBoxArtist.Text != "") { sel.Add(Field.ArtistCDName, Operator.Contains, textBoxArtist.Text); } if (textBoxTitle.Text != "") { sel.Add(Field.Title, Operator.Contains, textBoxTitle.Text); } SortFieldCollection sortKeys = new SortFieldCollection(); sortKeys.Add(Field.ArtistCDName); sortKeys.Add(Field.Title); FieldCollection fc = new FieldCollection(); fc.Add(Field.ArtistCDName); fc.Add(Field.Title); fc.Add(Field.TotalLength); fc.Add(Field.NumberOfTracks); List <CDItemResult> items = new List <CDItemResult>(); using (DataBaseView albumView = AlbumView.CreateView(dataBase, fc, sortKeys, 0, sel)) { object[] values; while ((values = albumView.Read()) != null) { CDItemResult newItem = new CDItemResult(); newItem.CDID = (int)values[0]; newItem.Artist = (string)values[1]; newItem.Title = values[2] is DBNull ? "" : (string)values[2]; newItem.Length = (int)values[3]; newItem.NumberOfTracks = (int)values[4]; items.Add(newItem); } } DataGridResult.ItemsSource = items; return; }
void bwAlbumView_DoWork(object sender, DoWorkEventArgs e) { FieldCollection fc = new FieldCollection(); fc.AddRange(new Field[] { Field.CDID, Field.Title, Field.ArchiveNumber, Field.CDCoverFront, Field.YearRecorded, Field.TrackNumber, Field.TrackTitle, Field.TrackLength, Field.TrackRating, Field.TrackSoundFile, Field.ArtistCDName, Field.ArtistCDSaveAs, Field.ArtistTrackName, Field.Category, Field.ComposerTrackName }); int count = 0; SortFieldCollection sfc = new SortFieldCollection(); sfc.Add(Field.ArtistCDSaveAs); sfc.Add(Field.Title); sfc.Add(Field.CDID); // Die Verzeichnisansicht immer sortiert nach Dateiname if (this.ShowItemType == ShowItemType.Directory) { sfc.Add(Field.TrackSoundFile); } else { sfc.Add(Field.TrackNumber); } SafeObservableCollection <AlbumViewItemBase> items = new SafeObservableCollection <AlbumViewItemBase>(); AlbumViewItem newItem = null; string lastArtist = ""; string lastArtistTitle = ""; string lastTitle = ""; int lastcdid = 0; Big3.Hitbase.DataBaseEngine.Condition searchCondition = Big3.Hitbase.DataBaseEngine.Condition.Combine(Condition, ConditionFromTree); using (DataBaseView view = TrackView.CreateView(DataBase, fc, sfc, 0, searchCondition)) { // Überall auf die Indizes 1 addieren, da die erste Spalte die TrackID ist. int colArtistName = fc.IndexOf(Field.ArtistCDName) + 1; int colArtistSaveAs = fc.IndexOf(Field.ArtistCDSaveAs) + 1; int colTitle = fc.IndexOf(Field.Title) + 1; int colCDID = fc.IndexOf(Field.CDID) + 1; int colFrontCover = fc.IndexOf(Field.CDCoverFront) + 1; int colCategory = fc.IndexOf(Field.Category) + 1; int colArchiveNumber = fc.IndexOf(Field.ArchiveNumber) + 1; int colYearRecorded = fc.IndexOf(Field.YearRecorded) + 1; int colTrackNumber = fc.IndexOf(Field.TrackNumber) + 1; int colTrackTitle = fc.IndexOf(Field.TrackTitle) + 1; int colTrackLength = fc.IndexOf(Field.TrackLength) + 1; int colTrackRating = fc.IndexOf(Field.TrackRating) + 1; int colTrackArtist = fc.IndexOf(Field.ArtistTrackName) + 1; int colTrackComposer = fc.IndexOf(Field.ComposerTrackName) + 1; int colTrackSoundFile = fc.IndexOf(Field.TrackSoundFile) + 1; int colTrackID = 0; object[] values; while ((values = view.Read()) != null) { string artistDisplay = values[colArtistName] is DBNull ? "" : (string)values[colArtistName]; string artist = values[colArtistSaveAs] is DBNull ? "" : (string)values[colArtistSaveAs]; string title = values[colTitle] is DBNull ? "" : (string)values[colTitle]; int cdid = (int)values[colCDID]; if (cdid != lastcdid) { if (newItem != null) { if (newItem.Artist != lastArtistTitle) { AlbumViewTitle albumTitle = new AlbumViewTitle(); albumTitle.Title = newItem.Artist; items.Add(albumTitle); lastArtistTitle = newItem.Artist; } items.Add(newItem); } newItem = new AlbumViewItem(); newItem.ID = cdid; newItem.Artist = artistDisplay; newItem.Title = title; newItem.ImageFilename = values[colFrontCover] is DBNull ? "" : (string)values[colFrontCover]; newItem.Genre = values[colCategory] is DBNull ? "" : (string)values[colCategory]; newItem.ArchiveNumber = values[colArchiveNumber] is DBNull ? "" : (string)values[colArchiveNumber]; int yearRecorded = values[colYearRecorded] is DBNull ? 0 : (int)values[colYearRecorded]; if (yearRecorded > 0) { newItem.Year = yearRecorded.ToString(); } newItem.Tracks = new SafeObservableCollection <Track>(); lastArtist = artist; lastTitle = title; } if (newItem != null) { Track track = new Track(); track.TrackNumber = (int)values[colTrackNumber]; track.Title = values[colTrackTitle] is DBNull ? "" : (string)values[colTrackTitle]; track.Length = (int)values[colTrackLength]; track.Rating = values[colTrackRating] is DBNull ? 0 : (int)values[colTrackRating]; track.Artist = values[colTrackArtist] is DBNull ? "" : (string)values[colTrackArtist]; track.Composer = values[colTrackComposer] is DBNull ? "" : (string)values[colTrackComposer]; track.Soundfile = values[colTrackSoundFile] is DBNull ? "" : (string)values[colTrackSoundFile]; track.CDID = cdid; track.ID = (int)values[colTrackID]; newItem.Tracks.Add(track); } //toolStripStatusProgressBar.Value = (int)(100.0 / TrackView.Rows.Count * count); count++; lastcdid = cdid; } } if (newItem != null) { if (newItem.Artist != lastArtistTitle) { AlbumViewTitle albumTitle = new AlbumViewTitle(); albumTitle.Title = newItem.Artist; items.Add(albumTitle); } items.Add(newItem); } e.Result = items; }
void bwAlbumView_DoWork(object sender, DoWorkEventArgs e) { TrackDataView TrackView; CDQuery = DataBase.ExecuteTrackQuery(); // Hier die Felder auflisten, die ich für die Albumansicht brauche FieldCollection fc = new FieldCollection(); fc.AddRange(new Field[] { Field.ArtistCDName, Field.ArtistCDSaveAs, Field.Title, Field.CDCoverFront, Field.Category, Field.ArchiveNumber, Field.YearRecorded, Field.TrackNumber, Field.TrackTitle, Field.TrackLength, Field.TrackRating, Field.ArtistTrackName, Field.ComposerTrackName, Field.TrackSoundFile }); SortFieldCollection sfc = new SortFieldCollection(); sfc.Add(Field.ArtistCDSaveAs); sfc.Add(Field.Title); sfc.Add(Field.CDID); sfc.Add(Field.TrackNumber); TrackView = new TrackDataView(DataBase, CDQuery, Condition, sfc, fc); int count = 0; List <AlbumViewItem> items = new List <AlbumViewItem>(); AlbumViewItem newItem = null; string lastArtist = ""; string lastTitle = ""; int lastcdid = 0; for (int row = 0; row < TrackView.Rows.Count; row++) { string artistDisplay = TrackView.GetRowStringValue(row, Field.ArtistCDName); string artist = TrackView.GetRowStringValue(row, Field.ArtistCDSaveAs); string title = TrackView.GetRowStringValue(row, Field.Title); int cdid = TrackView.GetCDID(row); if (artist != lastArtist || title != lastTitle || cdid != lastcdid) { if (newItem != null) { items.Add(newItem); } newItem = new AlbumViewItem(); newItem.ID = cdid; newItem.Artist = artistDisplay; newItem.Title = title; newItem.ImageFilename = TrackView.GetRowStringValue(row, Field.CDCoverFront); newItem.Genre = TrackView.GetRowStringValue(row, Field.Category); newItem.ArchiveNumber = TrackView.GetRowStringValue(row, Field.ArchiveNumber); int yearRecorded = (int)TrackView.GetRowRawValue(row, Field.YearRecorded); if (yearRecorded > 0) { newItem.Year = yearRecorded.ToString(); } newItem.Tracks = new List <Track>(); lastArtist = artist; lastTitle = title; } if (newItem != null) { Track track = new Track(); track.TrackNumber = (int)TrackView.GetRowRawValue(row, Field.TrackNumber); track.Title = TrackView.GetRowStringValue(row, Field.TrackTitle); track.Length = (int)TrackView.GetRowRawValue(row, Field.TrackLength); track.Rating = (int)TrackView.GetRowRawValue(row, Field.TrackRating); track.Artist = TrackView.GetRowStringValue(row, Field.ArtistTrackName); track.Composer = TrackView.GetRowStringValue(row, Field.ComposerTrackName); track.Soundfile = TrackView.GetRowStringValue(row, Field.TrackSoundFile); track.ID = TrackView.GetTrackID(row); newItem.Tracks.Add(track); } //toolStripStatusProgressBar.Value = (int)(100.0 / TrackView.Rows.Count * count); count++; lastcdid = cdid; } if (newItem != null) { items.Add(newItem); } e.Result = items; }