public override string Label(DataProvider target) { MemberBindProvider memberBindProvider = (MemberBindProvider)target; if (memberBindProvider.member == null) { return(base.nfo.Name); } return(BloxMemberInfo.SimpleMemberPath(memberBindProvider.member)); }
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-"); }
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; }
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); }