1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27
28#ifndef __com_sun_star_form_binding_BindableDatabaseRadioButton_idl__
29#define __com_sun_star_form_binding_BindableDatabaseRadioButton_idl__
30
31#ifndef __com_sun_star_form_component_DatabaseRadioButton_idl__
32#include <com/sun/star/form/component/DatabaseRadioButton.idl>
33#endif
34
35#ifndef __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
36#include <com/sun/star/form/binding/BindableDataAwareControlModel.idl>
37#endif
38
39//=============================================================================
40
41module com {  module sun {  module star {  module form {  module binding {
42
43//=============================================================================
44
45/** This service specifies a radio button which is data-aware and thus can be bound to a
46    database field, and additionally supports binding to arbitrary external values.
47
48    <p>The <type scope="com::sun::star::form::binding">XValueBinding</type> instance which
49    can be associated with a <type>BindableDatabaseRadioButton</type> must support exchanging
50    boolean values. The following mapping between external values and control states apply:
51    <ul><li><TRUE/> will be mapped to the button being checked, and vice versa</li>
52        <li><FALSE/> will be mapped to it being unchecked, and vice versa</li>
53        <li><NULL/> will be mapped to it being in indetermined state</li>
54    </ul></p>
55
56    <p>If the value binding associated with a <type>BindableDatabaseRadioButton</type>
57    supports exchanging string values, <em>and</em> the <member scope="com::sun::star::form::component">RadioButton::RefValue</member>
58    is <em>not</em> empty, then the radio button will exchange it's value as string:
59    <ul><li>A string equal to the reference value will be mapped to the button being checked, and vice versa</li>
60        <li>A string not equal to the reference value will be mapped to the button being unchecked, and vice versa</li>
61        <li><NULL/> will be mapped to it being in indetermined state</li>
62    </ul></p>
63
64    @see com::sun::star::form::binding::XValueBinding::supportsType
65    @see com::sun::star::awt::UnoControlRadioButtonModel::State
66    @see com::sun::star::form::component::RadioButton::RefValue
67 */
68service BindableDatabaseRadioButton
69{
70	service com::sun::star::form::component::DatabaseRadioButton;
71
72    /** specifies the interaction between an internal binding to a database column,
73        and an external value binding.</p>
74    */
75    service com::sun::star::form::binding::BindableDataAwareControlModel;
76
77    /** specifies a value which is to be associated with the control when it's <em>not</em>
78        selected.
79
80        <p><member scope="com::sun::star::form::component">RadioButton::RefValue</member> is transferred to
81        possible external value bindings as soon as the radio button is selected. With the member
82        <member>SecondaryRefValue</member>, clients of the radio button can also associate a value with
83        the <em>not selected</em> state of the control.</p>
84    */
85    [property] string SecondaryRefValue;
86};
87
88//=============================================================================
89
90}; }; }; }; };
91
92#endif
93