Beispiel #1
0
        public override string Label(DataProvider target)
        {
            MemberBindProvider memberBindProvider = (MemberBindProvider)target;

            if (memberBindProvider.member == null)
            {
                return(base.nfo.Name);
            }
            return(BloxMemberInfo.SimpleMemberPath(memberBindProvider.member));
        }
Beispiel #2
0
 protected string GetDataBindingLabel(DataBinding binding)
 {
     if (binding.dataContext == DataBinding.DataContext.Constant)
     {
         plyVar constant = binding.constant;
         if (((constant != null) ? constant.GetValue() : null) != null)
         {
             return(binding.constant.GetValue().ToString());
         }
         return("null");
     }
     if (binding.dataContext == DataBinding.DataContext.GlobalProperty)
     {
         if (binding.member == null)
         {
             return("null");
         }
         return(BloxMemberInfo.SimpleMemberPath(binding.member));
     }
     return("-select-");
 }
Beispiel #3
0
        private void InitGlobalProperty()
        {
            if (DataBindingWindow.staticBindables == null || DataBindingWindow.staticBindableLabels == null)
            {
                DataBindingWindow.staticBindables = new List <BindableData>();
                Type       typeFromHandle = typeof(Property);
                Assembly[] assemblies     = AppDomain.CurrentDomain.GetAssemblies();
                for (int i = 0; i < assemblies.Length; i++)
                {
                    Type[] exportedTypes = assemblies[i].GetExportedTypes();
                    for (int j = 0; j < exportedTypes.Length; j++)
                    {
                        Type           type       = exportedTypes[j];
                        PropertyInfo[] properties = type.GetProperties(BindingFlags.Static | BindingFlags.Public);
                        for (int k = 0; k < properties.Length; k++)
                        {
                            PropertyInfo propertyInfo = properties[k];
                            if (typeFromHandle.IsAssignableFrom(propertyInfo.PropertyType))
                            {
                                DataBindingWindow.staticBindables.Add(new BindableData
                                {
                                    visibleName = type.Name + "/" + propertyInfo.Name,
                                    mi          = new BloxMemberInfo(propertyInfo, null)
                                });
                            }
                        }
                        FieldInfo[] fields = type.GetFields(BindingFlags.Static | BindingFlags.Public);
                        for (int k = 0; k < fields.Length; k++)
                        {
                            FieldInfo fieldInfo = fields[k];
                            if (typeFromHandle.IsAssignableFrom(fieldInfo.FieldType))
                            {
                                DataBindingWindow.staticBindables.Add(new BindableData
                                {
                                    visibleName = type.Name + "/" + fieldInfo.Name,
                                    mi          = new BloxMemberInfo(fieldInfo, null)
                                });
                            }
                        }
                    }
                }
                DataBindingWindow.staticBindableLabels = new GUIContent[DataBindingWindow.staticBindables.Count];
                for (int l = 0; l < DataBindingWindow.staticBindables.Count; l++)
                {
                    DataBindingWindow.staticBindableLabels[l] = new GUIContent(DataBindingWindow.staticBindables[l].visibleName);
                }
            }
            string a   = BloxMemberInfo.SimpleMemberPath(this.databinding.member).Replace(".", "/");
            int    num = 0;

            while (true)
            {
                if (num < DataBindingWindow.staticBindables.Count)
                {
                    if (!(a == DataBindingWindow.staticBindables[num].visibleName))
                    {
                        num++;
                        continue;
                    }
                    break;
                }
                return;
            }
            this.staticBindIdx = num;
        }
Beispiel #4
0
 private object MemberContext()
 {
     if (this.member != null && !this.member.IsStatic)
     {
         if (this.memberContext != null)
         {
             return(this.memberContext);
         }
         Type reflectedType = this.member.ReflectedType;
         if (this.sourceObjType == DataSourceOject.WithName)
         {
             GameObject gameObject = GameObject.Find(this.sourceObjData);
             this.memberContext = (((object)gameObject != null) ? gameObject.GetComponent(reflectedType) : null);
             if (this.memberContext == null)
             {
                 Debug.LogErrorFormat("[MemberBind] The context for member [{0}] could not be resolved. This will lead to further errors. Object with Name [{1}] and Component [{2}] was expected in scene.", BloxMemberInfo.SimpleMemberPath(this.member), this.sourceObjData, reflectedType.Name);
             }
         }
         else if (this.sourceObjType == DataSourceOject.WithTag)
         {
             GameObject gameObject2 = GameObject.FindGameObjectWithTag(this.sourceObjData);
             this.memberContext = (((object)gameObject2 != null) ? gameObject2.GetComponent(reflectedType) : null);
             if (this.memberContext == null)
             {
                 Debug.LogErrorFormat("[MemberBind] The context for member [{0}] could not be resolved. This will lead to further errors. Object with Tag [{1}] and Component [{2}] was expected in scene.", BloxMemberInfo.SimpleMemberPath(this.member), this.sourceObjData, reflectedType.Name);
             }
         }
         else if (this.sourceObjType == DataSourceOject.OfType)
         {
             this.memberContext = UnityEngine.Object.FindObjectOfType(reflectedType);
             if (this.memberContext == null)
             {
                 Debug.LogErrorFormat("[MemberBind] The context for member [{0}] could not be resolved. This will lead to further errors. Object with Component [{1}] was expected in scene.", BloxMemberInfo.SimpleMemberPath(this.member), reflectedType.Name);
             }
         }
         else if (this.sourceObjType == DataSourceOject.Instance)
         {
             if (this.instanceMember != null)
             {
                 this.memberContext = this.instanceMember.GetValue(null);
             }
             if (this.memberContext == null)
             {
                 Debug.LogErrorFormat("[MemberBind] The context for member [{0}] could not be resolved via singleton instance data. This will lead to further errors.", BloxMemberInfo.SimpleMemberPath(this.member));
             }
         }
         else if (this.sourceObjType == DataSourceOject.Owner)
         {
             Component owner = base.owner;
             this.memberContext = (((object)owner != null) ? owner.GetComponent(reflectedType) : null);
             if (this.memberContext == null)
             {
                 Debug.LogErrorFormat("[MemberBind] The context for member [{0}] could not be resolved via 'owner'. This will lead to further errors.", BloxMemberInfo.SimpleMemberPath(this.member));
             }
         }
         else
         {
             Debug.LogErrorFormat("[MemberBind] The context for member [{0}] could not be resolved. This will lead to further errors. No source object was specified.", BloxMemberInfo.SimpleMemberPath(this.member));
         }
         return(this.memberContext);
     }
     return(null);
 }