summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/form/component/DatabaseImageControl.idl
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/form/component/DatabaseImageControl.idl')
-rw-r--r--offapi/com/sun/star/form/component/DatabaseImageControl.idl122
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