Esempio n. 1
0
    public LokiGraphView()
    {
        this.AddManipulator(new ClickSelector());
        this.AddManipulator(new ContentDragger());
        this.AddManipulator(new SelectionDragger());
        this.AddManipulator(new RectangleSelector());

        SetupZoom(ContentZoomer.DefaultMinScale, ContentZoomer.DefaultMaxScale * 2f);

        var styleSheet = LokiResources.Get <StyleSheet>(STYLE_SHEET_PATH);

        styleSheets.Add(styleSheet);

        searchWindowProvider = ScriptableObject.CreateInstance <SearchWindowProvider>();
        searchWindowProvider.Prepare();

        var node = new Node();

        var port = node.InstantiatePort(Orientation.Horizontal, Direction.Input, Port.Capacity.Multi, typeof(float));

        node.inputContainer.Add(port);

        this.AddElement(node);


        var type = typeof(TestClass);
        var f0   = type.GetField("x");
        var f1   = type.GetField("y");

        var nodeView2 = new LokiNodeView(new VariableAdapter(f0));

        nodeView2.SetPosition(Vector2.one * 300f);

        var nodeView = new LokiNodeView(new VariableAdapter(f1));

        nodeView.SetPosition(Vector3.right * 200f + Vector3.up * 100f);

        this.AddElement(nodeView);
        this.AddElement(nodeView2);


        // EventCallback<GeometryChangedEvent> func = null;
        // func = evt =>
        // {
        //  var edge = new LokiEdge();
        //  edge.Connect(nodeView.Q<LokiPort>(), null); // nodeView2.Q<LokiPort>());
        //  this.AddElement(edge);
        //  nodeView.UnregisterCallback<GeometryChangedEvent>(func);
        // };
        //
        // nodeView.RegisterCallback<GeometryChangedEvent>(func);
    }
Esempio n. 2
0
    public void OnEnable()
    {
        var vt = LokiResources.Get <VisualTreeAsset>("UXML/LokiSearchWindow.uxml");

        vt.CloneTree(rootVisualElement);

        var ss = LokiResources.Get <StyleSheet>("StyleSheets/LokiSearchWindow.uss");

        rootVisualElement.styleSheets.Add(ss);

        labelInfo = rootVisualElement.Q <Label>("label-info");

        textField = rootVisualElement.Q <TextField>();
        textFieldFocusController = textField.Q("unity-text-input");
        textFieldFocusController.Focus();

        textFieldFocusController.RegisterCallback <KeyDownEvent>(evt =>
        {
            if (evt.keyCode == KeyCode.DownArrow)
            {
                var list = pageStack[currentPage];
                list.SetSelection(0);
                list.Focus();
            }
        });

        rootVisualElement.RegisterCallback <KeyDownEvent>(evt =>
        {
            if (evt.keyCode == KeyCode.LeftArrow)
            {
                if (currentPage == 0)
                {
                    return;
                }

                MoveLeft();
            }
        });

        rootVisualElement.RegisterCallback <KeyDownEvent>(OnEscapeKeyDown);
        textFieldFocusController.RegisterCallback <KeyDownEvent>(OnEscapeKeyDown);

        textField.RegisterCallback <ChangeEvent <string> >(OnSearchTextChanged);

        pageContainer = rootVisualElement.Q("page-container");


        this.Focus();
    }