예제 #1
0
        public View GetView(OutputFieldMetadata outputField,
                            object value,
                            MyFormHandler myFormHandler,
                            FormMetadata formMetadata,
                            List <FormInputManager> inputsManager)
        {
            this.Layout = new FlexboxLayout(Application.Context);
            var tabstrip   = value.CastTObject <Tabstrip>();
            var currentTab = tabstrip.Tabs.SingleOrDefault(a => a.Form == tabstrip.CurrentTab);

            foreach (var tab in tabstrip.Tabs)
            {
                if (tab != null)
                {
                    var tv = new TextView(Application.Context)
                    {
                        Text = tab.Label
                    };

                    tv.Click += async(sender, args) =>
                    {
                        var metadata = myFormHandler.GetFormMetadata(tab.Form);

                        myFormHandler.FormWrapper.UpdateView(myFormHandler, new FormParameter(metadata, tab.InputFieldValues));
                    };

                    myFormHandler.ManagersCollection.StyleRegister.ApplyStyle(tab == currentTab ? "Tab CurrentTab" : "Tab", tv);
                    this.Layout.AddView(tv);
                    this.Layout.FlexDirection = FlexboxLayout.FlexDirectionRow;
                    this.Layout.FlexWrap      = FlexboxLayout.FlexWrapWrap;
                }
            }
            return(this.Layout);
        }
예제 #2
0
        public TextView InitializeLink(FormLink btn, MyFormHandler myFormHandler)
        {
            var text = new TextView(Application.Context)
            {
                Text = btn.Label
            };

            text.Click += async(sender, args) =>
            {
                var formMetadata = myFormHandler.GetFormMetadata(btn.Form);
                myFormHandler.FormWrapper.UpdateView(myFormHandler, new FormParameter(formMetadata, btn.InputFieldValues));
            };
            return(text);
        }
예제 #3
0
        public Button InitializeActionButton(FormLink btn, MyFormHandler myFormHandler)
        {
            var button = new Button(Application.Context)
            {
                Text = btn.Label
            };

            button.Click += async(sender, args) =>
            {
                var formMetadata = myFormHandler.GetFormMetadata(btn.Form);
                var action       = btn.Action ?? FormLinkActions.OpenModal;
                myFormHandler.FormWrapper.UpdateView(myFormHandler, new FormParameter(formMetadata, btn.InputFieldValues), action);
            };
            return(button);
        }