diff options
Diffstat (limited to 'offapi/com/sun/star/form/binding')
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 |