IncomingView.java
3.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package fi.codecrew.moya.web.flow;
import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.beans.ReaderBeanLocal;
import fi.codecrew.moya.enums.CardState;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.PrintedCard;
import fi.codecrew.moya.web.annotations.SelectedUser;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
import fi.codecrew.moya.web.cdiview.reader.ReaderNameContainer;
import fi.codecrew.moya.web.cdiview.reader.ReaderView;
import fi.codecrew.moya.web.cdiview.user.UserView;
@Named
@ConversationScoped
public class IncomingView extends GenericCDIView {
private static final long serialVersionUID = 802344850073689859L;
private static final Logger logger = LoggerFactory.getLogger(IncomingView.class);
@Inject
@SelectedUser
private transient EventUser user;
@Inject
private UserView userview;
@Inject
private ReaderView readerView;
@Inject
private ReaderNameContainer namecontainer;
@EJB
private CardTemplateBeanLocal cardBean;
@EJB
private PermissionBeanLocal permBean;
public void initView() {
super.beginConversation();
}
private boolean initialized = false;
public void initPrintCardView() {
if(!permbean.hasPermission(UserPermission.MODIFY) || namecontainer.getReaderId() == null || namecontainer.getReaderId() <= 0) {
super.navihandler.redirectNavigation("index.jsf");
}
if (!initialized) {
logger.debug("INITIALIZING!!!!");
initializePoller();
initialized = true;
super.beginConversation();
}
}
public String saveUser() {
logger.info("Saving user in incomingView");
userview.saveUser();
return null;
}
public void initializePoller() {
readerView.initializeForPolling();
}
public void polledRead() {
if (!readerView.isNewBarcodes()) {
return;
}
logger.debug(":Barcode:");
EventUser user = readerView.getUser();
if (user != null) {
if (!user.equals(userview.getUser())) {
logger.info("found user {}, redirecting", user.getNick());
userview.setUser(user);
// userview.prepareCardDownload();
// PURKKAAA, sori tästä, koitan refaktoroida kauniiksi ku kerkiän -TKwtf
super.navihandler.redirectNavigation("printCard.jsf?userid="+user.getUser().getId());
}
} else {
// still there, it must be "clean" barcode
if (userview.getUser() != null) {
userview.attachBarcodeToCard();
}
}
readerView.pollingBarcodeHandled();
}
public String selectUser() {
EventUser user = readerView.getUser();
if (user == null) {
logger.debug("got no user from barcode");
return null;
}
logger.debug("got user from barcode");
userview.setUser(user);
//userview.prepareCardDownload();
return "printCard";
}
public String printCard() {
PrintedCard card = cardBean.checkPrintedCard(user);
card.setCardState(CardState.VALIDATED);
cardBean.saveCard(card);
return null;
}
}