Inheritance: ODFFormControl
Ejemplo n.º 1
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");
		}
		/// <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;
		}
Ejemplo n.º 3
0
		public void FormsClearTest()
		{
			// 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);

			// Clear all the forms within the document!
			document.Forms.Clear();

			document.SaveTo(AARunMeFirstAndOnce.outPutFolder+"no_forms.odt");
		}
Ejemplo n.º 4
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");
		}
Ejemplo n.º 5
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");
		}
Ejemplo n.º 6
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");
		}
Ejemplo n.º 7
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");
		}
Ejemplo n.º 8
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");
			
		}
Ejemplo n.º 9
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");
			
		}
Ejemplo n.º 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");
		}