Ejemplo n.º 1
0
    Toolbar RenderToolbar()
    {
        var toolbar = new Toolbar();

        var graphDatas = Dropecho.Utils.GetAssetsOfType <DEGraphData>().ToList();

        var def = graphDatas.Count() > 0 ? graphDatas.First() : new DEGraphData()
        {
            name = "New Graph Data"
        };

        if (!graphDatas.Contains(def))
        {
            graphDatas.Add(def);
        }
        _graphData = def;
        LoadData(_graphData);
        var dropdown = new PopupField <DEGraphData>(graphDatas, _graphData, (data) => data.name, (data) => data.name);

        dropdown.RegisterValueChangedCallback(evt => {
            _graphData = evt.newValue;
            LoadData(_graphData);
        });

        var menu = new ToolbarMenu();

        foreach (var nt in TypeUtils.GetSubClassesOf <NodeData>())
        {
            var niceName = ObjectNames.NicifyVariableName(nt.Name);
            menu.menu.AppendAction($"Create {niceName}", (act) => _graphView.AddNode(nt));
        }
        toolbar.Add(dropdown);
        toolbar.Add(new Button(() => SaveData())
        {
            text = "Save"
        });
        // toolbar.Add(new Button(() => ClearGraph()) { text = "CLEAR" });
        toolbar.Add(menu);

        return(toolbar);
    }
Ejemplo n.º 2
0
 public void LoadData(DEGraphData data)
 {
     ClearGraph();
     CreateNodes();
     CreateEdges();
 }