private void OpenToggleDataView(FormatOptionMultipleToggleModel multipleToggleModel) { var toggleMultipleDataView = new ToggleMultipleDataView(multipleToggleModel.ToggleFlags); toggleMultipleDataView.Closed += CloseToggleDataView; toggleMultipleDataView.Show(); }
private static List <IFormatOption> GetChangedOptions(List <IFormatOption> currentOptions, List <IFormatOption> defaultOptions) { var optionsToInclude = new List <IFormatOption>(); for (int i = 0; i < currentOptions.Count; i++) { if (currentOptions[i] is FormatOptionToggleModel) { var currentOption = currentOptions[i] as FormatOptionToggleModel; var defaultOption = defaultOptions[i] as FormatOptionToggleModel; if (currentOption.BooleanCombobox == defaultOption.BooleanCombobox) { continue; } } else if (currentOptions[i] is FormatOptionInputModel) { var currentOption = currentOptions[i] as FormatOptionInputModel; var defaultOption = defaultOptions[i] as FormatOptionInputModel; if (string.Compare(currentOption.Input, defaultOption.Input) == 0 || string.IsNullOrEmpty(currentOption.Input)) { continue; } } else if (currentOptions[i] is FormatOptionMultipleInputModel) { var currentOption = currentOptions[i] as FormatOptionMultipleInputModel; var defaultOption = defaultOptions[i] as FormatOptionMultipleInputModel; if (string.Compare(currentOption.MultipleInput, defaultOption.MultipleInput) == 0 || string.IsNullOrEmpty(currentOption.MultipleInput)) { continue; } } else if (currentOptions[i] is FormatOptionMultipleToggleModel) { var currentOption = currentOptions[i] as FormatOptionMultipleToggleModel; var defaultOption = defaultOptions[i] as FormatOptionMultipleToggleModel; var toggleFlags = RemoveUnchagedToogleFlags(currentOption.ToggleFlags, defaultOption.ToggleFlags); if (toggleFlags.Count == 0) { continue; } else { var formatOptionMultipleToggleModel = new FormatOptionMultipleToggleModel { ToggleFlags = toggleFlags, Name = currentOption.Name }; optionsToInclude.Add(formatOptionMultipleToggleModel); continue; } } optionsToInclude.Add(currentOptions[i]); } return(optionsToInclude); }
/// <summary> /// Set all possible values to the MultipleToggleModel and e use Levenshtein Diff to find the best one /// </summary> /// <param name="multipleToggleModel"></param> /// <param name="input"></param> private void SetOptionMultipleToggle(FormatOptionMultipleToggleModel multipleToggleModel, string input, List <IFormatOption> formatOptions, EditorStyles formatStyle) { var toggleValues = multipleToggleModel.ToggleFlags; var inputValuesLevenshtein = new Dictionary <ToggleValues, int>(); foreach (var modelToggle in toggleValues) { var previousInput = modelToggle.Value; modelToggle.Value = ToggleValues.False; inputValuesLevenshtein.Add(modelToggle.Value, GetLevenshteinAfterFormat(input, formatStyle, formatOptions)); modelToggle.Value = ToggleValues.True; inputValuesLevenshtein.Add(modelToggle.Value, GetLevenshteinAfterFormat(input, formatStyle, formatOptions)); var inputValue = inputValuesLevenshtein.OrderBy(e => e.Value).First(); modelToggle.Value = inputValue.Value == inputValuesLevenshtein[previousInput] ? previousInput : inputValue.Key; inputValuesLevenshtein.Clear(); } }