public static IEnumerable <IEditor> AddCsv(IEditor editor, Point location, string csv) { try { editor.Site.SuppressUpdateHandleLayer = true; var parser = new CsvParser(); var table = parser.ParseCsv(csv); if (table != null) { var created = AddTable(editor, location, table, true); TableFigureHelper.AdjustRowAndColumnSizes(created.Figure as TableFigure); return(new[] { created }); } else { return(EmptyEditors); } } finally { editor.Site.SuppressUpdateHandleLayer = false; editor.Site.UpdateHandleLayer(); } }
public static IEnumerable <IEditor> AddHtml(IEditor editor, Point location, string html, bool useCommandExecutor) { if (StringUtil.IsNullOrWhitespace(html)) { return(EmptyEditors); } //editor.Site.Caret.Hide(); using (editor.Figure.DirtManager.BeginDirty()) { if (useCommandExecutor) { editor.Site.CommandExecutor.BeginChain(); } try { /// PasteCommandでreturnしたEditor追加処理のUndo/Redoを処理するのでCommandExecutorを通さないでコマンドを実行する var objs = new HtmlParser().ParseCFHtml(html); var ret = new List <IEditor>(); var cy = location.Y; foreach (var obj in objs) { if (obj is StyledText.Core.StyledText) { var stext = obj as StyledText.Core.StyledText; var created = AddBlocksAndInlines(editor, new Point(location.X, cy), stext.Blocks.As <Block, Flow>(), useCommandExecutor); var focus = created.GetCommand(new FocusRequest() { Value = FocusKind.Commit }) as FocusCommand; focus.Execute(); if (focus.ResultKind == FocusCommitResultKind.Canceled) { var rollback = created.GetCommand(new FocusRequest() { Value = FocusKind.Rollback }); rollback.Execute(); } ret.Add(created); cy += created.Figure.Height + 4; } else if (obj is Image) { var img = obj as Image; var createds = AddImage(editor, new Point(location.X + 8, cy), img, useCommandExecutor, false); ret.AddRange(createds); img.Dispose(); cy += createds.Sum(created => created.Figure.Height) + 20; } else if (obj is MemoTable) { editor.Site.SuppressUpdateHandleLayer = true; var table = obj as MemoTable; var created = AddTable(editor, new Point(location.X + 8, cy), table, useCommandExecutor); var tableFig = created.Figure as TableFigure; TableFigureHelper.AdjustRowAndColumnSizes(tableFig); ret.Add(created); editor.Site.SuppressUpdateHandleLayer = false; editor.Site.UpdateHandleLayer(); cy += tableFig.Height + 20; } } return(ret.ToArray()); } finally { if (useCommandExecutor) { editor.Site.CommandExecutor.EndChain(); } } } }