public static async Task <EbPageRenderer> GetRenderer(EbMobilePage page) { EbPageRenderer renderor = new EbPageRenderer(); EbMobileContainer container = page.Container; try { if (container is EbMobileForm mobileForm) { mobileForm.NetworkType = page.NetworkMode; renderor.Message = await ValidateFormRendering(mobileForm, null); renderor.IsReady = renderor.Message == null; renderor.Renderer = new FormRender(page); } else if (container is EbMobileVisualization viz) { if (viz.Type == MobileVisualizationType.Dynamic) { renderor.Renderer = new ListRender(page); } else { renderor.Renderer = new StaticListRender(page); } } else if (container is EbMobileDashBoard) { renderor.Renderer = new DashBoardRender(page); } else if (container is EbMobileDashBoard) { renderor.Renderer = new PdfRender(page); } else { renderor.Message = "Inavlid container type"; renderor.IsReady = false; } } catch (Exception ex) { EbLog.Error(ex.Message); renderor.IsReady = false; renderor.Message = "Unable to load page"; } if (renderor.Renderer != null) { renderor.IsReady = true; } return(renderor); }
private async void OnClick(object sender, EventArgs e) { if (isTapped) { return; } try { isTapped = true; EbMobilePage page = EbPageHelper.GetPage(LinkRefId); if (page != null) { EbPageRenderer renderer = await EbPageHelper.GetRenderer(page); if (renderer.IsReady) { EbLog.Info(renderer.Message); await App.Navigation.NavigateMasterAsync(renderer.Renderer); } else { EbLog.Error("unable to create renderer, [DataLink] " + renderer.Message); } } else { EbLog.Warning("page not found in [DataLink], Check permission"); } } catch (Exception ex) { EbLog.Info("[EbMobileDashboard] click navigation error"); EbLog.Error(ex.Message); } isTapped = false; }