summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/sdb/OfficeDatabaseDocument.idl
blob: 5733e57814f928f6cdd344947a56473b1edd0628 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
/* -*- 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_sdb_OfficeDatabaseDocument_idl__
#define __com_sun_star_sdb_OfficeDatabaseDocument_idl__

#include <com/sun/star/document/OfficeDocument.idl>
#include <com/sun/star/sdb/XOfficeDatabaseDocument.idl>
#include <com/sun/star/document/XDocumentEventBroadcaster.idl>
#include <com/sun/star/script/provider/XScriptProviderSupplier.idl>
#include <com/sun/star/frame/XLoadable.idl>
#include <com/sun/star/util/XCloseable.idl>

module com {  module sun {  module star {  module sdb {

/** specifies a office database document which is a storable document.

    <p>These documents contain information about forms, and reports, and the properties of a data source.</p>

    <p>The database document contains no data per default. The following is stored inside the document:
    <ul>
        <li>forms</li>
        <li>reports</li>
        <li>The table settings defined in <type>DataSettings</type></li>
        <li>The query settings defined in <type>DataSettings</type></li>
        <li>All properties of the service <type>DataSource</type></li>
    </ul></p>

    @see com::sun::star::sdb::XOfficeDatabaseDocument
    @see com::sun::star::document::OfficeDocument
    @since OOo 2.0
 */
service OfficeDatabaseDocument
{
    /** specifies basic functionality of a document in OpenOffice.org

        <p>Note that a database document actually does not support the <type scope="com::sun::star::view">XPrintable</type> interface.
        The non-optional requirement of this interface in the <type scope="com::sun::star::document">OfficeDocument</type>
        service is considered a documentation error.</p>
    */
    service com::sun::star::document::OfficeDocument;

    interface XOfficeDatabaseDocument;

    /** allows access to the Basic macros and dialogs possibly embedded in the document
        @since OOo 3.1
    */
    interface ::com::sun::star::document::XEmbeddedScripts;

    /** supplies a script provider which can be used to execute macros and scripts
        embedded in the document
        @since OOo 3.1
    */
    interface ::com::sun::star::script::provider::XScriptProviderSupplier;

    /** allows to initialize the the document, either from scratch, or from a stored
        database document.

        <p>A newly instantiated database document cannot be operated until it is fully
        initialized. There are three possible means to do this initialization:
        <ul><li>calling <code>XLoadable::initNew</code></li>
            <li>calling <code>XLoadable::load</code></li>
            <li>calling <code>XStorable::storeAsURL</code></li>
        </ul>
        The third option was added for compatibility reasons, since a <type>DatabaseDocument</type>
        in earlier versions of OpenOffice.org did not support the <code>XLoadable</code> interface,
        so the usual way of creating a document from scratch was to create it, set properties as
        needed, and store it.</p>

        @since OOo 3.1
    */
    interface ::com::sun::star::frame::XLoadable;

    /** allows to register for notifications happening in the document

        <p>The following events are broadcasted by a database document
        <table border="1" frame="all">
            <thead>
                <tr><td><strong>Event Name</strong></td>
                    <td><strong>broadcasted when</strong></td>
                    <td align="center"><strong>broadcasted synchronously</strong></td>
                </tr>
            </thead>
            <tbody>
                <tr><td valign="top"><em>OnCreate</em></td>
                    <td>the document has been newly created. This does not imply that the document has
                        been loaded into a frame, it just means the initialization has been finished.</td>
                    <td align="center">yes</td>
                </tr>
                <tr><td valign="top"><em>OnLoadFinished</em></td>
                    <td>the document has been completely loaded. This does not  imply that the document
                    has been loaded into a frame, it just means the load process has been finished.</td>
                    <td align="center">yes</td>
                </tr>
                <tr><td valign="top"><em>OnNew</em></td>
                    <td>the document has been initialized from scratch, including plugging it into a frame.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnLoad</em></td>
                    <td>the document has been completely loaded, including plugging it into a frame.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnSave</em></td>
                    <td>the document is about to be saved.</td>
                    <td align="center">yes</td>
                </tr>
                <tr><td valign="top"><em>OnSaveDone</em></td>
                    <td>saving the document succeeded.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnSaveFailed</em></td>
                    <td>saving the document failed.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnSaveAs</em></td>
                    <td>the document is about to be saved under a new name.</td>
                    <td align="center">yes</td>
                </tr>
                <tr><td valign="top"><em>OnSaveAsDone</em></td>
                    <td>saving the document under a new name succeeded.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnSaveAsFailed</em></td>
                    <td>saving the document under a new name failed.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnSaveTo</em></td>
                    <td>the document is about to be saved to a location different from its
                        current location, but without adjusting the current location.</td>
                    <td align="center">yes</td>
                </tr>
                <tr><td valign="top"><em>OnSaveToDone</em></td>
                    <td>saving the document to a different location succeeded.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnSaveToFailed</em></td>
                    <td>saving the document to a different location failed.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnPrepareUnload</em></td>
                    <td>the document is about to be closed.</td>
                    <td align="center">yes</td>
                </tr>
                <tr><td valign="top"><em>OnUnload</em></td>
                    <td>the document is being closed.</td>
                    <td align="center">yes</td>
                </tr>
                <tr><td valign="top"><em>OnFocus</em></td>
                    <td>a view to the document obtained the focus.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnUnfocus</em></td>
                    <td>a view to the document lost the focus.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnModifyChanged</em></td>
                    <td>the <quot>modified</quot> state of the document changed.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnViewCreated</em></td>
                    <td>a view to the document has been created, and attached to the document.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnPrepareViewClosing</em></td>
                    <td>a view to the document is about to be closed.</td>
                    <td align="center">yes</td>
                </tr>
                <tr><td valign="top"><em>OnViewClosed</em></td>
                    <td>a view to the document has been closed.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnTitleChanged</em></td>
                    <td>the title of the document changed.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnSubComponentOpened</em></td>
                    <td>From with a view to the document, a view to a sub component (e.g. a table or a report) has been opened.</td>
                    <td align="center">no</td>
                </tr>
                <tr><td valign="top"><em>OnSubComponentClosed</em></td>
                    <td>From with a view to the document, a view to a sub component (e.g. a table or a report) has been closed.</td>
                    <td align="center">no</td>
                </tr>
            </tbody>
        </table>
        </p>

        @since OOo 3.1
    */
    interface ::com::sun::star::document::XDocumentEventBroadcaster;

    /** implements life time control

        <p>Whoever retrieves a <type>OfficeDatabaseDocument</type> should be aware of
        life time issues, since a document needs to be closed when nobody needs it anymore.</p>

        <p>This implies that clients of a document need to ensure that as soon as they don't
        need, they invoke <member scope="com::sun::star::util">XCloseable::close</member>.</p>

        <p>Since this can be done by multiple clients, every client is additionally required
        to register itself as <type scope="com::sun::star::util">XCloseListener</type> at
        the document, to prevent some other client closing the model while it's still needed
        by the first client.</p>
    */
    interface com::sun::star::util::XCloseable;
};


}; }; }; };

/*===========================================================================
===========================================================================*/
#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */