예제 #1
0
        public void SaveLoadTest()
        {
            //Create a new text document
            TextDocument document = new TextDocument();

            document.New();

            Paragraph p = new Paragraph(document);

            p.StyleName = "Standard";
            ODFForm main_form = new ODFForm(document, "mainform");

            main_form.Method = Method.Get;
            ODFFrame frm = new ODFFrame(main_form, p.Content, "frm", "5mm", "5mm", "5cm", "3cm");

            frm.Label = "Save and Load test";
            main_form.Controls.Add(frm);

            ODFButton butt = new ODFButton(main_form, p.Content, "butt", "1cm", "15mm", "4cm", "1cm");

            butt.Label = "A simple button :)";
            main_form.Controls.Add(butt);

            document.Forms.Add(main_form);
            document.Content.Add(p);

            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "saveload.odt");

            document.Load(AARunMeFirstAndOnce.outPutFolder + "saveload.odt");
            ODFButton bt = document.FindControlById("butt") as ODFButton;

            Assert.IsNotNull(bt, "Could not find control with >butt< ID");
            bt.Label = "This label has chanhed";
            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "saveload2.odt");
        }
예제 #2
0
        public void SpreadSheetFormsTest()
        {
            //Create new spreadsheet document
            SpreadsheetDocument spreadsheetDocument = new SpreadsheetDocument();

            spreadsheetDocument.New();
            //Create a new table
            Table table = new Table(spreadsheetDocument, "First", "tablefirst");
            //Create a new cell, without any extra styles
            Cell cell = new Cell(spreadsheetDocument, "cell001");

            cell.OfficeValueType = "string";
            //Set full border
            cell.CellStyle.CellProperties.Border = Border.NormalSolid;
            //Add a paragraph to this cell
            Paragraph paragraph = ParagraphBuilder.CreateSpreadsheetParagraph(
                spreadsheetDocument);

            //Add some text content
            paragraph.TextContent.Add(new SimpleText(spreadsheetDocument, "Some text"));
            //Add paragraph to the cell
            cell.Content.Add(paragraph);
            //Insert the cell at row index 2 and column index 3
            //All need rows, columns and cells below the given
            //indexes will be build automatically.
            table.Rows.Add(new Row(table, "Standard"));
            table.Rows.Add(new Row(table, "Standard"));
            table.Rows.Add(new Row(table, "Standard"));
            table.InsertCellAt(3, 2, cell);
            //Insert table into the spreadsheet document

            ODFForm main_form = new ODFForm(spreadsheetDocument, "mainform");

            main_form.Method = Method.Get;
            ODFButton butt = new ODFButton(main_form, cell.Content, "butt", "0cm", "0cm", "15mm", "8mm");

            butt.Label = "test :)";
            main_form.Controls.Add(butt);
            spreadsheetDocument.TableCollection.Add(table);
            table.Forms.Add(main_form);

            spreadsheetDocument.SaveTo(AARunMeFirstAndOnce.outPutFolder + "spreadsheet_forms.ods");

            SpreadsheetDocument spreadsheetDocument2 = new SpreadsheetDocument();

            spreadsheetDocument2.Load(AARunMeFirstAndOnce.outPutFolder + "spreadsheet_forms.ods");
            ODFButton b = spreadsheetDocument2.TableCollection[0].FindControlById("butt") as ODFButton;

            Assert.IsNotNull(b);
            b.Label = "it works!";
            spreadsheetDocument2.SaveTo(AARunMeFirstAndOnce.outPutFolder + "spreadsheet_forms2.ods");
        }
예제 #3
0
        public void SpreadSheetImportExportTest()
        {
            //Create new spreadsheet document
            SpreadsheetDocument spreadsheetDocument = new SpreadsheetDocument();

            spreadsheetDocument.Load(AARunMeFirstAndOnce.inPutFolder + @"bigtable.ods");
            ODFForm   f    = new ODFForm(spreadsheetDocument, "mainform");
            ODFButton butt = new ODFButton(f, spreadsheetDocument.TableCollection[0].Rows[1].Cells[1].Content, "butt", "5mm", "15mm", "4cm", "1cm");

            f.Controls.Add(butt);
            spreadsheetDocument.TableCollection[0].Forms.Add(f);
            spreadsheetDocument.SaveTo(AARunMeFirstAndOnce.outPutFolder + "bigtable2.ods");
        }
예제 #4
0
        public void HTMLExportTest()
        {
            //Create a new text document
            TextDocument document = new TextDocument();

            document.New();

            Paragraph p         = new Paragraph(document);
            ODFForm   main_form = new ODFForm(document, "mainform");

            main_form.Method = Method.Get;
            main_form.Href   = "http://hello.foo.com";

            ODFComboBox ccb = new ODFComboBox(main_form, p.Content, "ccb", "0mm", "0mm", "3cm", "1cm");

            ccb.Size     = 5;
            ccb.DropDown = XmlBoolean.True;
            ccb.Items.Add(new ODFItem(document, "Charlie"));
            ccb.Items.Add(new ODFItem(document, "John"));
            ccb.Items.Add(new ODFItem(document, "Dieter"));
            ccb.Items.Add(new ODFItem(document, "Bill"));
            ccb.Items.Add(new ODFItem(document, "Oleg"));
            ccb.Items.Add(new ODFItem(document, "Lars"));
            main_form.Controls.Add(ccb);

            ODFButton butt = new ODFButton(main_form, p.Content, "butt", "5mm", "15mm", "4cm", "1cm");

            butt.Label = "A simple button :)";
            main_form.Controls.Add(butt);

            ODFCheckBox cb = new ODFCheckBox(main_form, p.Content, "cbx", "5mm", "25mm", "4cm", "5mm");

            cb.Label = "check it!";
            cb.Name  = "cbx";
            cb.Value = "cbx_value";

            main_form.Controls.Add(cb);

            document.Forms.Add(main_form);
            document.Content.Add(p);

            Paragraph text_p = new Paragraph(document);

            text_p.TextContent.Add(new SimpleText(document, "This is a simple text content that is located in the next paragraph after the form!"));
            document.Content.Add(text_p);

            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "html_test.odt");
            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "html_test.html");
        }
예제 #5
0
        public void FormsRemoveTest()
        {
            // Create a new document
            TextDocument document = new TextDocument();

            document.New();

            // Create a main paragraph
            Paragraph p = new Paragraph(document);

            p.TextContent.Add(new SimpleText(document, "This document should contain no forms!"));

            // Create a main form
            ODFForm main_form = new ODFForm(document, "mainform");

            main_form.Method = Method.Get;

            // The first button. It doesn't get a focus on click
            ODFButton butt = new ODFButton(main_form, p.Content, "butt1", "0cm", "0mm", "4cm", "1cm");

            butt.Label        = "Button one";
            butt.Title        = "First button.";
            butt.FocusOnClick = XmlBoolean.False;
            butt.ButtonType   = ButtonType.Push;
            main_form.Controls.Add(butt);

            // The second button. It is disabled
            butt              = new ODFButton(main_form, p.Content, "butt2", "0cm", "2cm", "4cm", "1cm");
            butt.Label        = "Button two";
            butt.Title        = "Second button.";
            butt.FocusOnClick = XmlBoolean.True;
            butt.Disabled     = XmlBoolean.True;
            main_form.Controls.Add(butt);

            // The third button with "toggle" behaviour
            butt        = new ODFButton(main_form, p.Content, "butt3", "0cm", "4cm", "4cm", "1cm");
            butt.Label  = "Button three";
            butt.Title  = "Third button.";
            butt.Toggle = XmlBoolean.True;
            main_form.Controls.Add(butt);

            document.Forms.Add(main_form);
            document.Content.Add(p);

            // Remove the form from the document!
            document.Forms.RemoveAt(0);

            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "no_forms.odt");
        }
예제 #6
0
        public void ODFButtonTest()
        {
            // Create a new document
            TextDocument document = new TextDocument();

            document.New();

            // Create a main paragraph
            Paragraph p = new Paragraph(document);

            // Create a main form
            ODFForm main_form = new ODFForm(document, "mainform");

            main_form.Method = Method.Get;

            // The first button. It doesn't get a focus on click
            ODFButton butt = new ODFButton(main_form, p.Content, "butt1", "0cm", "0mm", "4cm", "1cm");

            butt.Label        = "Button one";
            butt.Title        = "First button.";
            butt.FocusOnClick = XmlBoolean.False;
            butt.ButtonType   = ButtonType.Push;
            main_form.Controls.Add(butt);

            // The second button. It is disabled
            butt              = new ODFButton(main_form, p.Content, "butt2", "0cm", "2cm", "4cm", "1cm");
            butt.Label        = "Button two";
            butt.Title        = "Second button.";
            butt.FocusOnClick = XmlBoolean.True;
            butt.Disabled     = XmlBoolean.True;
            main_form.Controls.Add(butt);

            // The third button with "toggle" behaviour
            butt        = new ODFButton(main_form, p.Content, "butt3", "0cm", "4cm", "4cm", "1cm");
            butt.Label  = "Button three";
            butt.Title  = "Third button.";
            butt.Toggle = XmlBoolean.True;
            main_form.Controls.Add(butt);

            document.Forms.Add(main_form);
            document.Content.Add(p);

            // Button import/export test
            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "button_test.odt");
            document.Load(AARunMeFirstAndOnce.outPutFolder + "button_test.odt");
            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "button_test2.odt");
        }
예제 #7
0
        public void ODFFrameTest()
        {
            //Create a new text document
            TextDocument document = new TextDocument();

            document.New();

            // Create a main paragraph
            Paragraph p = new Paragraph(document);
            // Create a main form
            ODFForm main_form = new ODFForm(document, "mainform");

            main_form.Method = Method.Get;

            // Create a frame
            ODFFrame frm = new ODFFrame(main_form, p.Content, "frm", "5mm", "5mm", "5cm", "3cm");

            frm.Label = "ODFFrame test";
            // Add the frame to the form control list
            main_form.Controls.Add(frm);

            // Create a button
            ODFButton butt = new ODFButton(main_form, p.Content, "butt", "1cm", "15mm", "4cm", "1cm");

            butt.Label = "A simple button :)";
            // Add the button to the form control list
            main_form.Controls.Add(butt);

            // Add the forms to the document!
            document.Forms.Add(main_form);
            // Add the paragraph to the content list
            document.Content.Add(p);

            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "frame_test.odt");
            document.Load(AARunMeFirstAndOnce.outPutFolder + "frame_test.odt");
            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "frame_test2.odt");
        }
예제 #8
0
        public void StyleTest()
        {
            // Create a new document
            TextDocument document = new TextDocument();

            document.New();

            // Create a main paragraph
            Paragraph p = new Paragraph(document);

            ParagraphStyle ps1 = new ParagraphStyle(document, "style1");

            ps1.Family = "paragraph";
            ps1.TextProperties.FontName  = FontFamilies.Arial;
            ps1.TextProperties.FontColor = AODL.Document.Helper.Colors.GetColor(System.Drawing.Color.Blue);
            ps1.TextProperties.Bold      = "bold";
            ps1.TextProperties.FontSize  = "18pt";
            document.Styles.Add(ps1);

            ParagraphStyle ps2 = new ParagraphStyle(document, "style2");

            ps2.Family = "paragraph";
            ps2.TextProperties.FontName  = FontFamilies.CourierNew;
            ps2.TextProperties.Italic    = "italic";
            ps2.TextProperties.FontSize  = "14pt";
            ps2.TextProperties.Underline = "dotted";
            document.Styles.Add(ps2);

            ParagraphStyle ps3 = new ParagraphStyle(document, "style3");

            ps3.Family = "paragraph";
            ps3.TextProperties.FontName  = FontFamilies.Wingdings;
            ps3.TextProperties.FontColor = AODL.Document.Helper.Colors.GetColor(System.Drawing.Color.Red);
            ps3.TextProperties.FontSize  = "16pt";
            document.Styles.Add(ps3);

            // Create a main form
            ODFForm main_form = new ODFForm(document, "mainform");

            main_form.Method = Method.Get;

            // The first button. It doesn't get a focus on click
            ODFButton butt = new ODFButton(main_form, p.Content, "butt1", "0cm", "0mm", "7cm", "1cm");

            butt.TextStyle    = ps1;
            butt.Label        = "Button one";
            butt.Title        = "This button uses Arial font.";
            butt.FocusOnClick = XmlBoolean.False;
            butt.ButtonType   = ButtonType.Push;
            main_form.Controls.Add(butt);

            // The second button. It is disabled
            butt              = new ODFButton(main_form, p.Content, "butt2", "0cm", "2cm", "7cm", "1cm");
            butt.Label        = "Button two";
            butt.Title        = "Second button.";
            butt.FocusOnClick = XmlBoolean.True;
            butt.Disabled     = XmlBoolean.True;
            butt.TextStyle    = ps2;
            main_form.Controls.Add(butt);

            // The third button with "toggle" behaviour
            butt           = new ODFButton(main_form, p.Content, "butt3", "0cm", "4cm", "7cm", "1cm");
            butt.Label     = "Button three";
            butt.Title     = "Third button.";
            butt.Toggle    = XmlBoolean.True;
            butt.TextStyle = ps3;
            main_form.Controls.Add(butt);



            document.Forms.Add(main_form);
            document.Content.Add(p);


            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "style_test.odt");
            document.Load(AARunMeFirstAndOnce.outPutFolder + "style_test.odt");
            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "style_test2.odt");
        }
예제 #9
0
        public void NestedFormTest()
        {
            //Create a new text document
            TextDocument document = new TextDocument();

            document.New();

            // Create a main paragraph
            Paragraph p = new Paragraph(document);
            // Create a main form
            ODFForm main_form  = new ODFForm(document, "mainform");
            ODFForm child_form = new ODFForm(document, "childform");

            main_form.Method = Method.Get;
            main_form.Method = Method.Get;

            // Create a frame
            ODFFrame frm = new ODFFrame(main_form, p.Content, "frm", "5mm", "5mm", "5cm", "3cm");

            frm.Label = "Main form";
            // Add the frame to the form control list
            main_form.Controls.Add(frm);

            // Create a button
            ODFButton butt = new ODFButton(main_form, p.Content, "butt", "1cm", "15mm", "4cm", "1cm");

            butt.Label = "This is a main form";
            // Add the button to the form control list
            main_form.Controls.Add(butt);

            // Add the forms to the main form!
            document.Forms.Add(main_form);
            // Add the paragraph to the content list
            document.Content.Add(p);


            // adding controls to the nested form
            ODFFrame frm_child = new ODFFrame(child_form, p.Content, "frm_child", "5mm", "35mm", "5cm", "3cm");

            frm_child.Label = "Child form";
            child_form.Controls.Add(frm_child);

            ODFButton butt_child = new ODFButton(child_form, p.Content, "butt_child", "1cm", "45mm", "4cm", "1cm");

            butt_child.Label = "This is a child form";
            child_form.Controls.Add(butt_child);
            main_form.ChildForms.Add(child_form);

            ODFButton b = document.FindControlById("butt_child") as ODFButton;

            Assert.IsNotNull(b, "Error! could not find the specified control");
            b.Label = "Child form:)";


            // Add the forms to the main form!
            document.Forms.Add(main_form);
            // Add the paragraph to the content list
            document.Content.Add(p);

            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "nested_forms_test.odt");
            document.Load(AARunMeFirstAndOnce.outPutFolder + "nested_forms_test.odt");
            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "nested_forms_test2.odt");
        }
예제 #10
0
        public void ODFHiddenAndFormActionTest()
        {
            //Create a new text document
            TextDocument document = new TextDocument();

            document.New();

            // Create a main paragraph
            Paragraph p = new Paragraph(document);
            // Create a main form

            // Create the first form (Method = GET)
            ODFForm form1 = new ODFForm(document, "form1");

            form1.Method = Method.Get;
            form1.Href   = "http://foo.foo";

            // Create all the controls for form1
            ODFFrame frm1 = new ODFFrame(form1, p.Content, "frm1", "5mm", "5mm", "11cm", "3cm");

            frm1.Label = "Form submission test (Method = GET, Hidden name = hid)";
            form1.Controls.Add(frm1);
            ODFButton butt1 = new ODFButton(form1, p.Content, "butt1", "2cm", "15mm", "8cm", "1cm");

            butt1.Label      = "Submit to foo.foo!";
            butt1.ButtonType = ButtonType.Submit;
            butt1.Name       = "butt1";
            form1.Controls.Add(butt1);
            ODFHidden hid1 = new ODFHidden(form1, p.Content, "hid1", "0cm", "0cm", "0cm", "0cm");

            hid1.Value = "hello!";
            hid1.Name  = "hid1";
            form1.Controls.Add(hid1);

            // Create the second form (Method = POST)
            ODFForm form2 = new ODFForm(document, "form2");

            form2.Method = Method.Post;
            form2.Href   = "http://foo.foo.2";
            ODFFrame frm2 = new ODFFrame(form2, p.Content, "frm2", "5mm", "45mm", "11cm", "3cm");

            frm2.Label = "Form submission test (Method = POST, Hidden name = hid)";
            form2.Controls.Add(frm2);

            // Create all the controls for form2
            ODFButton butt2 = new ODFButton(form2, p.Content, "butt2", "2cm", "55mm", "8cm", "1cm");

            butt2.Label      = "Submit to foo.foo!";
            butt2.ButtonType = ButtonType.Submit;
            butt2.Name       = "butt2";
            form2.Controls.Add(butt2);
            ODFHidden hid2 = new ODFHidden(form2, p.Content, "hid2", "0cm", "0cm", "0cm", "0cm");

            hid2.Value = "hello!";
            hid2.Name  = "hid2";
            form2.Controls.Add(hid2);

            document.Forms.Add(form1);
            document.Forms.Add(form2);
            document.Content.Add(p);

            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "hidden_subm_test.odt");
            document.Load(AARunMeFirstAndOnce.outPutFolder + "hidden_subm_test.odt");
            document.SaveTo(AARunMeFirstAndOnce.outPutFolder + "hidden_subm_test2.odt");
        }
예제 #11
0
        /// <summary>
        /// Gets the form.
        /// </summary>
        /// <param name="formnode">The node of the form.</param>
        /// <returns></returns>
        private ODFForm CreateForm(XmlNode formnode)
        {
            ODFForm form = null;

            try
            {
                if (formnode.Name == "form:form")
                {
                    if (this._debugMode)
                    {
                        this.LogNode(formnode, "Log form node before");
                    }

                    //Create a new ODFForm

                    ///////////TODO. Fix for child forms!
                    form = new ODFForm(formnode.CloneNode(true), this._document);

                    form.SuppressControlEvents();
                    foreach (XmlNode nodeChild in form.Node.ChildNodes)
                    {
                        switch (nodeChild.Name)
                        {
                        case "form:form":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFForm frmchild = CreateForm(nodeChild);
                                if (frmchild != null)
                                {
                                    form.ChildForms.Add(frmchild);
                                }
                                form.Node.RemoveChild(nodeChild);
                            }
                            break;

                        case "form:properties": break;

                        case "form:button":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFButton button = new ODFButton(form, nodeChild);
                                button.FixPropertyCollection();
                                form.Controls.Add(button);
                            }
                            break;

                        case "form:listbox":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFListBox listbox = new ODFListBox(form, nodeChild);
                                listbox.FixPropertyCollection();
                                listbox.FixOptionCollection();
                                form.Controls.Add(listbox);
                            }
                            break;

                        case "form:combobox":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFComboBox combobox = new ODFComboBox(form, nodeChild);
                                combobox.FixPropertyCollection();
                                combobox.FixItemCollection();
                                form.Controls.Add(combobox);
                            }
                            break;

                        case "form:textarea":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFTextArea text = new ODFTextArea(form, nodeChild);
                                text.FixPropertyCollection();
                                form.Controls.Add(text);
                            }
                            break;

                        case "form:frame":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFFrame frm = new ODFFrame(form, nodeChild);
                                frm.FixPropertyCollection();
                                form.Controls.Add(frm);
                            }
                            break;

                        case "form:file":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFFile file = new ODFFile(form, nodeChild);
                                file.FixPropertyCollection();
                                form.Controls.Add(file);
                            }
                            break;

                        case "form:hidden":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFHidden hidden = new ODFHidden(form, nodeChild);
                                hidden.FixPropertyCollection();
                                form.Controls.Add(hidden);
                            }
                            break;

                        case "form:checkbox":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFCheckBox cb = new ODFCheckBox(form, nodeChild);
                                cb.FixPropertyCollection();
                                form.Controls.Add(cb);
                            }
                            break;

                        case "form:radio":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFRadioButton rb = new ODFRadioButton(form, nodeChild);
                                rb.FixPropertyCollection();
                                form.Controls.Add(rb);
                            }
                            break;

                        case "form:formatted-text":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFFormattedText text = new ODFFormattedText(form, nodeChild);
                                text.FixPropertyCollection();
                                form.Controls.Add(text);
                            }
                            break;

                        case "form:value-range":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFValueRange vr = new ODFValueRange(form, nodeChild);
                                vr.FixPropertyCollection();
                                form.Controls.Add(vr);
                            }
                            break;

                        case "form:image":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFImage img = new ODFImage(form, nodeChild);
                                img.FixPropertyCollection();
                                form.Controls.Add(img);
                            }
                            break;

                        case "form:image-frame":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFImageFrame imgf = new ODFImageFrame(form, nodeChild);
                                imgf.FixPropertyCollection();
                                form.Controls.Add(imgf);
                            }
                            break;

                        case "form:grid":
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFGrid gr = new ODFGrid(form, nodeChild);
                                gr.FixPropertyCollection();
                                gr.FixColumnCollection();
                                form.Controls.Add(gr);
                            }
                            break;

                        default:
                            if (nodeChild.ParentNode == form.Node)
                            {
                                ODFGenericControl gc = new ODFGenericControl(form, nodeChild);
                                gc.FixPropertyCollection();
                                form.Controls.Add(gc);
                            }
                            break;
                        }
                    }
                    form.RestoreControlEvents();
                    form.FixPropertyCollection();
                    //	formnode.RemoveAll();
                    //	formnode.InnerText = "";
                }
            }


            catch (Exception ex)
            {
                throw new AODLException("Exception while processing a form:form node.", ex);
            }
            return(form);
        }