using ABI.CCK.Components;
using UnityEditor;
using UnityEngine;

namespace ABI.CCK.Scripts.Editor
{
    [CustomEditor(typeof(ABI.CCK.Components.CVRDescription))]
    public class CCK_CVRDescriptionEditor : UnityEditor.Editor
    {
        private CVRDescription _description;
        public override void OnInspectorGUI()
        {
            if (_description == null) _description = (CVRDescription) target;

            if (_description.locked)
            {
                switch (_description.type)
                {
                    case 0:
                        EditorGUILayout.HelpBox(_description.description, MessageType.None);
                        break;
                    case 1:
                        EditorGUILayout.HelpBox(_description.description, MessageType.Info);
                        break;
                    case 2:
                        EditorGUILayout.HelpBox(_description.description, MessageType.Warning);
                        break;
                    case 3:
                        EditorGUILayout.HelpBox(_description.description, MessageType.Error);
                        break;
                }

                if (!string.IsNullOrEmpty(_description.url))
                {
                    if (GUILayout.Button("Read more about this topic"))
                    {
                        Application.OpenURL(_description.url);
                    }
                }
            }
            else
            {
                EditorGUILayout.LabelField("Description");
                _description.description = EditorGUILayout.TextArea(_description.description);
                
                EditorGUILayout.LabelField("Documentation Url");
                _description.url = EditorGUILayout.TextField(_description.url);

                EditorGUILayout.LabelField("Icon Type");
                _description.type = EditorGUILayout.Popup(_description.type, new string[] { "None", "Info", "Warning", "Error" });
                
                if (GUILayout.Button("Lock info"))
                {
                    _description.locked = true;
                }
            }
        }
    }
}