diff options
Diffstat (limited to 'offapi/com/sun/star/form/component/DatabaseImageControl.idl')
-rw-r--r-- | offapi/com/sun/star/form/component/DatabaseImageControl.idl | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/offapi/com/sun/star/form/component/DatabaseImageControl.idl b/offapi/com/sun/star/form/component/DatabaseImageControl.idl new file mode 100644 index 000000000000..f3c5e4cca079 --- /dev/null +++ b/offapi/com/sun/star/form/component/DatabaseImageControl.idl @@ -0,0 +1,122 @@ +/************************************************************************* + * + * 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_component_DatabaseImageControl_idl__ +#define __com_sun_star_form_component_DatabaseImageControl_idl__ + +#ifndef __com_sun_star_awt_UnoControlImageControlModel_idl__ +#include <com/sun/star/awt/UnoControlImageControlModel.idl> +#endif + +#ifndef __com_sun_star_form_DataAwareControlModel_idl__ +#include <com/sun/star/form/DataAwareControlModel.idl> +#endif + +#ifndef __com_sun_star_form_XImageProducerSupplier_idl__ +#include <com/sun/star/form/XImageProducerSupplier.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module form { module component { + +//============================================================================= + +/** specifies the model of a control used for displaying images stored in a database. + + <p>As every <type scope="com::sun::star::form">DataAwareControlModel</type>, an image control + can be bound to a database field. This means that for instance with every record change, the content + of the database field is taken, interpreted as image, and displayed in the control.<br/> + Unlike other more text-based controls, it does not interpret the content of the field as text or double, + but as binary stream (see <member scope="com::sun::star::sdb">XColumn::getBinaryStream</member>).</p> + + <p>Usually, an image control model can be bound to binary columns only, namely + <member scope="com::sun::star::sdbc">DataType::BINARY</member>, + <member scope="com::sun::star::sdbc">DataType::VARBINARY</member>, + <member scope="com::sun::star::sdbc">DataType::LONGVARBINARY</member>, + <member scope="com::sun::star::sdbc">DataType::OTHER</member>, + <member scope="com::sun::star::sdbc">DataType::LONGVARCHAR</member></p> + + <p/> + + <p>Note that besides taking the image to be displayed from the bound field, there is another option. The + <member scope="com::sun::star::awt">UnoControlImageControlModel::ImageURL</member> property specifies + the URL of an image to be displayed. If this property is changed from outside, the respective file + is loaded and set as image source.</p> + + <p>In a usual data form, the scenario will be as follows: + <ul><li>There is a DatabaseImageControl as part of the document model, which acts as + control model for an <type scope="com::sun::star::form::control">ImageControl</type>.</li> + + <li>The control is an <type scope="com::sun::star::awt">XImageConsumer</type> for the + <type scope="com::sun::star::awt">XImageProducer</type> supplied by the model.</li> + + <li>Whenever the form's cursor is positioned on a new record, the column the control + model is bound to is examined for a binary data stream. This stream is set as source + at the image producer, which notifies it's consumers, which leads to the control + displaying the image.</li> + + <li>When the user by some interaction tells the control to contain a new image, this is + exchanged by URL. For example, implementations of the control service may allow the user + to browse for image. After this, the URL of the image is set as + <member scope="com::sun::star::awt">UnoControlImageControlModel::ImageURL</member> + property at the model.<br/> + Now the control loads the image determined by the property value, and starts producing + a new data stream, which is displayed by the control (which is a consumer for this stream).<br/> + From now on, the control and thus the database record counts as modified. If the cursor of the + form is moved further, the modified record is saved, means the content of the image pointed to + by <member scope="com::sun::star::awt">UnoControlImageControlModel::ImageURL</member> + is saved into the column.</li> + </ul> + </p> + */ +published service DatabaseImageControl +{ + service com::sun::star::awt::UnoControlImageControlModel; + + service com::sun::star::form::DataAwareControlModel; + + /** supplies the caller with an <type scope="com::sun::star::awt">XImageProducer</type>. + + <p>Other components can register as <type scope="com::sun::star::awt">XImageConsumer</type> + at this producer. Then they will be notified of any change in the image to be displayed.</p> + */ + interface com::sun::star::form::XImageProducerSupplier; + + //------------------------------------------------------------------------- + + /** indicates if it is possible to change the image being displayed. + */ + [property] boolean ReadOnly; + +}; + +//============================================================================= + +}; }; }; }; }; + +#endif |