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);
        }
示例#2
0
        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);
        }
示例#5
0
        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);
        }