Example #1
0
        public static void AddBindingRequest(VisualElement ve, IBindingRequest req)
        {
            List <IBindingRequest> l = ve.GetProperty(s_BindingRequestObjectVEPropertyName) as List <IBindingRequest>;

            if (l == null)
            {
                l = RequestObjectListPool.Get();
                ve.SetProperty(s_BindingRequestObjectVEPropertyName, l);
            }

            l.Add(req);
            ve.IncrementVersion(VersionChangeType.Bindings);
        }
Example #2
0
        public static void ClearBindingRequests(VisualElement ve)
        {
            List <IBindingRequest> l = ve.GetProperty(s_BindingRequestObjectVEPropertyName) as List <IBindingRequest>;

            if (l != null)
            {
                foreach (var r in l)
                {
                    r.Release();
                }

                RequestObjectListPool.Release(l);
                ve.SetProperty(s_BindingRequestObjectVEPropertyName, null);
            }
        }
Example #3
0
        public static void RemoveBindingRequest(VisualElement ve, IBindingRequest req)
        {
            List <IBindingRequest> l = ve.GetProperty(s_BindingRequestObjectVEPropertyName) as List <IBindingRequest>;

            if (l != null)
            {
                req.Release();
                l.Remove(req);
                if (l.Count == 0)
                {
                    RequestObjectListPool.Release(l);
                    ve.SetProperty(s_BindingRequestObjectVEPropertyName, null);
                }
            }
        }
Example #4
0
        void StopTrackingRecursive(VisualElement ve)
        {
            StopTracking(ve);

            var bindingRequest = ve.GetProperty(s_BindingRequestObjectVEPropertyName);

            if (bindingRequest != null)
            {
                m_ElementsToBind.Remove(ve);
            }

            int count = ve.hierarchy.childCount;

            for (int i = 0; i < count; i++)
            {
                var child = ve.hierarchy[i];
                StopTrackingRecursive(child);
            }
        }
Example #5
0
        public override void OnVersionChanged(VisualElement ve, VersionChangeType versionChangeType)
        {
            base.OnVersionChanged(ve, versionChangeType);

            if ((versionChangeType & VersionChangeType.Bindings) == VersionChangeType.Bindings)
            {
                if (GetBindingObjectFromElement(ve) != null)
                {
                    StartTracking(ve);
                }
                else
                {
                    StopTracking(ve);
                }

                var bindingRequests = ve.GetProperty(s_BindingRequestObjectVEPropertyName);
                if (bindingRequests != null)
                {
                    m_ElementsToBind.Add(ve);
                }
            }
        }
Example #6
0
 public static IBinding GetAdditionalBinding(VisualElement ve)
 {
     return(ve.GetProperty(s_AdditionalBindingObjectVEPropertyName) as IBinding);
 }