void OnGUIAllComponent()
        {
            EditorGUILayout.BeginHorizontal("box");
            OnGUIIconLabel(objectIcon, new Vector2(16, 16));
            EditorGUILayout.LabelField("All components in the scene");
            if (GUILayout.Button("Export dot file", EditorStyles.toolbarButton))
            {
                ExportReferenceText.ExportText(ExportReferenceText.ExportType.ComponentBase);
            }

            EditorGUILayout.EndHorizontal();
            List <MonoScript> uniqueMonoscript = new List <MonoScript> ();

            foreach (var component in SceneObjectUtility.SceneComponents)
            {
                var monobehaviour = component as MonoBehaviour;
                if (monobehaviour == null)
                {
                    continue;
                }

                var monoscript = MonoScript.FromMonoBehaviour((MonoBehaviour)monobehaviour);

                if (!uniqueMonoscript.Contains(monoscript))
                {
                    uniqueMonoscript.Add(monoscript);
                }
            }

            uniqueMonoscript.Sort((objA, objB) => {
                return(System.String.Compare(objA.name, objB.name));
            });

            foreach (var monoscript in uniqueMonoscript)
            {
                EditorGUILayout.BeginHorizontal();
                if (GUILayout.Button("F", GUILayout.Width(20)))
                {
                    SelectTargetComponent(monoscript);
                }
                EditorGUILayout.ObjectField(monoscript, typeof(MonoScript));
                EditorGUILayout.EndHorizontal();
            }
        }
        void OnGUIAllObjectReferenceTo()
        {
            if (!isVisible)
            {
                EditorGUILayout.BeginHorizontal("box");
                OnGUIIconLabel(toIcon, new Vector2(16, 16));
                EditorGUILayout.LabelField("lost focus");
                EditorGUILayout.EndHorizontal();
                return;
            }

            EditorGUILayout.BeginHorizontal("box");
            OnGUIIconLabel(toIcon, new Vector2(16, 16));
            EditorGUILayout.LabelField("ALL Referencing");

            if (GUILayout.Button("Export dot file", EditorStyles.toolbarButton))
            {
                ExportReferenceText.ExportText(ExportReferenceText.ExportType.ObjectBase);
            }
            EditorGUILayout.EndHorizontal();

            foreach (var obj in allObject)
            {
                if (obj == null)
                {
                    continue;
                }

                var compList = System.Array.FindAll <ReferenceObject> (SceneObjectUtility.SceneReferenceObjects, item => item.referenceComponent.gameObject == obj);
                if (compList.Length == 0)
                {
                    continue;
                }

                EditorGUILayout.BeginVertical("box");

                EditorGUILayout.BeginHorizontal();

                EditorGUI.indentLevel = 0;
                OnGUIIconLabel(objectIcon, new Vector2(16, 16), GUILayout.Width(18));
                EditorGUILayout.ObjectField(obj, typeof(GameObject));
                EditorGUILayout.EndHorizontal();

                EditorGUI.indentLevel = 1;
                foreach (var comp in compList)
                {
                    EditorGUILayout.BeginHorizontal();
                    if (comp.referenceComponent is MonoBehaviour)
                    {
                        var monoscript = MonoScript.FromMonoBehaviour((MonoBehaviour)comp.referenceComponent);
                        EditorGUILayout.ObjectField(monoscript, typeof(MonoScript));
                    }
                    else
                    {
                        EditorGUILayout.LabelField(comp.referenceComponent.GetType().Name);
                    }
                    EditorGUILayout.ObjectField(comp.referenceMemberName, comp.referenceComponent, comp.referenceComponent.GetType());
                    EditorGUILayout.EndHorizontal();
                }
                EditorGUI.indentLevel = 0;
                EditorGUILayout.EndVertical();
            }
        }