When a control is inserted into a document, it is stored in a form. Forms are contained in draw pages, which implement the com.sun.star.form.XFormsSupplier interface. The visible portion of the control-what you see-is stored in a draw page and represented by a ControlShape. The data model for the control is stored in a form and referenced by the ControlShape. The method getForms() returns an object that contains the forms for the draw page (see Table 19 ).
Method | Description |
---|---|
createEnumeration() | Create an enumeration of the forms. |
getByIndex(Long) | Get a form by index. |
getByName(String) | Get a form by name . |
getCount() | Get the number of forms. |
hasByName(String) | Return True if the form with the specified name exists. |
hasElements() | Return True if the page contains at least one form. |
insertByIndex(Long, Form) | Insert a form by index. |
insertByName(String, Form) | Insert a form by name. |
removeByIndex(Long) | Remove a form by index. |
removeByName(String) | Remove the named form. |
replaceByIndex(Long, Form) | Replace a form by index. |
replaceByName(String, Form) | Replace a form by name. |
The purpose of Listing 28 is to demonstrate how to add a form to a draw page. Forms are not interesting unless they contain a control, so Listing 28 adds a drop-down list box with some values to select.
Sub AddAForm Dim oPage 'Page on which to draw Dim oShape 'Shape to insert Dim oDoc 'ThisComponent Dim oForm 'Individual form Dim oControlModel 'Model for a control Dim s (0 To 5) As String REM Data for the combo box! s(0) = "Zero" : s(1) = "One" : s(2) = "Two" s(3) = "Three" : s(4) = "Four" : s(5) = "Five" oDoc = ThisComponent oPage = createDrawPage(oDoc, "Test Draw", True) REM Create a shape for the control. oShape = oDoc.createInstance("com.sun.star.drawing.ControlShape") oShape.Position = createPoint(1000, 1500) oShape.Size = createSize(2500, 800) REM Create a combo box model. oControlModel = oDoc.createInstance("com.sun.star.form.component.ComboBox") oControlModel.Name = "NumberSelection" oControlModel.Text = "Zero" oControlModel.Dropdown = True oControlModel.StringItemList = s() REM Set the shape's control model! oShape.Control = oControlModel oForm = oDoc.createInstance("com.sun.star.form.component.Form") oForm.Name = "NumberForm" oPage.Forms.insertByIndex( 0, oForm ) REM Add the control model to the first form in the collection. oForm.insertByIndex( 0, oControlModel ) oPage.add( oShape ) End Sub
Regular forms, as created by Listing 28, group form components (described in Table 20 ) together. A DataForm, however, can connect to a database and display the results of SQL queries. An HTMLForm, on the other hand, contains controls specific to HTML pages.
Component | Description |
---|---|
CheckBox | Check box control. |
ComboBox | Provides text input or selection from a list of text values. |
CommandButton | A clickable button. |
CurrencyField | An edit field with a currency value. |
DatabaseCheckBox | A data-aware check box that can be bound to a database field. |
DatabaseComboBox | A data-aware combo box that can be bound to a database field. |
DatabaseCurrencyField | A data-aware edit field with a currency value that can be bound to a database field. |
DatabaseDateField | A data-aware date field that can be bound to a database field. |
DatabaseFormattedField | A data-aware formatted field that can be bound to a database field. |
DatabaseImageControl | A field for displaying images stored in a database. |
DatabaseListBox | A data-aware list box that can be bound to a database field. |
DatabaseNumericField | A data-aware numeric field that can be bound to a database field. |
DatabasePatternField | A data-aware pattern field that can be bound to a database field. |
DatabaseRadioButton | A data-aware radio button that can be bound to a database field. |
DatabaseTextField | A data-aware text field that can be bound to a database field. |
DatabaseTimeField | A data-aware time field that can be bound to a database field. |
DateField | An edit field with a date value. |
FileControl | An edit field for a file name. |
FixedText | Display text that cannot be edited by the user . |
FormattedField | An edit field that contains formatted text. |
GridControl | Display data in a table-like way. |
GroupBox | A control that can visually group controls. |
HiddenControl | A control that is hidden. |
ImageButton | A clickable button which is represented by an image. |
ListBox | A control with multiple values from which to choose. |
NumericField | An edit field with a numeric value. |
PatternField | An edit field with text that matches a pattern. |
RadioButton | A radio button. |
TextField | A text-edit field that supports single-line and multi-line data. |
TimeField | An edit field with a time value. |