public EngineObjectViewModel(EngineObject engineObject, EngineObjectViewModel parent) { _engineObject = engineObject; _parent = parent; _children = new ObservableCollection <EngineObjectViewModel>( (from child in _engineObject.Children select new EngineObjectViewModel(child, this)) .ToList <EngineObjectViewModel>()); }
public TreeViewModel(Simulation rootObject) { _rootObject = new EngineObjectViewModel((EngineObject)rootObject.FindChild("Simulation"), null); _firstNode = new ReadOnlyCollection <EngineObjectViewModel>( new EngineObjectViewModel[] { _rootObject }); _searchCommand = new SearchFamilyTreeCommand(this); }
private void upDateParameters(EngineObjectViewModel _obj) { _parameters.Clear(); foreach (var param in _obj.Parameters) { var p = new Parameter() { Name = param.Name, Value = param.Value }; _parameters.Add(p); } }
IEnumerable <EngineObjectViewModel> FindMatches(string searchText, EngineObjectViewModel person) { if (person.NameContainsText(searchText)) { yield return(person); } foreach (EngineObjectViewModel child in person.Children) { foreach (EngineObjectViewModel match in this.FindMatches(searchText, child)) { yield return(match); } } }
public void AddObject(string ModelName, string type = "") { EngineObject n_obj; if (type == "") { n_obj = _engineObject.AddObject(ModelName); } else { n_obj = _engineObject.AddObject(ModelName, type); } var e_obj = new EngineObjectViewModel(n_obj, this); _children.Add(e_obj); this.IsExpanded = true; e_obj.IsSelected = true; }
void InterfaceTreeViewComputers_SelectionChange(Object sender, RoutedPropertyChangedEventArgs <object> e) { upDateParameters((EngineObjectViewModel)e.NewValue); AddressBox.Text = ((EngineObjectViewModel)e.NewValue).Fullyqualifiedname; Selecteditem = (EngineObjectViewModel)e.NewValue; if (TreeviewControl.EngineObjectViewTree.ContextMenu != null) { TreeviewControl.EngineObjectViewTree.ContextMenu.Items.Clear(); } ContextMenu context = new ContextMenu(); MenuItem Remove = new MenuItem(); Remove.Header = "Remove"; Remove.Click += delegate { Selecteditem.RemoveObject(); TreeviewControl.EngineObjectViewTree.Items.Refresh(); }; context.Items.Add(Remove); MenuItem Validate = new MenuItem(); Validate.Header = "Validate"; Validate.Click += delegate { string msg; Selecteditem.validate(out msg); MessageBox.Show(msg); TreeviewControl.EngineObjectViewTree.Items.Refresh(); }; context.Items.Add(Validate); MenuItem Add = new MenuItem(); Add.Header = "Add"; foreach (string _addobj in Selecteditem.AddableObjects) { var mn = new MenuItem(); mn.Header = _addobj; mn.Click += delegate { Selecteditem.AddObject(_addobj.Split('-')[0], (_addobj.Split('-').Count() > 1)? _addobj.Split('-')[1]:""); TreeviewControl.EngineObjectViewTree.Items.Refresh(); }; Add.Items.Add(mn); } context.Items.Add(Add); TreeviewControl.EngineObjectViewTree.ContextMenu = context; if (listView.ContextMenu != null) { listView.ContextMenu.Items.Clear(); } ContextMenu LV_context = new ContextMenu(); MenuItem LV_Remove = new MenuItem(); LV_Remove.Header = "Remove"; LV_Remove.Click += delegate { MessageBox.Show("Remove"); }; LV_context.Items.Add(LV_Remove); MenuItem LV_Add = new MenuItem(); LV_Add.Header = "Add"; foreach (string _addobj in Selecteditem.AddableParameters) { var mn = new MenuItem(); mn.Header = _addobj; mn.Click += delegate { Selecteditem.AddParameter(_addobj); upDateParameters(Selecteditem); }; LV_Add.Items.Add(mn); } LV_context.Items.Add(LV_Add); listView.ContextMenu = LV_context; }