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);
        }
Exemple #3
0
        /// <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();
            }
        }