public static void Open <T>(BaseGraph graph) where T : BaseGraphEditor
        {
            BaseGraphEditor editor = EditorWindow.GetWindow <T>();

            editor.LoadGraph(graph);
            editor.Show();
        }
        public static bool OnOpenAssetAttribute(int instanceId, int line)
        {
            object instance = EditorUtility.InstanceIDToObject(instanceId);

            //if selected object is not a graph
            if (!editorTypeTable.ContainsKey(instance.GetType()))
            {
                return(false);
            }

            //open Graph window:
            BaseGraphEditor window = (BaseGraphEditor)EditorWindow.GetWindow(editorTypeTable[instance.GetType()]);

            window.Show();
            window.LoadGraph(instance as BaseGraph);

            return(false);
        }