public override object Visit(FormNode node) { Form = new SinglePageFormViewModel(node.Label); VisitChildren(node); return(Form); }
private SinglePageFormViewModel CreateSinglePageFormFromQL(Node ast) { var interpretingTask = _interpretingPipeline.Process(new InterpretingTask(ast, _memory, _symbols)); var formBuildingVisitor = new QuestionnaireVisitor(); interpretingTask.InterpretedAst.Accept(formBuildingVisitor); SinglePageFormViewModel form = formBuildingVisitor.Form; form.QuestionValueAssignedCommand = new RelayCommand <QuestionViewModel>(QuestionValueAssignedCommand_Execute); return(form); }
private FormViewModel RebuildQuestionnaire(Node evaluatedAst) { SinglePageFormViewModel singlePageViewModel = CreateSinglePageFormFromQL(evaluatedAst); if (string.IsNullOrEmpty(_mainViewModel.StylesheetInput)) { return(singlePageViewModel); } List <PageViewModel> pageList = CreatePaginatedFormFromStylesheet(singlePageViewModel.Questions.ToList()); var multiPageViewModel = _mainViewModel.Form as MultiPageFormViewModel; if (multiPageViewModel == null) { return(new MultiPageFormViewModel(singlePageViewModel.Name, new ReactiveList <PageViewModel>(pageList))); } int selectedPage = multiPageViewModel.SelectedPage; multiPageViewModel.Pages.Clear(); pageList.ForEach(x => multiPageViewModel.Pages.Add(x)); multiPageViewModel.SelectedPage = selectedPage; return(multiPageViewModel); }