1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kns.web.struts.form;
17
18 import org.kuali.rice.kns.service.KNSServiceLocator;
19 import org.kuali.rice.kns.util.WebUtils;
20 import org.kuali.rice.kns.question.Question;
21 import org.kuali.rice.krad.service.KRADServiceLocatorWeb;
22 import org.kuali.rice.krad.util.KRADConstants;
23 import org.kuali.rice.krad.util.GlobalVariables;
24 import javax.servlet.http.HttpServletRequest;
25 import java.util.ArrayList;
26
27
28
29
30
31
32 public class QuestionPromptForm extends KualiForm {
33 private static final long serialVersionUID = 1L;
34 private ArrayList buttons;
35 private String caller;
36
37 private String formKey;
38 private String questionIndex;
39 private String questionText;
40 private String questionType;
41 private String title;
42 private String context;
43 private String reason;
44 private String showReasonField;
45 private String questionAnchor;
46 private String methodToCallPath;
47 private String docNum;
48
49
50
51
52 public String getDocNum() {
53 return this.docNum;
54 }
55
56
57
58
59 public void setDocNum(String docNum) {
60 this.docNum = docNum;
61 }
62
63
64
65
66 public String getShowReasonField() {
67 return showReasonField;
68 }
69
70
71
72
73 public void setShowReasonField(String showReasonField) {
74 this.showReasonField = showReasonField;
75 }
76
77
78
79
80 public ArrayList getButtons() {
81 return buttons;
82 }
83
84
85
86
87 public String getCaller() {
88 return caller;
89 }
90
91
92
93
94 public String getFormKey() {
95 return formKey;
96 }
97
98
99
100
101 public String getQuestionIndex() {
102 return questionIndex;
103 }
104
105
106
107
108 public String getQuestionText() {
109 return questionText != null ? WebUtils.filterHtmlAndReplaceRiceMarkup(questionText) : questionText;
110 }
111
112
113
114
115 public String getQuestionType() {
116 return questionType;
117 }
118
119
120
121
122 public String getTitle() {
123 return title;
124 }
125
126
127
128
129 public void populate(HttpServletRequest request) {
130 super.populate(request);
131
132
133 title = KRADConstants.QUESTION_PAGE_TITLE;
134
135 if (request.getAttribute(KRADConstants.DOC_FORM_KEY) != null) {
136 this.setFormKey((String) request.getAttribute(KRADConstants.DOC_FORM_KEY));
137 }
138 else if (request.getParameter(KRADConstants.DOC_FORM_KEY) != null) {
139 this.setFormKey(request.getParameter(KRADConstants.DOC_FORM_KEY));
140 }
141
142 if (request.getAttribute(KRADConstants.DOC_NUM) != null) {
143 this.setFormKey((String) request.getAttribute(KRADConstants.DOC_NUM));
144 }
145
146
147 if (request.getParameter(KRADConstants.RETURN_LOCATION_PARAMETER) != null) {
148 this.setBackLocation(request.getParameter(KRADConstants.RETURN_LOCATION_PARAMETER));
149 }
150
151 if (getMethodToCall().equals(KRADConstants.START_METHOD)) {
152 Question kualiQuestion = KNSServiceLocator.getQuestion(questionType);
153 if (kualiQuestion == null) {
154 throw new RuntimeException("question implementation not found: " + request.getParameter(KRADConstants.QUESTION_IMPL_ATTRIBUTE_NAME));
155 }
156
157
158 String questionId = request.getParameter(KRADConstants.QUESTION_INST_ATTRIBUTE_NAME);
159 String questionTextAttributeName = KRADConstants.QUESTION_TEXT_ATTRIBUTE_NAME + questionId;
160
161 if (GlobalVariables.getUserSession().retrieveObject(questionTextAttributeName)!=null) {
162 this.setQuestionText((String)GlobalVariables.getUserSession().retrieveObject(questionTextAttributeName));
163 GlobalVariables.getUserSession().removeObject(questionTextAttributeName);
164 }
165
166
167
168 if (questionText == null) {
169 questionText = kualiQuestion.getQuestion();
170 }
171
172 if (buttons == null) {
173 buttons = kualiQuestion.getButtons();
174 }
175 }
176 }
177
178
179
180
181 public void setButtons(ArrayList buttons) {
182 this.buttons = buttons;
183 }
184
185
186
187
188 public void setCaller(String caller) {
189 this.caller = caller;
190 }
191
192
193
194
195 public void setFormKey(String formKey) {
196 this.formKey = formKey;
197 }
198
199
200
201
202 public void setQuestionIndex(String questionIndex) {
203 this.questionIndex = questionIndex;
204 }
205
206
207
208
209 public void setQuestionText(String questionText) {
210 this.questionText = questionText;
211 }
212
213
214
215
216 public void setQuestionType(String questionName) {
217 this.questionType = questionName;
218 }
219
220
221
222
223 public void setTitle(String title) {
224 this.title = title;
225 }
226
227 public String getContext() {
228 return context;
229 }
230
231 public void setContext(String context) {
232 this.context = context;
233 }
234
235
236
237
238 public String getReason() {
239 return reason;
240 }
241
242
243
244
245 public void setReason(String reason) {
246 this.reason = reason;
247 }
248
249 public String getQuestionAnchor() {
250 return questionAnchor;
251 }
252
253 public void setQuestionAnchor(String questionAnchor) {
254 this.questionAnchor = questionAnchor;
255 }
256
257 public String getMethodToCallPath() {
258 return methodToCallPath;
259 }
260 public void setMethodToCallPath(String methodToCallPath) {
261 this.methodToCallPath = methodToCallPath;
262 }
263
264 }