1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef ADABASUI_NEWDB_HXX
29 #include "ANewDb.hxx"
30 #endif
31 #ifndef _CPPUHELPER_TYPEPROVIDER_HXX_
32 #include <cppuhelper/typeprovider.hxx>
33 #endif
34 #ifndef _DBHELPER_DBEXCEPTION_HXX_
35 #include <connectivity/dbexception.hxx>
36 #endif
37 #ifndef adabasui_ADABAS_CREATEDB_HXX
38 #include "AdabasNewDb.hxx"
39 #endif
40 #ifndef adabasui_SHARED_DBUSTRINGS_HRC
41 #include "adabasuistrings.hrc"
42 #endif
43 #ifndef _SV_MSGBOX_HXX
44 #include <vcl/msgbox.hxx>
45 #endif
46 
47 using namespace adabasui;
48 using namespace dbtools;
49 
50 using namespace ::com::sun::star::sdbc;
51 using namespace ::com::sun::star::sdbcx;
52 using namespace ::com::sun::star::sdb;
53 
54 extern "C" void SAL_CALL createRegistryInfo_OAdabasCreateDialog()
55 {
56 	static OMultiInstanceAutoRegistration< OAdabasCreateDialog > aAutoRegistration;
57 }
58 
59 
60 using namespace ::com::sun::star::uno;
61 using namespace ::com::sun::star::lang;
62 using namespace ::com::sun::star::beans;
63 
64 //=========================================================================
65 //-------------------------------------------------------------------------
66 OAdabasCreateDialog::OAdabasCreateDialog(const Reference< XMultiServiceFactory >& _rxORB)
67 	:OAdabasCreateDialogBase(_rxORB)
68 	,m_pDialog(NULL)
69 {
70 	registerProperty(PROPERTY_CREATECATALOG,	PROPERTY_ID_CREATECATALOG,		PropertyAttribute::TRANSIENT,&m_xCreateCatalog,		::getCppuType(&m_xCreateCatalog));
71 	registerProperty(PROPERTY_DATABASENAME,		PROPERTY_ID_DATABASENAME,		PropertyAttribute::TRANSIENT,&m_sDatabaseName,		::getCppuType(&m_sDatabaseName));
72 	registerProperty(PROPERTY_CONTROL_USER,		PROPERTY_ID_CONTROL_USER,		PropertyAttribute::TRANSIENT,&m_sControlUser,		::getCppuType(&m_sControlUser));
73 	registerProperty(PROPERTY_CONTROL_PASSWORD, PROPERTY_ID_CONTROL_PASSWORD,	PropertyAttribute::TRANSIENT,&m_sControlPassword,	::getCppuType(&m_sControlPassword));
74 	registerProperty(PROPERTY_USER,				PROPERTY_ID_USER,				PropertyAttribute::TRANSIENT,&m_sUser,				::getCppuType(&m_sUser));
75 	registerProperty(PROPERTY_PASSWORD,			PROPERTY_ID_PASSWORD,			PropertyAttribute::TRANSIENT,&m_sUserPassword,		::getCppuType(&m_sUserPassword));
76 	registerProperty(PROPERTY_CACHESIZE,		PROPERTY_ID_CACHESIZE,			PropertyAttribute::TRANSIENT,&m_nCacheSize,			::getCppuType(&m_nCacheSize));
77 }
78 
79 //-------------------------------------------------------------------------
80 Sequence<sal_Int8> SAL_CALL OAdabasCreateDialog::getImplementationId(  ) throw(RuntimeException)
81 {
82 	static ::cppu::OImplementationId aId;
83 	return aId.getImplementationId();
84 }
85 
86 //-------------------------------------------------------------------------
87 Reference< XInterface > SAL_CALL OAdabasCreateDialog::Create(const Reference< XMultiServiceFactory >& _rxFactory)
88 {
89 	return *(new OAdabasCreateDialog(_rxFactory));
90 }
91 
92 //-------------------------------------------------------------------------
93 ::rtl::OUString SAL_CALL OAdabasCreateDialog::getImplementationName() throw(RuntimeException)
94 {
95 	return getImplementationName_Static();
96 }
97 
98 //-------------------------------------------------------------------------
99 ::rtl::OUString OAdabasCreateDialog::getImplementationName_Static() throw(RuntimeException)
100 {
101 	return ::rtl::OUString::createFromAscii("org.openoffice.comp.adabasui.AdabasCreateDialog");
102 }
103 
104 //-------------------------------------------------------------------------
105 ::comphelper::StringSequence SAL_CALL OAdabasCreateDialog::getSupportedServiceNames() throw(RuntimeException)
106 {
107 	return getSupportedServiceNames_Static();
108 }
109 
110 //-------------------------------------------------------------------------
111 ::comphelper::StringSequence OAdabasCreateDialog::getSupportedServiceNames_Static() throw(RuntimeException)
112 {
113 	::comphelper::StringSequence aSupported(1);
114 	aSupported.getArray()[0] = ::rtl::OUString::createFromAscii("com.sun.star.sdb.AdabasCreationDialog");
115 	return aSupported;
116 }
117 
118 //-------------------------------------------------------------------------
119 Reference<XPropertySetInfo>  SAL_CALL OAdabasCreateDialog::getPropertySetInfo() throw(RuntimeException)
120 {
121 	Reference<XPropertySetInfo>  xInfo( createPropertySetInfo( getInfoHelper() ) );
122 	return xInfo;
123 }
124 
125 //-------------------------------------------------------------------------
126 ::cppu::IPropertyArrayHelper& OAdabasCreateDialog::getInfoHelper()
127 {
128 	return *const_cast<OAdabasCreateDialog*>(this)->getArrayHelper();
129 }
130 
131 //------------------------------------------------------------------------------
132 ::cppu::IPropertyArrayHelper* OAdabasCreateDialog::createArrayHelper( ) const
133 {
134 	Sequence< Property > aProps;
135 	describeProperties(aProps);
136 	return new ::cppu::OPropertyArrayHelper(aProps);
137 }
138 
139 //------------------------------------------------------------------------------
140 Dialog*	OAdabasCreateDialog::createDialog(Window* _pParent)
141 {
142 	if(!m_xCreateCatalog.is())
143 		throw SQLException();
144 	m_pDialog = new OAdabasNewDbDlg(_pParent,m_xCreateCatalog,m_aContext.getLegacyServiceFactory());
145 	return m_pDialog;
146 }
147 // -----------------------------------------------------------------------------
148 void OAdabasCreateDialog::executedDialog(sal_Int16 _nExecutionResult)
149 {
150 	if(m_pDialog && _nExecutionResult == RET_OK)
151 	{ // fill the variables
152 		m_sDatabaseName		= m_pDialog->GetDatabaseName();
153 		m_sControlUser		= m_pDialog->GetControlUser();
154 		m_sControlPassword	= m_pDialog->GetControlPassword();
155 		m_sUser				= m_pDialog->GetUser();
156 		m_sUserPassword		= m_pDialog->GetUserPassword();
157 		m_nCacheSize		= m_pDialog->GetCacheSize();
158 	}
159 }
160 // -----------------------------------------------------------------------------
161 
162