void lbFilterConditions_Editing_MouseDoubleClick(object sender, MouseButtonEventArgs e) { VM_GroupFilter gf = DataContext as VM_GroupFilter; if (gf == null) { return; } VM_GroupFilterCondition gfc = lbFilterConditions_Editing.SelectedItem as VM_GroupFilterCondition; if (gfc == null) { return; } try { GroupFilterConditionForm frm = new GroupFilterConditionForm(); frm.Owner = Window.GetWindow(this); frm.Init(gf, gfc); bool?result = frm.ShowDialog(); if (result.HasValue && result.Value == true) { Window win = Window.GetWindow(this); MainWindow main = win as MainWindow; gf.IsBeingEdited = true; //gf.FilterConditions.Add(gfc); VM_MainListHelper.Instance.ViewGroupsForms.Filter = main.GroupFilter_GroupSearch; VM_MainListHelper.Instance.SetGroupFilterSortingOnForms(gf); } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
public void Init(VM_GroupFilter gf, VM_GroupFilterCondition gfc) { groupFilter = gf; groupFilterCondition = gfc; try { cboConditionType.Items.Clear(); foreach (string cond in Commons.Extensions.Models.GetAllConditionTypes()) { cboConditionType.Items.Add(cond); } PopulateAnimeGroups(); PopulateTags(); PopulateCustomTags(); PopulateVideoQuality(); PopulateAnimeTypes(); PopulateLanguages(); // find the right condition int idx = 0; for (int i = 0; i < cboConditionType.Items.Count; i++) { GroupFilterConditionType conditionTypeTemp = Commons.Extensions.Models.GetEnumForText_ConditionType(cboConditionType.Items[i].ToString()); if (conditionTypeTemp == gfc.ConditionTypeEnum) { idx = i; break; } } cboConditionType.SelectedIndex = idx; GroupFilterConditionType conditionType = Commons.Extensions.Models.GetEnumForText_ConditionType(cboConditionType.SelectedItem.ToString()); cboConditionOperator.Items.Clear(); foreach (string op in conditionType.GetAllowedOperators()) { cboConditionOperator.Items.Add(op); } cboConditionType.SelectionChanged += new SelectionChangedEventHandler(cboConditionType_SelectionChanged); cboConditionOperator.SelectionChanged += new SelectionChangedEventHandler(cboConditionOperator_SelectionChanged); // find the right operator idx = 0; for (int i = 0; i < cboConditionOperator.Items.Count; i++) { GroupFilterOperator opTypeTemp = Commons.Extensions.Models.GetEnumForText_Operator(cboConditionOperator.Items[i].ToString()); if (opTypeTemp == gfc.ConditionOperatorEnum) { idx = i; break; } } cboConditionOperator.SelectedIndex = idx; GroupFilterOperator opType = Commons.Extensions.Models.GetEnumForText_Operator(cboConditionOperator.Items[idx].ToString()); // display the selected filter value switch (conditionType) { case GroupFilterConditionType.AirDate: case GroupFilterConditionType.SeriesCreatedDate: case GroupFilterConditionType.EpisodeAddedDate: case GroupFilterConditionType.EpisodeWatchedDate: case GroupFilterConditionType.LatestEpisodeAirDate: if (opType == GroupFilterOperator.LastXDays) { txtParameter.Text = gfc.ConditionParameter; } else { DateTime airDate = gfc.ConditionParameter.GetDateFromString(); dpDate.SelectedDate = airDate; } break; case GroupFilterConditionType.AnimeGroup: // don't display anything break; case GroupFilterConditionType.AnimeType: case GroupFilterConditionType.Tag: case GroupFilterConditionType.CustomTags: case GroupFilterConditionType.VideoQuality: case GroupFilterConditionType.AniDBRating: case GroupFilterConditionType.UserRating: case GroupFilterConditionType.AudioLanguage: case GroupFilterConditionType.SubtitleLanguage: case GroupFilterConditionType.Year: txtParameter.Text = gfc.ConditionParameter; break; } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }