/// <summary> /// 获取标签生成器 /// </summary> protected override TagBuilder GetTagBuilder() { var builder = new ToolbarBuilder(); Config(builder); return(builder); }
public override Task <TEditorResponse> ShowTEditor(string html, ToolbarBuilder toolbarBuilder = null, bool autoFocusInput = false) { var result = new TaskCompletionSource <TEditorResponse>(); var tActivity = new Intent(Application.Context, typeof(TEditorActivity)); ToolbarBuilder = toolbarBuilder; if (ToolbarBuilder == null) { ToolbarBuilder = new ToolbarBuilder().AddAll(); } tActivity.PutExtra("HTMLString", html); tActivity.PutExtra("AutoFocusInput", autoFocusInput); tActivity.SetFlags(ActivityFlags.NewTask); TEditorActivity.SetOutput = (res, resStr) => { TEditorActivity.SetOutput = null; if (res) { result.SetResult(new TEditorResponse() { IsSave = true, HTML = resStr }); } else { result.SetResult(new TEditorResponse() { IsSave = false, HTML = string.Empty }); } }; Application.Context.StartActivity(tActivity); return(result.Task); }
public void BuildToolbar() { ToolbarBuilder builder = TEditorImplementation.ToolbarBuilder; if (builder == null) { builder = new ToolbarBuilder().AddAll(); } foreach (var item in builder) { ImageButton imagebutton = new ImageButton(this); imagebutton.SetBackgroundColor(_keysColor); // // imagebutton.Click += (sender, e) => { item.ClickFunc.Invoke(_editorWebView.RichTextEditor); }; string imagename = item.ImagePath.Split('.')[0]; int resourceId = (int)typeof(Resource.Drawable).GetField(imagename).GetValue(null); imagebutton.SetImageResource(resourceId); var toolbarItems = FindViewById <LinearLayout>(Resource.Id.ToolbarItemsLayout); toolbarItems.AddView(imagebutton); } }
public override Task <Response> ShowAsync(string html, ToolbarBuilder toolbarBuilder = null, bool autoFocusInput = false, Dictionary <string, string> macros = null) { var result = new TaskCompletionSource <Response>(); var tActivity = new Intent(Application.Context, typeof(RichEditorActivity)); ToolbarBuilder = toolbarBuilder ?? new ToolbarBuilder().AddAll(); tActivity.PutExtra("HTMLString", html); tActivity.PutExtra("AutoFocusInput", autoFocusInput); if (macros != null) { tActivity.PutStringArrayListExtra("macroKeys", macros.Keys.ToList()); tActivity.PutStringArrayListExtra("macroValues", macros.Values.ToList()); } tActivity.SetFlags(ActivityFlags.NewTask); RichEditorActivity.SetOutput = (res, resStr) => { RichEditorActivity.SetOutput = null; result.SetResult(res ? new Response() { IsSave = true, Html = resStr } : new Response() { IsSave = false, Html = string.Empty }); }; Application.Context.StartActivity(tActivity); return(result.Task); }
public override Task <string> ShowTEditor(string html, ToolbarBuilder toolbarBuilder = null) { var result = new TaskCompletionSource <string>(); var tActivity = new Intent(Application.Context, typeof(TEditorActivity)); ToolbarBuilder = toolbarBuilder; if (ToolbarBuilder == null) { ToolbarBuilder = new ToolbarBuilder().AddAll(); } tActivity.PutExtra("HTMLString", html); tActivity.SetFlags(ActivityFlags.NewTask); TEditorActivity.SetOutput = (res, resStr) => { TEditorActivity.SetOutput = null; if (res) { result.SetResult(resStr); } else { result.SetResult(string.Empty); } }; Application.Context.StartActivity(tActivity); return(result.Task); }
public override Task <TEditorResponse> ShowTEditor(string html, ToolbarBuilder toolbarBuilder = null, EventHandler <ToolbarBuilderEventArgs> toolbarBuilderOnClick = null, bool autoFocusInput = false) { var result = new TaskCompletionSource <TEditorResponse>(); DecoreView.AddView(new TEditorView(MainActivity, html, autoFocusInput, toolbarBuilder, toolbarBuilderOnClick)); TEditorView.SetOutput = (res, resStr) => { TEditorView.SetOutput = null; if (res) { result.SetResult(new TEditorResponse() { IsSave = true, HTML = resStr }); } else { result.SetResult(new TEditorResponse() { IsSave = false, HTML = string.Empty }); } }; return(result.Task); }
public override Task <TEditorResponse> ShowTEditor(string html, ToolbarBuilder toolbarBuilder = null, bool autoFocusInput = false, Dictionary <string, string> macros = null) { TaskCompletionSource <TEditorResponse> taskRes = new TaskCompletionSource <TEditorResponse>(); var tvc = new TEditorViewController(); ToolbarBuilder builder = toolbarBuilder; if (toolbarBuilder == null) { builder = new ToolbarBuilder().AddAll(); } tvc.BuildToolbar(builder); tvc.SetHTML(html); tvc.SetAutoFocusInput(autoFocusInput); tvc.Title = CrossTEditor.PageTitle; tvc.SetMacrosDicitionary(macros); UINavigationController nav = null; foreach (var vc in UIApplication.SharedApplication.Windows[0].RootViewController.ChildViewControllers) { if (vc is UINavigationController) { nav = (UINavigationController)vc; } } tvc.NavigationItem.SetLeftBarButtonItem(new UIBarButtonItem(CrossTEditor.CancelText, UIBarButtonItemStyle.Plain, (item, args) => { if (nav != null) { nav.PopViewController(true); } taskRes.SetResult(new TEditorResponse() { IsSave = false, HTML = string.Empty }); }), true); tvc.NavigationItem.SetRightBarButtonItem(new UIBarButtonItem(CrossTEditor.SaveText, UIBarButtonItemStyle.Done, async(item, args) => { if (nav != null) { nav.PopViewController(true); } taskRes.SetResult(new TEditorResponse() { IsSave = true, HTML = await tvc.GetHTML() }); }), true); if (nav != null) { nav.PushViewController(tvc, true); } return(taskRes.Task); }
public override async Task <TEditorResponse> ShowTEditor(string html, ToolbarBuilder toolbarBuilder = null, bool autoFocusInput = false, Dictionary <string, string> macros = null) { TaskCompletionSource <TEditorResponse> taskRes = new TaskCompletionSource <TEditorResponse>(); var tvcController = new TEditorViewController(); ToolbarBuilder builder = toolbarBuilder; if (toolbarBuilder == null) { builder = new ToolbarBuilder().AddAll(); } tvcController.BuildToolbar(builder); tvcController.SetHTML(html); tvcController.SetAutoFocusInput(autoFocusInput); tvcController.Title = CrossTEditor.PageTitle; tvcController.SetMacrosDicitionary(macros); var tvcWrapper = new UINavigationController(tvcController); var nav = (UINavigationController)UIApplication.SharedApplication.KeyWindow.RootViewController; tvcController.NavigationItem.SetLeftBarButtonItem(new UIBarButtonItem(CrossTEditor.CancelText, UIBarButtonItemStyle.Plain, (item, args) => { if (nav != null) { nav.PopViewController(true); } taskRes.SetResult(new TEditorResponse() { IsSave = false, HTML = string.Empty }); }), true); tvcController.NavigationItem.SetRightBarButtonItem(new UIBarButtonItem(CrossTEditor.SaveText, UIBarButtonItemStyle.Done, async(item, args) => { if (nav != null) { nav.PopViewController(true); } taskRes.SetResult(new TEditorResponse() { IsSave = true, HTML = await tvcController.GetHTML() }); }), true); tvcWrapper.NavigationBarHidden = false; if (nav != null) { await nav.PresentViewControllerAsync(tvcWrapper, true); } return(await taskRes.Task); }
public void BuildToolbar(ToolbarBuilder builder) { _uiToolbarItems = new List <UIBarButtonItem>(); foreach (var toolbaritem in builder) { _uiToolbarItems.Add(new UIBarButtonItem( UIImage.FromFile(toolbaritem.ImagePath), UIBarButtonItemStyle.Plain, delegate { toolbaritem.ClickFunc.Invoke(_richTextEditor); } )); } }
public override Task <string> ShowTEditor(string html, ToolbarBuilder toolbarBuilder = null) { TaskCompletionSource <string> taskRes = new TaskCompletionSource <string>(); var tvc = new TEditorViewController(); ToolbarBuilder builder = toolbarBuilder; if (toolbarBuilder == null) { builder = new ToolbarBuilder().AddAll(); } tvc.BuildToolbar(builder); tvc.SetHTML(html); tvc.Title = CrossTEditor.PageTitle; UINavigationController nav = null; foreach (var vc in UIApplication.SharedApplication.Windows[0].RootViewController.ChildViewControllers) { if (vc is UINavigationController) { nav = (UINavigationController)vc; } } tvc.NavigationItem.SetLeftBarButtonItem(new UIBarButtonItem(CrossTEditor.CancelText, UIBarButtonItemStyle.Plain, (item, args) => { if (nav != null) { nav.PopViewController(true); } taskRes.SetResult(string.Empty); }), true); tvc.NavigationItem.SetRightBarButtonItem(new UIBarButtonItem(CrossTEditor.SaveText, UIBarButtonItemStyle.Done, async(item, args) => { if (nav != null) { nav.PopViewController(true); } taskRes.SetResult(await tvc.GetHTML()); }), true); if (nav != null) { nav.PushViewController(tvc, true); } return(taskRes.Task); }
private async void ShowTEditor(string html) { var toolbar = new ToolbarBuilder().AddBasic().AddH1(); TEditorResponse response = await CrossTEditor.Current.ShowTEditor(html, toolbar); if (response.IsSave) { if (response.HTML != null) { Content = response.HTML; txtContent.Source = new HtmlWebViewSource() { Html = response.HTML }; } } }
public override Task <TEditorResponse> ShowTEditor(string html, ToolbarBuilder toolbarBuilder = null, string title = null, bool autoFocusInput = false, Dictionary <string, string> macros = null) { // TODO: HTML input must be not null if (string.IsNullOrEmpty(html)) { html = string.Empty; } var taskRes = new TaskCompletionSource <TEditorResponse>(); var tvc = new TEditorViewController(); var builder = toolbarBuilder; if (toolbarBuilder == null) { builder = new ToolbarBuilder().AddAll(); } tvc.BuildToolbar(builder); tvc.SetHTML(html); tvc.Title = title; // find a navigation controller var nav = FindNavigationController(UIApplication.SharedApplication.KeyWindow.RootViewController); // done button //var doneIcon = UIImage.FromFile("Images/[email protected]"); var doneButton = new UIBarButtonItem(UIBarButtonSystemItem.Done, async(item, args) => { nav?.PopViewController(true); taskRes.SetResult(new TEditorResponse { IsSave = true, HTML = await tvc.GetHTML() }); }); // navigation to editor html view tvc.NavigationItem.SetRightBarButtonItem(doneButton, true); nav?.PushViewController(tvc, true); nav.NavigationBar.Hidden = false; nav.NavigationBarHidden = false; // set result return(taskRes.Task); }
public TEditorView(Context context, string value1, bool value2, ToolbarBuilder toolbarBuilder = null, EventHandler <ToolbarBuilderEventArgs> toolbarBuilderOnClick = null) : base(context) { Tag = "TEditor.Controls.TEditorView"; ToolbarBuilder = toolbarBuilder; if (ToolbarBuilder == null) { ToolbarBuilder = new ToolbarBuilder(); } ToolbarBuilderOnClick = toolbarBuilderOnClick; SetBackgroundColor(Color.White); LayoutInflater inflater = (LayoutInflater)context.GetSystemService(Context.LayoutInflaterService); LinearLayout myRoot = new LinearLayout(context); View itemView = inflater.Inflate(Resource.Layout.TEditorActivity, myRoot); this.AddView(itemView); InitializeComponent(value1, value2); }
public void BuildToolbar(ToolbarBuilder builder, EventHandler <ToolbarBuilderEventArgs> onClick) { _uiToolbarItems = new List <UIBarButtonItem>(); foreach (var toolbaritem in builder) { _uiToolbarItems.Add(new UIBarButtonItem( UIImage.FromFile(toolbaritem.ImagePath), UIBarButtonItemStyle.Plain, delegate(object sender, EventArgs e) { onClick?.Invoke(_richTextEditor, new ToolbarBuilderEventArgs() { Action = toolbaritem.Action }); toolbaritem.ClickFunc.Invoke(_richTextEditor); } )); } }
public override Task <TEditorResult> ShowTEditor(string html, ToolbarBuilder toolbarBuilder = null, bool autoFocusInput = false, Dictionary <string, string> macros = null) { var result = new TaskCompletionSource <TEditorResult>(); var tActivity = new Intent(Application.Context, typeof(TEditorActivity)); ToolbarBuilder = toolbarBuilder; if (ToolbarBuilder == null) { ToolbarBuilder = new ToolbarBuilder().AddAll(); } tActivity.PutExtra("HTMLString", html); tActivity.PutExtra("AutoFocusInput", autoFocusInput); if (macros != null) { tActivity.PutStringArrayListExtra("macroKeys", macros.Keys.ToList()); tActivity.PutStringArrayListExtra("macroValues", macros.Values.ToList()); } tActivity.SetFlags(ActivityFlags.NewTask); TEditorActivity.SetOutput = (res, resStr) => { TEditorActivity.SetOutput = null; if (res) { result.SetResult(new TEditorResult() { Html = resStr, IsSave = true }); } else { result.SetResult(new TEditorResult() { Html = string.Empty, IsSave = false }); } }; Application.Context.StartActivity(tActivity); return(result.Task); }
public void BuildToolbar() { ToolbarBuilder builder = TEditorImplementation.ToolbarBuilder; if (builder == null) { builder = new ToolbarBuilder().AddAll(); } foreach (var item in builder) { ImageButton imagebutton = new ImageButton(Context); imagebutton.Click += (sender, e) => { item.ClickFunc.Invoke(m_wv.RichTextEditor); }; string imagename = item.ImagePath.Split('.')[0]; int resourceId = (int)typeof(Resource.Drawable).GetField(imagename).GetValue(null); imagebutton.SetImageResource(resourceId); m_toolbar.AddView(imagebutton); } }
public override void Dispose(bool disposing) { base.Dispose(disposing); ToolbarBuilder = null; }
public override Task <TEditorResponse> ShowTEditor(string html, ToolbarBuilder toolbarBuilder = null, EventHandler <ToolbarBuilderEventArgs> toolbarBuilderOnClick = null, bool autoFocusInput = false) { TaskCompletionSource <TEditorResponse> taskRes = new TaskCompletionSource <TEditorResponse>(); var tvc = new TEditorViewController(); ToolbarBuilder builder = toolbarBuilder; if (toolbarBuilder == null) { builder = new ToolbarBuilder(); } tvc.BuildToolbar(builder, toolbarBuilderOnClick); tvc.SetHTML(html); tvc.SetAutoFocusInput(autoFocusInput); tvc.Title = CrossTEditor.PageTitle; UINavigationController nav = null; tvc.NavigationItem.SetLeftBarButtonItem(new UIBarButtonItem(CrossTEditor.CancelText, UIBarButtonItemStyle.Plain, (item, args) => { if (nav != null) { if (UIKit.UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) { nav.DismissModalViewController(true); } else { nav.PopViewController(true); } } taskRes.SetResult(new TEditorResponse() { IsSave = false, HTML = string.Empty }); }), true); tvc.NavigationItem.SetRightBarButtonItem(new UIBarButtonItem(CrossTEditor.SaveText, UIBarButtonItemStyle.Done, async(item, args) => { if (nav != null) { if (UIKit.UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) { nav.DismissModalViewController(true); } else { nav.PopViewController(true); } } taskRes.SetResult(new TEditorResponse() { IsSave = true, HTML = await tvc.GetHTML() }); }), true); var root = UIApplication.SharedApplication.KeyWindow.RootViewController; var window = UIApplication.SharedApplication.Windows; var rootWindow = window?.FirstOrDefault()?.RootViewController?.ModalViewController; if (rootWindow != null) { nav = GetNavController(rootWindow); } else { nav = GetNavController(root); } if (nav != null) { if (UIKit.UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) { var childViewControllers = nav.ChildViewControllers; var newnav = new UINavigationController(tvc); newnav.ModalPresentationStyle = UIModalPresentationStyle.FormSheet; nav.PresentModalViewController(newnav, true); } else { nav.PushViewController(tvc, true); } } return(taskRes.Task); }