/// <summary> /// Initializes a new instance of the <see cref="WebMethodCallResultViewModel"/> class. /// </summary> /// <param name="model"> /// The model. /// </param> /// <param name="field"> /// The field. /// </param> /// <param name="parentNode"> /// The parent node. /// </param> /// <param name="popupFactory"> /// The popup factory. /// </param> /// <param name="selectChildTypeFieldsViewModel"> /// The select child type fields view model. /// </param> /// <param name="resultViewModelFactory"> /// The result view model factory. /// </param> /// <param name="resultFieldFactory"> /// The result field factory. /// </param> public WebMethodCallResultViewModel( IWebMethodCallResultField model, IWebServiceTypeFieldDescription field, IWebMethodCallResultViewModel parentNode, PopupFactory popupFactory, ISelectChildTypeFieldsViewModel selectChildTypeFieldsViewModel, IWebMethodCallResultViewModelFactory resultViewModelFactory, IWebMethodCallResultFieldFactory resultFieldFactory) { if (field == null) throw new ArgumentNullException("field"); if (parentNode == null) throw new ArgumentNullException("parentNode"); if (popupFactory == null) throw new ArgumentNullException("popupFactory"); if (selectChildTypeFieldsViewModel == null) throw new ArgumentNullException("selectChildTypeFieldsViewModel"); if (resultViewModelFactory == null) throw new ArgumentNullException("resultViewModelFactory"); if (resultFieldFactory == null) throw new ArgumentNullException("resultFieldFactory"); _model = model; _name = field.Name; _baseType = field.FieldType; _declaringType = field.DeclaringType; _parentNode = parentNode; PopupFactory = popupFactory; SelectChildTypeFieldsViewModel = selectChildTypeFieldsViewModel; ResultViewModelFactory = resultViewModelFactory; ResultFieldFactory = resultFieldFactory; }
/// <summary> /// Deletes the specified child. /// </summary> /// <param name="node"> /// The child node. /// </param> public void DeleteChild(IWebMethodCallResultViewModel node) { if (node == null) throw new ArgumentNullException("node"); if (Model != null && node.Model != null) Model.Fields.Remove(node.Model); if (Children != null) { var index = Children.IndexOf(node); var updateSelectedNode = ParentSettings.SelectedOutputNode == node; Children.Remove(node); if (updateSelectedNode && index >= 0) { index = Math.Min(index, Children.Count - 1); ParentSettings.SelectedOutputNode = index >= 0 ? Children[index] : this; } } }
/// <summary> /// Create a <see cref="IWebMethodCallResultViewModel"/>. /// </summary> /// <param name="model"> /// The model. /// </param> /// <param name="field"> /// The field. /// </param> /// <param name="parentNode"> /// The parent node. /// </param> /// <returns> /// The <see cref="IWebMethodCallResultViewModel"/>. /// </returns> public IWebMethodCallResultViewModel CreateViewModel( IWebMethodCallResultField model, IWebServiceTypeFieldDescription field, IWebMethodCallResultViewModel parentNode) { return new WebMethodCallResultViewModel(model, field, parentNode, PopupFactory, SelectChildTypeFieldsViewModel, this, ResultFieldFactory); }