summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/form/binding
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/form/binding')
-rw-r--r--offapi/com/sun/star/form/binding/BindableControlModel.idl92
-rw-r--r--offapi/com/sun/star/form/binding/BindableDataAwareControlModel.idl132
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseCheckBox.idl95
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseComboBox.idl73
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseDateField.idl70
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseFormattedField.idl69
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseListBox.idl81
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseNumericField.idl69
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseRadioButton.idl92
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseTextField.idl72
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseTimeField.idl70
-rw-r--r--offapi/com/sun/star/form/binding/BindableIntegerValueRange.idl75
-rw-r--r--offapi/com/sun/star/form/binding/IncompatibleTypesException.idl54
-rw-r--r--offapi/com/sun/star/form/binding/InvalidBindingStateException.idl54
-rw-r--r--offapi/com/sun/star/form/binding/ListEntryEvent.idl74
-rw-r--r--offapi/com/sun/star/form/binding/ListEntrySource.idl74
-rw-r--r--offapi/com/sun/star/form/binding/ValueBinding.idl124
-rw-r--r--offapi/com/sun/star/form/binding/XBindableValue.idl78
-rw-r--r--offapi/com/sun/star/form/binding/XListEntryListener.idl89
-rw-r--r--offapi/com/sun/star/form/binding/XListEntrySink.idl68
-rw-r--r--offapi/com/sun/star/form/binding/XListEntrySource.idl100
-rw-r--r--offapi/com/sun/star/form/binding/XValueBinding.idl104
-rw-r--r--offapi/com/sun/star/form/binding/makefile.mk69
23 files changed, 1878 insertions, 0 deletions
diff --git a/offapi/com/sun/star/form/binding/BindableControlModel.idl b/offapi/com/sun/star/form/binding/BindableControlModel.idl
new file mode 100644
index 000000000000..8b0d1058c77b
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/BindableControlModel.idl
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_BindableControlModel_idl__
+#define __com_sun_star_form_binding_BindableControlModel_idl__
+
+#ifndef __com_sun_star_form_binding_XBindableValue_idl__
+#include <com/sun/star/form/binding/XBindableValue.idl>
+#endif
+#ifndef __com_sun_star_form_FormControlModel_idl__
+#include <com/sun/star/form/FormControlModel.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+/** specifies the model of a form control which supports binding to an external
+ value supplier.
+*/
+service BindableControlModel
+{
+ /** specifies the basic functionality for a form control model
+
+ <p>Via this service, bindable control models inherit the
+ <type scope="com::sun::star::util">XCloneable</type> interface.<br/>
+ If an bindable control model, at which a binding has been established (via
+ <member>XBindableValue::setValueBinding</member>), is being cloned, then the
+ binding is also established at the clone. Effectively, this means that
+ both control model instances share the same binding instance.</p>
+ */
+ service com::sun::star::form::FormControlModel;
+
+ /** specifies support for being bound to an external value
+
+ <p>When a <type>BindableControlModel</type> is bound to an external value,
+ then every change in the control model's value is <em>immediately</em> reflected
+ in the external binding.</p>
+
+ <p>If the binding set via this interface supports the <member>ValueBinding::ReadOnly</member>
+ and <member>ValueBinding::Relevant</member> properties, they're respected by the control model:
+ <ul><li>The control model's own <code>ReadOnly</code> property (if present) is kept in sync with the
+ binding's <code>ReadOnly</code> property. That is, any control using the value
+ binding is read-only as long as the binding is.</li>
+ <li>The control model's own <code>Enabled</code> property (if present) is kept in sync
+ with the binding's <code>Relevant</code> property. That is, any control using
+ the value binding is disabled as long as the binding is not relevant.</li>
+ </ul>
+ </p>
+
+ <p>In both cases, explicit changes of the model's property are ignored if they would relax
+ the restriction imposed by the binding.<br/>
+ For instance, if the binding declares it's value to
+ be read-only (indicated by <member>ValueBinding::ReadOnly</member> being <TRUE/>), then
+ any attempt to set the <code>ReadOnly</code> property of the control model to <FALSE/> will
+ fail. However, if the binding's value is not read-only, then the <code>ReadOnly</code>
+ property at the control model can be freely set.<br/>
+ The very same holds for the binding's <member>ValueBinding::Relevant</member> and the control
+ model's <code>Enabled</code> properties.</p>
+ */
+ interface XBindableValue;
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/BindableDataAwareControlModel.idl b/offapi/com/sun/star/form/binding/BindableDataAwareControlModel.idl
new file mode 100644
index 000000000000..c16d53a9c304
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/BindableDataAwareControlModel.idl
@@ -0,0 +1,132 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
+#define __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
+
+#ifndef __com_sun_star_form_DataAwareControlModel_idl__
+#include <com/sun/star/form/DataAwareControlModel.idl>
+#endif
+
+#ifndef __com_sun_star_form_binding_BindableControlModel_idl__
+#include <com/sun/star/form/binding/BindableControlModel.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** is a specialization of the <type scope="com::sun::star::form">DataAwareControlModel</type>
+ which additionally supports binding to external value suppliers.
+
+ <p>Control models usually have some kind of value property, which reflects the very current
+ content of the controls associated with this model. For instance, for an
+ <type scope="com::sun::star::form::component">TextField</type>, this would be the
+ <member scope="com::sun::star::awt">UnoControlEditModel::Text</member> property of the base
+ service. Similarily, a <type scope="com::sun::star::form::component">CheckBox</type> has
+ a property <member scope="com::sun::star::awt">UnoControlCheckBoxModel::State</member>, which
+ reflects the current check state.</p>
+
+ <p>Usual <type scope="com::sun::star::form">DataAwareControlModel</type>s can be bound to
+ a column of a <type scope="com::sun::star::form::component">DataForm</type>, and exchange
+ their content with such a column.<br/>
+ In particular, when the <type scope="com::sun::star::form::component">DataForm</type>
+ is moved to a different record, then the bound control model is updated with the value of
+ it's column in this particular row.<br/>
+ On the other hand, when any change in the control model (e.g. resulting from a user entering
+ data in a control associated with the control model) is committed
+ (<member scope="com::sun::star::form">XBoundComponent::commit</member>), then the actual
+ data of the control model is written into the associated
+ <type scope="com::sun::star::form::component">DataForm</type> column.</p>
+
+ <p><type>BindableDataAwareControlModel</type>'s additionally support an alternative value
+ binding, which forces them to exchange their value with another foreign instance.
+ In some sense, they are an abstraction of the data aware control models, which only
+ support a specialized, hard-coded value binding (namely the binding to a
+ <type scope="com::sun::star::form::component">DataForm</type> column).</p>
+
+ <p>For this, they provide the <type>XBindableValue</type> interface which allows to
+ set an external component to exchange the value with.</p>
+
+ <p>The following rules apply when a data aware control model is bound to an external value binding:
+ <ul><li><b>Priority</b><br/>
+ External value bindings overrule any active SQL-column binding. If an external
+ component is bound to a control model which currently has an active SQL binding,
+ this SQL binding is suspended, until the external binding is revoked.
+ </li>
+ <li><b>Activation</b><br/>
+ An external value binding becomes effective as soon as it is set. This is a
+ difference to SQL bindings, which only are effective when the parent form
+ of the control model is loaded (<type scope="com::sun::star::form">XLoadable</type>).
+ </li>
+ <li><b>Immediacy</b><br/>
+ When a <type>BindableDataAwareControlModel</type> is bound to an external value,
+ then every change in the control model's value is <em>immediately</em> reflected
+ in the external binding. This is a difference to SQL bindings of most
+ <type scope="com::sun::star::form">DataAwareControlModel</type>'s, where changes
+ in the control model's value are only propagated to the bound column upon explicit
+ request via <member scope="com::sun::star::form">XBoundComponent::commit</member>.<br/>
+ Note that this restriction is inherited from the <type>BindableControlModel</type>.
+ </li>
+ <li><b>Cloning</b><br/>
+ <type scope="com::sun::star::form">FormControlModel</type>s support cloning themself
+ via the <type scope="com::sun::star::util">XCloneable</type> interface which they
+ inherit from the <type scope="com::sun::star::awt">UnoControlModel</type> service.</br>
+ When a <type>BindableDataAwareControlModel</type> is cloned while it has an active
+ external value binding, then the clone is also bound to the same binding instance.<br/>
+ Note that this restriction is inherited from the <type>BindableControlModel</type>.
+ </li>
+ </ul>
+ </p>
+
+ <p>When a <type>BindableDataAwareControlModel</type> is being bound to an external value,
+ using <member>XBindableValue::setValueBinding</member>,
+ then the control model (it's value property, respectively) and the external value are
+ initially synchronized by setting the external value (<member>XValueBinding::getValue</member>)
+ at the control model.</p>
+
+*/
+service BindableDataAwareControlModel
+{
+ /** specifies the functionality for binding the control model to a
+ column of an SQL <type scope="com::sun::star::form::component">DataForm</type>.
+ */
+ service com::sun::star::form::DataAwareControlModel;
+
+ /** specifies the functionality for <em>alternatively</em> binding the control model
+ to an external value.
+ */
+ service BindableControlModel;
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseCheckBox.idl b/offapi/com/sun/star/form/binding/BindableDatabaseCheckBox.idl
new file mode 100644
index 000000000000..868fc02c1705
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/BindableDatabaseCheckBox.idl
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_BindableDatabaseCheckBox_idl__
+#define __com_sun_star_form_binding_BindableDatabaseCheckBox_idl__
+
+#ifndef __com_sun_star_form_component_DatabaseCheckBox_idl__
+#include <com/sun/star/form/component/DatabaseCheckBox.idl>
+#endif
+
+#ifndef __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
+#include <com/sun/star/form/binding/BindableDataAwareControlModel.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** This service specifies a check box which is data-aware and thus can be bound to a
+ database field, and additionally supports binding to arbitrary external values.
+
+ <p>The <type scope="com::sun::star::form::binding">XValueBinding</type> instance which
+ can be associated with a <type>BindableDatabaseCheckBox</type> must support exchanging
+ boolean values. The following mapping between external values and control states apply:
+ <ul><li><TRUE/> will be mapped to the box being checked, and vice versa</li>
+ <li><FALSE/> will be mapped to it being unchecked, and vice versa</li>
+ <li><NULL/> will be mapped to it being in indetermined state, if the box currently supports
+ this, or being unchecked else. The indetermined of the check box will always be
+ mapped to <NULL/> when writing the external value.</li>
+ </ul></p>
+
+ <p>If the value binding associated with a <type>BindableDatabaseCheckBox</type>
+ supports exchanging string values, <em>and</em> the <member scope="com::sun::star::form::component">CheckBox::RefValue</member>
+ is <em>not</em> empty, then the radio button will exchange it's value as string:
+ <ul><li>A string equal to the reference value will be mapped to the button being checked, and vice versa</li>
+ <li>A string not equal to the reference value will be mapped to the button being unchecked, and vice versa</li>
+ <li><NULL/> will be mapped to it being in indetermined state</li>
+ </ul></p>
+
+ @see com::sun::star::form::binding::XValueBinding::supportsType
+ @see com::sun::star::awt::UnoControlCheckBoxModel::State
+ @see com::sun::star::awt::UnoControlCheckBoxModel::TriState
+ @see com::sun::star::form::component::CheckBox::RefValue
+ */
+service BindableDatabaseCheckBox
+{
+ service com::sun::star::form::component::DatabaseCheckBox;
+
+ /** specifies the interaction between an internal binding to a database column,
+ and an external value binding.</p>
+ */
+ service com::sun::star::form::binding::BindableDataAwareControlModel;
+
+ /** specifies a value which is to be associated with the control when it's <em>not</em>
+ checked.
+
+ <p><member scope="com::sun::star::form::component">CheckBox::RefValue</member> is transferred to
+ possible external value bindings as soon as the check box is checked. With the member
+ <member>SecondaryRefValue</member>, clients of the check box can also associate a value with
+ the <em>not checked</em> state of the control.</p>
+ */
+ [property] string SecondaryRefValue;
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseComboBox.idl b/offapi/com/sun/star/form/binding/BindableDatabaseComboBox.idl
new file mode 100644
index 000000000000..9c379190afcc
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/BindableDatabaseComboBox.idl
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_BindableDatabaseComboBox_idl__
+#define __com_sun_star_form_binding_BindableDatabaseComboBox_idl__
+
+#ifndef __com_sun_star_form_component_DatabaseComboBox_idl__
+#include <com/sun/star/form/component/DatabaseComboBox.idl>
+#endif
+
+#ifndef __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
+#include <com/sun/star/form/binding/BindableDataAwareControlModel.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** This service specifies a model of a combo box (a list box combined with a text
+ input field) which is data-aware and thus can be bound to a database field,
+ and additionally supports binding to arbitrary external values.
+
+ <p>If an <type scope="com::sun::star::form::binding">ValueBinding</type> instance is
+ set at the field, it will exchange it's text with the binding as <em>string</em>, thus only
+ bindings supporting string exchange will be accepted in
+ <member scope="com::sun::star::form::binding">XValueBinding::setValueBinding</member>.
+ </p>
+
+ @see com::sun::star::form::binding::XValueBinding::supportsType
+ @see com::sun::star::awt::UnoControlComboBoxModel::Text
+ */
+service BindableDatabaseComboBox
+{
+ service com::sun::star::form::component::DatabaseComboBox;
+
+ /** specifies the interaction between an internal binding to a database column,
+ and an external value binding.</p>
+ */
+ service com::sun::star::form::binding::BindableDataAwareControlModel;
+
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseDateField.idl b/offapi/com/sun/star/form/binding/BindableDatabaseDateField.idl
new file mode 100644
index 000000000000..2df7988e5d40
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/BindableDatabaseDateField.idl
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_BindableDatabaseDateField_idl__
+#define __com_sun_star_form_binding_BindableDatabaseDateField_idl__
+
+#ifndef __com_sun_star_form_component_DatabaseDateField_idl__
+#include <com/sun/star/form/component/DatabaseDateField.idl>
+#endif
+
+#ifndef __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
+#include <com/sun/star/form/binding/BindableDataAwareControlModel.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** This service specifies a date input field which is data-aware and thus can be bound to a
+ database field, and additionally supports binding to arbitrary external values.
+
+ <p>If an <type scope="com::sun::star::form::binding">ValueBinding</type> instance is
+ set at the field, it will exchange it's content with the binding as <type scope="com::sun::star::util">Date</type>.
+ </p>
+
+ @see com::sun::star::form::binding::XValueBinding::supportsType
+ @see com::sun::star::awt::UnoControlDateFieldModel::Date
+ */
+service BindableDatabaseDateField
+{
+ service com::sun::star::form::component::DatabaseDateField;
+
+ /** specifies the interaction between an internal binding to a database column,
+ and an external value binding.</p>
+ */
+ service com::sun::star::form::binding::BindableDataAwareControlModel;
+
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseFormattedField.idl b/offapi/com/sun/star/form/binding/BindableDatabaseFormattedField.idl
new file mode 100644
index 000000000000..c6f433339295
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/BindableDatabaseFormattedField.idl
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_BindableDatabaseFormattedField_idl__
+#define __com_sun_star_form_binding_BindableDatabaseFormattedField_idl__
+
+#ifndef __com_sun_star_form_component_DatabaseFormattedField_idl__
+#include <com/sun/star/form/component/DatabaseFormattedField.idl>
+#endif
+
+#ifndef __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
+#include <com/sun/star/form/binding/BindableDataAwareControlModel.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** This service specifies a formatted input field which is data-aware and thus can be bound to a
+ database field, and additionally supports binding to arbitrary external values.
+
+ <p>The <type scope="com::sun::star::form::binding">XValueBinding</type> instance which
+ can be associated with a <type>BindableDatabaseFormattedField</type> must support exchanging
+ values of type <em>double</em>.</p>
+
+ @see com::sun::star::form::binding::XValueBinding::supportsType
+ */
+service BindableDatabaseFormattedField
+{
+ service com::sun::star::form::component::DatabaseFormattedField;
+
+ /** specifies the interaction between an internal binding to a database column,
+ and an external value binding.</p>
+ */
+ service com::sun::star::form::binding::BindableDataAwareControlModel;
+
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseListBox.idl b/offapi/com/sun/star/form/binding/BindableDatabaseListBox.idl
new file mode 100644
index 000000000000..d07665579638
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/BindableDatabaseListBox.idl
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_BindableDatabaseListBox_idl__
+#define __com_sun_star_form_binding_BindableDatabaseListBox_idl__
+
+#ifndef __com_sun_star_form_component_DatabaseListBox_idl__
+#include <com/sun/star/form/component/DatabaseListBox.idl>
+#endif
+
+#ifndef __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
+#include <com/sun/star/form/binding/BindableDataAwareControlModel.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** This service specifies a list box model which is data-aware and thus can be bound to a
+ database field, and additionally supports binding to arbitrary external values.
+
+ <p>There are four possible ways how a <type>BindableDatabaseListBox</type> exchanges
+ values with an external binding, the following lists explains all of them. If a new binding
+ is set at a <type>BindableDatabaseListBox</type>, the types from the following list are
+ tried in descending order: The first type supported by the binding is used for data exchange.
+ <ol><li><em>sequences of integers</em>: When used, the integers in the sequence will represent
+ the indexes of the selected entries of the list box.</li>
+ <li><em>integer values</em>: When used, the value will represent the index of the selected entry.
+ If no entry is selected, -1 will be transfered. If more than one entry is selected, <NULL/>
+ will be transfered.</li>
+ <li><em>sequences of strings</em>: When used, the strings in the sequence present the texts
+ of the selected entries of the list box.</li>
+ <li><em>string values</em>: When used. the value will represent the text of the selected entry.
+ If no entry is selected, an empty string will be transfered. If more than one entry is selected,
+ <NULL/> will be transfered.</li>
+ </ol></p>
+
+ @see com::sun::star::form::binding::XValueBinding::supportsType
+ */
+service BindableDatabaseListBox
+{
+ service com::sun::star::form::component::DatabaseListBox;
+
+ /** specifies the interaction between an internal binding to a database column,
+ and an external value binding.</p>
+ */
+ service com::sun::star::form::binding::BindableDataAwareControlModel;
+
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseNumericField.idl b/offapi/com/sun/star/form/binding/BindableDatabaseNumericField.idl
new file mode 100644
index 000000000000..c34acbe14ce1
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/BindableDatabaseNumericField.idl
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_BindableDatabaseNumericField_idl__
+#define __com_sun_star_form_binding_BindableDatabaseNumericField_idl__
+
+#ifndef __com_sun_star_form_component_DatabaseNumericField_idl__
+#include <com/sun/star/form/component/DatabaseNumericField.idl>
+#endif
+
+#ifndef __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
+#include <com/sun/star/form/binding/BindableDataAwareControlModel.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** This service specifies a numeric input field which is data-aware and thus can be bound to a
+ database field, and additionally supports binding to arbitrary external values.
+
+ <p>The <type scope="com::sun::star::form::binding">XValueBinding</type> instance which
+ can be associated with a <type>BindableDatabaseNumericField</type> must support exchanging
+ values of type <em>double</em>.</p>
+
+ @see com::sun::star::form::binding::XValueBinding::supportsType
+ */
+service BindableDatabaseNumericField
+{
+ service com::sun::star::form::component::DatabaseNumericField;
+
+ /** specifies the interaction between an internal binding to a database column,
+ and an external value binding.</p>
+ */
+ service com::sun::star::form::binding::BindableDataAwareControlModel;
+
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseRadioButton.idl b/offapi/com/sun/star/form/binding/BindableDatabaseRadioButton.idl
new file mode 100644
index 000000000000..d2779ba1ea8d
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/BindableDatabaseRadioButton.idl
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_BindableDatabaseRadioButton_idl__
+#define __com_sun_star_form_binding_BindableDatabaseRadioButton_idl__
+
+#ifndef __com_sun_star_form_component_DatabaseRadioButton_idl__
+#include <com/sun/star/form/component/DatabaseRadioButton.idl>
+#endif
+
+#ifndef __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
+#include <com/sun/star/form/binding/BindableDataAwareControlModel.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** This service specifies a radio button which is data-aware and thus can be bound to a
+ database field, and additionally supports binding to arbitrary external values.
+
+ <p>The <type scope="com::sun::star::form::binding">XValueBinding</type> instance which
+ can be associated with a <type>BindableDatabaseRadioButton</type> must support exchanging
+ boolean values. The following mapping between external values and control states apply:
+ <ul><li><TRUE/> will be mapped to the button being checked, and vice versa</li>
+ <li><FALSE/> will be mapped to it being unchecked, and vice versa</li>
+ <li><NULL/> will be mapped to it being in indetermined state</li>
+ </ul></p>
+
+ <p>If the value binding associated with a <type>BindableDatabaseRadioButton</type>
+ supports exchanging string values, <em>and</em> the <member scope="com::sun::star::form::component">RadioButton::RefValue</member>
+ is <em>not</em> empty, then the radio button will exchange it's value as string:
+ <ul><li>A string equal to the reference value will be mapped to the button being checked, and vice versa</li>
+ <li>A string not equal to the reference value will be mapped to the button being unchecked, and vice versa</li>
+ <li><NULL/> will be mapped to it being in indetermined state</li>
+ </ul></p>
+
+ @see com::sun::star::form::binding::XValueBinding::supportsType
+ @see com::sun::star::awt::UnoControlRadioButtonModel::State
+ @see com::sun::star::form::component::RadioButton::RefValue
+ */
+service BindableDatabaseRadioButton
+{
+ service com::sun::star::form::component::DatabaseRadioButton;
+
+ /** specifies the interaction between an internal binding to a database column,
+ and an external value binding.</p>
+ */
+ service com::sun::star::form::binding::BindableDataAwareControlModel;
+
+ /** specifies a value which is to be associated with the control when it's <em>not</em>
+ selected.
+
+ <p><member scope="com::sun::star::form::component">RadioButton::RefValue</member> is transferred to
+ possible external value bindings as soon as the radio button is selected. With the member
+ <member>SecondaryRefValue</member>, clients of the radio button can also associate a value with
+ the <em>not selected</em> state of the control.</p>
+ */
+ [property] string SecondaryRefValue;
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseTextField.idl b/offapi/com/sun/star/form/binding/BindableDatabaseTextField.idl
new file mode 100644
index 000000000000..81906b7759a5
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/BindableDatabaseTextField.idl
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_BindableDatabaseTextField_idl__
+#define __com_sun_star_form_binding_BindableDatabaseTextField_idl__
+
+#ifndef __com_sun_star_form_component_DatabaseTextField_idl__
+#include <com/sun/star/form/component/DatabaseTextField.idl>
+#endif
+
+#ifndef __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
+#include <com/sun/star/form/binding/BindableDataAwareControlModel.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** This service specifies a text input field which is data-aware and thus can be bound to a
+ database field, and additionally supports binding to arbitrary external values.
+
+ <p>If an <type scope="com::sun::star::form::binding">ValueBinding</type> instance is
+ set at the field, it will exchange it's text with the binding as <em>string</em>, thus only
+ bindings supporting string exchange will be accepted in
+ <member scope="com::sun::star::form::binding">XValueBinding::setValueBinding</member>.
+ </p>
+
+ @see com::sun::star::form::binding::XValueBinding::supportsType
+ @see com::sun::star::awt::UnoControlEditModel::Text
+ */
+service BindableDatabaseTextField
+{
+ service com::sun::star::form::component::DatabaseTextField;
+
+ /** specifies the interaction between an internal binding to a database column,
+ and an external value binding.</p>
+ */
+ service com::sun::star::form::binding::BindableDataAwareControlModel;
+
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseTimeField.idl b/offapi/com/sun/star/form/binding/BindableDatabaseTimeField.idl
new file mode 100644
index 000000000000..fafa1a06a507
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/BindableDatabaseTimeField.idl
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_BindableDatabaseTimeField_idl__
+#define __com_sun_star_form_binding_BindableDatabaseTimeField_idl__
+
+#ifndef __com_sun_star_form_component_DatabaseTimeField_idl__
+#include <com/sun/star/form/component/DatabaseTimeField.idl>
+#endif
+
+#ifndef __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
+#include <com/sun/star/form/binding/BindableDataAwareControlModel.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** This service specifies a date input field which is data-aware and thus can be bound to a
+ database field, and additionally supports binding to arbitrary external values.
+
+ <p>If an <type scope="com::sun::star::form::binding">ValueBinding</type> instance is
+ set at the field, it will exchange it's content with the binding as <type scope="com::sun::star::util">Time</type>.
+ </p>
+
+ @see com::sun::star::form::binding::XValueBinding::supportsType
+ @see com::sun::star::awt::UnoControlTimeFieldModel::Time
+ */
+service BindableDatabaseTimeField
+{
+ service com::sun::star::form::component::DatabaseTimeField;
+
+ /** specifies the interaction between an internal binding to a database column,
+ and an external value binding.</p>
+ */
+ service com::sun::star::form::binding::BindableDataAwareControlModel;
+
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/BindableIntegerValueRange.idl b/offapi/com/sun/star/form/binding/BindableIntegerValueRange.idl
new file mode 100644
index 000000000000..478c6875f717
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/BindableIntegerValueRange.idl
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_BindableIntegerValueRange_idl__
+#define __com_sun_star_form_binding_BindableIntegerValueRange_idl__
+
+#ifndef __com_sun_star_form_binding_BindableControlModel_idl__
+#include <com/sun/star/form/binding/BindableControlModel.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** this service specifies a <type>BindableControlModel</type> which reflects
+ an integer value, out of a range of permitted integer values.
+
+ <p><type>BindableIntegerValueRange</type>s have a value property, a minimum, and a maximum,
+ all of type integer.</p>
+*/
+service BindableIntegerValueRange
+{
+ /** specifies that the control can be bound to external values
+
+ <p>Any binding used with the control model (see <member>XBindableValue::setValueBinding</member>)
+ must support exchanging double values.</p>
+
+ <p>When the (integer) value reflected by the control model is changed, it's converted
+ into an double value and propagated to the binding.</p>
+
+ <p>When the external (double) value changes, it's converted as follows to an integer
+ value:
+ <ul><li>If the external value is <NULL/>, the current value of the control model
+ will be set to it's minimum.</li>
+ <li>If the external value is the <em>infinite</em> value, the control value will
+ be set to its maximum or minimum, depending on the sign of the external value.</li>
+ <li>If none of the aforementioned conditions is met, the external value will be simply
+ rounded.</li>
+ </ul>
+ */
+ service com::sun::star::form::binding::BindableControlModel;
+
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/IncompatibleTypesException.idl b/offapi/com/sun/star/form/binding/IncompatibleTypesException.idl
new file mode 100644
index 000000000000..4f0b6551e973
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/IncompatibleTypesException.idl
@@ -0,0 +1,54 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_form_binding_IncompatibleTypesException_idl__
+#define __com_sun_star_form_binding_IncompatibleTypesException_idl__
+
+#ifndef __com_sun_star_uno_Exception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** thrown to indicate that the types of an <type>XValueBinding</type> and
+ an <type>XBindableValue</type> are incompatible
+*/
+exception IncompatibleTypesException: com::sun::star::uno::Exception
+{
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+//=============================================================================
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/InvalidBindingStateException.idl b/offapi/com/sun/star/form/binding/InvalidBindingStateException.idl
new file mode 100644
index 000000000000..d25f6159e88b
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/InvalidBindingStateException.idl
@@ -0,0 +1,54 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_form_binding_InvalidBindingStateException_idl__
+#define __com_sun_star_form_binding_InvalidBindingStateException_idl__
+
+#ifndef __com_sun_star_uno_Exception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** thrown when an <type>XValueBinding</type> cannot perform a requested
+ operation due to an invalid state.
+*/
+exception InvalidBindingStateException: com::sun::star::uno::Exception
+{
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+//=============================================================================
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/ListEntryEvent.idl b/offapi/com/sun/star/form/binding/ListEntryEvent.idl
new file mode 100644
index 000000000000..046888d7b8cc
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/ListEntryEvent.idl
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_ListEntryEvent_idl__
+#define __com_sun_star_form_binding_ListEntryEvent_idl__
+
+#ifndef __com_sun_star_lang_EventObject_idl__
+#include <com/sun/star/lang/EventObject.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** specifies the event which is notified when a change in a string entry
+ list occured
+
+ @see XListEntrySource
+ @see XListEntryListener
+*/
+struct ListEntryEvent : com::sun::star::lang::EventObject
+{
+ /** denotes the position where a change occured.
+
+ <p>The concrete semantics of the value depends on the concrete
+ event being notified.</p>
+ */
+ long Position;
+
+ /** denotes the number of changed entries, in case a change of
+ an entry <em>range</em> is being notified.
+ */
+ long Count;
+
+ /** denotes the changed entries
+
+ <p>The concrete semantics of the value depends on the concrete
+ event being notified.</p>
+ */
+ sequence< string >
+ Entries;
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/ListEntrySource.idl b/offapi/com/sun/star/form/binding/ListEntrySource.idl
new file mode 100644
index 000000000000..15ea1f3bcf27
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/ListEntrySource.idl
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_ListEntrySource_idl__
+#define __com_sun_star_form_binding_ListEntrySource_idl__
+
+#ifndef __com_sun_star_form_binding_XListEntrySource_idl__
+#include <com/sun/star/form/binding/XListEntrySource.idl>
+#endif
+#ifndef __com_sun_star_lang_XComponent_idl__
+#include <com/sun/star/lang/XComponent.idl>
+#endif
+#ifndef __com_sun_star_util_XModifyBroadcaster_idl__
+#include <com/sun/star/util/XModifyBroadcaster.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** defines a component which provides a list of string entries
+*/
+service ListEntrySource
+{
+ //-------------------------------------------------------------------------
+ /** allows read access to the entries represented by this component
+ */
+ interface XListEntrySource;
+
+ /** allows life time control for the component
+
+ <p>An <type>ListEntrySource</type> will be known to one ore more components
+ supporting the <type>XListEntrySink</type> interface, which all work with
+ this source. However, they will not <em>own</em> the <type>ListEntrySource</type>.
+ The ownership is with another instance, which may also decide to obsolete
+ the <type>ListEntrySource</type> for whatever reasons (e.g. because the data model
+ which the binding reflected died). For this reason, a <type>ListEntrySource</type>
+ must offer a possibility to be obsoleted by it's owner, and to notify this
+ obsoletion to other interested parties, such as <type>XListEntrySink</type>s.</p>
+ */
+ interface com::sun::star::lang::XComponent;
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/ValueBinding.idl b/offapi/com/sun/star/form/binding/ValueBinding.idl
new file mode 100644
index 000000000000..f7c99e8ca6af
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/ValueBinding.idl
@@ -0,0 +1,124 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_ValueBinding_idl__
+#define __com_sun_star_form_binding_ValueBinding_idl__
+
+#ifndef __com_sun_star_util_XValueBinding_idl__
+#include <com/sun/star/form/binding/XValueBinding.idl>
+#endif
+#ifndef __com_sun_star_beans_XPropertySet_idl__
+#include <com/sun/star/beans/XPropertySet.idl>
+#endif
+#ifndef __com_sun_star_lang_XComponent_idl__
+#include <com/sun/star/lang/XComponent.idl>
+#endif
+#ifndef __com_sun_star_util_XModifyBroadcaster_idl__
+#include <com/sun/star/util/XModifyBroadcaster.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** defines a component which allows access to a single value
+
+ <p>Read/Write access to the value represented by this component is supported,
+ as well as (optionally) active broadcasting of value changes</p>
+*/
+service ValueBinding
+{
+ /** determines whether the value is currently readonly
+
+ <p>For instance, you could imagine a <type>ValueBinding</type> which
+ represents a cell in a spreadsheet document, and whose value is readonly
+ as long as the spreadsheet is locked.</p>
+
+ <p>As long as this property is <TRUE/>, the value binding should throw
+ a <type>InvalidBindingStateException</type> when its
+ <member>XValueBinding::setValue</member> method is invoked.</p>
+ */
+ [optional, property, bound, readonly] boolean ReadOnly;
+
+ /** determines the relevance of the value represented by the binding
+
+ <p>In a more complex scenario, where different form controls are bound to different
+ values, which all are part of a larger data structure, some of the items in this
+ data structure may not be relevant currently. This is indicated by the
+ <member>Relevant</member> property being <FALSE/>.</p>
+
+ <p><type>XBindableValue</type>s which are bound to this binding may or may not
+ react in certain ways on the (ir)relevance of their bound value.</p>
+
+ <p>One possible reaction could be that user interface elements which are associated
+ with the <type>XBindableValue</type> are disabled as long as <member>Relevant</member>
+ is <FALSE/>.</p>
+ */
+ [optional, property, bound, readonly] boolean Relevant;
+
+ //-------------------------------------------------------------------------
+ /** allows access to the properties of the binding
+ */
+ [optional] interface com::sun::star::beans::XPropertySet;
+
+ //-------------------------------------------------------------------------
+ /** allows read and write access to the value represented by this binding
+ */
+ interface XValueBinding;
+
+ /** allows other components to be notified when the value represented
+ by the <type>ValueBinding</type> instance changes.
+
+ <p>This interface is optional, since a binding may not support
+ actively notifying changes in it's value. Note, however, that in case
+ this interface is not supported, the bound component cannot react
+ on value changes, and will thus override any values which are
+ set by an instance other than itself.</p>
+ */
+ [optional] interface com::sun::star::util::XModifyBroadcaster;
+
+ /** allows life time control for the component
+
+ <p>An <type>ValueBinding</type> may be known to one ore more components
+ supporting the <type>XBindableValue</type> interface, which all work with
+ this binding. However, they will not <em>own</em> the <type>ValueBinding</type>.
+ The ownership is with another instance, which may also decide to obsolete
+ the <type>ValueBinding</type> for whatever reasons (e.g. because the data model
+ which the binding reflected died). For this reason, a <type>ValueBinding</type>
+ must offer a possibility to be obsoleted by it's owner, and to notify this
+ obsoletion to other interested parties, such as <type>XBindableValue</type>s.</p>
+ */
+ interface com::sun::star::lang::XComponent;
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/XBindableValue.idl b/offapi/com/sun/star/form/binding/XBindableValue.idl
new file mode 100644
index 000000000000..2d8413029323
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/XBindableValue.idl
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_XBindableValue_idl__
+#define __com_sun_star_form_binding_XBindableValue_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+#ifndef __com_sun_star_form_binding_IncompatibleTypesException_idl__
+#include <com/sun/star/form/binding/IncompatibleTypesException.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+interface XValueBinding;
+
+//=============================================================================
+
+/** specifies support for being bound to an external value
+
+ @see XValueBinding
+*/
+interface XBindableValue : com::sun::star::uno::XInterface
+{
+ /** sets an external instance which controls the value of the component
+
+ <p>Any previously active binding will be revoked. There can be only one!</p>
+
+ @param aBinding
+ the new binding which is to be used by the component. May be <NULL/>,
+ in this case only the current binding is revoked.
+
+ @throws <type>IncompatibleTypesException</type>
+ if the new binding (provided it's not <NULL/>) supports only types
+ which are incompatible with the types of the bindable component.
+ */
+ void setValueBinding( [in] XValueBinding aBinding )
+ raises ( IncompatibleTypesException );
+
+ /** retrieves the external instance which currently controls the value of the
+ component
+ */
+ XValueBinding
+ getValueBinding( );
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/XListEntryListener.idl b/offapi/com/sun/star/form/binding/XListEntryListener.idl
new file mode 100644
index 000000000000..b48ec45198fc
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/XListEntryListener.idl
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_XListEntryListener_idl__
+#define __com_sun_star_form_binding_XListEntryListener_idl__
+
+#ifndef __com_sun_star_lang_XEventListener_idl__
+#include <com/sun/star/lang/XEventListener.idl>
+#endif
+#ifndef __com_sun_star_form_binding_ListEntryEvent_idl__
+#include <com/sun/star/form/binding/ListEntryEvent.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** specifies a listener for changes in a string entry list
+*/
+interface XListEntryListener : com::sun::star::lang::XEventListener
+{
+ /** notifies the listener that a single entry in the list has change
+
+ @param Source
+ is the event describing the change. The <member>ListEntryEvent::Position</member>
+ member denotes the position of the changed entry, the first (and only) element
+ of the <member>ListEntryEvent::Entries</member> member denotes the new string
+ */
+ void entryChanged( [in] ListEntryEvent Source );
+
+ /** notifies the listener that a range of entries has been inserted into the list
+
+ @param Source
+ is the event describing the change. The <member>ListEntryEvent::Position</member>
+ member denotes the position of the first inserted entry, the
+ <member>ListEntryEvent::Entries</member> member contains the strings which have
+ been inserted.
+ */
+ void entryRangeInserted( [in] ListEntryEvent Source );
+
+ /** notifies the listener that a range of entries has been removed from the list
+
+ @param Source
+ is the event describing the change. The <member>ListEntryEvent::Position</member>
+ member denotes the position of the first removed entry, the
+ <member>ListEntryEvent::Count</member> member the number of removed entries.
+ */
+ void entryRangeRemoved( [in] ListEntryEvent Source );
+
+ /** notifies the listener that all entries of the list have changed.
+
+ <p>The listener should retrieve the complete new list by calling the
+ <member>XListEntrySource::getAllListEntries</member> method of the event source
+ (which is denoted by <member scope="com::sun::star::lang">EventObject::Source</member>).
+ */
+ void allEntriesChanged( [in] com::sun::star::lang::EventObject Source );
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/XListEntrySink.idl b/offapi/com/sun/star/form/binding/XListEntrySink.idl
new file mode 100644
index 000000000000..0f2e84a8011d
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/XListEntrySink.idl
@@ -0,0 +1,68 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_XListEntrySink_idl__
+#define __com_sun_star_form_binding_XListEntrySink_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+interface XListEntrySource;
+
+//=============================================================================
+
+/** specifies support for indirect manipulation of of a string list
+*/
+interface XListEntrySink : com::sun::star::uno::XInterface
+{
+ /** sets the new source for the list entries of the component
+
+ <p>The list represented by this component will be cleared, and initially
+ filled with the entries from the new list source.</p>
+
+ @param Source
+ the new source for the list entries. May be <NULL/>, in this
+ case, the current source is revoked.
+ */
+ void setListEntrySource( [in] XListEntrySource Source );
+
+ /** retrieves the current source for the list entries of the component.
+ */
+ XListEntrySource
+ getListEntrySource( );
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/XListEntrySource.idl b/offapi/com/sun/star/form/binding/XListEntrySource.idl
new file mode 100644
index 000000000000..4d6390b41ece
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/XListEntrySource.idl
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_XListEntrySource_idl__
+#define __com_sun_star_form_binding_XListEntrySource_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+#ifndef __com_sun_star_lang_NullPointerException_idl__
+#include <com/sun/star/lang/NullPointerException.idl>
+#endif
+#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+interface XListEntryListener;
+
+//=============================================================================
+
+/** specifies a source of string list entries
+
+ <p>The interface supports foreign components which actively retrieve list entries,
+ as well as components which want to passively being notified of changes in the list.</p>
+
+ @see XListEntrySink
+*/
+interface XListEntrySource : com::sun::star::uno::XInterface
+{
+ /** retrieves the number of entries in the list
+ */
+ long getListEntryCount( );
+
+ /** provides access to a single list entry
+
+ @throws <type scope="com::sun::star::lang">IndexOutOfBoundsException</type>
+ if the given position does not denote a valid index in the list
+
+ @see getListEntryCount
+ */
+ string getListEntry( [in] long Position )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** provides access to the entirety of all list entries
+ */
+ sequence< string >
+ getAllListEntries( );
+
+ /** adds a listener which will be notified about changes in the list
+ reflected by the component.
+
+ @throws <type scope="com::sun::star::lang">NullPointerException</type>
+ if the given listener is <NULL/>
+ */
+ void addListEntryListener( [in] XListEntryListener Listener )
+ raises( com::sun::star::lang::NullPointerException );
+
+ /** revokes the given listener from the list of components which will
+ be notfiied about changes in the entry list.
+
+ @throws <type scope="com::sun::star::lang">NullPointerException</type>
+ if the given listener is <NULL/>
+ */
+ void removeListEntryListener( [in] XListEntryListener Listener )
+ raises( com::sun::star::lang::NullPointerException );
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/XValueBinding.idl b/offapi/com/sun/star/form/binding/XValueBinding.idl
new file mode 100644
index 000000000000..207b3ec7e7ad
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/XValueBinding.idl
@@ -0,0 +1,104 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_form_binding_XValueBinding_idl__
+#define __com_sun_star_form_binding_XValueBinding_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+#ifndef __com_sun_star_lang_NoSupportException_idl__
+#include <com/sun/star/lang/NoSupportException.idl>
+#endif
+#ifndef __com_sun_star_form_binding_IncompatibleTypesException_idl__
+#include <com/sun/star/form/binding/IncompatibleTypesException.idl>
+#endif
+#ifndef __com_sun_star_form_binding_InvalidBindingStateException_idl__
+#include <com/sun/star/form/binding/InvalidBindingStateException.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module form { module binding {
+
+//=============================================================================
+
+/** specifies a binding to a value which can be read and written.
+*/
+interface XValueBinding : com::sun::star::uno::XInterface
+{
+ //-------------------------------------------------------------------------
+ /** determines the types which are supported by this binding for value exchange
+
+ @see supportsType
+ */
+ sequence< type >
+ getSupportedValueTypes( );
+
+ /** determines whether a given type is supported by this binding for value exchange
+
+ <p>Calling this method is equal to calling <member>getSupportedValueTypes</member>,
+ and looking up the given type in the resulting type sequence.</p>
+
+ @see getSupportedValueTypes
+ */
+ boolean supportsType( [in] type aType );
+
+ /** retrieves the current value
+
+ @throws <type>IncompatibleTypesException</type>
+ if the requested value type is not supported by the binding
+ @see getSupportedValueTypes
+ @see supportsType
+ */
+ any getValue( [in] type aType )
+ raises( IncompatibleTypesException );
+
+ /** sets the current value
+
+ @throws <type>IncompatibleTypesException</type>
+ if the given value type is not supported by the binding
+ @throws <type>InvalidBindingStateException</type>
+ if the value currently cannot be changed, since the binding is not
+ fully operational. Possible reasons for this include the binding being
+ readonly, or the target of the binding not being present.
+ @throws <type scope="com::sun::star::lang">NoSupportException</type>
+ if the binding in general does not support write access to it's binding
+
+ @see getSupportedValueTypes
+ @see supportsType
+ @see ValueBinding
+ */
+ void setValue( [in] any aValue )
+ raises( IncompatibleTypesException, InvalidBindingStateException, com::sun::star::lang::NoSupportException );
+};
+
+//=============================================================================
+
+}; }; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/form/binding/makefile.mk b/offapi/com/sun/star/form/binding/makefile.mk
new file mode 100644
index 000000000000..dc9885f5fd55
--- /dev/null
+++ b/offapi/com/sun/star/form/binding/makefile.mk
@@ -0,0 +1,69 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..$/..$/..
+
+PRJNAME=offapi
+
+TARGET=cssfbinding
+PACKAGE=com$/sun$/star$/form$/binding
+
+# --- Settings -----------------------------------------------------
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# ------------------------------------------------------------------------
+
+IDLFILES=\
+ XBindableValue.idl \
+ XValueBinding.idl \
+ ValueBinding.idl \
+ XListEntrySink.idl \
+ XListEntrySource.idl \
+ XListEntryListener.idl \
+ ListEntryEvent.idl \
+ ListEntrySource.idl \
+ \
+ BindableControlModel.idl \
+ BindableIntegerValueRange.idl \
+ BindableDataAwareControlModel.idl \
+ BindableDatabaseCheckBox.idl \
+ BindableDatabaseComboBox.idl \
+ BindableDatabaseDateField.idl \
+ BindableDatabaseFormattedField.idl \
+ BindableDatabaseListBox.idl \
+ BindableDatabaseNumericField.idl \
+ BindableDatabaseRadioButton.idl \
+ BindableDatabaseTextField.idl \
+ BindableDatabaseTimeField.idl \
+ \
+ IncompatibleTypesException.idl \
+ InvalidBindingStateException.idl \
+
+# ------------------------------------------------------------------
+
+.INCLUDE : target.mk
+.INCLUDE : $(PRJ)$/util$/target.pmk