/// <summary>
        /// Create Node Graph and save to assets
        /// </summary>
        /// <param name="graphName">name of graph</param>
        /// <param name="path">location graph will be saved</param>
        public static void CreateNodeGraph(string graphName, string path)
        {
            NodeGraph graph = ScriptableObject.CreateInstance <NodeGraph>();

            if (graph != null)
            {
                graph.Name  = graphName;
                graph.nodes = new List <NodeBase>();
                graph.Initialize();

                AssetDatabase.CreateAsset(graph, path + graphName + ".asset");
                AssetDatabase.SaveAssets();
                AssetDatabase.Refresh();

                // graph mst conatain a start node

                ScriptEditorWindow sc = EditorWindow.GetWindow <ScriptEditorWindow>();
                if (sc != null)
                {
                    CreateNode(graph, NodeType.Event, false, new Vector2(sc.workView.center.x - 170 / 2f,
                                                                         sc.workView.center.y - 90 / 2f));
                    CreateNode(graph, NodeType.Event, true, new Vector2(sc.workView.center.x + 170 / 2f,
                                                                        sc.workView.center.y - 90 / 2f));
                    sc.graph = graph;
                }
            }
        }
        private static void OpenScriptEditor()
        {
            ScriptEditorWindow winso = (ScriptEditorWindow)EditorWindow.GetWindow(typeof(ScriptEditorWindow));

            PropertiesInspector.window = winso;
            Initialize();
        }
        private static void SetNCP()
        {
            ScriptEditorWindow window = GetWindow <ScriptEditorWindow>();

            if (window != null)
            {
                window.workView.NCPopup = Instance;
            }
        }
        private static void RemoveNCP()
        {
            ScriptEditorWindow window = GetWindow <ScriptEditorWindow>();

            if (window != null)
            {
                window.workView.NCPopup     = null;
                window.workView.SelectedPin = null;
            }
        }
 static void CreateViews()
 {
     if (instance != null)
     {
         instance.workView   = new WorkView();
         instance.headerView = new HeaderView();
         instance.statusView = new StatusView();
     }
     else
     {
         instance = GetWindow <ScriptEditorWindow>();
         instance.titleContent = new GUIContent("Script Editor");
         instance.workView     = new WorkView();
         instance.headerView   = new HeaderView();
         instance.statusView   = new StatusView();
     }
 }
        /// <summary> Unimplemented. Create graph from file. </summary>
        public static void LoadScript(string path)
        {
            NodeGraph graph;

            if (String.IsNullOrEmpty(path))
            {
                return;
            }

            int    appPatLen = Application.dataPath.Length;
            string finalPath = path.Substring(appPatLen - 6);

            graph = AssetDatabase.LoadAssetAtPath <NodeGraph>(finalPath);
            if (graph != null)
            {
                ScriptEditorWindow window = EditorWindow.GetWindow <ScriptEditorWindow>();
                if (window != null)
                {
                    window.graph = graph;
                }
            }
        }
 public ViewBase(string title)
 {
     this.title  = title;
     this.window = EditorWindow.GetWindow <ScriptEditorWindow>();
     GetEditorSkin();
 }
 public static void Initialize()
 {
     instance = GetWindow <ScriptEditorWindow>();
     instance.titleContent = new GUIContent("Script Editor");
 }