public View GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager) { var formLink = value.CastTObject <FormLink>(); this.Layout = new LinearLayout(Application.Context) { Orientation = Orientation.Horizontal }; var link = new TextView(Application.Context) { Text = outputField.Label + ": " }; myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("TextView", link); this.Layout.AddView(link); if (formLink != null) { var text = this.InitializeLink(formLink, myFormHandler); myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("Link", text); this.Layout.AddView(text); } return(this.Layout); }
public View GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager) { this.OutputList = new LinearLayout(Application.Context) { Orientation = Orientation.Vertical }; var label = new TextView(Application.Context) { Text = outputField.Label }; label.LayoutParameters = label.WrapContent(); myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("TextView", label); this.OutputList.AddView(label); var list = value.CastTObject <ObjectList <object> >(); var listView = new ListView(Application.Context); var adapter = new ListCustomAdapter <object>(list.Items.ToList(), list.Metadata, myFormHandler); listView.Adapter = adapter; listView.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, listView.GetListHeigth()); myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("ListView", listView); this.OutputList.AddView(listView); return(this.OutputList); }
public UIView GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager, int yAxis) { var formLink = value.CastTObject <FormLink>(); var size = new CGSize(UIScreen.MainScreen.Bounds.Width - 40, 30); this.OutputView = new UITextView { Text = outputField.Label + ": " + formLink.Label, Frame = new CGRect(new CGPoint(20, yAxis), size), TextColor = UIColor.Blue }; var gesture = new UITapGestureRecognizer(); gesture.AddTarget(() => { var metadata = myFormHandler.GetFormMetadataAsync(formLink.Form); myFormHandler.FormWrapper.UpdateView(myFormHandler, new FormParameter(metadata, formLink.InputFieldValues)); }); this.OutputView.AddGestureRecognizer(gesture); return(this.OutputView); }
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); }
private Button CreateLoadMoreButton(MyFormHandler myFormHandler, FormMetadata formMetadata, OutputFieldMetadata outputField, ListView listView, List <FormInputManager> inputsManager, Dictionary <string, FormMetadata> allFormsMetadata) { var btnLoadMore = new Button(Application.Context) { Text = "Load More" }; btnLoadMore.Click += async(sender, args) => { this.PageIndex++; var paginator = inputsManager.Find(a => a.Input.Type == "paginator"); paginator.Manager.SetValue(new Paginator { PageSize = 10, PageIndex = this.PageIndex }); var response = await myFormHandler.HandleFormAsync(formMetadata, inputsManager); object responsevalue; if (response.Data.GetType() == typeof(JObject)) { var jsonObj = (JObject)response.Data; responsevalue = jsonObj.GetValue(outputField.Id, StringComparison.OrdinalIgnoreCase); } else { var propertyInfo = response.Data.GetType().GetProperty(outputField.Id); responsevalue = propertyInfo?.GetValue(response.Data, null); } var paginatedData = responsevalue.CastTObject <PaginatedData <object> >(); var newList = paginatedData.Results.ToList(); if (newList.Any()) { foreach (var item in newList) { this.ItemList.Add(item); } } //// Appending new data to menuItems ArrayList listView.Refresh(this.ItemList, outputField, myFormHandler, allFormsMetadata); // Setting new scroll position listView.SetSelectionFromTop(10 * (this.PageIndex - 1), 0); listView.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, listView.GetListHeigth()); if (this.ItemList.Count == this.TotalCount) { btnLoadMore.Visibility = ViewStates.Invisible; } }; return(btnLoadMore); }
public UIView GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager, int yAxis) { this.OutputView = new UIView(); var actions = value?.CastTObject <ActionList>(); if (actions != null) { int y = 0; foreach (var btn in actions.Actions) { var button = this.InitializeActionButton(btn, myFormHandler, y); y += 40; this.OutputView.AddSubview(button); } var size = new CGSize(UIScreen.MainScreen.Bounds.Width - 40, actions.Actions.Count * 40); this.OutputView.Frame = new CGRect(new CGPoint(20, yAxis), size); } return(this.OutputView); }
public View GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager) { this.OutputList = new LinearLayout(Application.Context) { Orientation = Orientation.Vertical }; if (!string.IsNullOrEmpty(outputField.Label)) { var label = new TextView(Application.Context) { Text = outputField.Label + ": " }; label.LayoutParameters = label.WrapContent(); myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("TextView", label); this.OutputList.AddView(label); } var list = value.CastTObject <IList <object> >(); var listView = list.IntializeListView(outputField, myFormHandler); listView.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, listView.GetListHeigth()); myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("ListView", listView); this.OutputList.AddView(listView); return(this.OutputList); }
public View GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager) { this.OutputView = new LinearLayout(Application.Context) { Orientation = Orientation.Vertical }; var label = new TextView(Application.Context) { Text = outputField.Label }; label.LayoutParameters = label.WrapContent(); myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("TextView", label); this.OutputView.AddView(label); var formInstance = value.CastTObject <FormInstanceModel>(); foreach (var formInstanceValue in formInstance.Values) { var textView = new TextView(Application.Context) { Text = formInstanceValue.Label + ": " + formInstanceValue.Value }; textView.LayoutParameters = textView.WrapContent(); myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("TextView", textView); this.OutputView.AddView(textView); } return(this.OutputView); }
public IEnumerable <Column <object> > GetColumns(string field, OutputFieldMetadata outputFieldMetadata, IList <object> data) { if (outputFieldMetadata.CustomProperties != null && outputFieldMetadata.CustomProperties.TryGetValue("hiddenInExcel", out var _)) { yield break; } var label = outputFieldMetadata.Label; var factory = ColumnRegistry.Default.FactoryFor(outputFieldMetadata.Type); if (factory != null) { var columns = factory.GetColumn(field, outputFieldMetadata, data); foreach (var column in columns) { yield return(column); } } else if (field != null) { yield return(new Column <object>( label, row => new CellData(row.GetPropertyValue(field)))); } }
public UIView GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager, int yAxis) { var list = ((IEnumerable <object>)value).ToList(); var properties = list[0].GetType().GetProperties(); var height = properties.Length * 25 * list.Count; this.OutputList = new UIView(); var size = new CGSize(UIScreen.MainScreen.Bounds.Width - 40, height + 30); this.OutputList.Frame = new CGRect(new CGPoint(20, yAxis), size); var label = new UITextView { Text = outputField.Label }; var labelSize = new CGSize(UIScreen.MainScreen.Bounds.Width - 40, 30); label.Frame = new CGRect(new CGPoint(0, 0), labelSize); this.OutputList.AddSubview(label); var listViewSize = new CGSize(UIScreen.MainScreen.Bounds.Width - 40, height); var listView = new UITableView(new CGRect(new CGPoint(10, 30), listViewSize)) { //Source = new CustomTableViewController(list) }; this.OutputList.AddSubview(listView); return(this.OutputList); }
public UIView GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager, int yAxis) { var paginatedData = value.CastTObject <PaginatedData <object> >(); this.ItemList = paginatedData.Results.ToList(); this.TotalCount = paginatedData.TotalCount; var outputFieldProperty = outputField.CustomProperties.GetCustomProperty <IEnumerable <OutputFieldMetadata> >("columns"); this.OutputList = new UIView(); this.OutputList.UserInteractionEnabled = true; var label = new UITextView { Text = outputField.Label }; var labelSize = new CGSize(UIScreen.MainScreen.Bounds.Width - 40, 30); label.Frame = new CGRect(new CGPoint(0, 0), labelSize); this.OutputList.AddSubview(label); UITableView tableView = new UITableView(); tableView.Frame = UIScreen.MainScreen.Bounds; tableView.AllowsSelection = false; // tableView.IndexPathForCell() var listViewSize = new CGSize(tableView.Frame.Width, tableView.Frame.Height); tableView.Source = new CustomTableViewController <object>(this.ItemList, outputFieldProperty, myFormHandler, this.OutputList); var listView = new UITableView(new CGRect(new CGPoint(10, 30), listViewSize)) { Source = new CustomTableViewController <object>(this.ItemList, outputFieldProperty, myFormHandler, this.OutputList) }; if (this.TotalCount > 10) { if (formMetadata != null) { //var btnLoadMore = this.CreateLoadMoreButton(myFormHandler, formMetadata, outputField, listView, inputsManager, myFormHandler.AllFormsMetadata); //listView.TableFooterView = btnLoadMore; } } listView.ContentInset = UIEdgeInsets.Zero; listView.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; //for resizing (switching from table to portait for example) listView.Bounces = false; listView.SetContentOffset(CGPoint.Empty, false); this.OutputList.AddSubview(tableView); this.OutputList.Frame = new CGRect(new CGPoint(20, yAxis), listViewSize); return(this.OutputList); }
public static ListView IntializeListView(this IList <object> itemList, OutputFieldMetadata outputField, MyFormHandler myFormHandler) { var listView = new ListView(Application.Context); var outputFieldProperty = outputField.CustomProperties.GetCustomProperty <IEnumerable <OutputFieldMetadata> >("columns"); var adapter = new ListCustomAdapter <object>(itemList.ToList(), outputFieldProperty, myFormHandler); listView.Adapter = adapter; return(listView); }
public View GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager) { this.OutputText = new TextView(Application.Context) { Text = outputField.Label + ": " + value }; myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("TextView", this.OutputText); return(this.OutputText); }
public UIView GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager, int yAxis) { this.OutputView = new UIView(); var labelSize = new CGSize(UIScreen.MainScreen.Bounds.Width - 40, 30); this.OutputView.Frame = new CGRect(new CGPoint(20, yAxis), labelSize); var tabstrip = value.CastTObject <Tabstrip>(); var currentTab = tabstrip.Tabs.SingleOrDefault(a => a.Form == tabstrip.CurrentTab); var x = 0; var width = UIScreen.MainScreen.Bounds.Width - 60; foreach (var tab in tabstrip.Tabs) { var size = new CGSize(width / tabstrip.Tabs.Count, 30); if (tab != null) { var tv = new UITextView { Text = tab.Label, Frame = new CGRect(new CGPoint(x, 0), size), TextColor = UIColor.LightGray }; nfloat borderWidth = 2; var border = new CALayer { BorderColor = UIColor.LightGray.CGColor, Frame = new CGRect(0, tv.Frame.Size.Height - borderWidth, tv.Frame.Size.Width - 20, tv.Frame.Size.Height), BorderWidth = width }; x += (int)tv.Frame.Width; UITapGestureRecognizer gesture = new UITapGestureRecognizer(); gesture.AddTarget(() => { var metadata = myFormHandler.GetFormMetadataAsync(tab.Form); myFormHandler.FormWrapper.UpdateView(myFormHandler, new FormParameter(metadata, tab.InputFieldValues)); }); tv.AddGestureRecognizer(gesture); if (tab == currentTab) { tv.TextColor = UIColor.Black; border.BorderColor = UIColor.Black.CGColor; } tv.Layer.AddSublayer(border); tv.Layer.MasksToBounds = true; this.OutputView.AddSubview(tv); } } return(this.OutputView); }
public View GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager) { this.OutputList = new LinearLayout(Application.Context) { Orientation = Orientation.Vertical }; if (!string.IsNullOrEmpty(outputField.Label)) { var label = new TextView(Application.Context) { Text = outputField.Label + ": " }; this.OutputList.AddView(label, this.OutputList.MatchParentWrapContent()); myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("TextView", label); } var paginatedData = value.CastTObject <PaginatedData <object> >(); this.ItemList = paginatedData.Results.ToList(); this.TotalCount = paginatedData.TotalCount; var listView = this.ItemList.IntializeListView(outputField, myFormHandler); if (this.TotalCount > 10) { if (formMetadata != null) { var btnLoadMore = this.CreateLoadMoreButton(myFormHandler, formMetadata, outputField, listView, inputsManager, myFormHandler.AllFormsMetadata); myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("Button Link LoadMore", btnLoadMore); listView.AddFooterView(btnLoadMore); } } if (this.ItemList.Count == 0) { var noResult = new TextView(Application.Context) { Text = "no data." }; noResult.LayoutParameters = noResult.MatchParentWrapContent(); myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("TextView NoResult", noResult); this.OutputList.AddView(noResult); } listView.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, listView.GetListHeigth()); myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("ListView", listView); this.OutputList.AddView(listView); return(this.OutputList); }
public static ListView Refresh(this ListView listView, IList <object> newItemList, OutputFieldMetadata outputField, MyFormHandler myFormHandler, Dictionary <string, FormMetadata> allFormsMetadata) { var outputFieldProperty = outputField.CustomProperties.GetCustomProperty <IEnumerable <OutputFieldMetadata> >("columns"); var adapter = new ListCustomAdapter <object>(newItemList.ToList(), outputFieldProperty, myFormHandler); listView.Adapter = adapter; return(listView); }
public View GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager) { var inlineForm = value.CastTObject <InlineForm>(); this.LayouView = myFormHandler.GetIForm(inlineForm.Form, inlineForm.InputFieldValues); return(this.LayouView); }
public View GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager) { var list = value.CastTObject <IEnumerable <object> >(); this.OutputText = new TextView(Application.Context) { Text = outputField.Label + ": " + string.Join(", ", list) }; myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("TextView", this.OutputText); return(this.OutputText); }
public override IEnumerable <Column <object> > GetColumn(string field, OutputFieldMetadata outputFieldMetadata, IList <object> data) { yield return(new Column <object>( outputFieldMetadata.Label, row => { var value = row.GetPropertyValue(field); if (!(value is bool boolean)) { return new CellData(null); } return new CellData(boolean.ToYesOrNoString()); }));
public override IEnumerable <Column <object> > GetColumn(string field, OutputFieldMetadata outputFieldMetadata, IList <object> data) { yield return(new Column <object>( outputFieldMetadata.Label, row => { var value = row.GetPropertyValue(field); if (!(value is HtmlString htmlString)) { return new CellData(null); } return new CellData(htmlString.Value.GetPlainTextFromHtml()); }));
public override IEnumerable <Column <object> > GetColumn(string field, OutputFieldMetadata outputFieldMetadata, IList <object> data) { yield return(new Column <object>( outputFieldMetadata.Label, row => { var value = row.GetPropertyValue(field); if (!(value is Alert alert)) { return new CellData(null); } return new CellData(alert.Heading); }));
public UIView GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List<FormInputManager> inputsManager, int yAxis) { this.OutputText = new UITextView(); if (value != null) { this.OutputText.Text = outputField.Label + ": " + value; var labelSize = new CGSize(UIScreen.MainScreen.Bounds.Width - 40, 30); this.OutputText.Frame = new CGRect(new CGPoint(20, yAxis), labelSize); } return this.OutputText; }
public override IEnumerable <Column <object> > GetColumn(string field, OutputFieldMetadata outputFieldMetadata, IList <object> data) { yield return(new Column <object>( outputFieldMetadata.Label, row => { var value = row.GetPropertyValue(field); if (!(value is Link link)) { return new CellData(null); } var siteRoot = ConfigurationReader.GetConfigurations().GetSection("AppConfig")["SiteRoot"]; var url = siteRoot + link.Url; return new CellData(link.Anchor, url); }));
public UIView GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager, int yAxis) { this.OutputText = new UITextView(); if (value != null) { DateTime datetime = value.CastTObject <DateTime>(); this.OutputText.Text = outputField.Label + ": " + datetime.ToShortDateString(); var labelSize = new CGSize(UIScreen.MainScreen.Bounds.Width - 40, 30); this.OutputText.Frame = new CGRect(new CGPoint(20, yAxis), labelSize); } return(this.OutputText); }
public override IEnumerable <Column <object> > GetColumn(string field, OutputFieldMetadata outputFieldMetadata, IList <object> data) { yield return(new Column <object>( outputFieldMetadata.Label, row => { var value = row.GetPropertyValue(field); if (value == null) { return new CellData(null); } return new CellData(Convert.ToDateTime(row.GetPropertyValue(field))) { NumberFormat = "yyyy-MM-dd HH:mm:ss" }; })); }
public View GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager) { this.OutputText = new TextView(Application.Context); myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("TextView", this.OutputText); if (value != null) { var result = ""; if (value.GetType() == typeof(JValue)) { var jValue = (JValue)value; if (jValue.HasValues) { var datetime = jValue.CastTObject <DateTime>(); result = datetime.ToShortDateString(); } } this.OutputText.Text = outputField.Label + ": " + result; } return(this.OutputText); }
public override IEnumerable <Column <object> > GetColumn(string field, OutputFieldMetadata outputFieldMetadata, IList <object> data) { yield return(new Column <object>( outputFieldMetadata.Label, row => { var value = row.GetPropertyValue(field); if (!(value is FormLink formLink)) { return new CellData(null); } var siteRoot = ConfigurationReader.GetConfigurations().GetSection("AppConfig")["SiteRoot"]; if (string.IsNullOrEmpty(formLink.Form)) { return new CellData(formLink.Label); } var query = formLink.InputFieldValues.Select(t => t.Key + "=" + t.Value).Join("&"); var url = siteRoot + "#/form/" + formLink.Form + "?" + query; return new CellData(formLink.Label, url); }));
public View GetView(OutputFieldMetadata outputField, object value, MyFormHandler myFormHandler, FormMetadata formMetadata, List <FormInputManager> inputsManager) { this.OutputView = new FlexboxLayout(Application.Context); var actions = value.CastTObject <ActionList>(); if (actions != null) { foreach (var btn in actions.Actions) { var button = this.InitializeActionButton(btn, myFormHandler); myFormHandler.ManagersCollection.StyleRegister.ApplyStyle("Button", button); this.OutputView.AddView(button); this.OutputView.FlexDirection = FlexboxLayout.FlexDirectionRow; this.OutputView.FlexWrap = FlexboxLayout.FlexWrapWrap; } } return(this.OutputView); }
public abstract IEnumerable <Column <object> > GetColumn(string field, OutputFieldMetadata outputFieldMetadata, IList <object> data);