示例#1
0
        public CheckBoxWithComboOptionViewModel(
            IOption option,
            string description,
            string truePreview,
            string falsePreview,
            AbstractOptionPreviewViewModel info,
            OptionSet options,
            IList <NotificationOptionViewModel> items
            ) : base(option, description, truePreview, falsePreview, info)
        {
            NotificationOptions = items;

            var codeStyleOption = (
                (CodeStyleOption <bool>)options.GetOption(
                    new OptionKey(option, option.IsPerLanguage ? info.Language : null)
                    )
                );

            SetProperty(ref _isChecked, codeStyleOption.Value);

            var notificationViewModel = items
                                        .Where(i => i.Notification.Severity == codeStyleOption.Notification.Severity)
                                        .Single();

            SetProperty(ref _selectedNotificationOption, notificationViewModel);
        }
        public EnumCodeStyleOptionViewModel(
            Option <CodeStyleOption <T> > option,
            string description,
            T[] enumValues,
            string[] previews,
            AbstractOptionPreviewViewModel info,
            OptionSet options,
            string groupName,
            List <CodeStylePreference> preferences)
            : base(option, description, info, options, groupName, preferences)
        {
            Debug.Assert(preferences.Count == enumValues.Length);
            Debug.Assert(previews.Length == enumValues.Length);

            var expectedEnumValues = Enum.GetValues(typeof(T));

            Debug.Assert(expectedEnumValues.Length == enumValues.Length, "Enum was updated, but UI wasn't.");

            _enumValues = enumValues.ToImmutableArray();
            _previews   = previews.ToImmutableArray();

            var codeStyleOption = options.GetOption(option);

            var enumIndex = _enumValues.IndexOf(codeStyleOption.Value);

            _selectedPreference = Preferences[enumIndex];

            var notificationViewModel = NotificationPreferences.Single(i => i.Notification.Value == codeStyleOption.Notification.Value);

            _selectedNotificationPreference = NotificationPreferences.Single(p => p.Notification.Value == notificationViewModel.Notification.Value);

            NotifyPropertyChanged(nameof(SelectedPreference));
            NotifyPropertyChanged(nameof(SelectedNotificationPreference));
        }
        public BooleanCodeStyleOptionViewModel(
            IOption option,
            string description,
            string truePreview,
            string falsePreview,
            AbstractOptionPreviewViewModel info,
            OptionStore optionStore,
            string groupName,
            List <CodeStylePreference> preferences = null,
            List <NotificationOptionViewModel> notificationPreferences = null)
            : base(option, description, info, groupName, preferences, notificationPreferences)
        {
            _truePreview  = truePreview;
            _falsePreview = falsePreview;

            var codeStyleOption = ((CodeStyleOption <bool>)optionStore.GetOption(new OptionKey(option, option.IsPerLanguage ? info.Language : null)));

            _selectedPreference = Preferences.Single(c => c.IsChecked == codeStyleOption.Value);

            var notificationViewModel = NotificationPreferences.Single(i => i.Notification.Severity == codeStyleOption.Notification.Severity);

            _selectedNotificationPreference = NotificationPreferences.Single(p => p.Notification.Severity == notificationViewModel.Notification.Severity);

            NotifyPropertyChanged(nameof(SelectedPreference));
            NotifyPropertyChanged(nameof(SelectedNotificationPreference));
        }
示例#4
0
 public AbstractCheckBoxViewModel(
     IOption option,
     string description,
     string preview,
     AbstractOptionPreviewViewModel info
     ) : this(option, description, preview, preview, info)
 {
 }
示例#5
0
 public CheckBoxOptionViewModel(IOption option, string description, string truePreview, string falsePreview, AbstractOptionPreviewViewModel info, OptionSet options)
 {
     this.Option   = option;
     Description   = description;
     _truePreview  = truePreview;
     _falsePreview = falsePreview;
     _info         = info;
     SetProperty(ref _isChecked, (bool)options.GetOption(new OptionKey(option, option.IsPerLanguage ? info.Language : null)));
 }
示例#6
0
        public AbstractCheckBoxViewModel(IOption option, string description, string truePreview, string falsePreview, AbstractOptionPreviewViewModel info)
        {
            _truePreview  = truePreview;
            _falsePreview = falsePreview;

            Info        = info;
            Option      = option;
            Description = description;
        }
        public AbstractRadioButtonViewModel(string description, string preview, AbstractOptionPreviewViewModel info, OptionSet options, bool isChecked, string group)
        {
            Description    = description;
            this.Preview   = preview;
            _info          = info;
            this.GroupName = group;

            SetProperty(ref _isChecked, isChecked);
        }
示例#8
0
 public CheckBoxOptionViewModel(
     IOption option,
     string description,
     string preview,
     AbstractOptionPreviewViewModel info,
     OptionStore optionStore
     ) : this(option, description, preview, preview, info, optionStore)
 {
 }
示例#9
0
 public CheckBoxWithComboOptionViewModel(
     IOption option,
     string description,
     string preview,
     AbstractOptionPreviewViewModel info,
     OptionSet options,
     IList <NotificationOptionViewModel> items
     ) : this(option, description, preview, preview, info, options, items)
 {
 }
示例#10
0
        internal override void LoadSettings()
        {
            this.ViewModel = _createViewModel(this.OptionService.GetOptions(), _serviceProvider);

            // Use the first item's preview.
            var firstItem = this.ViewModel.Items.OfType<CheckBoxOptionViewModel>().First();
            this.ViewModel.SetOptionAndUpdatePreview(firstItem.IsChecked, firstItem.Option, firstItem.GetPreview());

            DataContext = ViewModel;
        }
示例#11
0
        internal override void LoadSettings()
        {
            this.ViewModel = _createViewModel(this.OptionService.GetOptions(), _serviceProvider);

            var firstItem = this.ViewModel.CodeStyleItems.OfType <AbstractCodeStyleOptionViewModel>().First();

            this.ViewModel.SetOptionAndUpdatePreview(firstItem.SelectedPreference.IsChecked, firstItem.Option, firstItem.GetPreview());

            DataContext = ViewModel;
        }
示例#12
0
 public EnumCodeStyleOptionViewModel(
     Option <CodeStyleOption <T> > option,
     string description,
     T[] enumValues,
     string[] previews,
     AbstractOptionPreviewViewModel info,
     OptionStore optionStore,
     string groupName,
     List <CodeStylePreference> preferences)
     : this(option, language : null, description, enumValues, previews, info,
            optionStore, groupName, preferences)
 {
 }
示例#13
0
        internal OptionPreviewControl(IServiceProvider serviceProvider, Func <OptionSet, IServiceProvider, AbstractOptionPreviewViewModel> createViewModel) : base(serviceProvider)
        {
            InitializeComponent();

            this.ViewModel = createViewModel(this.OptionService.GetOptions(), serviceProvider);

            // Use the first item's preview.
            var firstItem = this.ViewModel.Items.OfType <CheckBoxOptionViewModel>().First();

            this.ViewModel.SetOptionAndUpdatePreview(firstItem.IsChecked, firstItem.Option, firstItem.GetPreview());

            DataContext = ViewModel;
        }
示例#14
0
 public EnumCodeStyleOptionViewModel(
     PerLanguageOption <CodeStyleOption <T> > option,
     string language,
     string description,
     T[] enumValues,
     string[] previews,
     AbstractOptionPreviewViewModel info,
     OptionSet options,
     string groupName,
     List <CodeStylePreference> preferences)
     : this((IOption)option, language, description, enumValues, previews, info,
            options, groupName, preferences)
 {
 }
示例#15
0
 public AbstractCodeStyleOptionViewModel(
     IOption option,
     string description,
     AbstractOptionPreviewViewModel info,
     string groupName,
     List <CodeStylePreference> preferences = null,
     List <NotificationOptionViewModel> notificationPreferences = null)
 {
     Info                    = info;
     Option                  = option;
     Description             = description;
     Preferences             = preferences ?? GetDefaultPreferences();
     NotificationPreferences = notificationPreferences ?? GetDefaultNotifications();
     GroupName               = groupName;
     GroupNameAndDescription = $"{groupName}, {description}";
 }
示例#16
0
 public CheckBoxOptionViewModel(
     IOption option,
     string description,
     string truePreview,
     string falsePreview,
     AbstractOptionPreviewViewModel info,
     OptionStore optionStore
     ) : base(option, description, truePreview, falsePreview, info)
 {
     SetProperty(
         ref _isChecked,
         (bool)optionStore.GetOption(
             new OptionKey(option, option.IsPerLanguage ? info.Language : null)
             )
         );
 }
        public BooleanCodeStyleOptionViewModel(
            IOption option,
            string description,
            string truePreview,
            string falsePreview,
            AbstractOptionPreviewViewModel info,
            OptionSet options,
            string groupName,
            List <CodeStylePreference> preferences = null,
            List <NotificationOptionViewModel> notificationPreferences = null)
            : base(option, description, truePreview, falsePreview, info, options, groupName, preferences, notificationPreferences)
        {
            var booleanOption = (bool)options.GetOption(new OptionKey(option, option.IsPerLanguage ? info.Language : null));

            _selectedPreference = Preferences.Single(c => c.IsChecked == booleanOption);

            NotifyPropertyChanged(nameof(SelectedPreference));
        }
示例#18
0
 public RadioButtonViewModel(
     string description,
     string preview,
     string group,
     TOption value,
     Option <TOption> option,
     AbstractOptionPreviewViewModel info,
     OptionStore optionStore
     )
     : base(
         description,
         preview,
         info,
         isChecked: optionStore.GetOption(option).Equals(value),
         group: group
         )
 {
     _value  = value;
     _option = option;
 }
        public AbstractCodeStyleOptionViewModel(
            IOption option,
            string description,
            string truePreview,
            string falsePreview,
            AbstractOptionPreviewViewModel info,
            OptionSet options,
            string groupName,
            List <CodeStylePreference> preferences = null,
            List <NotificationOptionViewModel> notificationPreferences = null)
        {
            _truePreview  = truePreview;
            _falsePreview = falsePreview;

            Info                    = info;
            Option                  = option;
            Description             = description;
            Preferences             = preferences ?? GetDefaultPreferences();
            NotificationPreferences = notificationPreferences ?? GetDefaultNotifications();
            DescriptionMargin       = 12d;
            GroupName               = groupName;
        }
示例#20
0
        private EnumCodeStyleOptionViewModel(
            IOption option,
            string language,
            string description,
            T[] enumValues,
            string[] previews,
            AbstractOptionPreviewViewModel info,
            OptionStore optionStore,
            string groupName,
            List <CodeStylePreference> preferences)
            : base(option, description, info, groupName, preferences)
        {
            Debug.Assert(preferences.Count == enumValues.Length);
            Debug.Assert(previews.Length == enumValues.Length);

            _enumValues = enumValues.ToImmutableArray();
            _previews   = previews.ToImmutableArray();

            var codeStyleOption = (CodeStyleOption <T>)optionStore.GetOption(new OptionKey(option, language));

            var enumIndex = _enumValues.IndexOf(codeStyleOption.Value);

            if (enumIndex < 0 || enumIndex >= Preferences.Count)
            {
                enumIndex = 0;
            }

            _selectedPreference = Preferences[enumIndex];

            var notificationViewModel = NotificationPreferences.Single(i => i.Notification.Severity == codeStyleOption.Notification.Severity);

            _selectedNotificationPreference = NotificationPreferences.Single(p => p.Notification.Severity == notificationViewModel.Notification.Severity);

            NotifyPropertyChanged(nameof(SelectedPreference));
            NotifyPropertyChanged(nameof(SelectedNotificationPreference));
        }
示例#21
0
 internal override void SetOptionAndUpdatePreview(
     AbstractOptionPreviewViewModel info,
     string preview
     ) => info.SetOptionAndUpdatePreview(_value, _option, preview);
 internal abstract void SetOptionAndUpdatePreview(
     AbstractOptionPreviewViewModel info,
     string preview
     );