Exemplo n.º 1
0
        public virtual void GetInspectorOptions(List <ViewModel> viewModel)
        {
            var dataObject = this.DataObject;

            if (dataObject == null)
            {
                return;
            }
            foreach (var item in dataObject.GetPropertiesWithAttribute <InspectorProperty>())
            {
                var property       = item.Key;
                var attribute      = item.Value;
                var fieldViewModel = new PropertyFieldViewModel()
                {
                    Name             = property.Name,
                    DiagramViewModel = DiagramViewModel,
                };
                fieldViewModel.Getter           = () => property.GetValue(dataObject, null);
                fieldViewModel.Setter           = (d, v) => property.SetValue(d, v, null);
                fieldViewModel.InspectorType    = attribute.InspectorType;
                fieldViewModel.DataObject       = dataObject;
                fieldViewModel.Type             = property.PropertyType;
                fieldViewModel.CustomDrawerType = attribute.CustomDrawerType;
                fieldViewModel.CachedValue      = fieldViewModel.Getter();
                viewModel.Add(fieldViewModel);
            }
        }
Exemplo n.º 2
0
        public void AddPropertyFields(string headerText = null)
        {
            if (DataObject == null)
            {
                return;
            }
            ContentItems.Clear();
            var ps = DataObject.GetPropertiesWithAttribute <InspectorProperty>().ToArray();

            if (ps.Length < 1)
            {
                return;
            }

            if (!string.IsNullOrEmpty(headerText))
            {
                ContentItems.Add(new SectionHeaderViewModel()
                {
                    Name = headerText,
                });
            }
            var data = DataObject;

            foreach (var property in ps)
            {
                PropertyInfo property1 = property.Key;
                var          vm        = new PropertyFieldViewModel()
                {
                    Type             = property.Key.PropertyType,
                    Name             = property.Key.Name,
                    InspectorType    = property.Value.InspectorType,
                    CustomDrawerType = property.Value.CustomDrawerType,
                    Getter           = () => property1.GetValue(data, null),
                    DataObject       = data,
                    Setter           = (d, v) =>
                    {
                        property1.SetValue(d, v, null);
                    }
                };
                ContentItems.Add(vm);
            }
            IsDirty = true;
        }
Exemplo n.º 3
0
        public void AddPropertyFields(string headerText = null)
        {
            var ps = GraphItem.GetPropertiesWithAttribute <NodeProperty>().ToArray();

            if (ps.Length < 1)
            {
                return;
            }

            if (!string.IsNullOrEmpty(headerText))
            {
                ContentItems.Add(new SectionHeaderViewModel()
                {
                    Name = headerText,
                });
            }

            foreach (var property in ps)
            {
                PropertyInfo property1 = property.Key;
                var          vm        = new PropertyFieldViewModel(this)
                {
                    Type             = property.Key.PropertyType,
                    Name             = property.Key.Name,
                    InspectorType    = property.Value.InspectorType,
                    CustomDrawerType = property.Value.CustomDrawerType,
                    Getter           = () => property1.GetValue(GraphItem, null),
                    DataObject       = GraphItem,
                    DisableInputs    = true,
                    DisableOutputs   = true,
                    Setter           = (d, v) =>
                    {
                        property1.SetValue(d, v, null);
                    }
                };
                ContentItems.Add(vm);
            }
        }