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); }
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(); }