public LibraryTabElement(Action <string> onObjectFieldDoubleClick, CustomMenuController customMenuController, GraphTypeMetadata graphTypeMetadata) { OnObjectFieldDoubleClick = onObjectFieldDoubleClick; var uxmlAsset = Resources.Load <VisualTreeAsset>(ResourceAssetPaths.LibraryTabElement_UXML); uxmlAsset.CloneTree(this); m_currentGraphDisplay = this.Q <ObjectDisplayField>(OPENED_GRAPH_FIELD); m_createGraphInstanceButton = this.Q <Button>(CREATE_GRAPH_INSTANCE_BUTTON); m_generateGraphClassButton = this.Q <Button>(GENERATE_GRAPH_CLASS_BUTTON); m_generateNodeClassButton = this.Q <Button>(GENERATE_NODE_CLASS_BUTTON); m_generateNodeViewDrawerClassButton = this.Q <Button>(GENERATE_NODEVIEWDRAWER_CLASS_BUTTON); m_graphTypeMetadata = graphTypeMetadata; m_recentsController = new RecentsController(this); m_favoritesController = new FavoritesController(this); m_allGraphsController = new AllGraphsController(this); m_customMenuController = customMenuController; m_customMenuController.AddCustomMenu("CreateGraphInstance", new CreateGraphInstanceCustomMenu(m_graphTypeMetadata)); m_customMenuController.AddCustomMenu("GenerateGraphClass", new GenerateGraphClassCustomMenu()); m_customMenuController.AddCustomMenu("GenerateNodeClass", new GenerateNodeClassCustomMenu(m_graphTypeMetadata)); m_customMenuController.AddCustomMenu("GenerateNodeViewDrawerClass", new GenerateNodeViewDrawerClassCustomMenu(m_graphTypeMetadata)); m_createGraphInstanceButton.clicked += () => { m_customMenuController.ShowCustomMenu("CreateGraphInstance"); }; m_generateGraphClassButton.clicked += () => { m_customMenuController.ShowCustomMenu("GenerateGraphClass"); }; m_generateNodeClassButton.clicked += () => { m_customMenuController.ShowCustomMenu("GenerateNodeClass"); }; m_generateNodeViewDrawerClassButton.clicked += () => { m_customMenuController.ShowCustomMenu("GenerateNodeViewDrawerClass"); }; }