Beispiel #1
0
        private void RegisterNewMediatorFor(int i, Node node)
        {
            var mediator = new NodeMediator(NodeMediator.Name + i, node, (EditorWindow)ViewComponent);

            _nodeMediators.Add(mediator);
            Facade.RegisterMediator(mediator);
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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);
        }