/// <summary>
        /// Построение интерфейса
        /// </summary>
        public void Build(InterviewManipulator interviewManipulator, Quest quest, Answer answer, bool readOnly)
        {
            this.interviewManipulator = interviewManipulator;
            this.quest  = quest;
            this.answer = answer;

            lbQuestTitle.Text = quest.Title;

            //очищаем панель альтернатив
            pnMain.Controls.Clear();

            if (readOnly)
            {
                //строим ответы в режиме readonly
                BuildReadOnlyAnswerInterface();
            }
            else
            {
                //строим альтернативы, в зависимости от типа вопроса
                switch (quest.QuestType)
                {
                case QuestType.SingleAnswer: BuildSingleAnswerInterface(); break;

                case QuestType.OpenQuestion: BuildOpenAnswerInterface(); break;
                }
            }
        }
Beispiel #2
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            //создаем новую анкету
            anketa = new Anketa();

            //запрашиваем опросник, если он не задан
            if (questionnaire == null)
            {
                var ofd = new OpenFileDialog()
                {
                    Filter = @"Опросник|*.q", Title = @"Выберите опросник"
                };
                if (ofd.ShowDialog(this) == DialogResult.OK)
                {
                    questionnaire = SaverLoader.Load <Questionnaire>(ofd.FileName);
                }
                else
                {
                    //если пользователь не выбрал опросник - просто завершаем приложение
                    Close();
                    return;
                }
            }

            //создаем процесс опроса (интервью)
            interview = new Interview(questionnaire, anketa);
            //создаем манипулятор для интервью
            interviewManipulator = new InterviewManipulator(interview);

            //переходим к первому вопросу
            interviewManipulator.GoToNextQuestion();

            //строим интерфейс
            Build();
        }
 /// <summary>
 /// Построение интерфейса
 /// </summary>
 public void Build(InterviewManipulator interviewManipulator, Quest quest, Answer answer, bool readOnly)
 {
     pnMain.Controls.Clear();
     lbQuestTitle.Text = quest.Title;
     ConventionsWorker.Init(interviewManipulator, quest, answer, readOnly);
 }