protected virtual View GetViewByRenderType(EbMobileControl ctrl) { View view = null; if (ctrl is EbMobileButton button) { if (button.HideInContext && IsHeader) { return(null); } Button btn = (Button)button.Draw(DataRow); btn.Clicked += async(sender, args) => await ButtonControlClick(button); view = btn; } else if (ctrl is EbMobileDataColumn dc) { if (dc.HideInContext && IsHeader) { return(null); } object data = this.DataRow[dc.ColumnName]; view = ResolveRenderType(dc, data); } else if (ctrl is EbMobileLabel label) { EbXLabel lbl = (EbXLabel)label.Draw(); lbl.SetFont(label.Font, this.IsHeader); lbl.SetTextWrap(label.TextWrap); view = lbl; } return(view); }
public override View Draw() { label = new EbXLabel(this) { Text = Text }; if (RenderAsIcon && !string.IsNullOrEmpty(Icon)) { label.FontFamily = (OnPlatform <string>)HelperFunctions.GetResourceValue("FontAwesome"); label.Text = Icon.ToFontIcon(); } if (Font != null) { label.SetFont(Font); } label.SetHorrizontalAlign(HorrizontalAlign); label.SetVerticalAlign(VerticalAlign); label.SetTextWrap(TextWrap); label.SetTextAlignment(HorrizontalTextAlign, VerticalTextAlign); return(label); }
private View DC2PhoneNumber(EbMobileDataColumn dc, object value) { EbXLabel label = new EbXLabel(dc) { Text = dc.GetContent(value) }; label.SetFont(dc.Font, this.IsHeader); label.SetTextWrap(dc.TextWrap); TapGestureRecognizer gesture = new TapGestureRecognizer(); gesture.Tapped += (sender, args) => NativeLauncher.OpenDialerAsync(label.Text); label.GestureRecognizers.Add(gesture); return(label); }
private View DC2Email(EbMobileDataColumn dc, object value) { EbXLabel label = new EbXLabel(dc) { Text = dc.GetContent(value) }; label.SetFont(dc.Font, this.IsHeader); label.SetTextWrap(dc.TextWrap); TapGestureRecognizer gesture = new TapGestureRecognizer(); gesture.Tapped += async(sender, args) => await NativeLauncher.OpenEmailAsync(value?.ToString()); label.GestureRecognizers.Add(gesture); return(label); }
private void FillTableColums(MobileTableRow row, List <EbMobileTableCell> CellCollection) { foreach (EbMobileTableCell cell in CellCollection) { if (cell.ControlCollection.Count > 0) { EbMobileDataColumn column = (EbMobileDataColumn)cell.ControlCollection[0]; MobileTableColumn tableColumn = row[column.ColumnName]; if (tableColumn != null) { var value = tableColumn.DisplayValue ?? tableColumn.Value; EbXLabel label = new EbXLabel(column) { Text = value?.ToString(), VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, XBackgroundColor = Color.Transparent }; XViewExtensions.SetTextAlignment(label, column.HorrizontalTextAlign, column.VerticalTextAlign); if (IsHeader) { label.FontFamily = (OnPlatform <string>)HelperFunctions.GetResourceValue("Roboto-Medium"); label.LineBreakMode = LineBreakMode.WordWrap; } else { label.SetFont(column.Font, this.IsHeader); label.SetTextWrap(column.TextWrap); } DynamicGrid.SetPosition(label, cell.RowIndex, cell.ColIndex, column.RowSpan, column.ColumnSpan); } } } }
private View ResolveRenderType(EbMobileDataColumn dc, object value) { View view; switch (dc.RenderAs) { case DataColumnRenderType.Image: view = this.DC2Image(dc, value); break; case DataColumnRenderType.MobileNumber: view = this.DC2PhoneNumber(dc, value); break; case DataColumnRenderType.Map: view = this.DC2Map(dc, value); break; case DataColumnRenderType.Email: view = this.DC2Email(dc, value); break; case DataColumnRenderType.Audio: view = this.DC2Audio(dc, value); break; default: EbXLabel label = new EbXLabel(dc) { Text = dc.GetContent(value) }; label.SetFont(dc.Font, this.IsHeader); label.SetTextWrap(dc.TextWrap); view = label; break; } return(view); }
protected override View GetViewByRenderType(EbMobileControl ctrl) { View view = null; if (ctrl is EbMobileLabel label) { EbXLabel xlabel = (EbXLabel)label.Draw(); if (label.RenderAsIcon) { string icon = (label.BindingParam == null ? label.Icon : GetStaticData(label)) ?? "f128"; xlabel.Text = icon.ToFontIcon(); } else { xlabel.Text = GetStaticData(label); } xlabel.SetFont(label.Font); xlabel.SetTextWrap(label.TextWrap); view = xlabel; } return(view); }