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