Пример #1
0
            public static bool Execute(object container, InspectorVisitor <T> visitor, IProperty property, PropertyPath path,
                                       string propertyName, InspectorVisitLevel visitLevel)
            {
                var action = new GetCustomInspectorCallback(visitor, property, path, propertyName, visitLevel);

                PropertyBagResolver.Resolve(container.GetType()).Cast(ref action);
                return(action.Visited);
            }
Пример #2
0
 GetCustomInspectorCallback(InspectorVisitor <T> visitor, IProperty property, PropertyPath propertyPath, string propertyName,
                            InspectorVisitLevel visitLevel)
 {
     m_Visitor      = visitor;
     Visited        = false;
     m_PropertyPath = propertyPath;
     m_PropertyName = propertyName;
     m_VisitLevel   = visitLevel;
     m_Property     = property;
 }
Пример #3
0
            public bool Visit(VisualElement parent, PropertyPath path)
            {
                var visitor = new InspectorVisitor <TTarget>(m_Element, m_Target);

                visitor.AddAdapter(new UnityObjectAdapter <TTarget>(visitor));
                visitor.AddAdapter(new NullAdapter <TTarget>(visitor));
                visitor.AddAdapter(new PrimitivesAdapter <TTarget>(visitor));
                var changerTracker = new ChangeTracker();

                using (visitor.VisitorContext.MakeParentScope(parent))
                {
                    return(PropertyContainer.TryVisitAtPath(ref m_Target, path, visitor, ref changerTracker));
                }
            }
Пример #4
0
        private static bool TryGetInspector <TValue>(
            InspectorVisitor <T> visitor,
            IProperty property,
            PropertyPath propertyPath,
            string propertyName,
            InspectorVisitLevel visitLevel)
        {
            var inspector = CustomInspectorDatabase.GetInspector <TValue>(property);

            if (null == inspector)
            {
                return(false);
            }
            var proxy           = new InspectorContext <TValue>(visitor.VisitorContext.Binding, property, propertyPath, propertyName, visitLevel);
            var customInspector = new CustomInspectorElement <TValue>(inspector, proxy);

            visitor.VisitorContext.Parent.contentContainer.Add(customInspector);
            inspector.Update(proxy);
            return(true);
        }