1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 29*cdf0e10cSrcweir #include "precompiled_dbaccess.hxx" 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir #ifndef DBACCESS_SHARED_DBUSTRINGS_HRC 32*cdf0e10cSrcweir #include "dbustrings.hrc" 33*cdf0e10cSrcweir #endif 34*cdf0e10cSrcweir #ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_ 35*cdf0e10cSrcweir #include <toolkit/awt/vclxwindow.hxx> 36*cdf0e10cSrcweir #endif 37*cdf0e10cSrcweir #ifndef _DBU_REGHELPER_HXX_ 38*cdf0e10cSrcweir #include "dbu_reghelper.hxx" 39*cdf0e10cSrcweir #endif 40*cdf0e10cSrcweir #ifndef _DBAUI_UNOADMIN_ 41*cdf0e10cSrcweir #include "unoadmin.hxx" 42*cdf0e10cSrcweir #endif 43*cdf0e10cSrcweir #ifndef _DBAUI_DBADMIN_HXX_ 44*cdf0e10cSrcweir #include "dbadmin.hxx" 45*cdf0e10cSrcweir #endif 46*cdf0e10cSrcweir #ifndef _COMPHELPER_EXTRACT_HXX_ 47*cdf0e10cSrcweir #include <comphelper/extract.hxx> 48*cdf0e10cSrcweir #endif 49*cdf0e10cSrcweir #ifndef _CPPUHELPER_TYPEPROVIDER_HXX_ 50*cdf0e10cSrcweir #include <cppuhelper/typeprovider.hxx> 51*cdf0e10cSrcweir #endif 52*cdf0e10cSrcweir #ifndef _COMPHELPER_PROPERTY_HXX_ 53*cdf0e10cSrcweir #include <comphelper/property.hxx> 54*cdf0e10cSrcweir #endif 55*cdf0e10cSrcweir #ifndef _OSL_DIAGNOSE_H_ 56*cdf0e10cSrcweir #include <osl/diagnose.h> 57*cdf0e10cSrcweir #endif 58*cdf0e10cSrcweir #ifndef _SV_MSGBOX_HXX 59*cdf0e10cSrcweir #include <vcl/msgbox.hxx> 60*cdf0e10cSrcweir #endif 61*cdf0e10cSrcweir 62*cdf0e10cSrcweir // --- needed because of the solar mutex 63*cdf0e10cSrcweir #ifndef _VOS_MUTEX_HXX_ 64*cdf0e10cSrcweir #include <vos/mutex.hxx> 65*cdf0e10cSrcweir #endif 66*cdf0e10cSrcweir #ifndef _SV_SVAPP_HXX 67*cdf0e10cSrcweir #include <vcl/svapp.hxx> 68*cdf0e10cSrcweir #endif 69*cdf0e10cSrcweir // --- 70*cdf0e10cSrcweir 71*cdf0e10cSrcweir #define THISREF() static_cast< XServiceInfo* >(this) 72*cdf0e10cSrcweir 73*cdf0e10cSrcweir //......................................................................... 74*cdf0e10cSrcweir namespace dbaui 75*cdf0e10cSrcweir { 76*cdf0e10cSrcweir //......................................................................... 77*cdf0e10cSrcweir 78*cdf0e10cSrcweir using namespace ::com::sun::star::uno; 79*cdf0e10cSrcweir using namespace ::com::sun::star::lang; 80*cdf0e10cSrcweir using namespace ::com::sun::star::beans; 81*cdf0e10cSrcweir 82*cdf0e10cSrcweir //========================================================================= 83*cdf0e10cSrcweir DBG_NAME(ODatabaseAdministrationDialog) 84*cdf0e10cSrcweir //------------------------------------------------------------------------- 85*cdf0e10cSrcweir ODatabaseAdministrationDialog::ODatabaseAdministrationDialog(const Reference< XMultiServiceFactory >& _rxORB) 86*cdf0e10cSrcweir :ODatabaseAdministrationDialogBase(_rxORB) 87*cdf0e10cSrcweir ,m_pDatasourceItems(NULL) 88*cdf0e10cSrcweir ,m_pItemPool(NULL) 89*cdf0e10cSrcweir ,m_pItemPoolDefaults(NULL) 90*cdf0e10cSrcweir ,m_pCollection(NULL) 91*cdf0e10cSrcweir { 92*cdf0e10cSrcweir DBG_CTOR(ODatabaseAdministrationDialog,NULL); 93*cdf0e10cSrcweir 94*cdf0e10cSrcweir m_pCollection = new ::dbaccess::ODsnTypeCollection(_rxORB); 95*cdf0e10cSrcweir ODbAdminDialog::createItemSet(m_pDatasourceItems, m_pItemPool, m_pItemPoolDefaults, m_pCollection); 96*cdf0e10cSrcweir } 97*cdf0e10cSrcweir 98*cdf0e10cSrcweir //------------------------------------------------------------------------- 99*cdf0e10cSrcweir ODatabaseAdministrationDialog::~ODatabaseAdministrationDialog() 100*cdf0e10cSrcweir { 101*cdf0e10cSrcweir // we do this here cause the base class' call to destroyDialog won't reach us anymore : we're within an dtor, 102*cdf0e10cSrcweir // so this virtual-method-call the base class does does not work, we're already dead then ... 103*cdf0e10cSrcweir if (m_pDialog) 104*cdf0e10cSrcweir { 105*cdf0e10cSrcweir ::osl::MutexGuard aGuard(m_aMutex); 106*cdf0e10cSrcweir if (m_pDialog) 107*cdf0e10cSrcweir destroyDialog(); 108*cdf0e10cSrcweir } 109*cdf0e10cSrcweir 110*cdf0e10cSrcweir delete m_pCollection; 111*cdf0e10cSrcweir m_pCollection = NULL; 112*cdf0e10cSrcweir 113*cdf0e10cSrcweir DBG_DTOR(ODatabaseAdministrationDialog,NULL); 114*cdf0e10cSrcweir } 115*cdf0e10cSrcweir //------------------------------------------------------------------------- 116*cdf0e10cSrcweir void ODatabaseAdministrationDialog::destroyDialog() 117*cdf0e10cSrcweir { 118*cdf0e10cSrcweir ODatabaseAdministrationDialogBase::destroyDialog(); 119*cdf0e10cSrcweir ODbAdminDialog::destroyItemSet(m_pDatasourceItems, m_pItemPool, m_pItemPoolDefaults); 120*cdf0e10cSrcweir } 121*cdf0e10cSrcweir //------------------------------------------------------------------------------ 122*cdf0e10cSrcweir void ODatabaseAdministrationDialog::implInitialize(const Any& _rValue) 123*cdf0e10cSrcweir { 124*cdf0e10cSrcweir PropertyValue aProperty; 125*cdf0e10cSrcweir if (_rValue >>= aProperty) 126*cdf0e10cSrcweir { 127*cdf0e10cSrcweir if (0 == aProperty.Name.compareToAscii("InitialSelection")) 128*cdf0e10cSrcweir { 129*cdf0e10cSrcweir m_aInitialSelection = aProperty.Value; 130*cdf0e10cSrcweir } 131*cdf0e10cSrcweir else if (0 == aProperty.Name.compareToAscii("ActiveConnection")) 132*cdf0e10cSrcweir { 133*cdf0e10cSrcweir m_xActiveConnection.set(aProperty.Value,UNO_QUERY); 134*cdf0e10cSrcweir } 135*cdf0e10cSrcweir else 136*cdf0e10cSrcweir ODatabaseAdministrationDialogBase::implInitialize(_rValue); 137*cdf0e10cSrcweir } 138*cdf0e10cSrcweir else 139*cdf0e10cSrcweir ODatabaseAdministrationDialogBase::implInitialize(_rValue); 140*cdf0e10cSrcweir } 141*cdf0e10cSrcweir 142*cdf0e10cSrcweir //......................................................................... 143*cdf0e10cSrcweir } // namespace dbaui 144*cdf0e10cSrcweir //......................................................................... 145*cdf0e10cSrcweir 146