1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: ValidatableControlModel.idl,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef __com_sun_star_form_validation_ValidatableControlModel_idl__
32 #define __com_sun_star_form_validation_ValidatableControlModel_idl__
34 #ifndef __com_sun_star_form_FormControlModel_idl__
35 #include
<com
/sun
/star
/form
/FormControlModel.idl
>
38 #ifndef __com_sun_star_form_validation_XValidatableFormComponent_idl__
39 #include
<com
/sun
/star
/form
/validation
/XValidatableFormComponent.idl
>
42 #ifndef __com_sun_star_form_validation_XValidityConstraintListener_idl__
43 #include
<com
/sun
/star
/form
/validation
/XValidityConstraintListener.idl
>
46 //=============================================================================
48 module com
{ module sun
{ module star
{ module form
{ module validation
{
50 /** specifies the model of a form control which supports live validation of its
53 <p>Validatable control models support setting a validator with dynamic
54 validity constraints, and broadcasting changes in their value as well as the
55 validity of their value.</p>
57 service ValidatableControlModel
59 /** specifies the basic functionality for a form control model
61 <p>Via this service, validatable control models inherit the
62 <type scope="com::sun::star::util">XCloneable</type> interface.<br/>
63 If an validatable control model, at which a validator has been set (via
64 <member>XValidatable::setValidator</member>), is being cloned, then the
65 validator is also set at the clone. Effectively, this means that
66 both control model instances share the same validator instance.</p>
68 service com
::sun
::star
::form
::FormControlModel
;
70 /** enables support for validating the value of the control model
72 <p>Setting an retrieving the current validator of the control model is
73 possible via the <type>XValidatable</type> interface (which
74 <type>XValidatableFormComponent</type> is derived from).</p>
76 <p>Easy access to the current value of the control, as well as it's validity
77 (relative to the active validator), is provided by the methods <member>XValidatableFormComponent::isValid</member>
78 and <member>XValidatableFormComponent::getCurrentValue</member>.</p>
80 <p>Note that the type of the value provided by <member>XValidatableFormComponent::getCurrentValue</member>
81 is not specified here, but depends on the concrete control type.</p>
83 interface XValidatableFormComponent
;
85 /** enables support for validators with dynamic validity constraints.
87 <p>As soon as a validator is set via <member>XValidatable::setValidator</member>, the validatable
88 control model registers itself as listener. If the validity constraint of the validator
89 changes, the <type>ValidatableControlModel</type> re-validates it's current valid, and
90 broadcasts any resuling changes to all its <type>XFormComponentValidityListener</type>, if
93 interface XValidityConstraintListener
;
96 //=============================================================================