1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package com.hack23.cia.web.impl.ui.application.views.pageclicklistener;
20
21 import org.slf4j.Logger;
22 import org.slf4j.LoggerFactory;
23
24 import com.hack23.cia.service.api.action.application.LogoutRequest;
25 import com.hack23.cia.service.api.action.common.ServiceResponse;
26 import com.hack23.cia.service.api.action.common.ServiceResponse.ServiceResult;
27 import com.hack23.cia.web.impl.ui.application.views.common.viewnames.CommonsViews;
28 import com.vaadin.server.VaadinService;
29 import com.vaadin.ui.Button.ClickEvent;
30 import com.vaadin.ui.Button.ClickListener;
31 import com.vaadin.ui.Notification;
32 import com.vaadin.ui.UI;
33
34
35
36
37 public final class LogoutClickListener implements ClickListener {
38
39
40 private static final String LOG_MSG_LOGOUT_FAILURE = "Logout {} failure";
41
42
43 private static final String ERROR_MESSAGE = "Error message";
44
45
46 private static final String LOGOUT_FAILED = "Logout failed";
47
48
49 private static final long serialVersionUID = 1L;
50
51
52 private static final Logger LOGGER = LoggerFactory.getLogger(LogoutClickListener.class);
53
54
55 private final LogoutRequest logoutRequest;
56
57
58
59
60
61
62
63 public LogoutClickListener(final LogoutRequest logoutRequest) {
64 this.logoutRequest = logoutRequest;
65 }
66
67 @Override
68 public void buttonClick(final ClickEvent event) {
69 final ServiceResponse response = ApplicationMangerAccess.getApplicationManager().service(logoutRequest);
70
71
72 if (ServiceResult.SUCCESS == response.getResult()) {
73 UI.getCurrent().getNavigator().navigateTo(CommonsViews.MAIN_VIEW_NAME);
74 UI.getCurrent().getSession().close();
75 VaadinService.getCurrentRequest().getWrappedSession().invalidate();
76 } else {
77 Notification.show(LOGOUT_FAILED,
78 ERROR_MESSAGE,
79 Notification.Type.WARNING_MESSAGE);
80 LOGGER.info(LOG_MSG_LOGOUT_FAILURE,logoutRequest.getSessionId());
81 }
82 }
83 }