path: root/offapi/com/sun/star/form/FormController.idl
diff options
Diffstat (limited to 'offapi/com/sun/star/form/FormController.idl')
1 files changed, 33 insertions, 8 deletions
diff --git a/offapi/com/sun/star/form/FormController.idl b/offapi/com/sun/star/form/FormController.idl
index 6cf88574a976..79041f94f824 100644
--- a/offapi/com/sun/star/form/FormController.idl
+++ b/offapi/com/sun/star/form/FormController.idl
@@ -4,9 +4,9 @@
* $RCSfile: FormController.idl,v $
- * $Revision: 1.11 $
+ * $Revision: 1.12 $
- * last change: $Author: kz $ $Date: 2007-05-10 10:01:34 $
+ * last change: $Author: rt $ $Date: 2007-07-24 11:57:16 $
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -79,14 +79,14 @@
#include <com/sun/star/form/FormControllerDispatcher.idl>
-#ifndef __com_sun_star_form_runtime_XFormOperations_idl__
-#include <com/sun/star/form/runtime/XFormOperations.idl>
module com { module sun { module star { module form {
+module runtime {
+ published interface XFormOperations;
/** specifies a component controlling the interaction between the user and form functionality.
@@ -100,12 +100,37 @@
contain one or more other <type>FormController</type>s, so the form model structure or hierarchy
is reflected in the structure of <type>FormController</type>s.</p>
+ <h3>Responsibilities</h3>
<p>A <type>FormController</type> is responsible for a <type scope="com::sun::star::awt">UnoControlContainer</type>,
and all controls therein.</p>
+ <p>Furthermore, a form controller is responsible for preventing invalid user input. That is, if the form
+ contains controls bound to a database, or to an external validator, then the form controller will
+ check their current value when the current record is to be saved to the database.</p>
+ <p>First, it will check whether any controls with an external validator exist. If so, those validators
+ will be asked to validate the current control content. If this fails, the message provided by the validator
+ is displayed to the user, the control is focused, and the update of the record is vetoed.</p>
+ <p>Second, the controls are examined for NULL values. If a control is bound to a database field which
+ is declared to be <code>NOT NULL</code>, no auto-increment field, but still <NULL/>, then an error
+ message is shown to the user saying that input is required, the respective control is focused, and
+ the update of the record is vetoed.</p>
+ <p>Note that you can precent the second check - for database fields containing <NULL/> values - on
+ a per-form and a per-database basis.<br/>
+ For the former, you need to add a boolean property <code>FormsCheckRequiredFields</code> to the form
+ (aka the <code>FormController</code>'s model), using its
+ <member scope="com::sun::star::beans">XPropertyContainer::addProperty</member> method, with a value
+ of <FALSE/>.<br/>
+ For the latter, you need to set the respective property of the data source's <code>Settings</code>
+ (also named <code>FormsCheckRequiredFields</code>) to <FALSE/>.</p>
@see com::sun::star::form::component:Form
@see com::sun::star::awt::XTabController
- */
+ @see com::sun::star::form::binding::BindableControlModel
+ @see com::sun::star::sdb::DataSource::Settings
published service FormController
/** allows delegating form controller functionality to the component
@@ -121,7 +146,7 @@ published service FormController
<p>This instance can be used, for instance, to determine the current state of certain form features.</p>
-// [optional, property] ::com::sun::star::form::runtime::XFormOperations FormOperations;
+ [optional, property] ::com::sun::star::form::runtime::XFormOperations FormOperations;
/** is used for notifying the (de)activation of the controller.