Example #1
0
        /// <summary>
        /// Draws data mapping GUI.
        ///  - Allows a user to drag/drop applicable class script to parse data into
        /// </summary>
        private void DrawDataMappingGUI()
        {
            EditorGUILayout.LabelField("Mapping", _mainStyle);

            GUILayout.Space(5);
            EditorGUILayout.BeginVertical("box");

            EditorGUILayout.LabelField("Destination Class", _subStyle);
            GUILayout.Space(5);

            _destinationClass = (MonoScript)EditorGUILayout.ObjectField(_destinationClass, typeof(MonoScript), true);
            if (_destinationClass == null)
            {
                EditorGUILayout.HelpBox("Please drag a class script that you would like the FBDataSnapshot mapped to.", MessageType.Info);
            }

            if (_destinationClass != null)
            {
                Type classType = _destinationClass.GetClass();
                if (classType.IsSubclassOf(typeof(GenericMappable)))
                {
                    GenericMappable customClass = (GenericMappable)ScriptableObject.CreateInstance(_destinationClass.GetClass());
                    customClass.ParseKeys(_dataSnapshot);
                    customClass.Map(_dataSnapshot);
                    Editor.CreateEditor(customClass).OnInspectorGUI();
                }
                else
                {
                    EditorGUILayout.HelpBox("Please make sure that your destination class inherits from GenericMappable and implements the Map() function", MessageType.Warning);
                }
            }

            EditorGUILayout.EndVertical();
        }
        /// <summary>
        /// Draws data mapping GUI.
        ///  - Allows a user to drag/drop applicable class script to parse data into
        /// </summary>
        private void DrawDataMappingGUI()
        {
            EditorGUILayout.LabelField("Mapping", _mainStyle);
            EditorGUILayout.LabelField("Destination Class");

            _destinationClass = (MonoScript)EditorGUILayout.ObjectField(_destinationClass, typeof(MonoScript), true);
            if (_destinationClass == null)
            {
                EditorGUILayout.HelpBox("Please drag a class script that you would like the FBDataSnapshot mapped to.", MessageType.Info);
            }

            if (_destinationClass != null)
            {
                GenericMappable customClass = (GenericMappable)ScriptableObject.CreateInstance(_destinationClass.GetClass());
                customClass.ParseKeys(_dataSnapshot);
                customClass.Map(_dataSnapshot);
                Editor.CreateEditor(customClass).OnInspectorGUI();
            }
        }