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