Пример #1
0
        protected override void ExecuteCommand()
        {
            var validator = WebElementCommandsHelper.GetCreateUpdateWebElementValidator(
                _webElementsTreeUserControl,
                Selected.Name);

            var editDialog = new WebElementCreateEditDialog(validator, Selected);

            editDialog.WebElements = _webElementsTreeUserControl.WebElements;
            if (editDialog.ShowDialog() != true)
            {
                return;
            }

            if (Selected.ElementType != WebElementTypes.Reference)
            {
                return;
            }

            var selected = Selected;

            _webElementsTreeUserControl.SelectedWebElement = null;
            _webElementsTreeUserControl.UpdateLayout();
            _webElementsTreeUserControl.SelectedWebElement = selected;
        }
Пример #2
0
        public List <SaKiMenuItemViewModel> CreateMenuItemsForWebElement()
        {
            var elementInfo = _webElementsTreeUserControl.SelectedWebElement;

            var et  = elementInfo?.ElementType ?? "Root";
            var p   = elementInfo?.Parent?.ElementType ?? "Root";
            var key = $"Menu Items for {et} {p}";

            var isAnyParentRef = WebElementsViewModelsHelper.IsAnyParentReference(elementInfo);

            if (isAnyParentRef)
            {
                key = "Reference";
            }

            if (elementInfo != null && elementInfo.ElementType == WebElementTypes.Reference)
            {
                key = $"Menu Items for {et} {p} ref";
            }

            if (!_menusCache.ContainsKey(key))
            {
                var items = new List <SaKiMenuItemViewModel>();

                if (isAnyParentRef)
                {
                    items.Add(CreateCopyNameMenuItem());
                    items.Add(CreateGoToReferencedMenuItem());
                }
                else
                {
                    if (elementInfo != null)
                    {
                        items.Add(CreateCopyNameMenuItem());

                        if (elementInfo.ElementType == WebElementTypes.Reference)
                        {
                            items.Add(CreateGoToReferencedMenuItem());
                        }

                        items.Add(CreateEditMenuItem());
                    }

                    if (WebElementCommandsHelper.CanElementHasCustomChildren(elementInfo))
                    {
                        items.Add(CreateCreateMenuItemGroup(et));
                    }

                    items.Add(CreateActionsMenuItemGroup(et, p));
                }

                _menusCache[key] = items;
            }
            return(_menusCache[key]);
        }
Пример #3
0
        public override bool CanExecute(object parameter)
        {
            var result = CutOrCopied != null &&
                         Selected != CutOrCopied &&
                         !WebElementsViewModelsHelper.IsAnyParentReference(Selected) &&
                         WebElementCommandsHelper.CanElementHasCustomChildren(Selected) &&
                         !(Cut != null && Selected.IsDescendantdFor(Cut as CombinedWebElementInfoViewModel)) &&
                         ((Selected as CombinedWebElementInfoViewModel)?.Elements
                          ?? _webElementsTreeUserControl.WebElements.Cast <WebElementInfoViewModel>())
                         ?.FirstOrDefault(e => e.Name == CutOrCopied.Name) == null;

            return(result);
        }
        protected override void ExecuteCommand()
        {
            if (!CanExecute(null))
            {
                return;
            }

            var existedNames = WebElementCommandsHelper.GetExistedNamesForChildWebElements(
                Selected,
                _webElementsTreeUserControl,
                null);

            var textDialog = new TextDialog("Clonned WebElement name");

            textDialog.Validate = str => !existedNames.Contains(str);

            if (textDialog.ShowDialog() != true)
            {
                return;
            }

            var info  = WebElementsViewModelsHelper.CreateInfoFromModel(Selected);
            var model = WebElementsViewModelsHelper.CreateModelFromInfo(info);

            model.Name = textDialog.Text;

            if (Selected.Parent == null)
            {
                if (model is CombinedWebElementInfoViewModel wc)
                {
                    _webElementsTreeUserControl.WebElements.Add(wc);
                }
                else
                {
                    MessageBox.Show("WebElement to clone is not a CombinedWebElementInfoViewModel. Magic Error.");
                }
            }
            else
            {
                model.Parent = Selected.Parent;
                Selected.Parent.Elements.Add(model);
            }
        }
        private WebElementInfoViewModel CreateWebElementInfo(CombinedWebElementInfoViewModel parent = null, WebElementInfoViewModel template = null)
        {
            var validator = WebElementCommandsHelper.GetCreateUpdateWebElementValidator(_webElementsTreeUserControl, null);

            //TODO: add ctor override to accept WebElementInfoViewModel with default data
            var dialog = new WebElementCreateEditDialog(validator,
                                                        parent ?? Selected as CombinedWebElementInfoViewModel,
                                                        _elementType,
                                                        template);

            dialog.WebElements = _webElementsTreeUserControl.WebElements;
            if (dialog.ShowDialog() != true)
            {
                return(null);
            }

            var createdWebElement = WebElementsViewModelsHelper.CreateModelFromWebElementType(_elementType);

            WebElementsViewModelsHelper.FillModelWithBaseInfo(
                createdWebElement,
                dialog.WebElement);

            return(createdWebElement);
        }
Пример #6
0
 public override bool CanExecute(object parameter)
 {
     return(WebElementCommandsHelper.CanBeCut(Selected));
 }
 public override bool CanExecute(object parameter)
 {
     return(WebElementCommandsHelper.CanBeCloned(_webElementsTreeUserControl.SelectedWebElement));
 }