@Override protected void fillVoiceXmlDocument( Document document, Element formElement, VoiceXmlDialogueContext dialogueContext) throws VoiceXmlDocumentRenderingException { List<String> submitNameList = new ArrayList<String>(); VariableList submitVariableList = mSubmitParameters; if (submitVariableList != null) { addVariables(formElement, submitVariableList); for (Entry<String, String> entry : mSubmitParameters) { submitNameList.add(entry.getKey()); } } Element subdialogueElement = DomUtils.appendNewElement(formElement, SUBDIALOG_ELEMENT); subdialogueElement.setAttribute(NAME_ATTRIBUTE, SUBDIALOGUE_FORM_ITEM_NAME); subdialogueElement.setAttribute(SRC_ATTRIBUTE, mUri); if (!submitNameList.isEmpty()) { subdialogueElement.setAttribute(NAME_LIST_ATTRIBUTE, StringUtils.join(submitNameList, " ")); } for (Parameter parameter : mParameters) { Element paramElement = DomUtils.appendNewElement(subdialogueElement, PARAM_ELEMENT); paramElement.setAttribute(NAME_ATTRIBUTE, parameter.getName()); setAttribute(paramElement, VALUE_ATTRIBUTE, parameter.getValue()); setAttribute(paramElement, EXPR_ATTRIBUTE, parameter.getExpression()); } SubmitMethod submitMethod = mMethod; if (submitMethod != null) { subdialogueElement.setAttribute(METHOD_ATTRIBUTE, submitMethod.name()); } DocumentFetchConfiguration fetchConfiguration = mFetchConfiguration; if (fetchConfiguration != null) { applyFetchAudio(subdialogueElement, fetchConfiguration.getFetchAudio()); applyRessourceFetchConfiguration(subdialogueElement, fetchConfiguration); } Element filledElement = DomUtils.appendNewElement(subdialogueElement, FILLED_ELEMENT); createVarElement( filledElement, SUBDIALOGUE_RESULT_VARIABLE_NAME, "dialog." + SUBDIALOGUE_FORM_ITEM_NAME); if (mPostDialogueScript != null) { createScript(filledElement, mPostDialogueScript); } createScript( filledElement, RIVR_SCOPE_OBJECT + ".addValueResult(" + SUBDIALOGUE_RESULT_VARIABLE_NAME + ");"); createGotoSubmit(filledElement); }
/** * Loads an object with data from an XMLControl. * * @param control the control * @param obj the object * @return the loaded object */ public Object loadObject(XMLControl control, Object obj) { // load track data XML.getLoader(TTrack.class).loadObject(control, obj); ParticleModel p = (ParticleModel) obj; p.mass = control.getDouble("mass"); // $NON-NLS-1$ p.inspectorX = control.getInt("inspector_x"); // $NON-NLS-1$ p.inspectorY = control.getInt("inspector_y"); // $NON-NLS-1$ p.inspectorH = control.getInt("inspector_h"); // $NON-NLS-1$ p.showInspector = control.getBoolean("inspector_visible"); // $NON-NLS-1$ Parameter[] params = (Parameter[]) control.getObject("user_parameters"); // $NON-NLS-1$ p.getParamEditor().setParameters(params); params = (Parameter[]) control.getObject("initial_values"); // $NON-NLS-1$ // remove trailing "0" from initial condition parameters for (int i = 0; i < params.length; i++) { Parameter param = params[i]; String name = param.getName(); int n = name.lastIndexOf("0"); // $NON-NLS-1$ if (n > -1) { // replace parameter with new one name = name.substring(0, n); Parameter newParam = new Parameter(name, param.getExpression()); newParam.setDescription(param.getDescription()); newParam.setNameEditable(false); params[i] = newParam; } } p.getInitEditor().setParameters(params); UserFunction[] functions = (UserFunction[]) control.getObject("main_functions"); // $NON-NLS-1$ p.getFunctionEditor().setMainFunctions(functions); functions = (UserFunction[]) control.getObject("support_functions"); // $NON-NLS-1$ if (functions != null) { for (int i = 0; i < functions.length; i++) { p.getFunctionEditor().addObject(functions[i], false); } } p.functionPanel.refreshFunctions(); int n = control.getInt("start_frame"); // $NON-NLS-1$ if (n != Integer.MIN_VALUE) p.startFrame = n; else { p.startFrameUndefined = true; } n = control.getInt("end_frame"); // $NON-NLS-1$ if (n != Integer.MIN_VALUE) p.endFrame = n; return obj; }