private void RegisterNewMediatorFor(int i, Node node) { var mediator = new NodeMediator(NodeMediator.Name + i, node, (EditorWindow)ViewComponent); _nodeMediators.Add(mediator); Facade.RegisterMediator(mediator); }
private void RemoveMediatorFor(Node node) { NodeMediator mediator = null; foreach (var nodeMediator in _nodeMediators) { if (nodeMediator.Node == node) { mediator = nodeMediator; break; } } if (mediator != null) { _nodeMediators.Remove(mediator); Facade.RemoveMediator(mediator.MediatorName); } }
protected override void OnGUI(EditorWindow appView) { NodeMediator mediatorDuringRename = null; foreach (var nodeMediator in _nodeMediators) { if (nodeMediator.IsRenaming) { mediatorDuringRename = nodeMediator; } } for (int i = 0; i < _nodeMediators.Count; i++) { _nodeMediators[i].OnGUI(appView); } for (int i = _nodeMediators.Count - 1; i >= 0; i--) { var nodeMediator = _nodeMediators[i]; if (mediatorDuringRename == null || mediatorDuringRename == nodeMediator) { nodeMediator.HandleEvents(); } } var currentEvent = Event.current; if (currentEvent.type == EventType.Repaint || currentEvent.type == EventType.Layout) { return; } if (_backdropContextMenu == null) { _backdropContextMenu = new GenericMenu(); _backdropContextMenu.AddItem(new GUIContent("Component"), false, OnCreateComponentMenuSelected); } _backgroundDrawer.HandleRightClick(appView.position, currentEvent, _backdropContextMenu); }