1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23#ifndef __com_sun_star_sdb_DocumentContainer_idl__
24#define __com_sun_star_sdb_DocumentContainer_idl__
25
26#ifndef __com_sun_star_sdb_DefinitionContainer_idl__
27#include <com/sun/star/sdb/DefinitionContainer.idl>
28#endif
29#ifndef __com_sun_star_sdb_DefinitionContent_idl__
30#include <com/sun/star/sdb/DefinitionContent.idl>
31#endif
32
33
34 module com {  module sun {  module star {  module lang {
35 published interface XMultiServiceFactory;
36};};};};
37
38 module com {  module sun {  module star {  module frame {
39 published interface XComponentLoader;
40};};};};
41
42  module com {  module sun {  module star {  module container {
43 published interface XHierarchicalNameContainer;
44};};};};
45
46
47 module com {  module sun {  module star {  module sdb {
48
49
50/** describes a container which provides access to documents embedded into a database document,
51    usually forms and reports.
52
53	<p>The <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments()</member>
54	should be used to create sub document container or form, or report objects.</p>
55
56    <p>The embedded documents do not support any particular database related service, instead, they're
57    usual <type scope="com::sun::star::document">OfficeDocument</type>s.<br/>
58    The only thing worth mentioning here is that they support the
59    <type scope="com::sun::star::container">XChild</type> interface, whose
60    <member scope="com::sun::star::container">XChild::getParent</member> method can be used to
61    obtain the database document which the embedded document belongs to.
62    </p>
63
64	@see DocumentDefinition
65    @see OfficeDatabaseDocument
66 */
67service DocumentContainer
68{
69	service DefinitionContainer;
70
71    /** provides functionality for treating the container as part of a hierarchy
72        of a database document's sub documents.
73
74        <p>The <member scope="com::sun::star::ucb">XCommandProcessor::execute</member> method
75        of a <code>DocumentDefinition</code> supports at least the following commands, additionally to
76        the ones already supported by the DefinitionContent:
77        <ul>
78            <li><strong>open</strong>: provides a <type scope="com::sun::star::ucb::">XDynamicResultSet</type>
79                to enumerate the content of the document container.</li>
80            <li><strong>delete</strong>: deletes the document container, including all contained documents.</li>
81        </ul>
82    */
83    service DefinitionContent;
84
85	/** can be used to load the document inside.
86		<p>
87		URL: describes the name of the document definition to load,
88		TargetFrameName: isn't used.
89		SearchFlags: isn't used.
90		Arguments:
91		<ol>
92			<li>PropertyValue</li>
93				Name = ActiveConnection
94				Value = The connection which should be used when opening the text document.
95			<li>PropertyValue</li>
96				Name = OpenMode
97				Value = string, "open" if the document should be opened in live mode (editing is not possible),
98								"openDesign" if the document should be open in design mode (editing is possible)
99		</ol>
100		@see com::sun::star::sdbc::XConnection
101		</p>
102	*/
103	interface com::sun::star::frame::XComponentLoader;
104
105	/** can be used to create container elements.
106		<p>
107		If this interface is supported, the object created using it (e.g., the object returned by
108		<method scope="com.sun.star.lang">XMultiServiceFactory::createInstanceWithArguments()</method>
109		) can be used as container elements.
110		</p>
111	 */
112	interface com::sun::star::lang::XMultiServiceFactory;
113
114	/** can be used to create folder hierarchies and to organize forms or reports in different sub folders.
115	*/
116	interface com::sun::star::container::XHierarchicalNameContainer;
117};
118
119//=============================================================================
120
121}; }; }; };
122
123/*===========================================================================
124===========================================================================*/
125#endif
126