示例#1
0
        public override void OnInspectorGUI()
        {
            DrawDefaultInspector();

            this.binder = this.target as BinderBase;

            GUILayout.Space(4);
            GUILayout.BeginVertical(GUI.skin.box);
            GUILayout.Space(4);

            var context = EditorGUILayout.ObjectField(new GUIContent("Data Context"), this.binder.dataContext, typeof(DataContext), true) as DataContext;

            if (context == null)
            {
                GUILayout.Space(4);

                if (GUILayout.Button(BindingDefine.FIND_CONTEXT))
                {
                    context = this.binder.FindDataContext();
                }
            }

            if (this.binder.dataContext != context)
            {
                Undo.RecordObject(this.target, "Select Data Context");
                this.binder.dataContext = context;
            }

            if (this.binder.dataContext == null)
            {
                GUILayout.Space(4);
                GUILayout.EndVertical();
                return;
            }

            BindingField[] arrFields = this.binder.GetBindingFields();

            GUILayout.BeginVertical();

            for (var i = 0; i < arrFields.Length; i++)
            {
                DrawBindingField(arrFields[i]);
            }

            GUILayout.EndVertical();
            GUILayout.Space(4);
            GUILayout.EndVertical();

            if (Event.current.type == EventType.Repaint)
            {
                FilterPopup.SetPopupRect(GUILayoutUtility.GetLastRect());
            }
        }
示例#2
0
 // Register binding message for child binders
 void RegisterBindingMessage(bool forceReinit = false)
 {
     BinderBase[] binders = GetComponentsInChildren <BinderBase> (true);
     for (int i = 0; i < binders.Length; i++)
     {
         BinderBase binder = binders [i];
         if (binder.mDataContext == this)
         {
             binder.Init(forceReinit);
         }
     }
 }
示例#3
0
        public override void OnInspectorGUI()
        {
            DrawDefaultInspector();

            binder = (BinderBase)target;

            DataContext context = (DataContext)EditorGUILayout.ObjectField(new GUIContent("Data Context"), binder.mDataContext, typeof(DataContext), true);

            if (context == null)
            {
                GUILayout.Label(BindingDefine.FIND_CONTEXT_AUTO);
                if (GUILayout.Button(BindingDefine.FIND_CONTEXT))
                {
                    context = binder.FindDataContext();
                }
            }

            if (binder.mDataContext != context)
            {
                binder.mDataContext = context;
                EditorUtility.SetDirty(target);
            }

            if (binder.mDataContext == null)
            {
                return;
            }

            BindingField[] arrFields = binder.GetBindingFields();

            GUILayout.BeginVertical();

            for (int i = 0; i < arrFields.Length; i++)
            {
                DrawBindingField(arrFields [i]);
            }

            GUILayout.EndVertical();

            if (Event.current.type == EventType.Repaint)
            {
                FilterPopup.SetPopupRect(GUILayoutUtility.GetLastRect());
            }
        }