예제 #1
0
 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>());
 }
예제 #2
0
        public TreeViewModel(Simulation rootObject)
        {
            _rootObject = new EngineObjectViewModel((EngineObject)rootObject.FindChild("Simulation"), null);

            _firstNode = new ReadOnlyCollection <EngineObjectViewModel>(
                new EngineObjectViewModel[]
            {
                _rootObject
            });
            _searchCommand = new SearchFamilyTreeCommand(this);
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        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);
                }
            }
        }
예제 #5
0
        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;
        }
예제 #6
0
        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;
        }