/**************************************************************
 * 
 * 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
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/




#ifndef __com_sun_star_sdb_ContentLoader_idl__ 
#define __com_sun_star_sdb_ContentLoader_idl__ 

#ifndef __com_sun_star_frame_Frame_idl__ 
#include <com/sun/star/frame/FrameLoader.idl>
#endif

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

//============================================================================= 
/** implements a loader for various datasource-related user interface components.

	<p>Usually, you don't deal with this loader directly. Instead, use an instance with
    the <type scope="com::sun::star::frame">XComponentLoader</type> interface, and pass
    one of the below-mentioned URLs to it.</p>

	@see com::sun::star::frame::XComponentLoader
	@see com::sun::star::frame::Desktop
*/
published service ContentLoader
{
	/** ensures the basic functionality.

		<p>
		Supporting this service ensures that you can plug any of the components
		the loader can create into an arbitrary frame.
		</p>

		The loader should be registered for the URL scheme 
		<b>
		.component:DB/ *
		</b>
		, the concrete URLs supported are:
		<ul>
			<li><b>.component:DB/DataSourceBrowser</b><br/>
				Using this URL creates an instance of the 
				<type scope="com::sun::star::sdb">DataSourceBrowser</type>
				service and plugs it into the frame passed to the loader.
			</li>
			<li><b>.component:DB/FormGridView</b><br/>
				Using this URL creates an instance of the 
				<type scope="com::sun::star::sdb">ExternalSourceBrowser</type>
				service and plugs it into the frame passed to the loader.
			</li>
			<li><b>.component:DB/QueryDesign</b><br/>
				Using this URL creates an instance of the 
				<type scope="com::sun::star::sdb">QueryDesign</type>
				service and plugs it into the frame passed to the loader.
			</li>
			<li><b>.component:DB/TableDesign</b><br/>
				Using this URL creates an instance of the 
				<type scope="com::sun::star::sdb">TableDesign</type>
				service and plugs it into the frame passed to the loader.
			</li>
			<li><b>.component:DB/RelationDesign</b><br/>
				Using this URL creates an instance of the 
				<type scope="com::sun::star::sdb">RelationDesign</type>
				service and plugs it into the frame passed to the loader.
			</li>
		</ul>

		The parameters passed to the 
		<member scope="com::sun::star::frame">XFrameLoader::load()</member>
		are forwarded to the object beeing created, 
		in particular to it's 
		<type scope="com::sun::star::lang">XInitialization</type>
		interface.
	**/
	service com::sun::star::frame::FrameLoader;
};
 
//============================================================================= 
}; }; }; }; 
 
#endif