Esempio n. 1
0
        public override object Visit(FormNode node)
        {
            Form = new SinglePageFormViewModel(node.Label);
            VisitChildren(node);

            return(Form);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }