void OnGUI()
        {
            var width = position.width - GUI.skin.verticalScrollbar.fixedWidth - 5;

            EditorGUIUtility.labelWidth = LABEL_WIDTH;
            GUI.skin.label.wordWrap     = true;

            scrollPos = EditorGUILayout.BeginScrollView(scrollPos);

            EditorGUILayout.BeginHorizontal(GUILayout.MaxWidth(width));
            myApiKey = EditorGUILayout.PasswordField("API KEY", myApiKey);
            if (GUILayout.Button("Set API Key", GUILayout.Width(BUTTON_WIDTH)))
            {
                EditorPrefs.SetString(MVSHLF_API_KEY, myApiKey);
                client = new GraphQl.Client(myApiKey);
            }
            EditorGUILayout.EndHorizontal();

            GUILayout.Label("Quick search", EditorStyles.boldLabel);
            EditorGUILayout.BeginHorizontal(GUILayout.MaxWidth(width));
            myString = EditorGUILayout.TextField("Keywords", myString);
            if (GUILayout.Button("SEARCH", GUILayout.Width(BUTTON_WIDTH)))
            {
                search(myString);
            }
            EditorGUILayout.EndHorizontal();

            GUILayout.Label("Search results", EditorStyles.boldLabel);
            if (searchResults.mocapClips.edges != null)
            {
                foreach (var clip in searchResults.mocapClips.edges)
                {
                    EditorGUILayout.BeginHorizontal(GUILayout.MaxWidth(width));
                    GUILayout.Label(clip.node.title, GUILayout.ExpandWidth(true), GUILayout.MaxWidth(width - 2 * BUTTON_WIDTH));
                    if (GUILayout.Button("import", GUILayout.Width(BUTTON_WIDTH)))
                    {
                        downloadAsset(clip.node.id);
                    }
                    if (GUILayout.Button("preview", GUILayout.Width(BUTTON_WIDTH)))
                    {
                        getClipDetails(clip.node.id);
                    }
                    EditorGUILayout.EndHorizontal();
                }
            }

            GUILayout.Label("Clip info", EditorStyles.boldLabel);
            if (clipDetails.id != null)
            {
                GUILayout.Label("Title: " + clipDetails.title, GUILayout.MaxWidth(width));
                GUILayout.Label("Description: " + clipDetails.description, GUILayout.MaxWidth(width));
                if (GUILayout.Button("See it on Moveshelf.com", GUILayout.Width(width)))
                {
                    Application.OpenURL("https://moveshelf.com/edit/" + clipDetails.id);
                }

                GUILayout.Label("Comments", EditorStyles.boldLabel);
                foreach (var edge in clipDetails.comments.edges)
                {
                    var comment = edge.node.comment;
                    var author  = edge.node.author.displayName;
                    GUILayout.Label(author + ": " + comment);
                }

                myComment = EditorGUILayout.TextField("Comment: ", myComment,
                                                      GUILayout.MaxWidth(width));
                if (GUILayout.Button("Send", GUILayout.Width(width)))
                {
                    createComment(clipDetails.id, myComment);
                }

                GUILayout.Label("Preview image", EditorStyles.boldLabel);
                if (this.clipPreviewImage != null)
                {
                    var aspectRatio = (float)clipPreviewImage.width / clipPreviewImage.height;
                    GUILayout.Label(this.clipPreviewImage,
                                    GUILayout.Width(width), GUILayout.Height(width / aspectRatio));
                }
                else
                {
                    GUILayout.Label("No preview available");
                }
            }

            EditorGUILayout.EndScrollView();
        }
 void OnEnable()
 {
     //Load API from Environment Variables, if present
     myApiKey = EditorPrefs.GetString(MVSHLF_API_KEY);
     client   = new GraphQl.Client(myApiKey);
 }