GdauiBasicForm

GdauiBasicForm — Form widget mapping the values contained in a GdaSet

Synopsis


Description

The GdauiBasicForm widget is a form containing an entry for each GdaHolder object contained in a GdaSet (specified when the form is created). A typical usage is when the user is requested to enter a value which will be used in a statement (without any error checking for clarity):

GdaStatement *stmt;
GdaSet *params;
stmt = gda_sql_parser_parse_string (parser, "SELECT * FROM customers where name LIKE #name::string", NULL, NULL);
gda_statement_get_parameters (stmt, &params, NULL);
GtkWidget *form;
gint result;
form = gdaui_basic_form_new_in_dialog (params, NULL, "Customer search", "Enter Customer search expression");
result = gtk_dialog_run (GTK_DIALOG (form));
gtk_widget_destroy (form);
if (result == GTK_RESPONSE_ACCEPT) {
    /* execute statement */
    GdaDataModel *model;
    model = gda_connection_statement_execute_select (cnc, stmt, params, NULL);
    [...]
}
g_object_unref (params);
g_object_unref (stmt);
  

The default layout within a GdauiBasicForm is a vertical column: all the data entry widgets are aligned in a single column. This behaviour can be changed using the gdaui_basic_form_set_layout_from_file() method or setting the xml-layout property.

XML Layout Definitions

The GdauiBasicForm class parses textual descriptions of XML layout which which can be described by the following DTD.

<!ELEMENT gdaui_layouts (gdaui_form | gdaui_grid)>
<!ELEMENT gdaui_form (gdaui_section | gdaui_column | gdaui_notebook)*>
<!ATTLIST gdaui_form
          name CDATA #REQUIRED
	  container (columns|rows|hpaned|vpaned) #IMPLIED>
<!ELEMENT gdaui_section (gdaui_section | gdaui_column | gdaui_notebook)*>
<!ATTLIST gdaui_section
          title CDATA #IMPLIED >
<!ELEMENT gdaui_notebook (gdaui_section | gdaui_column | gdaui_notebook)*>
<!ELEMENT gdaui_column (gdaui_entry | gdaui_placeholder)*>
<!ELEMENT gdaui_entry EMPTY>
<!ATTLIST gdaui_entry
          name CDATA #REQUIRED
	  editable (true|false) #IMPLIED
	  label CDATA #IMPLIED
	  plugin CDATA #IMPLIED>
<!ELEMENT gdaui_placeholder EMPTY>
<!ATTLIST gdaui_placeholder
	  id CDATA #REQUIRED
	  label CDATA #IMPLIED>

Example 1. A GdauiBasicForm layout example

<?xml version="1.0" encoding="UTF-8"?>
<gdaui_layouts>
  <gdaui_form name="customers" container="hpaned">
    <gdaui_section title="Summary">
      <gdaui_column>
	<gdaui_entry name="id" editable="no"/>
	<gdaui_entry name="name"/>
	<gdaui_entry name="comments" plugin="text"/>
	<gdaui_entry name="total_orders" label="Total ordered" plugin="number:NB_DECIMALS=2;CURRENCY=€"/>
      </gdaui_column>
    </gdaui_section>
    <gdaui_section title="Photo">
      <gdaui_column>
	<gdaui_entry name="photo" plugin="picture"/>
      </gdaui_column>
    </gdaui_section>
  </gdaui_form>
</gdaui_layouts>

Details