Exemple #1
0
        //创建节点
        public static Node CreateNodeInstance(NodeDataJson node)
        {
            if (string.IsNullOrEmpty(node.TypeFullName))
            {
                return(null);
            }

            Node rootNode = LCReflect.CreateInstanceByType <Node>(node.TypeFullName);

            rootNode.Init(node.NodeId, node.Type, node.ChildMaxCnt);
            if (node.Premise != null)
            {
                NodePremise premise = LCReflect.CreateInstanceByType <NodePremise>(node.Premise.TypeFullName);
                premise.Init(rootNode.GetHashCode(), node.Premise.Type, node.Premise.TrueValue);

                if (node.Premise.OtherPremise != null)
                {
                    CreateNodePremise(rootNode.GetHashCode(), premise, node.Premise.OtherPremise);
                }

                rootNode.SetPremise(premise);
            }

            //属性设置
            for (int i = 0; i < node.KeyValues.Count; i++)
            {
                NodeKeyValue keyValue = node.KeyValues[i];
                object       value    = LCConvert.StrChangeToObject(keyValue.Value, keyValue.TypeFullName);
                LCReflect.SetTypeFieldValue(rootNode, keyValue.KeyName, value);
            }
            return(rootNode);
        }
Exemple #2
0
        private void UpdateNodeKeyValue(FieldInfo info, object defauleValue)
        {
            for (int i = 0; i < Json.KeyValues.Count; i++)
            {
                if (Json.KeyValues[i].KeyName == info.Name)
                {
                    return;
                }
            }
            NodeKeyValue view = new NodeKeyValue(info.Name, info.FieldType.FullName, defauleValue.ToString());

            Json.KeyValues.Add(view);
        }
Exemple #3
0
        private void DrawEditorNodeKeyValue()
        {
            EDLayout.CreateScrollView(ref valuePos, "", mRect.width, mRect.height, ((width, height) =>
            {
                //可编辑键值
                for (int j = 0; j < Json.KeyValues.Count; j++)
                {
                    NodeKeyValue keyValue = Json.KeyValues[j];

                    object value = LCConvert.StrChangeToObject(keyValue.Value, keyValue.TypeFullName);
                    Type ty = LCReflect.GetType(keyValue.TypeFullName);
                    EDTypeField.CreateTypeField(keyValue.KeyName + "= ", ref value, ty, width - 10, 20);

                    keyValue.Value = value.ToString();
                }
            }));
        }