public EditorInputListener()
        {
            _mouseEventMap = new Dictionary <EventType, List <Action> >();

            AddMouseHandler(EventType.MouseDown, () => MouseDown.InvokeSafe(new EditorMouseEvent()));
            AddMouseHandler(EventType.MouseUp, () => MouseUp.InvokeSafe(new EditorMouseEvent()));
            AddMouseHandler(EventType.MouseDrag, () => MouseDragged.InvokeSafe(new EditorMouseEvent()));
            AddMouseHandler(EventType.MouseMove, () => MouseMoved.InvokeSafe(new EditorMouseEvent()));
            AddMouseHandler(EventType.ContextClick, () => ContextClicked.InvokeSafe());
        }
        void InputListener_MouseUp(EditorMouseEvent mouseEvent)
        {
            _editorView.GraphView.GetPinViewUnderMouse((view) =>
            {
                NodeEditor.Logger.Log <NodeEditorUserEventsListener>("Mouse released over Pin {0}. (Node ID: {1}) (Button: {2})",
                                                                     view.Pin.Name,
                                                                     view.Pin.Node.ID,
                                                                     mouseEvent.Button);

                if (mouseEvent.IsLeftMouse)
                {
                    MouseUpOverPin.InvokeSafe(view.Pin);
                }
            });

            MouseUp.InvokeSafe();
        }