Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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, "");
        }
Example #4
0
 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();
 }
Example #5
0
        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);
            }
        }
Example #6
0
        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;
        }
Example #7
0
        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;
        }
Example #8
0
        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);
            }
        }
Example #10
0
        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);
        }
Example #11
0
        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);
            }
        }
Example #12
0
        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;
                };
            }
        }
Example #13
0
 public NoteEditorCtrl(NoteEditor editor, PersistenceManager pManager)
 {
     this.noteGlue = new NoteMapGlue(editor, pManager);
 }
Example #14
0
 public ClipboardImagePaster(NoteEditor editor, PersistenceManager pManager)
 {
     editor.Pasting += Editor_Pasting;
     this.pManager   = pManager;
 }
Example #15
0
        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);
        }
Example #16
0
 public ImageLocalSaver(NoteEditor editor, PersistenceManager pManager)
 {
     this.editor                  = editor;
     this.persistence             = pManager;
     editor.ExternalContentAdded += Editor_ExternalContentAdded;
 }
Example #17
0
 /// <summary>
 /// Returns first table
 /// </summary>
 private IHTMLTable GetTable(NoteEditor editor)
 {
     return editor.Document.GetElementsByTagName("table")[0].DomElement as IHTMLTable;
 }
Example #18
0
        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"));
        }
Example #19
0
        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);
        }
Example #20
0
        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);
        }
Example #21
0
        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);
        }
Example #22
0
        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);
        }
Example #23
0
        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);
        }
Example #24
0
        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);
        }
Example #25
0
        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);
        }
Example #26
0
        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);
        }
Example #27
0
        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>"));
        }
Example #28
0
        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);
        }