protected virtual void OnChildResponseChanged(ISurveyItem item)
 {
     var handler = ChildResponseChanged;
     if (handler != null) {
         handler (this, new EventArgs<ISurveyItem> (item));
     }
 }
        public QuestionContainerView(ISurveyItem item, View questionView, SurveyPageAppearance appearance)
        {
            var headerView = new QuestionHeaderView (item, appearance) {
                VerticalOptions = LayoutOptions.Start
            };

            var inputStackLayout = new StackLayout () {
                Style = appearance.QuestionContainerLayoutStyle,
                Children = {
                    StandardViews.CreateSeparator (appearance.ItemSeperatorStyle),
                    questionView,
                    StandardViews.CreateSeparator (appearance.ItemSeperatorStyle)
                }
            };

            var stackLayout = new StackLayout {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                Children = {
                    headerView,
                    inputStackLayout,
                }
            };

            if (!String.IsNullOrWhiteSpace (item.Footnote)) {
                var footerView = new QuestionFooterView (item, appearance);
                stackLayout.Children.Add (footerView);
            }

            Content = stackLayout;
        }
        private View CreateView(ISurveyItem item)
        {
            switch (item.ItemType)
            {
            case GenericSurveyViewType.DatePicker:
                return(CreateDatePicker(item as DatePickerItem));

            case GenericSurveyViewType.Input:
                return(CreateInput(item as InputItem));

            case GenericSurveyViewType.Picker:
                return(CreatePicker(item as PickerItem));

            case GenericSurveyViewType.Slider:
                return(CreateSlider(item as SliderItem));

            case GenericSurveyViewType.Switch:
                return(CreateSwitch(item as SwitchItem));

            case GenericSurveyViewType.TimePicker:
                return(CreateTimePicker(item as TimePickerItem));

            default:
                throw new NotImplementedException("Item type : " + item.ItemType + " is not implemented");
            }
        }
 public QuestionHeaderView(ISurveyItem question, SurveyPageAppearance appearance)
 {
     Content = new StackLayout {
         Style = appearance.QuestionHeaderLayoutStyle,
         Children = {
             new Label {
                 Text = question.Caption,
                 VerticalOptions = LayoutOptions.FillAndExpand,
                 Style = appearance.QuestionHeaderLabelStyle
             }
         }
     };
 }
 public QuestionFooterView(ISurveyItem question, SurveyPageAppearance appearance)
 {
     Content = new StackLayout {
         Style = appearance.QuestionFooterLayoutStyle,
         Children = {
             new Label {
                 Text = question.Footnote,
                 VerticalOptions = LayoutOptions.Start,
                 Style = appearance.QuestionFooterLabelStyle
             }
         }
     };
 }
        public virtual Page CreatePageForItem(ISurveyItem item, SurveyPageAppearance appearance)
        {
            Page page = null;

            if (item is ISurveySubpage) {
                page = new StandardSurveySubpage ();
            } else if (item is ISurveyPage) {
                page = new StandardSurveyPage ();
            }

            if (page != null) {
                page.BindingContext = item;
            }

            return page;
        }
        public virtual View CreateViewForItem(ISurveyItem item, SurveyPageAppearance appearance, bool wrapInContainer)
        {
            View view = null;

            if (item is DateQuestion) {
                view = new DateQuestionInputView ((DateQuestion)item, appearance);
            } else if (item is PickerOptionQuestion) {
                view = new PickerOptionQuestionInputView ((OptionQuestion)item, appearance);
            } else if (item is RadioOptionQuestion) {
                view = new RadioGroupOptionQuestionInputView ((OptionQuestion)item, appearance);
            } else if (item is NumericEntryQuantityQuestion) {
                view = new NumericEntryQuantityQuestionInputView ((QuantityQuestion)item, appearance);
            } else if (item is CheckboxBooleanQuestion) {
                view = new CheckboxBooleanQuestionInputView ((BooleanQuestion)item, appearance);
            } else if (item is InlineGroupQuestion) {
                view = new InlineGroupQuestionInputView ((InlineGroupQuestion)item, appearance);
            } else if (item is SubpageGroupQuestion) {
                view = new SubpageGroupQuestionInputView ((SubpageGroupQuestion)item, appearance);
            } else if (item is FreeTextQuestion) {
                view = new FreeTextQuestionInputView ((FreeTextQuestion)item, appearance);
            } else if (item is SliderQuantityQuestion) {
                view = new SliderQuantityQuestionInputView ((SliderQuantityQuestion)item, appearance);
            } else if (item is PageHeader) {
                view = new PageHeaderView ((PageHeader)item, appearance);
            }

            var question = item as IQuestion;
            if (question != null) {
                view = new QuestionInputViewContainer (question, view, appearance);
            }

            if (view != null && wrapInContainer) {
                view = new QuestionContainerView (item, view, appearance);
            }

            return view;
        }
 protected virtual View BuildItem(ISurveyItem item, SurveyPageAppearance appearance)
 {
     var wrapInContainer = !(item is IStaticSurveyItem);
     return SurveyItemViewFactory.Default.CreateViewForItem (item, appearance, wrapInContainer);
 }
 protected override void OnChildResponseChanged(ISurveyItem item)
 {
     base.OnChildResponseChanged (item);
     _submitPageCommand.RaiseCanExecuteChanged ();
 }
 public virtual void NotifyChildResponseChanged(ISurveyItem item)
 {
     OnChildResponseChanged (item);
 }
 protected override void OnChildResponseChanged(ISurveyItem item)
 {
     base.OnChildResponseChanged (item);
     NotifySummaryTextChanged ();
 }