public AnyStatePriorityManagerNodeUI() : base() { _anyStateList = new NodeItemList( "Any States", "Any State", AnyStates, 25, container => container.Add(new NamedItemFinder <AnyStateNodeUI>(StateMachineEditor.Editor.AnyStates)), (container, index) => { void SelectAnyState(AnyStateNodeUI previousAnyState, AnyStateNodeUI newAnyState, int selectedIndex) { AnyStates[index] = newAnyState; } var anyStateFinder = container.Q <NamedItemFinder <AnyStateNodeUI> >(); anyStateFinder.OnItemSelected -= SelectAnyState; anyStateFinder.OnItemSelected += SelectAnyState; anyStateFinder.SelectItemWithoutNotify(AnyStates[index], true); }, () => null); extensionContainer.Add(_anyStateList); Button createAnyStatePriorityPortButton = new Button(() => CreateAnyStatePriorityPort()) { text = "+ Any State" }; //inputContainer.Add(createAnyStatePriorityPortButton); RefreshExpandedState(); RefreshPorts(); }
public AnyStateNodeUI() : base() { _filterList = new NodeItemList( "Filters", "Filter", _filters, 20, container => { container.Add(new AnyStateFilterVisualItem()); container.AddToClassList("any-state__filters__item"); }, (container, index) => container.Q <AnyStateFilterVisualItem>().Bind(_filters[index]), () => new AnyStateFilterItem()); _filterList.List.AddToClassList("any-state__filters"); extensionContainer.Add(_filterList); //Foldout filtersFoldout = new Foldout() { value = false, text = "Filters" }; //extensionContainer.Add(filtersFoldout); //VisualElement filterButtonsContainer = new VisualElement(); //filterButtonsContainer.AddToClassList("any-state__filter-list-buttons"); //filterButtonsContainer.style.flexDirection = FlexDirection.RowReverse; //filtersFoldout.Add(filterButtonsContainer); //Button addFilterButton = new Button(() => //{ // _filters.Add(new AnyStateFilterItem()); // _filterList.Refresh(); //}) { text = "Add Filter" }; //filterButtonsContainer.Add(addFilterButton); //Button removeFilterButton = new Button(() => //{ // if (_filterList.selectedItem == null) { return; } // int firstIndex = _filterList.selectedIndex; // int indexFixer = 0; // foreach (int index in _filterList.selectedIndices) // { // _filters.RemoveAt(index - indexFixer); // indexFixer++; // } // _filterList.selectedIndex = Mathf.Min(firstIndex, _filters.Count - 1); // _filterList.Refresh(); //}) { text = "Remove Filter" }; //filterButtonsContainer.Add(removeFilterButton); //VisualElement filterListContainer = new VisualElement(); //filterListContainer.RegisterCallback<MouseDownEvent>(e => e.StopPropagation()); //filtersFoldout.Add(filterListContainer); //_filterList = new ResizableListView(_filters, 20, () => new AnyStateFilterVisualItem(), (filter, index) => //{ // ((AnyStateFilterVisualItem)filter).Bind(_filters[index]); //}) //{ reorderable = true, selectionType = SelectionType.Multiple }; //_filterList.AddToClassList("any-state__filters"); //filterListContainer.Add(_filterList); PriorityPort = InstantiatePort(Orientation.Horizontal, Direction.Output, Port.Capacity.Single, typeof(float)); PriorityPort.portName = "Priority"; PriorityPort.portColor = _portColor; RefreshExpandedState(); RefreshPorts(); RegisterCallback <GeometryChangedEvent>(e => ExitConnections.ForEach(c => c.Refresh())); RegisterCallback <DetachFromPanelEvent>(e => { if (!StateMachineEditor.IsClosing) { this.ClearConnections(); } }); }