public bool Invoke(IEnumerable<object> items, InputSource inputSource, bool preview)
            {
                NamingRuleTreeItemViewModel[] selectedRules = items.OfType<NamingRuleTreeItemViewModel>().ToArray();

                // When a single Naming Rule is invoked using the mouse, expanding/collapse it in the tree
                if (selectedRules.Length == 1)
                {
                    var selectedRule = selectedRules[0];
                    if (selectedRule.NamingStylesViewModel == null)
                    {
                        return false;
                    }

                    var viewModel = new NamingRuleDialogViewModel(
                        selectedRule._title,
                        selectedRule.symbolSpec,
                        selectedRule.NamingStylesViewModel.SymbolSpecificationList,
                        selectedRule.namingStyle,
                        selectedRule.NamingStylesViewModel.NamingStyleList,
                        selectedRule.parent,
                        selectedRule.NamingStylesViewModel.CreateAllowableParentList(selectedRule),
                        selectedRule.EnforcementLevel,
                        selectedRule.NamingStylesViewModel.notificationService);
                    var dialog = new NamingRuleDialog(viewModel, selectedRule.NamingStylesViewModel, selectedRule.NamingStylesViewModel.categories, selectedRule.NamingStylesViewModel.notificationService);
                    var result = dialog.ShowModal();
                    if (result == true)
                    {
                        selectedRule.namingStyle = viewModel.NamingStyleList.GetItemAt(viewModel.NamingStyleIndex) as NamingStyleViewModel;
                        selectedRule.symbolSpec = viewModel.SymbolSpecificationList.GetItemAt(viewModel.SelectedSymbolSpecificationIndex) as SymbolSpecificationViewModel;
                        selectedRule.Title = viewModel.Title;
                        selectedRule.EnforcementLevel = viewModel.EnforcementLevelsList[viewModel.EnforcementLevelIndex];
                        selectedRule.NotifyPropertyChanged(nameof(selectedRule.Text));

                        if (viewModel.ParentRuleIndex == 0)
                        {
                            if (selectedRule.Parent != selectedRule.NamingStylesViewModel.rootNamingRule)
                            {
                                selectedRule.Parent.Children.Remove(selectedRule);
                                selectedRule.NamingStylesViewModel.rootNamingRule.Children.Add(selectedRule);
                            }
                        }
                        else
                        {
                            var newParent = viewModel.ParentRuleList.GetItemAt(viewModel.ParentRuleIndex) as NamingRuleTreeItemViewModel;
                            if (newParent != selectedRule.Parent)
                            {
                                selectedRule.Parent.Children.Remove(selectedRule);
                                newParent.Children.Add(selectedRule);
                            }
                        }
                    }

                    return true;
                }

                return false;
            }
Exemplo n.º 2
0
            public bool Invoke(IEnumerable <object> items, InputSource inputSource, bool preview)
            {
                NamingRuleTreeItemViewModel[] selectedRules = items.OfType <NamingRuleTreeItemViewModel>().ToArray();

                // When a single Naming Rule is invoked using the mouse, expanding/collapse it in the tree
                if (selectedRules.Length == 1)
                {
                    var selectedRule = selectedRules[0];
                    if (selectedRule.NamingStylesViewModel == null)
                    {
                        return(false);
                    }

                    var viewModel = new NamingRuleDialogViewModel(
                        selectedRule._title,
                        selectedRule.symbolSpec,
                        selectedRule.NamingStylesViewModel.SymbolSpecificationList,
                        selectedRule.namingStyle,
                        selectedRule.NamingStylesViewModel.NamingStyleList,
                        selectedRule.parent,
                        selectedRule.NamingStylesViewModel.CreateAllowableParentList(selectedRule),
                        selectedRule.EnforcementLevel,
                        selectedRule.NamingStylesViewModel.notificationService);
                    var dialog = new NamingRuleDialog(viewModel, selectedRule.NamingStylesViewModel, selectedRule.NamingStylesViewModel.categories, selectedRule.NamingStylesViewModel.notificationService);
                    var result = dialog.ShowModal();
                    if (result == true)
                    {
                        selectedRule.namingStyle      = viewModel.NamingStyleList.GetItemAt(viewModel.NamingStyleIndex) as NamingStyleViewModel;
                        selectedRule.symbolSpec       = viewModel.SymbolSpecificationList.GetItemAt(viewModel.SelectedSymbolSpecificationIndex) as SymbolSpecificationViewModel;
                        selectedRule.Title            = viewModel.Title;
                        selectedRule.EnforcementLevel = viewModel.EnforcementLevelsList[viewModel.EnforcementLevelIndex];
                        selectedRule.NotifyPropertyChanged(nameof(selectedRule.Text));

                        if (viewModel.ParentRuleIndex == 0)
                        {
                            if (selectedRule.Parent != selectedRule.NamingStylesViewModel.rootNamingRule)
                            {
                                selectedRule.Parent.Children.Remove(selectedRule);
                                selectedRule.NamingStylesViewModel.rootNamingRule.Children.Add(selectedRule);
                            }
                        }
                        else
                        {
                            var newParent = viewModel.ParentRuleList.GetItemAt(viewModel.ParentRuleIndex) as NamingRuleTreeItemViewModel;
                            if (newParent != selectedRule.Parent)
                            {
                                selectedRule.Parent.Children.Remove(selectedRule);
                                newParent.Children.Add(selectedRule);
                            }
                        }
                    }

                    return(true);
                }

                return(false);
            }
Exemplo n.º 3
0
        internal NamingRuleDialog(NamingRuleDialogViewModel viewModel, NamingStylesOptionPageControlViewModel outerViewModel, ImmutableArray<string> categories, INotificationService notificationService)
        {
            _notificationService = notificationService;
            _categories = categories;

            _viewModel = viewModel;
            _namingStylesViewModel = outerViewModel;

            InitializeComponent();
            DataContext = viewModel;
        }
Exemplo n.º 4
0
        internal NamingRuleDialog(NamingRuleDialogViewModel viewModel, NamingStylesOptionPageControlViewModel outerViewModel, ImmutableArray <string> categories, INotificationService notificationService)
        {
            _notificationService = notificationService;
            _categories          = categories;

            _viewModel             = viewModel;
            _namingStylesViewModel = outerViewModel;

            InitializeComponent();
            DataContext = viewModel;
        }
        internal void AddNamingRule(NamingRuleDialogViewModel viewModel)
        {
            var newNode = new NamingRuleTreeItemViewModel(
                viewModel.Title,
                viewModel.SymbolSpecificationList.GetItemAt(viewModel.SelectedSymbolSpecificationIndex) as SymbolSpecificationViewModel,
                viewModel.NamingStyleList.GetItemAt(viewModel.NamingStyleIndex) as NamingStyleViewModel,
                viewModel.EnforcementLevelsList[viewModel.EnforcementLevelIndex],
                this);

            if (viewModel.ParentRuleIndex == 0)
            {
                rootNamingRule.Children.Add(newNode);
            }
            else
            {
                var parent = viewModel.ParentRuleList.GetItemAt(viewModel.ParentRuleIndex) as NamingRuleTreeItemViewModel;
                parent.Children.Add(newNode);
            }
        }
        internal void AddNamingRule(NamingRuleDialogViewModel viewModel)
        {
            var newNode = new NamingRuleTreeItemViewModel(
                viewModel.Title,
                viewModel.SymbolSpecificationList.GetItemAt(viewModel.SelectedSymbolSpecificationIndex) as SymbolSpecificationViewModel,
                viewModel.NamingStyleList.GetItemAt(viewModel.NamingStyleIndex) as NamingStyleViewModel,
                viewModel.EnforcementLevelsList[viewModel.EnforcementLevelIndex],
                this);

            if (viewModel.ParentRuleIndex == 0)
            {
                rootNamingRule.Children.Add(newNode);
            }
            else
            {
                var parent = viewModel.ParentRuleList.GetItemAt(viewModel.ParentRuleIndex) as NamingRuleTreeItemViewModel;
                parent.Children.Add(newNode);
            }
        }
        private void AddRule_Click(object sender, RoutedEventArgs e)
        {
            var viewModel = new NamingRuleDialogViewModel(
                string.Empty,
                null,
                _viewModel.SymbolSpecificationList,
                null,
                _viewModel.NamingStyleList,
                null,
                _viewModel.CreateAllowableParentList(_viewModel.rootNamingRule),
                new EnforcementLevel(DiagnosticSeverity.Hidden),
                _notificationService);
            var dialog = new NamingRuleDialog(viewModel, _viewModel, _categories, _notificationService);
            var result = dialog.ShowModal();

            if (result == true)
            {
                _viewModel.AddNamingRule(viewModel);
            }
        }
 private void AddRule_Click(object sender, RoutedEventArgs e)
 {
     var viewModel = new NamingRuleDialogViewModel(
         string.Empty,
         null,
         _viewModel.SymbolSpecificationList,
         null,
         _viewModel.NamingStyleList,
         null,
         _viewModel.CreateAllowableParentList(_viewModel.rootNamingRule),
         new EnforcementLevel(DiagnosticSeverity.Hidden),
         _notificationService);
     var dialog = new NamingRuleDialog(viewModel, _viewModel, _categories, _notificationService);
     var result = dialog.ShowModal();
     if (result == true)
     {
         _viewModel.AddNamingRule(viewModel);
     }
 }