summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/form/component/DatabaseImageControl.idl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--offapi/com/sun/star/form/component/DatabaseImageControl.idl106
1 files changed, 106 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 000000000..11c90358b
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DatabaseImageControl.idl
@@ -0,0 +1,106 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_form_component_DatabaseImageControl_idl__
+#define __com_sun_star_form_component_DatabaseImageControl_idl__
+
+#include <com/sun/star/awt/UnoControlImageControlModel.idl>
+
+#include <com/sun/star/form/DataAwareControlModel.idl>
+
+#include <com/sun/star/form/XImageProducerSupplier.idl>
+
+
+
+ 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 com::sun::star::form::DataAwareControlModel, 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 com::sun::star::sdb::XColumn::getBinaryStream()).</p>
+
+ <p>Usually, an image control model can be bound to binary columns only, namely
+ com::sun::star::sdbc::DataType::BINARY,
+ com::sun::star::sdbc::DataType::VARBINARY,
+ com::sun::star::sdbc::DataType::LONGVARBINARY,
+ com::sun::star::sdbc::DataType::OTHER,
+ com::sun::star::sdbc::DataType::LONGVARCHAR</p>
+
+ </p>
+
+ <p>Note that besides taking the image to be displayed from the bound field, there is another option. The
+ com::sun::star::awt::UnoControlImageControlModel::ImageURL 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 a com::sun::star::form::control::ImageControl.</li>
+
+ <li>The control is a com::sun::star::awt::XImageConsumer for the
+ com::sun::star::awt::XImageProducer 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
+ com::sun::star::awt::UnoControlImageControlModel::ImageURL
+ 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 com::sun::star::awt::UnoControlImageControlModel::ImageURL
+ 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 a com::sun::star::awt::XImageProducer.
+
+ <p>Other components can register as com::sun::star::awt::XImageConsumer
+ 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
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */