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; }
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]); }
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); }
public override bool CanExecute(object parameter) { return(WebElementCommandsHelper.CanBeCut(Selected)); }
public override bool CanExecute(object parameter) { return(WebElementCommandsHelper.CanBeCloned(_webElementsTreeUserControl.SelectedWebElement)); }