public void NoteMapGlue_AssignNoteBBC() { bool result = true; System.Threading.Thread t = new System.Threading.Thread(() => { MetaModel.MetaModel.Initialize(); var persistence = new PersistenceManager(); var noteEditor = new NoteEditor(); var form = CreateForm(); form.Controls.Add(noteEditor); form.Shown += (sender, args) => { var tree = persistence.OpenTree(@"Resources\Websites.mm"); var sut = new NoteMapGlue(noteEditor, persistence); tree.Tree.RootNode.FirstChild.Selected = true; result = noteEditor.HTML != null && noteEditor.HTML.Contains("BBC"); form.Close(); }; form.ShowDialog(); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsTrue(result); }
public void SetNoteEditorBackColor() { bool result = true; System.Threading.Thread t = new System.Threading.Thread(() => { MetaModel.MetaModel.Initialize(); var persistence = new PersistenceManager(); var noteEditor = new NoteEditor(); var form = CreateForm(); form.Controls.Add(noteEditor); form.Shown += (sender, args) => { var ptree1 = persistence.NewTree(); var c1 = new MapNode(ptree1.Tree.RootNode, "c1"); c1.Selected = true; var sut = new NoteEditorCtrl(noteEditor, persistence); sut.SetNoteEditorBackColor(Color.Azure); result = noteEditor.BackColor.Equals(Color.Azure); form.Close(); }; form.ShowDialog(); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsTrue(result); }
public static void InsertFormFile(NoteEditor editor, string fileName, MapTree tree) { var localPath = ImageLocalPath.CreateNewLocalPath(Path.GetExtension(fileName).Substring(1)); tree.SetLargeObject(localPath.FileName, new BytesLob(File.ReadAllBytes(fileName))); var htmlImage = new HtmlImageCreator(editor); htmlImage.InsertImage(localPath.Url, ""); }
public void NoteEditorContextMenu() { System.Threading.Thread t = new System.Threading.Thread(() => { NoteEditor editor = new NoteEditor(); new NoteEditorContextMenu(editor); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); }
public static void Clean(NoteEditor editor) { var doc = editor.Document; foreach (var e in doc.All.Cast <System.Windows.Forms.HtmlElement>()) { CleanStyleAttribute(e); ClearControls(e); } }
public NoteEditorContextMenu(NoteEditor editor) { this.editor = editor; mCut = new ToolStripButton("Cut", null, (a, b) => editor.Cut()); mCopy = new ToolStripButton("Copy", null, (a, b) => editor.Copy()); mPaste = new ToolStripButton("Paste", null, (a, b) => editor.Paste()); Items.Add(mCut); Items.Add(mCopy); Items.Add(mPaste); editor.Document.ContextMenuShowing += Document_ContextMenuShowing; }
public NoteEditorContextMenu(NoteEditor editor) { this.editor = editor; mCut = new ToolStripButton("Cut", null, (a, b) => editor.Cut()); mCopy = new ToolStripButton("Copy", null, (a, b) => editor.Copy()); mPaste = new ToolStripButton("Paste", null, (a, b) => editor.Paste()); Items.Add(mCut); Items.Add(mCopy); Items.Add(mPaste); editor.Document.ContextMenuShowing += Document_ContextMenuShowing; }
public void NoteMapGlue() { NoteMapGlue sut = null; System.Threading.Thread t = new System.Threading.Thread(() => { MetaModel.MetaModel.Initialize(); var persistence = new PersistenceManager(); var nodeEditor = new NoteEditor(); sut = new NoteMapGlue(nodeEditor, persistence); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsNotNull(sut); }
public static bool PasteFromClipboard(NoteEditor editor, PersistentTree tree) { if (Clipboard.ContainsImage()) { Image image = Clipboard.GetImage(); var imagePath = ImageLocalPath.CreateNewLocalPath("png"); MemoryStream ms = new MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); tree.SetByteArray(imagePath.FileName, ms.ToArray()); var htmlImage = new HtmlImageCreator(editor); htmlImage.InsertImage(imagePath.Url, ""); return(true); } else if (Clipboard.ContainsFileDropList()) { var fileList = Clipboard.GetFileDropList(); var imageList = FilterImageFiles(fileList); if (imageList.Any()) { imageList.ForEach(i => { var localPath = ImageLocalPath.CreateNewLocalPath(Path.GetExtension(i).Substring(1)); tree.SetByteArray(localPath.FileName, File.ReadAllBytes(i)); var htmlImage = new HtmlImageCreator(editor); htmlImage.InsertImage(localPath.Url, ""); }); return(true); } else { return(false); } } else { return(false); } }
public void ColumnMoveLeft_FirstColumn_NoChange() { string cellValue = "empty"; string cellValue2 = "empty"; System.Threading.Thread t = new System.Threading.Thread(() => { var editor = new NoteEditor(); var form = CreateForm(); form.Shown += (sender, args) => { //insert table var sut = new HtmlTableHelper(editor); sut.TableInsert(new HtmlTableProperty(true)); //fill table FillTable((editor.Document.GetElementsByTagName("table")[0].DomElement) as IHTMLTable); //move inside table var body = editor.Document.Body.DomElement as IHTMLBodyElement; IHTMLTxtRange r2 = body.createTextRange() as IHTMLTxtRange; r2.findText("r0c0"); r2.select(); //modify table sut.ColumnMoveLeft(); form.Close(); }; form.Controls.Add(editor); form.ShowDialog(); cellValue = GetCellValue(GetTable(editor), 1, 0); cellValue2 = GetCellValue(GetTable(editor), 1, 1); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.AreEqual("r1c0", cellValue); Assert.AreEqual("r1c1", cellValue2); }
public static bool PasteFromClipboard(NoteEditor editor, PersistentTree tree) { if (Clipboard.ContainsImage()) { Image image = Clipboard.GetImage(); var imagePath = ImageLocalPath.CreateNewLocalPath("png"); MemoryStream ms = new MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); tree.SetLargeObject(imagePath.FileName, new BytesLob(ms.ToArray())); var htmlImage = new HtmlImageCreator(editor); htmlImage.InsertImage(imagePath.Url, ""); return(true); } else if (Clipboard.ContainsFileDropList()) { var fileList = Clipboard.GetFileDropList(); var imageList = FilterImageFiles(fileList); if (imageList.Any()) { imageList.ForEach(i => { InsertFormFile(editor, i, tree); }); return(true); } else { return(false); } } else { return(false); } }
public NoteMapGlue(NoteEditor editor, PersistenceManager manager) { this.editor = editor; editor.BackColor = MetaModel.MetaModel.Instance.NoteEditorBackColor; //System.Drawing.Color.LightYellow; new NoteEditorContextMenu(editor); manager.CurrentTreeChanged += Manager_CurrentTreeChanged; if (manager.CurrentTree != null) { Register(manager.CurrentTree); } if (editor.DocumentReady) { editor.Document.Body.LostFocus += editor_LostFocus; // setup editor lost focus event } else // same as above block in case the document is not ready yet { editor.Ready += (obj) => { editor.Document.Body.LostFocus += editor_LostFocus; }; } }
public NoteEditorCtrl(NoteEditor editor, PersistenceManager pManager) { this.noteGlue = new NoteMapGlue(editor, pManager); }
public ClipboardImagePaster(NoteEditor editor, PersistenceManager pManager) { editor.Pasting += Editor_Pasting; this.pManager = pManager; }
public void TableModify_GivenTable() { var result = ""; var tableCount = 0; System.Threading.Thread t = new System.Threading.Thread(() => { var editor = new NoteEditor(); var form = CreateForm(); form.Shown += (sender, args) => { //insert table editor.HTML = null; var sut = new HtmlTableHelper(editor); sut.TableInsert(new HtmlTableProperty(true)); //find table IHTMLTable table = editor.Document.GetElementsByTagName("table")[0].DomElement as IHTMLTable; //modify table var prop = new HtmlTableProperty(true); prop.CaptionText = "Table modified"; sut.TableModify(table, prop); form.Close(); }; form.Controls.Add(editor); form.ShowDialog(); result = editor.HTML; tableCount = editor.Document.GetElementsByTagName("table").Count; }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsTrue(result.Contains("Table modified")); Assert.AreEqual(1, tableCount); }
public ImageLocalSaver(NoteEditor editor, PersistenceManager pManager) { this.editor = editor; this.persistence = pManager; editor.ExternalContentAdded += Editor_ExternalContentAdded; }
/// <summary> /// Returns first table /// </summary> private IHTMLTable GetTable(NoteEditor editor) { return editor.Document.GetElementsByTagName("table")[0].DomElement as IHTMLTable; }
public void DeleteTable() { var result = ""; System.Threading.Thread t = new System.Threading.Thread(() => { var editor = new NoteEditor(); var form = CreateForm(); form.Shown += (sender, args) => { //insert table editor.HTML = "Some Text There"; var body = editor.Document.Body.DomElement as IHTMLBodyElement; IHTMLTxtRange r = body.createTextRange() as IHTMLTxtRange; r.findText("Text"); r.select(); var sut = new HtmlTableHelper(editor); sut.TableInsert(new HtmlTableProperty(true)); //move inside table IHTMLTxtRange r2 = body.createTextRange() as IHTMLTxtRange; r2.findText("Text"); r2.select(); //modify table sut.DeleteTable(); form.Close(); }; form.Controls.Add(editor); form.ShowDialog(); result = editor.HTML; }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsFalse(result.ToLower().Contains("table")); }
public void NoteMapGlue_AssignNoteBBC_NavigatingEventFires() { int count = 0; System.Threading.Thread t = new System.Threading.Thread(() => { MetaModel.MetaModel.Initialize(); var persistence = new PersistenceManager(); var noteEditor = new NoteEditor(); noteEditor.Navigating += (o, e) => count++; var form = CreateForm(); form.Controls.Add(noteEditor); form.Shown += (sender, args) => { var tree = persistence.OpenTree(@"Resources\Websites.mm"); var sut = new NoteMapGlue(noteEditor, persistence); tree.Tree.RootNode.FirstChild.Selected = true; form.Close(); }; form.ShowDialog(); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsTrue(count > 7); }
public void NoteMapGlue_MultiSelection_ClearNoteEditor() { bool result = true; System.Threading.Thread t = new System.Threading.Thread(() => { MetaModel.MetaModel.Initialize(); var persistence = new PersistenceManager(); var noteEditor = new NoteEditor(); var form = CreateForm(); form.Controls.Add(noteEditor); form.Shown += (sender, args) => { var tree = persistence.NewTree(); var c1 = new MapNode(tree.Tree.RootNode, "c1"); c1.Selected = true; var sut = new NoteMapGlue(noteEditor, persistence); c1.NoteText = "ABC"; tree.Tree.SelectedNodes.Add(c1.Parent); result = noteEditor.HTML == null; form.Close(); }; form.ShowDialog(); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsTrue(result); }
public void UpdateNodeFromEditor_WithSettingDirty() { bool result = true; System.Threading.Thread t = new System.Threading.Thread(() => { MetaModel.MetaModel.Initialize(); var persistence = new PersistenceManager(); var noteEditor = new NoteEditor(); var form = CreateForm(); form.Controls.Add(noteEditor); form.Shown += (sender, args) => { var ptree1 = persistence.NewTree(); var c1 = new MapNode(ptree1.Tree.RootNode, "c1"); c1.Selected = true; var sut = new NoteMapGlue(noteEditor, persistence); c1.NoteText = "ABC"; noteEditor.HTML = "EFG"; sut.UpdateNodeFromEditor(); result = c1.NoteText != null && c1.NoteText.Contains("ABC"); form.Close(); }; form.ShowDialog(); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsTrue(result); }
public void NoteMapGlue_AssignNote_EditorUpdated() { bool result = true; System.Threading.Thread t = new System.Threading.Thread(() => { MetaModel.MetaModel.Initialize(); var persistence = new PersistenceManager(); var noteEditor = new NoteEditor(); var form = CreateForm(); form.Controls.Add(noteEditor); form.Shown += (sender, args) => { var tree = persistence.NewTree(); var sut = new NoteMapGlue(noteEditor, persistence); tree.Tree.RootNode.NoteText = "ABC"; result = noteEditor.HTML != null && noteEditor.HTML.Contains("ABC"); form.Close(); }; form.ShowDialog(); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsTrue(result); }
public void GetSelectedTable_NoSelection() { bool result = false; System.Threading.Thread t = new System.Threading.Thread(() => { var editor = new NoteEditor(); var form = CreateForm(); var sut = new HtmlTableHelper(editor); form.Shown += (sender, args) => { editor.HTML = "Some Text"; var body = editor.Document.Body.DomElement as IHTMLBodyElement; IHTMLTxtRange r = body.createTextRange() as IHTMLTxtRange; r.findText("Text"); r.select(); sut.TableInsert(new HtmlTableProperty(true)); result = sut.GetSelectedTable() == null; form.Close(); }; form.Controls.Add(editor); form.ShowDialog(); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsTrue(result); }
public void ShowHtmlSourceDialog() { string result = null; System.Threading.Thread t = new System.Threading.Thread(() => { MetaModel.MetaModel.Initialize(); var persistence = new PersistenceManager(); var noteEditor = new NoteEditor(); var form = CreateForm(); form.Controls.Add(noteEditor); form.Shown += (sender, args) => { var ptree1 = persistence.NewTree(); var c1 = new MapNode(ptree1.Tree.RootNode, "c1"); c1.NoteText = "This is a note."; c1.Selected = true; var sut = new NoteEditorCtrl(noteEditor, persistence); Debugging.FormDebugHooks.Instance.ProvideShownEventHook((o, e) => { var f = (HtmlSourceDialog)o; foreach(Control c in f.Controls) { if(c.Name == "txtSource") { c.Text = "updated"; break; } } f.DialogResult = DialogResult.OK; }); sut.ShowHtmlSourceDialog(); result = noteEditor.HTML; form.Close(); Debugging.FormDebugHooks.Instance.ClearHook(); }; form.ShowDialog(); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.AreEqual("updated", result); }
public void GetTableProperties() { var tableProperties = new HtmlTableProperty(false); System.Threading.Thread t = new System.Threading.Thread(() => { var editor = new NoteEditor(); var form = CreateForm(); form.Shown += (sender, args) => { //insert table var sut = new HtmlTableHelper(editor); sut.TableInsert(new HtmlTableProperty(true)); //fill table FillTable((editor.Document.GetElementsByTagName("table")[0].DomElement) as IHTMLTable); //move inside table var body = editor.Document.Body.DomElement as IHTMLBodyElement; IHTMLTxtRange r2 = body.createTextRange() as IHTMLTxtRange; r2.findText("r2c2"); r2.select(); //modify table sut.DeleteRow(); tableProperties = sut.GetTableProperties(GetTable(editor)); form.Close(); }; form.Controls.Add(editor); form.ShowDialog(); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.AreEqual(2, tableProperties.TableRows); }
public void TableModify_ContainingTable() { var result = ""; var tableCount = 0; System.Threading.Thread t = new System.Threading.Thread(() => { var editor = new NoteEditor(); var form = CreateForm(); form.Shown += (sender, args) => { //insert table editor.HTML = "Some Text There"; var body = editor.Document.Body.DomElement as IHTMLBodyElement; IHTMLTxtRange r = body.createTextRange() as IHTMLTxtRange; r.findText("Text"); r.select(); var sut = new HtmlTableHelper(editor); sut.TableInsert(new HtmlTableProperty(true)); //move inside table IHTMLTxtRange r2 = body.createTextRange() as IHTMLTxtRange; r2.findText("Text"); r2.select(); //modify table var prop = new HtmlTableProperty(true); prop.CaptionText = "Table modified"; sut.TableModify(prop); form.Close(); }; form.Controls.Add(editor); form.ShowDialog(); result = editor.HTML; tableCount = editor.Document.GetElementsByTagName("table").Count; }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsTrue(result.Contains("Table modified")); Assert.AreEqual(1, tableCount); }
public void HtmlTableHelper() { var result = ""; System.Threading.Thread t = new System.Threading.Thread(() => { var editor = new NoteEditor(); var form = CreateForm(); form.Shown += (sender, args) => { editor.HTML = null; var sut = new HtmlTableHelper(editor); sut.TableInsert(new HtmlTableProperty(true)); form.Close(); }; form.Controls.Add(editor); form.ShowDialog(); result = editor.HTML; }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsTrue(result.ToLower().Contains("</table>")); }
public void InsertRowBelow_RowCountIncreased() { var rowCount = 0; System.Threading.Thread t = new System.Threading.Thread(() => { var editor = new NoteEditor(); var form = CreateForm(); form.Shown += (sender, args) => { //insert table editor.HTML = "Some Text There"; var body = editor.Document.Body.DomElement as IHTMLBodyElement; IHTMLTxtRange r = body.createTextRange() as IHTMLTxtRange; r.findText("Text"); r.select(); var sut = new HtmlTableHelper(editor); sut.TableInsert(new HtmlTableProperty(true)); //move inside table IHTMLTxtRange r2 = body.createTextRange() as IHTMLTxtRange; r2.findText("Text"); r2.select(); //modify table sut.InsertRowBelow(); form.Close(); }; form.Controls.Add(editor); form.ShowDialog(); rowCount = GetTable(editor).rows.length; }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.AreEqual(4, rowCount); }