/**************************************************************
 * 
 * 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_ErrorMessageDialog_idl__ 
#define __com_sun_star_sdb_ErrorMessageDialog_idl__ 
 
#ifndef __com_sun_star_ui_dialogs_XExecutableDialog_idl__ 
#include <com/sun/star/ui/dialogs/XExecutableDialog.idl> 
#endif 

#ifndef __com_sun_star_awt_XWindow_idl__ 
#include <com/sun/star/awt/XWindow.idl> 
#endif 

#ifndef __com_sun_star_lang_XInitialization_idl__ 
#include <com/sun/star/lang/XInitialization.idl> 
#endif 

#ifndef __com_sun_star_beans_XPropertySet_idl__ 
#include <com/sun/star/beans/XPropertySet.idl> 
#endif 

//============================================================================= 
 
module com {  module sun {  module star {  module sdb { 
 

/** provides a dialog for displaying database related exceptions.
	<p>
	If applications use any of the functionality provided in the modules
	<module scope="com.sun.star">
	sdbc
	</module>
	, 
	<module scope="com.sun.star">
	sdbcx
	</module>
	 and 
	 <module scope="com.sun.star">
	 sdb
	 </module>
	 ,
	they will - sooner or later - encounter 
	<type scope="com::sun::star::sdbc">SQLException</type>
	's.
	<br/>
	These exceptions can be chained, so the information wrapped in one single 
	<type scope="com::sun::star::sdbc">SQLException</type>
	can be rather complex (e.g., every instance where such an exception is passing before it is finally caught, could
	append a 
	<type scope="com::sun::star::sdb">SQLContext</type>
	to explain what it was doing), and they should be
	presented to the user in a consistent way.
	<br/>
	This can be reached by using this service.
	@see com.sun.star.sdb.InteractionHandler
	</p>
*/
published service ErrorMessageDialog
{
	/** the title of the (dialog) window
	*/
	[property] string Title;

	/** parent window to use for the dialog
		<p>
		This property can't be set while the dialog is being displayed.
		</p>
	*/
	[property] com::sun::star::awt::XWindow ParentWindow;

	/** is the exception displayed by the dialog
		<p>
		This should contain a 
		<type scope="com::sun::star::sdbc">SQLException</type>
		instance, or an instance
		of any class derived from this exception.
		</p>
		<p>
		This property can't be set while the dialog is being displayed.
		</p>
	*/
	[property] any SQLException;

    /** specifies the URL to the help topic to associate with the dialog.

        <p>If This URL is not empty, then the dialog will get a "Help" button, which
        directs the user to the given help topic.</p>
    */
    [optional, property] string HelpURL;

	/** allows access to the properties of the object
	*/
	interface com::sun::star::beans::XPropertySet;

	/** allows starting execution of the dialog
	*/
	interface com::sun::star::ui::dialogs::XExecutableDialog;

	/** allows initializing the dialog
		<p>
		You do not need to call the initialize method directly, instead you may use the createInstanceWithArguments
		method of your 
		<type scope="com::sun::star::lang">XMultiServiceFactory</type>
		.
		</p>
		<p>
		You specify a parameter by passing one (or more) 
		<type scope="com::sun::star::beans">PropertyValue</type>
		object(s) to the initialize method, where the <em>Name</em> field contains a string describing which aspect
		you want to affect, and the <em>Value</em> field containing a value.
		<br/>
		Imagine the initialization values, as if you use 
		<method scope="com::sun::star::beans">XPropertySet::setPropertyValue()
		</method>
		 of the 
		<type scope="com::sun::star::beans">XPropertySet</type>
		interface ...
		<br/>
		allowed parameters are
		<ul>
			<li><b>Title</b><br/>
				String describing the initial title of the dialog. If not specified, a default title is used.
			</li>
			<li><b>ParentWindow</b><br/>
				<type scope="com::sun::star::awt">XWindow</type>
				describing the parent window to use for the dialog.
			</li>
			<li><b>SQLException</b><br/>
				<type scope="com::sun::star::sdbc">SQLException</type>
				describing the error which is beeing displayed.<br/>
				When initializing this value, you may use any derivative of 
				<type scope="com::sun::star::sdbc">SQLException</type>
				.
			</li>
		</ul>
		</p>
	*/
	interface com::sun::star::lang::XInitialization;
};
 
//============================================================================= 
 
}; }; }; }; 
 
#endif