1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.jboss.as.quickstarts.kitchensink.controller;
18
19 import javax.annotation.PostConstruct;
20 import javax.enterprise.inject.Model;
21 import javax.enterprise.inject.Produces;
22 import javax.faces.application.FacesMessage;
23 import javax.faces.context.FacesContext;
24 import javax.inject.Inject;
25 import javax.inject.Named;
26
27 import org.jboss.as.quickstarts.kitchensink.model.Member;
28 import org.jboss.as.quickstarts.kitchensink.service.MemberRegistration;
29 import org.jboss.as.quickstarts.kitchensink.util.KitchensinkMessages;
30
31
32
33
34
35 @Model
36 public class MemberController {
37
38 @Inject
39 private FacesContext facesContext;
40
41 @Inject
42 private MemberRegistration memberRegistration;
43
44 @Produces
45 @Named
46 private Member newMember;
47
48 @PostConstruct
49 public void initNewMember() {
50 newMember = new Member();
51 }
52
53 public void register() throws Exception {
54 try {
55 memberRegistration.register(newMember);
56 FacesMessage m = new FacesMessage(FacesMessage.SEVERITY_INFO, KitchensinkMessages.MESSAGES.registeredMessage(),
57 KitchensinkMessages.MESSAGES.registerSuccessfulMessage());
58 facesContext.addMessage(null, m);
59 initNewMember();
60 } catch (Exception e) {
61 String errorMessage = getRootErrorMessage(e);
62 FacesMessage m = new FacesMessage(FacesMessage.SEVERITY_ERROR, errorMessage,
63 KitchensinkMessages.MESSAGES.registerFailMessage());
64 facesContext.addMessage(null, m);
65 }
66 }
67
68 private String getRootErrorMessage(Exception e) {
69
70 String errorMessage = KitchensinkMessages.MESSAGES.defaultErrorMessage();
71 if (e == null) {
72
73 return errorMessage;
74 }
75
76
77 Throwable t = e;
78 while (t != null) {
79
80 errorMessage = t.getLocalizedMessage();
81 t = t.getCause();
82 }
83
84 return errorMessage;
85 }
86
87 }