public InspectionPage(Inspection inspection) { this.inspection = inspection; Title = inspection.Name; /*ToolbarItem scoreButton = new ToolbarItem(); * scoreButton.Text = "Scores"; * //scoreButton.Icon = "ScoresIcon.png"; * scoreButton.Clicked += ClickScoresButton; * * ToolbarItem unansweredButton = new ToolbarItem(); * unansweredButton.Text = "Unanswered"; * unansweredButton.Clicked += ClickUnansweredButton; * ToolbarItem disputedButton = new ToolbarItem(); * disputedButton.Text = "Disputed"; * disputedButton.Clicked += ClickDisputedButton; * * ToolbarItem reportButton = new ToolbarItem(); * reportButton.Text = "Report"; * reportButton.Clicked += ClickReportButton;*/ ToolbarItem actionsButton = new ToolbarItem(); actionsButton.Text = "Actions"; actionsButton.Clicked += ClickActionsButton; //ToolbarItems.Add(scoreButton); //ToolbarItems.Add(unansweredButton); //ToolbarItems.Add(disputedButton); //ToolbarItems.Add(reportButton); ToolbarItems.Add(actionsButton); ChecklistModel checklist = inspection.Checklist; foreach (SectionModel section in checklist.Sections) { if (section.SectionParts.Count > 0) { SectionWithPartsPage page = new SectionWithPartsPage(section, inspection, this); Children.Add(page); } else { SectionNoPartsPage page = new SectionNoPartsPage(section, inspection, this); Children.Add(page); } } if (inspection.GetLastViewedQuestion() == null) { inspection.SetLastViewedQuestion(checklist.Sections.First().AllScorableQuestions().First()); } this.CurrentPageChanged += this.PageChanged; Question targetQuestion = inspection.GetLastViewedQuestion(); ISectionPage targetPage = SetSectionPage(targetQuestion.section); targetPage.Initialize(); targetPage.SetSelectedQuestion(targetQuestion); }
private async static void clickQuestionButton(object sender, EventArgs e) { GoToQuestionButton button = (GoToQuestionButton)sender; ISectionPage sectionPage = button.inspectionPage.SetSectionPage(button.question.section); sectionPage.SetSelectedQuestion(button.question); await App.Navigation.PopAsync(); }
private void PageChanged(object sender, EventArgs e) { if (CurrentPage == null) { //clicking "More" can yield a null page. return; } ISectionPage page = (ISectionPage)CurrentPage; page.Initialize(); inspection.SetLastViewedQuestion(page.GetCurrentQuestion()); }
internal static List <QuestionPage> GenerateQuestionPages(List <Question> questions, Inspection inspection, ISectionPage sectionPage) { List <QuestionPage> pages = new List <QuestionPage>(); string MasterQuestionText = string.Empty; List <Reference> MasterQuestionReferences = new List <Reference>(); int MasterQuestionNumber = -2; foreach (Question question in questions) { QuestionPage page = null; if (question.HasSubItems) { MasterQuestionNumber = question.Number; MasterQuestionText = question.Text.Trim(); MasterQuestionReferences = question.References; } else if (question.Number == MasterQuestionNumber) { page = new QuestionPage(question, inspection, MasterQuestionText + "\n" + question.Text.Trim(), MasterQuestionReferences); } else { page = new QuestionPage(question, inspection); } if (page != null) { page.sectionPage = sectionPage; pages.Add(page); } } return(pages); }