@Override
    protected boolean execute(Widget widget, MouseEvent event) {
        widget.setHovered(widget.contains(event.getX(), event.getY()));
        widget.setFocused(event.getID() == MouseEvent.MOUSE_PRESSED ? widget.isHovered() : widget.isFocused());
        widget.setPressed(((event.getID() != MouseEvent.MOUSE_EXITED) && widget.isPressed() && event.getID() != MouseEvent.MOUSE_RELEASED) || widget.isHovered() && event.getID() == MouseEvent.MOUSE_PRESSED);
        return false;
    }