1 package com.sri.emo.wizard.wizardgateway;
2
3 import com.jcorporate.expresso.core.controller.*;
4 import com.jcorporate.expresso.core.db.DBException;
5 import com.jcorporate.expresso.core.dbobj.ValidValue;
6 import com.sri.common.controller.StateHandler;
7
8 import java.util.List;
9
10 /***
11 * Prompts for adding a wizard. It must allow the user to distinguish
12 * between different types of wizards.
13 *
14 * @author Michael Rimov
15 * @version 1.0
16 */
17 public class PromptAddWizard extends AddWizardHandler implements StateHandler {
18
19 /***
20 * Name of the State for which this handler deals with.
21 */
22 public static final String STATE_NAME = "promptAdd";
23
24
25 /***
26 * Friendly description of this handler.
27 */
28 public static final String STATE_DESCRIPTION = "Prompt To Add A Wizard";
29
30 /***
31 * Constructs this particular state handler.
32 *
33 * @param handlerOwner Controller the controller that is the parent of this
34 * state handler.
35 */
36 public PromptAddWizard(final Controller handlerOwner) {
37 super(handlerOwner);
38 }
39
40 /***
41 * Called to handle the request.
42 *
43 * @param request ControllerRequest The Function's ControllerRequest
44 * object.
45 * @param response ControllerResponse The Function's ControllerResponse
46 * object.
47 * @throws DBException upon underlying database exception error.
48 * @throws ControllerException upon underlying ControllerException error.
49 */
50 public void handleRequest(final ExpressoRequest request, final ExpressoResponse response) throws DBException,
51 ControllerException {
52 response.setTitle("Choose Type of Wizard");
53 Transition cancel = new Transition("Cancel", this.getOwner().getClass(), ListWizards.STATE_NAME);
54 cancel.setName("cancel");
55 response.add(cancel);
56
57 Input selection = new Input();
58 selection.setName(AddWizardHandler.PARAM_WIZARD_TYPE);
59 selection.setAttribute(Input.ATTRIBUTE_MULTIVALUED, "Y");
60
61 List selectionValidValues = getWizardTypeList();
62 selection.setValidValues(selectionValidValues);
63 response.add(selection);
64 if (response.getFormCache(AddWizardHandler.PARAM_WIZARD_TYPE) == null
65 || response.getFormCache(AddWizardHandler.PARAM_WIZARD_TYPE).length() == 0) {
66 selection.setDefaultValue(((ValidValue) selectionValidValues.get(0)).getKey());
67 } else {
68 selection.setDefaultValue(response);
69 }
70
71 Transition submit = new Transition("Next", this.getOwner().getClass(), DoAddWizard.STATE_NAME);
72 submit.setName("next");
73 response.add(submit);
74
75 }
76
77 }