public CreateGraphInstanceCustomMenu(GraphTypeMetadata graphTypeMetadata)
    {
        var uxmlAsset = Resources.Load <VisualTreeAsset>(ResourceAssetPaths.CreateGraphInstanceCustomMenu_UXML);

        uxmlAsset.CloneTree(this);

        m_graphTypeMetaData = graphTypeMetadata;

        m_graphTypeDropdownDrawer = this.Q <IMGUIContainer>(GRAPH_TYPE_DROPDOWN);
        m_graphNameField          = this.Q <TextField>(GRAPH_NAME_FIELD);
        m_pathDrawer   = this.Q <Label>(GRAPH_PATH_LABEL);
        m_createButton = this.Q <Button>(CREATE_BUTTON);
        m_closeButton  = this.Q <Button>(CLOSE_BUTTON);

        m_graphNameField.value = "";
        m_graphTypeDropdownDrawer.onGUIHandler += DrawGraphTypeDropdown;
        m_createButton.clicked += OnCreateButtonPressed;
        m_closeButton.clicked  += OnCloseButtonPressed;

        UpdatePath();
        Selection.selectionChanged -= UpdatePath;
        Selection.selectionChanged += UpdatePath;
        m_graphNameField.RegisterValueChangedCallback((newName) => { UpdatePath(); });

        m_allGraphTypes = AppDomain.CurrentDomain.GetAssemblies().SelectMany(x => x.GetTypes()).Where(
            x => typeof(NodeGraph).IsAssignableFrom(x) && x.IsClass && !x.IsAbstract).ToArray();
        m_allGraphTypeNames = m_allGraphTypes.Select(x => x.Name).ToArray();
    }
コード例 #2
0
    public GenerateNodeViewDrawerClassCustomMenu(GraphTypeMetadata graphTypeMetadata)
    {
        m_graphTypeMetadata = graphTypeMetadata;

        var uxmlAsset = Resources.Load <VisualTreeAsset>(ResourceAssetPaths.GenerateNodeViewDrawerClassCustomMenu_UXML);

        uxmlAsset.CloneTree(this);

        m_closeButton  = this.Q <Button>(CLOSE_BUTTON);
        m_createButton = this.Q <Button>(CREATE_BUTTON);
        m_className    = this.Q <TextField>(NODEVIEWDRAWER_CLASS_NAME);
        m_relatedNodeClassNameIMGUI = this.Q <IMGUIContainer>(NODE_CLASS_NAME_IMGUI);
        m_includeComments           = this.Q <Toggle>(INCLUDE_COMMENTS_TOGGLE);
        m_previewArea    = this.Q <TextField>(PREVIEW_AREA);
        m_assetPathLabel = this.Q <Label>(ASSET_PATH_LABEL);

        m_closeButton.clicked  += OnCloseButtonPressed;
        m_createButton.clicked += OnCreateButtonPressed;

        m_includeComments.RegisterValueChangedCallback(ChangeTemplate);
        m_className.RegisterValueChangedCallback(OnGraphClassNameChanged);

        m_includeComments.value = true;
        ChangeTemplate(m_includeComments.value);

        UpdatePath();
        Selection.selectionChanged -= UpdatePath;
        Selection.selectionChanged += UpdatePath;
        m_relatedNodeClassNameIMGUI.onGUIHandler += OnRelatedNodeClassDraw;

        SetupPopupOptions();
    }