1*96de5490SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*96de5490SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*96de5490SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*96de5490SAndrew Rist * distributed with this work for additional information 6*96de5490SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*96de5490SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*96de5490SAndrew Rist * "License"); you may not use this file except in compliance 9*96de5490SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*96de5490SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*96de5490SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*96de5490SAndrew Rist * software distributed under the License is distributed on an 15*96de5490SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*96de5490SAndrew Rist * KIND, either express or implied. See the License for the 17*96de5490SAndrew Rist * specific language governing permissions and limitations 18*96de5490SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*96de5490SAndrew Rist *************************************************************/ 21*96de5490SAndrew Rist 22*96de5490SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef adabasui_ADABAS_CREATEDB_HXX 25cdf0e10cSrcweir #include "AdabasNewDb.hxx" 26cdf0e10cSrcweir #endif 27cdf0e10cSrcweir #ifndef adabasui_ADABASNEWDB_HRC 28cdf0e10cSrcweir #include "AdabasNewDb.hrc" 29cdf0e10cSrcweir #endif 30cdf0e10cSrcweir 31cdf0e10cSrcweir #ifndef _VOS_PROCESS_HXX_ 32cdf0e10cSrcweir #include <vos/process.hxx> 33cdf0e10cSrcweir #endif 34cdf0e10cSrcweir #ifndef _OSL_PROCESS_H_ 35cdf0e10cSrcweir #include <osl/process.h> 36cdf0e10cSrcweir #endif 37cdf0e10cSrcweir #ifndef _MSGBOX_HXX //autogen 38cdf0e10cSrcweir #include <vcl/msgbox.hxx> 39cdf0e10cSrcweir #endif 40cdf0e10cSrcweir #ifndef _PASSWD_HXX //autogen 41cdf0e10cSrcweir #include <sfx2/passwd.hxx> 42cdf0e10cSrcweir #endif 43cdf0e10cSrcweir #ifndef _URLOBJ_HXX 44cdf0e10cSrcweir #include <tools/urlobj.hxx> 45cdf0e10cSrcweir #endif 46cdf0e10cSrcweir #ifndef _STREAM_HXX 47cdf0e10cSrcweir #include <tools/stream.hxx> 48cdf0e10cSrcweir #endif 49cdf0e10cSrcweir #ifndef _BIGINT_HXX 50cdf0e10cSrcweir #include <tools/bigint.hxx> 51cdf0e10cSrcweir #endif 52cdf0e10cSrcweir #ifndef _TOOLS_DEBUG_HXX 53cdf0e10cSrcweir #include <tools/debug.hxx> 54cdf0e10cSrcweir #endif 55cdf0e10cSrcweir #ifndef _EXTENSIONS_COMPONENT_MODULE_HXX_ 56cdf0e10cSrcweir #include "Acomponentmodule.hxx" 57cdf0e10cSrcweir #endif 58cdf0e10cSrcweir #ifndef _UNOTOOLS_TEMPFILE_HXX 59cdf0e10cSrcweir #include <unotools/tempfile.hxx> 60cdf0e10cSrcweir #endif 61cdf0e10cSrcweir #ifndef _ADABASUI_RESOURCE_HRC_ 62cdf0e10cSrcweir #include "adabasui_resource.hrc" 63cdf0e10cSrcweir #endif 64cdf0e10cSrcweir #ifndef _UCBHELPER_CONTENT_HXX 65cdf0e10cSrcweir #include <ucbhelper/content.hxx> 66cdf0e10cSrcweir #endif 67cdf0e10cSrcweir #ifndef _SV_WAITOBJ_HXX 68cdf0e10cSrcweir #include <vcl/waitobj.hxx> 69cdf0e10cSrcweir #endif 70cdf0e10cSrcweir #ifndef INCLUDED_SVTOOLS_PATHOPTIONS_HXX 71cdf0e10cSrcweir #include <unotools/pathoptions.hxx> 72cdf0e10cSrcweir #endif 73cdf0e10cSrcweir #ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_ 74cdf0e10cSrcweir #include <toolkit/unohlp.hxx> 75cdf0e10cSrcweir #endif 76cdf0e10cSrcweir #ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_ 77cdf0e10cSrcweir #include <com/sun/star/beans/PropertyValue.hpp> 78cdf0e10cSrcweir #endif 79cdf0e10cSrcweir #ifndef _COMPHELPER_EXTRACT_HXX_ 80cdf0e10cSrcweir #include <comphelper/extract.hxx> 81cdf0e10cSrcweir #endif 82cdf0e10cSrcweir #ifndef _UNOTOOLS_TEMPFILE_HXX 83cdf0e10cSrcweir #include <unotools/tempfile.hxx> 84cdf0e10cSrcweir #endif 85cdf0e10cSrcweir #ifndef _UNOTOOLS_LOCALFILEHELPER_HXX 86cdf0e10cSrcweir #include <unotools/localfilehelper.hxx> 87cdf0e10cSrcweir #endif 88cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBC_SQLEXCEPTION_HPP_ 89cdf0e10cSrcweir #include <com/sun/star/sdbc/SQLException.hpp> 90cdf0e10cSrcweir #endif 91cdf0e10cSrcweir #ifndef _UNOTOOLS_UCBHELPER_HXX 92cdf0e10cSrcweir #include <unotools/ucbhelper.hxx> 93cdf0e10cSrcweir #endif 94cdf0e10cSrcweir #ifndef _CONNECTIVITY_DBTOOLS_HXX_ 95cdf0e10cSrcweir #include <connectivity/dbtools.hxx> 96cdf0e10cSrcweir #endif 97cdf0e10cSrcweir #ifndef _DBHELPER_DBEXCEPTION_HXX_ 98cdf0e10cSrcweir #include <connectivity/dbexception.hxx> 99cdf0e10cSrcweir #endif 100cdf0e10cSrcweir #include "adabasuistrings.hrc" 101cdf0e10cSrcweir #ifndef _THREAD_HXX_ 102cdf0e10cSrcweir #include <osl/thread.hxx> 103cdf0e10cSrcweir #endif 104cdf0e10cSrcweir #ifndef _OSL_FILE_HXX_ 105cdf0e10cSrcweir #include <osl/file.hxx> 106cdf0e10cSrcweir #endif 107cdf0e10cSrcweir 108cdf0e10cSrcweir 109cdf0e10cSrcweir using namespace adabasui; 110cdf0e10cSrcweir using namespace ucbhelper; 111cdf0e10cSrcweir using namespace utl; 112cdf0e10cSrcweir using namespace vos; 113cdf0e10cSrcweir using namespace ::com::sun::star::uno; 114cdf0e10cSrcweir using namespace ::com::sun::star::beans; 115cdf0e10cSrcweir using namespace ::com::sun::star::sdbcx; 116cdf0e10cSrcweir using namespace ::com::sun::star::sdbc; 117cdf0e10cSrcweir using namespace ::com::sun::star::ucb; 118cdf0e10cSrcweir using namespace ::com::sun::star::lang; 119cdf0e10cSrcweir namespace adabasui 120cdf0e10cSrcweir { 121cdf0e10cSrcweir class ODatabaseCreator : public ::osl::Thread 122cdf0e10cSrcweir { 123cdf0e10cSrcweir Link m_aTerminateHandler; 124cdf0e10cSrcweir Sequence< PropertyValue> m_aValues; 125cdf0e10cSrcweir Reference<XCreateCatalog> m_xCreateCatalog; 126cdf0e10cSrcweir Reference< XMultiServiceFactory > m_xORB; 127cdf0e10cSrcweir Window* m_pErrorWindow; 128cdf0e10cSrcweir public: 129cdf0e10cSrcweir ODatabaseCreator(const Reference<XCreateCatalog>& _rxCreateCatalog 130cdf0e10cSrcweir ,Window* _pErrorWindow 131cdf0e10cSrcweir ,const Reference< XMultiServiceFactory >& _xORB 132cdf0e10cSrcweir ,const Sequence< PropertyValue>& _rValues) 133cdf0e10cSrcweir : m_aValues(_rValues) 134cdf0e10cSrcweir , m_xCreateCatalog(_rxCreateCatalog) 135cdf0e10cSrcweir , m_xORB(_xORB) 136cdf0e10cSrcweir , m_pErrorWindow(_pErrorWindow) 137cdf0e10cSrcweir {} 138cdf0e10cSrcweir 139cdf0e10cSrcweir void setTerminateHandler(const Link& _aTerminateHandler) { m_aTerminateHandler = _aTerminateHandler; } 140cdf0e10cSrcweir 141cdf0e10cSrcweir protected: 142cdf0e10cSrcweir 143cdf0e10cSrcweir /// Working method which should be overridden. 144cdf0e10cSrcweir virtual void SAL_CALL run(); 145cdf0e10cSrcweir virtual void SAL_CALL onTerminated(); 146cdf0e10cSrcweir }; 147cdf0e10cSrcweir 148cdf0e10cSrcweir void SAL_CALL ODatabaseCreator::run() 149cdf0e10cSrcweir { 150cdf0e10cSrcweir try 151cdf0e10cSrcweir { 152cdf0e10cSrcweir m_xCreateCatalog->createCatalog(m_aValues); 153cdf0e10cSrcweir } 154cdf0e10cSrcweir catch(SQLException& e) 155cdf0e10cSrcweir { 156cdf0e10cSrcweir ::dbtools::showError(::dbtools::SQLExceptionInfo(e),VCLUnoHelper::GetInterface(m_pErrorWindow),m_xORB); 157cdf0e10cSrcweir } 158cdf0e10cSrcweir catch(Exception&) 159cdf0e10cSrcweir { 160cdf0e10cSrcweir OSL_ASSERT(0); 161cdf0e10cSrcweir // showError(::dbtools::SQLExceptionInfo(e),this,); 162cdf0e10cSrcweir } 163cdf0e10cSrcweir } 164cdf0e10cSrcweir void SAL_CALL ODatabaseCreator::onTerminated() 165cdf0e10cSrcweir { 166cdf0e10cSrcweir if ( m_aTerminateHandler.IsSet() ) 167cdf0e10cSrcweir m_aTerminateHandler.Call(NULL); 168cdf0e10cSrcweir } 169cdf0e10cSrcweir } 170cdf0e10cSrcweir DBG_NAME( OAdabasNewDbDlg ) 171cdf0e10cSrcweir //======================================================================== 172cdf0e10cSrcweir OAdabasNewDbDlg::OAdabasNewDbDlg( Window* pParent, 173cdf0e10cSrcweir const Reference<XCreateCatalog>& _rxCreateCatalog, 174cdf0e10cSrcweir const Reference< XMultiServiceFactory >& _rxORB, 175cdf0e10cSrcweir sal_Bool _bRestore) 176cdf0e10cSrcweir :ModalDialog( pParent, ModuleRes( DLG_ADABAS_NEWDB )) 177cdf0e10cSrcweir ,m_FT_DATABASENAME( this, ModuleRes( FT_DATABASENAME ) ) 178cdf0e10cSrcweir ,m_ET_DATABASENAME( this, ModuleRes( ET_DATABASENAME ) ) 179cdf0e10cSrcweir ,m_FL_USER( this, ModuleRes( FL_USER ) ) 180cdf0e10cSrcweir ,m_FT_SYSUSR( this, ModuleRes( FT_SYSUSR ) ) 181cdf0e10cSrcweir ,m_FT_CONUSR( this, ModuleRes( FT_CONUSR ) ) 182cdf0e10cSrcweir ,m_FT_DOMAIN_USR( this, ModuleRes( FT_DOMAIN_USR ) ) 183cdf0e10cSrcweir ,m_ET_SYSUSR( this, ModuleRes( ET_SYSUSR ) ) 184cdf0e10cSrcweir ,m_PB_SYSPWD( this, ModuleRes( PB_SYSPWD ) ) 185cdf0e10cSrcweir ,m_ET_CONUSR( this, ModuleRes( ET_CONUSR ) ) 186cdf0e10cSrcweir ,m_PB_CONPWD( this, ModuleRes( PB_CONPWD ) ) 187cdf0e10cSrcweir ,m_ET_DOMAIN_USR( this, ModuleRes( ET_DOMAIN_USR ) ) 188cdf0e10cSrcweir ,m_PB_DOMAINPWD( this, ModuleRes( PB_DOMAINPWD ) ) 189cdf0e10cSrcweir ,m_BMP_CON( this, ModuleRes( BMP_CON ) ) 190cdf0e10cSrcweir ,m_BMP_SYS( this, ModuleRes( BMP_SYS ) ) 191cdf0e10cSrcweir ,m_BMP_DOMAIN( this, ModuleRes( BMP_DOMAIN ) ) 192cdf0e10cSrcweir ,m_FT_RESTORE( this, ModuleRes( FT_RESTORE ) ) 193cdf0e10cSrcweir ,m_ET_RESTORE( this, ModuleRes( ET_RESTORE ) ) 194cdf0e10cSrcweir ,m_PB_RESTORE( this, ModuleRes( PB_RESTORE ) ) 195cdf0e10cSrcweir ,m_FL_DBSETTINGS( this, ModuleRes( FL_DBSETTINGS ) ) 196cdf0e10cSrcweir ,m_FT_SYSDEVSPACE( this, ModuleRes( FT_SYSDEVSPACE ) ) 197cdf0e10cSrcweir ,m_FT_TRANSACTIONLOG( this, ModuleRes( FT_TRANSACTIONLOG ) ) 198cdf0e10cSrcweir ,m_FT_DATADEVSPACE( this, ModuleRes( FT_DATADEVSPACE ) ) 199cdf0e10cSrcweir ,m_ET_SYSDEVSPACE( this, ModuleRes( ET_SYSDEVSPACE ) ) 200cdf0e10cSrcweir ,m_PB_SYSDEVSPACE( this, ModuleRes( PB_SYSDEVSPACE ) ) 201cdf0e10cSrcweir ,m_ET_TRANSACTIONLOG( this, ModuleRes( ET_TRANSACTIONLOG ) ) 202cdf0e10cSrcweir ,m_PB_TRANSACTIONLOG( this, ModuleRes( PB_TRANSACTIONLOG ) ) 203cdf0e10cSrcweir ,m_ET_DATADEVSPACE( this, ModuleRes( ET_DATADEVSPACE ) ) 204cdf0e10cSrcweir ,m_PB_DATADEVSPACE( this, ModuleRes( PB_DATADEVSPACE ) ) 205cdf0e10cSrcweir ,m_FT_TRANSACTIONLOG_SIZE( this, ModuleRes( FT_TRANSACTIONLOG_SIZE ) ) 206cdf0e10cSrcweir ,m_NF_TRANSACTIONLOG_SIZE( this, ModuleRes( NF_TRANSACTIONLOG_SIZE ) ) 207cdf0e10cSrcweir ,m_FT_DATADEVSPACE_SIZE( this, ModuleRes( FT_DATADEVSPACE_SIZE ) ) 208cdf0e10cSrcweir ,m_NF_DATADEVSPACE_SIZE( this, ModuleRes( NF_DATADEVSPACE_SIZE ) ) 209cdf0e10cSrcweir ,m_FT_CACHE_SIZE( this, ModuleRes( FT_CACHE_SIZE ) ) 210cdf0e10cSrcweir ,m_NF_CACHE_SIZE( this, ModuleRes( NF_CACHE_SIZE ) ) 211cdf0e10cSrcweir ,m_FL_END( this, ModuleRes( FL_END ) ) 212cdf0e10cSrcweir ,m_PB_OK( this, ModuleRes( PB_OK ) ) 213cdf0e10cSrcweir ,m_PB_CANCEL( this, ModuleRes( PB_CANCEL ) ) 214cdf0e10cSrcweir ,m_xCreateCatalog(_rxCreateCatalog) 215cdf0e10cSrcweir ,m_xORB(_rxORB) 216cdf0e10cSrcweir ,m_bRestore(_bRestore) 217cdf0e10cSrcweir ,m_nSetBitmap(0) 218cdf0e10cSrcweir { 219cdf0e10cSrcweir DBG_CTOR( OAdabasNewDbDlg, NULL ); 220cdf0e10cSrcweir FreeResource(); 221cdf0e10cSrcweir if(m_bRestore) 222cdf0e10cSrcweir { 223cdf0e10cSrcweir m_FL_DBSETTINGS.SetPosPixel(m_FL_DBSETTINGS.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 224cdf0e10cSrcweir m_FT_SYSDEVSPACE.SetPosPixel(m_FT_SYSDEVSPACE.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 225cdf0e10cSrcweir m_FT_TRANSACTIONLOG.SetPosPixel(m_FT_TRANSACTIONLOG.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 226cdf0e10cSrcweir m_FT_DATADEVSPACE.SetPosPixel(m_FT_DATADEVSPACE.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 227cdf0e10cSrcweir m_ET_SYSDEVSPACE.SetPosPixel(m_ET_SYSDEVSPACE.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 228cdf0e10cSrcweir m_PB_SYSDEVSPACE.SetPosPixel(m_PB_SYSDEVSPACE.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 229cdf0e10cSrcweir m_ET_TRANSACTIONLOG.SetPosPixel(m_ET_TRANSACTIONLOG.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 230cdf0e10cSrcweir m_PB_TRANSACTIONLOG.SetPosPixel(m_PB_TRANSACTIONLOG.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 231cdf0e10cSrcweir m_ET_DATADEVSPACE.SetPosPixel(m_ET_DATADEVSPACE.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 232cdf0e10cSrcweir m_PB_DATADEVSPACE.SetPosPixel(m_PB_DATADEVSPACE.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 233cdf0e10cSrcweir m_FT_TRANSACTIONLOG_SIZE.SetPosPixel(m_FT_TRANSACTIONLOG_SIZE.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 234cdf0e10cSrcweir m_NF_TRANSACTIONLOG_SIZE.SetPosPixel(m_NF_TRANSACTIONLOG_SIZE.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 235cdf0e10cSrcweir m_FT_DATADEVSPACE_SIZE.SetPosPixel(m_FT_DATADEVSPACE_SIZE.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 236cdf0e10cSrcweir m_NF_DATADEVSPACE_SIZE.SetPosPixel(m_NF_DATADEVSPACE_SIZE.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 237cdf0e10cSrcweir m_FT_CACHE_SIZE.SetPosPixel(m_FT_CACHE_SIZE.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 238cdf0e10cSrcweir m_NF_CACHE_SIZE.SetPosPixel(m_NF_CACHE_SIZE.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 239cdf0e10cSrcweir m_PB_OK.SetPosPixel(m_PB_OK.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 240cdf0e10cSrcweir m_PB_CANCEL.SetPosPixel(m_PB_CANCEL.GetPosPixel()-LogicToPixel( Point(0,14), MAP_APPFONT )); 241cdf0e10cSrcweir 242cdf0e10cSrcweir Size aSize(GetSizePixel().Width(),GetSizePixel().Height()-LogicToPixel( Size(0,14), MAP_APPFONT ).Height()); 243cdf0e10cSrcweir SetSizePixel(aSize); 244cdf0e10cSrcweir 245cdf0e10cSrcweir m_FT_SYSUSR.Hide(); 246cdf0e10cSrcweir m_FT_DOMAIN_USR.Hide(); 247cdf0e10cSrcweir m_FL_USER.SetText(ModuleRes(STR_BACKUPFILE_LOAD)); 248cdf0e10cSrcweir m_PB_SYSPWD.Hide(); 249cdf0e10cSrcweir m_PB_DOMAINPWD.Hide(); 250cdf0e10cSrcweir m_ET_SYSUSR.Hide(); 251cdf0e10cSrcweir m_ET_DOMAIN_USR.Hide(); 252cdf0e10cSrcweir 253cdf0e10cSrcweir m_ET_SYSUSR.SetText(String::CreateFromAscii("DUMMY")); 254cdf0e10cSrcweir m_BMP_SYS.Hide(); 255cdf0e10cSrcweir m_BMP_DOMAIN.Hide(); 256cdf0e10cSrcweir m_ET_RESTORE.SetModifyHdl( LINK(this,OAdabasNewDbDlg,LoseFocusHdl)); 257cdf0e10cSrcweir m_ET_RESTORE.SetLoseFocusHdl( LINK(this,OAdabasNewDbDlg,LoseFocusHdl)); 258cdf0e10cSrcweir m_ET_RESTORE.SetMaxTextLen(40); 259cdf0e10cSrcweir } 260cdf0e10cSrcweir else 261cdf0e10cSrcweir { 262cdf0e10cSrcweir m_FT_RESTORE.Hide(); 263cdf0e10cSrcweir m_ET_RESTORE.Hide(); 264cdf0e10cSrcweir m_PB_RESTORE.Hide(); 265cdf0e10cSrcweir 266cdf0e10cSrcweir m_ET_SYSUSR.SetModifyHdl( LINK(this,OAdabasNewDbDlg,LoseFocusHdl)); 267cdf0e10cSrcweir m_ET_CONUSR.SetModifyHdl( LINK(this,OAdabasNewDbDlg,LoseFocusHdl)); 268cdf0e10cSrcweir m_ET_DOMAIN_USR.Enable(sal_False); 269cdf0e10cSrcweir 270cdf0e10cSrcweir // m_ET_SYSUSR.setUpperCase(); 271cdf0e10cSrcweir // m_ET_CONUSR.setUpperCase(); 272cdf0e10cSrcweir } 273cdf0e10cSrcweir 274cdf0e10cSrcweir 275cdf0e10cSrcweir m_ET_SYSDEVSPACE.SetLoseFocusHdl( LINK(this,OAdabasNewDbDlg,LoseFocusHdl)); 276cdf0e10cSrcweir m_ET_TRANSACTIONLOG.SetLoseFocusHdl( LINK(this,OAdabasNewDbDlg,LoseFocusHdl)); 277cdf0e10cSrcweir m_ET_DATADEVSPACE.SetLoseFocusHdl( LINK(this,OAdabasNewDbDlg,LoseFocusHdl)); 278cdf0e10cSrcweir 279cdf0e10cSrcweir m_ET_SYSDEVSPACE.SetMaxTextLen(40); 280cdf0e10cSrcweir m_ET_TRANSACTIONLOG.SetMaxTextLen(40); 281cdf0e10cSrcweir m_ET_DATADEVSPACE.SetMaxTextLen(40); 282cdf0e10cSrcweir 283cdf0e10cSrcweir m_NF_TRANSACTIONLOG_SIZE.SetModifyHdl( LINK(this,OAdabasNewDbDlg,LoseFocusHdl)); 284cdf0e10cSrcweir m_NF_DATADEVSPACE_SIZE.SetModifyHdl( LINK(this,OAdabasNewDbDlg,LoseFocusHdl)); 285cdf0e10cSrcweir m_NF_CACHE_SIZE.SetModifyHdl( LINK(this,OAdabasNewDbDlg,LoseFocusHdl)); 286cdf0e10cSrcweir 287cdf0e10cSrcweir m_NF_TRANSACTIONLOG_SIZE.SetMin(10); 288cdf0e10cSrcweir m_NF_DATADEVSPACE_SIZE.SetMin(10); 289cdf0e10cSrcweir m_NF_CACHE_SIZE.SetMin(4); 290cdf0e10cSrcweir 291cdf0e10cSrcweir m_NF_TRANSACTIONLOG_SIZE.SetMax(LONG_MAX); 292cdf0e10cSrcweir m_NF_DATADEVSPACE_SIZE.SetMax(LONG_MAX); 293cdf0e10cSrcweir m_NF_CACHE_SIZE.SetMax(LONG_MAX); 294cdf0e10cSrcweir 295cdf0e10cSrcweir m_NF_TRANSACTIONLOG_SIZE.SetValue(20); 296cdf0e10cSrcweir m_NF_DATADEVSPACE_SIZE.SetValue(20); 297cdf0e10cSrcweir m_NF_CACHE_SIZE.SetValue(4); 298cdf0e10cSrcweir 299cdf0e10cSrcweir m_NF_TRANSACTIONLOG_SIZE.SetDecimalDigits(0); 300cdf0e10cSrcweir m_NF_DATADEVSPACE_SIZE.SetDecimalDigits(0); 301cdf0e10cSrcweir m_NF_CACHE_SIZE.SetDecimalDigits(0); 302cdf0e10cSrcweir 303cdf0e10cSrcweir m_ET_DATABASENAME.SetMaxTextLen( 8 ); //98292 304cdf0e10cSrcweir 305cdf0e10cSrcweir m_PB_CONPWD.SetClickHdl( LINK(this,OAdabasNewDbDlg,PwdClickHdl)); 306cdf0e10cSrcweir m_PB_SYSPWD.SetClickHdl( LINK(this,OAdabasNewDbDlg,PwdClickHdl)); 307cdf0e10cSrcweir m_PB_DOMAINPWD.SetClickHdl( LINK(this,OAdabasNewDbDlg,PwdClickHdl)); 308cdf0e10cSrcweir 309cdf0e10cSrcweir m_PB_RESTORE.SetClickHdl( LINK(this,OAdabasNewDbDlg,LoadButtonClickHdl)); 310cdf0e10cSrcweir 311cdf0e10cSrcweir m_PB_SYSDEVSPACE.SetClickHdl( LINK(this,OAdabasNewDbDlg,ButtonClickHdl)); 312cdf0e10cSrcweir m_PB_TRANSACTIONLOG.SetClickHdl( LINK(this,OAdabasNewDbDlg,ButtonClickHdl)); 313cdf0e10cSrcweir m_PB_DATADEVSPACE.SetClickHdl( LINK(this,OAdabasNewDbDlg,ButtonClickHdl)); 314cdf0e10cSrcweir 315cdf0e10cSrcweir m_BMP_CON.SetImage( ModuleRes(UNCHECK_RED) ); 316cdf0e10cSrcweir m_BMP_SYS.SetImage( ModuleRes(UNCHECK_RED) ); 317cdf0e10cSrcweir m_BMP_DOMAIN.SetImage( ModuleRes(UNCHECK_RED) ); 318cdf0e10cSrcweir 319cdf0e10cSrcweir static String s_sRoot(RTL_CONSTASCII_USTRINGPARAM("DBROOT")); 320cdf0e10cSrcweir static String s_sConfig(RTL_CONSTASCII_USTRINGPARAM("DBCONFIG")); 321cdf0e10cSrcweir static String s_sWork(RTL_CONSTASCII_USTRINGPARAM("DBWORK")); 322cdf0e10cSrcweir 323cdf0e10cSrcweir sal_Bool bError = fillEnvironmentVariable(s_sWork,m_sDbWork); 324cdf0e10cSrcweir if ( bError || !m_sDbWork.Len() ) 325cdf0e10cSrcweir bError = fillEnvironmentVariable(s_sRoot,m_sDbWork); 326cdf0e10cSrcweir 327cdf0e10cSrcweir bError = fillEnvironmentVariable(s_sConfig,m_sDbConfig); 328cdf0e10cSrcweir if ( bError || !m_sDbConfig.Len() ) 329cdf0e10cSrcweir bError = fillEnvironmentVariable(s_sRoot,m_sDbConfig); 330cdf0e10cSrcweir 331cdf0e10cSrcweir if ( m_sDbConfig.Len() && m_sDbWork.Len() ) 332cdf0e10cSrcweir { 333cdf0e10cSrcweir m_sDbConfig.AppendAscii("/"); 334cdf0e10cSrcweir m_sDbWork.AppendAscii("/"); 335cdf0e10cSrcweir 336cdf0e10cSrcweir String sDefaultName,sExt; 337cdf0e10cSrcweir sDefaultName.AssignAscii("MYDB"); 338cdf0e10cSrcweir String sConfig = m_sDbConfig; 339cdf0e10cSrcweir sConfig.AppendAscii("config"); 340cdf0e10cSrcweir TempFile aDefaultDatabase(sDefaultName,&sExt,&sConfig); 341cdf0e10cSrcweir aDefaultDatabase.EnableKillingFile(); 342cdf0e10cSrcweir INetURLObject aURL(aDefaultDatabase.GetURL()); 343cdf0e10cSrcweir 344cdf0e10cSrcweir m_ET_DATABASENAME.SetText(aURL.GetName()); 345cdf0e10cSrcweir m_DBName = m_ET_DATABASENAME.GetText(); 346cdf0e10cSrcweir 347cdf0e10cSrcweir // create temp names for my files 348cdf0e10cSrcweir // here we need only a name the creation is done by the driver 349cdf0e10cSrcweir // so we delete the files after we get a valid name 350cdf0e10cSrcweir // with this we avoiding to mention anything when the user presses cancel 351cdf0e10cSrcweir 352cdf0e10cSrcweir String aSysExt; 353cdf0e10cSrcweir sal_Bool bValid = sal_True; 354cdf0e10cSrcweir { 355cdf0e10cSrcweir aSysExt.AssignAscii(".sys"); 356cdf0e10cSrcweir ::utl::TempFile aTmpFile(m_ET_DATABASENAME.GetText(),&aSysExt,&m_sDbWork); 357cdf0e10cSrcweir aTmpFile.EnableKillingFile(); 358cdf0e10cSrcweir bValid = aTmpFile.IsValid(); 359cdf0e10cSrcweir if(bValid) 360cdf0e10cSrcweir LocalFileHelper::ConvertURLToPhysicalName(aTmpFile.GetURL(),m_SYSDEV_File); 361cdf0e10cSrcweir } 362cdf0e10cSrcweir { 363cdf0e10cSrcweir aSysExt.AssignAscii(".trs"); 364cdf0e10cSrcweir ::utl::TempFile aTmpFile(m_ET_DATABASENAME.GetText(),&aSysExt,&m_sDbWork); 365cdf0e10cSrcweir aTmpFile.EnableKillingFile(); 366cdf0e10cSrcweir bValid = !bValid || aTmpFile.IsValid(); 367cdf0e10cSrcweir if(aTmpFile.IsValid()) 368cdf0e10cSrcweir LocalFileHelper::ConvertURLToPhysicalName(aTmpFile.GetURL(),m_TRANSDEV_File); 369cdf0e10cSrcweir } 370cdf0e10cSrcweir { 371cdf0e10cSrcweir aSysExt.AssignAscii(".dat"); 372cdf0e10cSrcweir ::utl::TempFile aTmpFile(m_ET_DATABASENAME.GetText(),&aSysExt,&m_sDbWork); 373cdf0e10cSrcweir aTmpFile.EnableKillingFile(); 374cdf0e10cSrcweir bValid = !bValid || aTmpFile.IsValid(); 375cdf0e10cSrcweir if(aTmpFile.IsValid()) 376cdf0e10cSrcweir LocalFileHelper::ConvertURLToPhysicalName(aTmpFile.GetURL(),m_DATADEV_File); 377cdf0e10cSrcweir } 378cdf0e10cSrcweir if(!bValid) // we found a file which isn't valid so we report an error message 379cdf0e10cSrcweir PostUserEvent(LINK(this, OAdabasNewDbDlg, OnNoAccessRights)); 380cdf0e10cSrcweir 381cdf0e10cSrcweir } 382cdf0e10cSrcweir 383cdf0e10cSrcweir if(m_SYSDEV_File.Len() < 41 && m_TRANSDEV_File.Len() < 41 && m_DATADEV_File.Len() < 41) 384cdf0e10cSrcweir { 385cdf0e10cSrcweir m_ET_SYSDEVSPACE.SetText(m_SYSDEV_File ); 386cdf0e10cSrcweir m_ET_TRANSACTIONLOG.SetText(m_TRANSDEV_File); 387cdf0e10cSrcweir m_ET_DATADEVSPACE.SetText(m_DATADEV_File); 388cdf0e10cSrcweir } 389cdf0e10cSrcweir else 390cdf0e10cSrcweir { 391cdf0e10cSrcweir m_SYSDEV_File = m_TRANSDEV_File = m_DATADEV_File = String(); 392cdf0e10cSrcweir PostUserEvent(LINK(this, OAdabasNewDbDlg, OnNoDefaultPath)); 393cdf0e10cSrcweir } 394cdf0e10cSrcweir 395cdf0e10cSrcweir m_ET_CONUSR.SetText(String::CreateFromAscii("CONTROL")); 396cdf0e10cSrcweir 397cdf0e10cSrcweir m_PB_OK.SetClickHdl(LINK(this,OAdabasNewDbDlg,ImplOKHdl)); 398cdf0e10cSrcweir m_PB_OK.Enable(sal_False); 399cdf0e10cSrcweir 400cdf0e10cSrcweir m_ET_DATABASENAME.SetModifyHdl( LINK(this,OAdabasNewDbDlg,LoseFocusHdl)); 401cdf0e10cSrcweir 402cdf0e10cSrcweir } 403cdf0e10cSrcweir // ----------------------------------------------------------------------- 404cdf0e10cSrcweir OAdabasNewDbDlg::~OAdabasNewDbDlg() 405cdf0e10cSrcweir { 406cdf0e10cSrcweir DBG_DTOR( OAdabasNewDbDlg, NULL ); 407cdf0e10cSrcweir } 408cdf0e10cSrcweir //------------------------------------------------------------------ 409cdf0e10cSrcweir IMPL_LINK(OAdabasNewDbDlg, OnError, void*, /*_pArg*/) 410cdf0e10cSrcweir { 411cdf0e10cSrcweir String sErrorMsg(ModuleRes(STR_ERROR_IN_ADABAS_INSTALLATION)); 412cdf0e10cSrcweir ErrorBox(this, WB_OK, sErrorMsg).Execute(); 413cdf0e10cSrcweir EndDialog(RET_CANCEL); 414cdf0e10cSrcweir return 0L; 415cdf0e10cSrcweir } 416cdf0e10cSrcweir //------------------------------------------------------------------ 417cdf0e10cSrcweir IMPL_LINK(OAdabasNewDbDlg, OnNoDefaultPath, void*, /*_pArg*/) 418cdf0e10cSrcweir { 419cdf0e10cSrcweir String sErrorMsg(ModuleRes(STR_ADABAS_NO_DEFAULTNAME)); 420cdf0e10cSrcweir ErrorBox(this, WB_OK, sErrorMsg).Execute(); 421cdf0e10cSrcweir return 0L; 422cdf0e10cSrcweir } 423cdf0e10cSrcweir //------------------------------------------------------------------ 424cdf0e10cSrcweir IMPL_LINK(OAdabasNewDbDlg, OnNoAccessRights, void*, /*_pArg*/) 425cdf0e10cSrcweir { 426cdf0e10cSrcweir String sErrorMsg(ModuleRes(STR_ADABAS_NO_ACCESSRIGHTS)); 427cdf0e10cSrcweir ErrorBox(this, WB_OK, sErrorMsg).Execute(); 428cdf0e10cSrcweir return 0L; 429cdf0e10cSrcweir } 430cdf0e10cSrcweir 431cdf0e10cSrcweir // ----------------------------------------------------------------------- 432cdf0e10cSrcweir IMPL_LINK( OAdabasNewDbDlg, ImplOKHdl, OKButton*, /*EMPTYARG*/ ) 433cdf0e10cSrcweir { 434cdf0e10cSrcweir m_SYSDEV_File = m_ET_SYSDEVSPACE.GetText(); 435cdf0e10cSrcweir m_TRANSDEV_File = m_ET_TRANSACTIONLOG.GetText(); 436cdf0e10cSrcweir m_DATADEV_File = m_ET_DATADEVSPACE.GetText(); 437cdf0e10cSrcweir 438cdf0e10cSrcweir m_Backup_File = m_ET_RESTORE.GetText(); 439cdf0e10cSrcweir if(m_bRestore) 440cdf0e10cSrcweir { 441cdf0e10cSrcweir INetURLObject aURL; 442cdf0e10cSrcweir aURL.SetSmartProtocol(INET_PROT_FILE); 443cdf0e10cSrcweir aURL.SetURL(m_Backup_File); 444cdf0e10cSrcweir Content aContent(aURL.GetURLNoPass(),Reference<XCommandEnvironment>()); 445cdf0e10cSrcweir try 446cdf0e10cSrcweir { 447cdf0e10cSrcweir if(!aContent.isDocument()) 448cdf0e10cSrcweir { 449cdf0e10cSrcweir String aString1 = String(ModuleRes(STR_ADABAS_NO_BACKUP_FILE)); 450cdf0e10cSrcweir String aString2 = String(ModuleRes(STR_STAT_WARNING)); 451cdf0e10cSrcweir SQLException aSql(aString1,NULL,aString2,1000,Any()); 452cdf0e10cSrcweir return 0; 453cdf0e10cSrcweir } 454cdf0e10cSrcweir 455cdf0e10cSrcweir } 456cdf0e10cSrcweir catch(Exception&) 457cdf0e10cSrcweir { 458cdf0e10cSrcweir String aString1 = String(ModuleRes(STR_ADABAS_NO_BACKUP_FILE)); 459cdf0e10cSrcweir String aString2 = String(ModuleRes(STR_STAT_WARNING)); 460cdf0e10cSrcweir SQLException aSql(aString1,NULL,aString2,1000,Any()); 461cdf0e10cSrcweir throw aSql; 462cdf0e10cSrcweir } 463cdf0e10cSrcweir if(m_Backup_File.Len() > 40) 464cdf0e10cSrcweir { 465cdf0e10cSrcweir InfoBox aInfo(this,ModuleRes(INFO_STR_MAX_FILE_LENGTH)); 466cdf0e10cSrcweir String aMsg(aInfo.GetMessText()); 467cdf0e10cSrcweir aMsg.SearchAndReplace(String::CreateFromAscii("\'#\'"),String::CreateFromAscii("40")); 468cdf0e10cSrcweir aInfo.SetMessText(aMsg); 469cdf0e10cSrcweir aInfo.Execute(); 470cdf0e10cSrcweir return 0; 471cdf0e10cSrcweir } 472cdf0e10cSrcweir } 473cdf0e10cSrcweir else if(m_SYSDEV_File.Len() > 40 || m_TRANSDEV_File.Len() > 40 || m_DATADEV_File.Len() > 40) 474cdf0e10cSrcweir { 475cdf0e10cSrcweir InfoBox aInfo(this,ModuleRes(INFO_STR_MAX_FILE_LENGTH)); 476cdf0e10cSrcweir String aMsg(aInfo.GetMessText()); 477cdf0e10cSrcweir aMsg.SearchAndReplace(String::CreateFromAscii("\'#\'"),String::CreateFromAscii("40")); 478cdf0e10cSrcweir aInfo.SetMessText(aMsg); 479cdf0e10cSrcweir aInfo.Execute(); 480cdf0e10cSrcweir return 0; 481cdf0e10cSrcweir } 482cdf0e10cSrcweir 483cdf0e10cSrcweir 484cdf0e10cSrcweir sal_Bool bOk = sal_False; 485cdf0e10cSrcweir 486cdf0e10cSrcweir { 487cdf0e10cSrcweir // we need url 488cdf0e10cSrcweir String sTemp; 489cdf0e10cSrcweir bOk = LocalFileHelper::ConvertPhysicalNameToURL(m_DATADEV_File,sTemp); 490cdf0e10cSrcweir m_DATADEV_File = sTemp; 491cdf0e10cSrcweir sTemp = String(); 492cdf0e10cSrcweir bOk = LocalFileHelper::ConvertPhysicalNameToURL(m_SYSDEV_File,sTemp); 493cdf0e10cSrcweir m_SYSDEV_File = sTemp; 494cdf0e10cSrcweir sTemp = String(); 495cdf0e10cSrcweir bOk = LocalFileHelper::ConvertPhysicalNameToURL(m_TRANSDEV_File,sTemp); 496cdf0e10cSrcweir m_TRANSDEV_File = sTemp; 497cdf0e10cSrcweir } 498cdf0e10cSrcweir String aErrorMessage = String(ModuleRes(STR_DEVSPACE_NO_FILE)); 499cdf0e10cSrcweir if(!m_SYSDEV_File.Len()) 500cdf0e10cSrcweir aErrorMessage.SearchAndReplace(String::CreateFromAscii("$name$"),String::CreateFromAscii("SYSDEVSPACE")); 501cdf0e10cSrcweir else if(!m_TRANSDEV_File.Len()) 502cdf0e10cSrcweir aErrorMessage.SearchAndReplace(String::CreateFromAscii("$name$"),String::CreateFromAscii("TRANSACTIONLOG")); 503cdf0e10cSrcweir else if(!m_DATADEV_File.Len()) 504cdf0e10cSrcweir aErrorMessage.SearchAndReplace(String::CreateFromAscii("$name$"),String::CreateFromAscii("DATDEVSPACE")); 505cdf0e10cSrcweir else if(m_ET_SYSUSR.GetText() == m_ET_CONUSR.GetText()) 506cdf0e10cSrcweir aErrorMessage = String(ModuleRes(STR_NO_SAME_USER)); 507cdf0e10cSrcweir else 508cdf0e10cSrcweir bOk = sal_True; 509cdf0e10cSrcweir 510cdf0e10cSrcweir 511cdf0e10cSrcweir if (!bOk) 512cdf0e10cSrcweir { 513cdf0e10cSrcweir ErrorBox(this, WB_OK, aErrorMessage).Execute(); 514cdf0e10cSrcweir return sal_False; 515cdf0e10cSrcweir } 516cdf0e10cSrcweir 517cdf0e10cSrcweir sal_Int32 nPos = 0; 518cdf0e10cSrcweir Sequence< PropertyValue> aCreateArgs(m_bRestore ? 14 : 12); 519cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_CONTROL_USER; 520cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= ::rtl::OUString(m_ET_CONUSR.GetText().ToUpperAscii()); 521cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_CONTROL_PASSWORD; 522cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= ::rtl::OUString(m_ConPwd); 523cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_USER; 524cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= ::rtl::OUString(m_ET_SYSUSR.GetText().ToUpperAscii()); 525cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_PASSWORD; 526cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= ::rtl::OUString(m_SysPwd); 527cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_DOMAINPASSWORD; 528cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= ::rtl::OUString(m_DomainPwd); 529cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_CACHESIZE; 530cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= ::rtl::OUString::valueOf(sal_Int32(m_NF_CACHE_SIZE.GetValue()*256)); 531cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_DATABASENAME; 532cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= ::rtl::OUString(m_ET_DATABASENAME.GetText().ToUpperAscii()); 533cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_DATADEVSPACE; 534cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= ::rtl::OUString(m_DATADEV_File); 535cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_SYSDEVSPACE; 536cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= ::rtl::OUString(m_SYSDEV_File); 537cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_TRANSACTION_LOG; 538cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= ::rtl::OUString(m_TRANSDEV_File); 539cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_DATADEVSIZE; 540cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= sal_Int32(m_NF_DATADEVSPACE_SIZE.GetValue()*256); 541cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_LOGDEVSIZE; 542cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= sal_Int32(m_NF_TRANSACTIONLOG_SIZE.GetValue()*256); 543cdf0e10cSrcweir 544cdf0e10cSrcweir if(m_bRestore) 545cdf0e10cSrcweir { 546cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_RESTOREDATABASE; 547cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= ::cppu::bool2any(sal_True); 548cdf0e10cSrcweir aCreateArgs[nPos].Name = PROPERTY_BACKUPNAME; 549cdf0e10cSrcweir aCreateArgs[nPos++].Value <<= ::rtl::OUString(m_Backup_File); 550cdf0e10cSrcweir } 551cdf0e10cSrcweir 552cdf0e10cSrcweir Disable(); 553cdf0e10cSrcweir 554cdf0e10cSrcweir m_aCreatorWait = ::std::auto_ptr<WaitObject>(new WaitObject(this)); 555cdf0e10cSrcweir m_aCreatorThread = ::std::auto_ptr<ODatabaseCreator>(new ODatabaseCreator(m_xCreateCatalog,this,m_xORB,aCreateArgs)); 556cdf0e10cSrcweir m_aCreatorThread->setTerminateHandler(LINK(this,OAdabasNewDbDlg,TerminateHdl)); 557cdf0e10cSrcweir m_aCreatorThread->create(); 558cdf0e10cSrcweir 559cdf0e10cSrcweir return sal_True; 560cdf0e10cSrcweir } 561cdf0e10cSrcweir //------------------------------------------------------------------------- 562cdf0e10cSrcweir IMPL_LINK( OAdabasNewDbDlg, TerminateHdl, void*, /*NOTUSABLE*/ ) 563cdf0e10cSrcweir { 564cdf0e10cSrcweir EndDialog(RET_OK); 565cdf0e10cSrcweir return 0; 566cdf0e10cSrcweir } 567cdf0e10cSrcweir //------------------------------------------------------------------------ 568cdf0e10cSrcweir IMPL_LINK( OAdabasNewDbDlg, LoseFocusHdl, Edit *, pEdit ) 569cdf0e10cSrcweir { 570cdf0e10cSrcweir if(&m_ET_SYSDEVSPACE == pEdit) 571cdf0e10cSrcweir m_SYSDEV_File = pEdit->GetText(); 572cdf0e10cSrcweir else if(&m_ET_TRANSACTIONLOG == pEdit) 573cdf0e10cSrcweir m_TRANSDEV_File = pEdit->GetText(); 574cdf0e10cSrcweir else if(&m_ET_DATADEVSPACE == pEdit) 575cdf0e10cSrcweir m_DATADEV_File = pEdit->GetText(); 576cdf0e10cSrcweir else if(&m_ET_RESTORE == pEdit) 577cdf0e10cSrcweir m_Backup_File = pEdit->GetText(); 578cdf0e10cSrcweir else if(&m_ET_DATABASENAME == pEdit) 579cdf0e10cSrcweir {// check if the new dbname already exists 580cdf0e10cSrcweir String sNewDbName = pEdit->GetText(); 581cdf0e10cSrcweir String sConfig = m_sDbConfig; 582cdf0e10cSrcweir sConfig.AppendAscii("config/"); 583cdf0e10cSrcweir sConfig += sNewDbName; 584cdf0e10cSrcweir if(UCBContentHelper::IsDocument(sConfig)) 585cdf0e10cSrcweir { 586cdf0e10cSrcweir String sErrorMessage = String(ModuleRes(STR_ADABAS_DB_EXISTS)); 587cdf0e10cSrcweir ErrorBox(this, WB_OK, sErrorMessage).Execute(); 588cdf0e10cSrcweir m_DBName.Erase(); 589cdf0e10cSrcweir } 590cdf0e10cSrcweir else if ( m_DBName.SearchAscii(" ") != STRING_NOTFOUND ) 591cdf0e10cSrcweir { 592cdf0e10cSrcweir String sErrorMessage = String(ModuleRes(STR_ADABAS_DB_EXISTS)); 593cdf0e10cSrcweir ErrorBox(this, WB_OK, sErrorMessage).Execute(); 594cdf0e10cSrcweir m_DBName = m_DBName.GetToken(0,' '); 595cdf0e10cSrcweir } 596cdf0e10cSrcweir else 597cdf0e10cSrcweir m_DBName = sNewDbName; 598cdf0e10cSrcweir } 599cdf0e10cSrcweir 600cdf0e10cSrcweir CheckBitmaps(); 601cdf0e10cSrcweir return 0; 602cdf0e10cSrcweir } 603cdf0e10cSrcweir //------------------------------------------------------------------------ 604cdf0e10cSrcweir IMPL_LINK( OAdabasNewDbDlg, LoadButtonClickHdl, Button *, /*pButton*/ ) 605cdf0e10cSrcweir { 606cdf0e10cSrcweir ::sfx2::FileDialogHelper aLoad(WB_3DLOOK | WB_STDMODAL | WB_OPEN); 607cdf0e10cSrcweir if(!m_Backup_File.Len()) 608cdf0e10cSrcweir aLoad.SetDisplayDirectory(SvtPathOptions().GetWorkPath()); 609cdf0e10cSrcweir else 610cdf0e10cSrcweir aLoad.SetDisplayDirectory(m_Backup_File); 611cdf0e10cSrcweir if (aLoad.Execute()) 612cdf0e10cSrcweir { 613cdf0e10cSrcweir INetURLObject aUrl(aLoad.GetPath()); 614cdf0e10cSrcweir m_Backup_File = aUrl.PathToFileName(); 615cdf0e10cSrcweir if(m_Backup_File.Len() > 40) 616cdf0e10cSrcweir { 617cdf0e10cSrcweir InfoBox aInfo(this,ModuleRes(INFO_STR_MAX_FILE_LENGTH)); 618cdf0e10cSrcweir String aMsg(aInfo.GetMessText()); 619cdf0e10cSrcweir aMsg.SearchAndReplace(String::CreateFromAscii("\'#\'"),String::CreateFromAscii("40")); 620cdf0e10cSrcweir aInfo.SetMessText(aMsg); 621cdf0e10cSrcweir } 622cdf0e10cSrcweir m_ET_RESTORE.SetText(m_Backup_File); 623cdf0e10cSrcweir } 624cdf0e10cSrcweir CheckBitmaps(); 625cdf0e10cSrcweir return 0; 626cdf0e10cSrcweir } 627cdf0e10cSrcweir //------------------------------------------------------------------------ 628cdf0e10cSrcweir IMPL_LINK( OAdabasNewDbDlg, ButtonClickHdl, Button *, pButton ) 629cdf0e10cSrcweir { 630cdf0e10cSrcweir WinBits nBits(WB_3DLOOK|WB_STDMODAL|WB_SAVEAS); 631cdf0e10cSrcweir ::sfx2::FileDialogHelper aFileDlg( static_cast<sal_uInt32>(nBits) ); // new FileDialog( this, nBits ); 632cdf0e10cSrcweir 633cdf0e10cSrcweir String aPath; 634cdf0e10cSrcweir if(pButton == &m_PB_SYSDEVSPACE) 635cdf0e10cSrcweir aPath = m_SYSDEV_File; 636cdf0e10cSrcweir else if(pButton == &m_PB_TRANSACTIONLOG) 637cdf0e10cSrcweir aPath = m_TRANSDEV_File; 638cdf0e10cSrcweir else if(pButton == &m_PB_DATADEVSPACE) 639cdf0e10cSrcweir aPath = m_DATADEV_File; 640cdf0e10cSrcweir 641cdf0e10cSrcweir String sUrl; 642cdf0e10cSrcweir ::utl::LocalFileHelper::ConvertPhysicalNameToURL(aPath,sUrl); 643cdf0e10cSrcweir aFileDlg.SetDisplayDirectory(sUrl); 644cdf0e10cSrcweir 645cdf0e10cSrcweir 646cdf0e10cSrcweir 647cdf0e10cSrcweir if (aFileDlg.Execute() == ERRCODE_NONE) 648cdf0e10cSrcweir { 649cdf0e10cSrcweir INetURLObject aUrl(aFileDlg.GetPath()); 650cdf0e10cSrcweir if(pButton == &m_PB_SYSDEVSPACE) 651cdf0e10cSrcweir { 652cdf0e10cSrcweir m_SYSDEV_File = aUrl.PathToFileName(); 653cdf0e10cSrcweir if(m_SYSDEV_File.Len() > 40) 654cdf0e10cSrcweir { 655cdf0e10cSrcweir InfoBox aInfo(this,ModuleRes(INFO_STR_MAX_FILE_LENGTH)); 656cdf0e10cSrcweir String aMsg(aInfo.GetMessText()); 657cdf0e10cSrcweir aMsg.SearchAndReplace(String::CreateFromAscii("\'#\'"),String::CreateFromAscii("40")); 658cdf0e10cSrcweir aInfo.SetMessText(aMsg); 659cdf0e10cSrcweir aInfo.Execute(); 660cdf0e10cSrcweir return 0; 661cdf0e10cSrcweir } 662cdf0e10cSrcweir m_ET_SYSDEVSPACE.SetText(aUrl.PathToFileName()); 663cdf0e10cSrcweir } 664cdf0e10cSrcweir else if(pButton == &m_PB_TRANSACTIONLOG) 665cdf0e10cSrcweir { 666cdf0e10cSrcweir m_TRANSDEV_File = aUrl.PathToFileName(); 667cdf0e10cSrcweir if(m_TRANSDEV_File.Len() > 40) 668cdf0e10cSrcweir { 669cdf0e10cSrcweir InfoBox aInfo(this,ModuleRes(INFO_STR_MAX_FILE_LENGTH)); 670cdf0e10cSrcweir String aMsg(aInfo.GetMessText()); 671cdf0e10cSrcweir aMsg.SearchAndReplace(String::CreateFromAscii("\'#\'"),String::CreateFromAscii("40")); 672cdf0e10cSrcweir aInfo.SetMessText(aMsg); 673cdf0e10cSrcweir aInfo.Execute(); 674cdf0e10cSrcweir return 0; 675cdf0e10cSrcweir } 676cdf0e10cSrcweir m_ET_TRANSACTIONLOG.SetText(aUrl.PathToFileName()); 677cdf0e10cSrcweir } 678cdf0e10cSrcweir else if(pButton == &m_PB_DATADEVSPACE) 679cdf0e10cSrcweir { 680cdf0e10cSrcweir m_DATADEV_File = aUrl.PathToFileName(); 681cdf0e10cSrcweir if(m_DATADEV_File.Len() > 40) 682cdf0e10cSrcweir { 683cdf0e10cSrcweir InfoBox aInfo(this,ModuleRes(INFO_STR_MAX_FILE_LENGTH)); 684cdf0e10cSrcweir String aMsg(aInfo.GetMessText()); 685cdf0e10cSrcweir aMsg.SearchAndReplace(String::CreateFromAscii("\'#\'"),String::CreateFromAscii("40")); 686cdf0e10cSrcweir aInfo.SetMessText(aMsg); 687cdf0e10cSrcweir aInfo.Execute(); 688cdf0e10cSrcweir return 0; 689cdf0e10cSrcweir } 690cdf0e10cSrcweir m_ET_DATADEVSPACE.SetText(aUrl.PathToFileName()); 691cdf0e10cSrcweir } 692cdf0e10cSrcweir } 693cdf0e10cSrcweir 694cdf0e10cSrcweir CheckBitmaps(); 695cdf0e10cSrcweir return 0; 696cdf0e10cSrcweir } 697cdf0e10cSrcweir //------------------------------------------------------------------------ 698cdf0e10cSrcweir IMPL_LINK( OAdabasNewDbDlg, PwdClickHdl, Button *, pButton ) 699cdf0e10cSrcweir { 700cdf0e10cSrcweir SfxPasswordDialog aDlg(this); 701cdf0e10cSrcweir aDlg.ShowExtras(SHOWEXTRAS_CONFIRM); 702cdf0e10cSrcweir if(aDlg.Execute()) 703cdf0e10cSrcweir { 704cdf0e10cSrcweir String sPwd = aDlg.GetPassword().ToUpperAscii(); 705cdf0e10cSrcweir // no space in password allowed 706cdf0e10cSrcweir if ( sPwd.GetTokenCount(' ') == 1 ) 707cdf0e10cSrcweir { 708cdf0e10cSrcweir if(pButton == &m_PB_CONPWD) 709cdf0e10cSrcweir { 710cdf0e10cSrcweir m_ConPwd = sPwd; 711cdf0e10cSrcweir m_nSetBitmap &=~2; 712cdf0e10cSrcweir } 713cdf0e10cSrcweir else if(pButton == &m_PB_SYSPWD) 714cdf0e10cSrcweir { 715cdf0e10cSrcweir m_SysPwd = sPwd; 716cdf0e10cSrcweir if(!m_DomainPwd.Len()) 717cdf0e10cSrcweir { 718cdf0e10cSrcweir m_nSetBitmap = 1; 719cdf0e10cSrcweir m_DomainPwd = m_SysPwd; 720cdf0e10cSrcweir } 721cdf0e10cSrcweir if(!m_ConPwd.Len()) 722cdf0e10cSrcweir { 723cdf0e10cSrcweir m_nSetBitmap |= 2; 724cdf0e10cSrcweir m_ConPwd = m_SysPwd; 725cdf0e10cSrcweir } 726cdf0e10cSrcweir 727cdf0e10cSrcweir } 728cdf0e10cSrcweir else if(pButton == &m_PB_DOMAINPWD) 729cdf0e10cSrcweir { 730cdf0e10cSrcweir m_DomainPwd = sPwd; 731cdf0e10cSrcweir m_nSetBitmap &=~1; 732cdf0e10cSrcweir } 733cdf0e10cSrcweir } 734cdf0e10cSrcweir else 735cdf0e10cSrcweir { 736cdf0e10cSrcweir String sErrorMsg(ModuleRes(STR_ADABAS_PASSWORD_ILLEGAL)); 737cdf0e10cSrcweir ErrorBox(this, WB_OK, sErrorMsg).Execute(); 738cdf0e10cSrcweir } 739cdf0e10cSrcweir } 740cdf0e10cSrcweir CheckBitmaps(); 741cdf0e10cSrcweir return 0; 742cdf0e10cSrcweir } 743cdf0e10cSrcweir //------------------------------------------------------------------------ 744cdf0e10cSrcweir void OAdabasNewDbDlg::CheckBitmaps() 745cdf0e10cSrcweir { 746cdf0e10cSrcweir sal_Int16 i=0; 747cdf0e10cSrcweir if(m_ConPwd.Len() && m_ET_CONUSR.GetText().Len()) 748cdf0e10cSrcweir i++,m_BMP_CON.SetImage(ModuleRes(((m_nSetBitmap & 2) == 2) ? DEFAULT_BLUE : CHECK_GREEN)); 749cdf0e10cSrcweir else 750cdf0e10cSrcweir m_BMP_CON.SetImage(ModuleRes(UNCHECK_RED)); 751cdf0e10cSrcweir 752cdf0e10cSrcweir if(!m_bRestore) 753cdf0e10cSrcweir { 754cdf0e10cSrcweir if(m_SysPwd.Len() && m_ET_SYSUSR.GetText().Len()) 755cdf0e10cSrcweir i++,m_BMP_SYS.SetImage(ModuleRes(CHECK_GREEN)); 756cdf0e10cSrcweir else 757cdf0e10cSrcweir m_BMP_SYS.SetImage(ModuleRes(UNCHECK_RED)); 758cdf0e10cSrcweir 759cdf0e10cSrcweir if(m_DomainPwd.Len() ) 760cdf0e10cSrcweir i++,m_BMP_DOMAIN.SetImage(ModuleRes(((m_nSetBitmap & 1) == 1) ? DEFAULT_BLUE : CHECK_GREEN)); 761cdf0e10cSrcweir else 762cdf0e10cSrcweir m_BMP_DOMAIN.SetImage(ModuleRes(UNCHECK_RED)); 763cdf0e10cSrcweir } 764cdf0e10cSrcweir else if(m_Backup_File.Len()) 765cdf0e10cSrcweir i+=2; 766cdf0e10cSrcweir 767cdf0e10cSrcweir if(m_ET_SYSDEVSPACE.GetText().Len() && m_ET_TRANSACTIONLOG.GetText().Len() && m_ET_DATADEVSPACE.GetText().Len() && 768cdf0e10cSrcweir m_ET_SYSDEVSPACE.GetText() != m_ET_TRANSACTIONLOG.GetText() && m_ET_SYSDEVSPACE.GetText() != m_ET_DATADEVSPACE.GetText() && 769cdf0e10cSrcweir m_ET_DATADEVSPACE.GetText() != m_ET_TRANSACTIONLOG.GetText()) 770cdf0e10cSrcweir i++; 771cdf0e10cSrcweir 772cdf0e10cSrcweir if(m_DBName.Len()) 773cdf0e10cSrcweir i++; 774cdf0e10cSrcweir 775cdf0e10cSrcweir m_PB_OK.Enable(i == 5); 776cdf0e10cSrcweir } 777cdf0e10cSrcweir // ----------------------------------------------------------------------------- 778cdf0e10cSrcweir sal_Bool OAdabasNewDbDlg::fillEnvironmentVariable(const ::rtl::OUString& _sVariableName,String& _rsValue) 779cdf0e10cSrcweir { 780cdf0e10cSrcweir rtl_uString* pDbVar = NULL; 781cdf0e10cSrcweir sal_Bool bError = sal_False; 782cdf0e10cSrcweir if(osl_getEnvironment(_sVariableName.pData,&pDbVar) == osl_Process_E_None && pDbVar) 783cdf0e10cSrcweir { 784cdf0e10cSrcweir _rsValue = pDbVar; 785cdf0e10cSrcweir String sTemp; 786cdf0e10cSrcweir LocalFileHelper::ConvertPhysicalNameToURL(_rsValue,sTemp); 787cdf0e10cSrcweir _rsValue = sTemp; 788cdf0e10cSrcweir rtl_uString_release(pDbVar); 789cdf0e10cSrcweir pDbVar = NULL; 790cdf0e10cSrcweir 791cdf0e10cSrcweir // ensure dir exists 792cdf0e10cSrcweir osl::FileBase::RC rc = osl::Directory::createPath(_rsValue); 793cdf0e10cSrcweir if(rc != osl::FileBase::E_None && rc != osl::FileBase::E_EXIST) 794cdf0e10cSrcweir { 795cdf0e10cSrcweir bError = sal_True; 796cdf0e10cSrcweir PostUserEvent(LINK(this, OAdabasNewDbDlg, OnError)); 797cdf0e10cSrcweir } 798cdf0e10cSrcweir } 799cdf0e10cSrcweir return bError; 800cdf0e10cSrcweir } 801cdf0e10cSrcweir // ----------------------------------------------------------------------------- 802