diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-01-28 20:52:10 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-01-28 20:52:10 +0100 |
commit | 00a6c3c148e4c0e867816b4c361abb19d9ece7eb (patch) | |
tree | 9e9f67205cd5b72f1031721273e1534a3a1e5b0f /dbaccess/source/ui/dlg | |
parent | 28068f42895821cbfc399fe50c9888c566dbdc4d (diff) |
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'dbaccess/source/ui/dlg')
111 files changed, 0 insertions, 28961 deletions
diff --git a/dbaccess/source/ui/dlg/AdabasPage.hrc b/dbaccess/source/ui/dlg/AdabasPage.hrc deleted file mode 100644 index 52b14304d..000000000 --- a/dbaccess/source/ui/dlg/AdabasPage.hrc +++ /dev/null @@ -1,50 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef DBAUI_ADABASPAGE_HRC -#define DBAUI_ADABASPAGE_HRC - -#define FT_CACHE_SIZE 1 -#define FT_DATA_INCREMENT 2 -#define FT_CTRLPASSWORD 3 -#define FT_CTRLUSERNAME 4 - - -#define NF_DATA_INCREMENT 1 -#define NF_CACHE_SIZE 2 - -#define CB_SHUTDB 1 - -#define FL_1 1 - -#define PB_STAT 1 - -#define ET_CTRLPASSWORD 1 -#define ET_CTRLUSERNAME 2 - -#endif // DBAUI_ADABASPAGE_HRC - - diff --git a/dbaccess/source/ui/dlg/AdabasStat.cxx b/dbaccess/source/ui/dlg/AdabasStat.cxx deleted file mode 100644 index af03c78d5..000000000 --- a/dbaccess/source/ui/dlg/AdabasStat.cxx +++ /dev/null @@ -1,305 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include <cppuhelper/exc_hlp.hxx> -#include <tools/diagnose_ex.h> -#include <osl/diagnose.h> -#include "AdabasStat.hxx" -#include <comphelper/types.hxx> -#include <com/sun/star/sdbc/XStatement.hpp> -#include <com/sun/star/sdbc/XRow.hpp> -#include <com/sun/star/sdbc/XResultSet.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include "AdabasStat.hrc" -#include "dbu_dlg.hrc" -#include "dbustrings.hrc" -#include "UITools.hxx" -#include <connectivity/dbtools.hxx> -#include "sqlmessage.hxx" - -using namespace dbaui; -DBG_NAME(OAdabasStatistics) -namespace dbaui -{ - using namespace dbtools; - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::beans; - using namespace ::com::sun::star::sdbc; - using namespace ::com::sun::star::lang; - - - -OAdabasStatistics::OAdabasStatistics( Window* pParent, - const ::rtl::OUString& _rUser, - const Reference< ::com::sun::star::sdbc::XConnection >& _xCurrentConnection, - const Reference< XMultiServiceFactory >& _xFactory) - : ModalDialog( pParent, ModuleRes(DLG_ADABASSTAT) ) - ,m_FL_FILES( this , ModuleRes(FL_FILES)) - ,m_FT_SYSDEVSPACE( this , ModuleRes(FT_SYSDEVSPACE)) - ,m_ET_SYSDEVSPACE( this , STR_ADABAS_HELP_SYSDEVSPACE,ModuleRes(ET_SYSDEVSPACE)) - ,m_FT_TRANSACTIONLOG( this , ModuleRes(FT_TRANSACTIONLOG)) - ,m_ET_TRANSACTIONLOG( this , STR_ADABAS_HELP_TRANSACT,ModuleRes(ET_TRANSACTIONLOG)) - ,m_FT_DATADEVSPACE( this , ModuleRes(FT_DATADEVSPACE)) - ,m_LB_DATADEVS( this , STR_ADABAS_HELP_DATADEVSPACES,ModuleRes(LB_DATADEVS)) - ,m_FL_SIZES( this , ModuleRes(FL_SIZES)) - ,m_FT_SIZE( this , ModuleRes(FT_SIZE)) - ,m_ET_SIZE( this , STR_ADABAS_HELP_SIZE,ModuleRes(ET_SIZE)) - ,m_FT_FREESIZE( this , ModuleRes(FT_FREESIZE)) - ,m_ET_FREESIZE( this , STR_ADABAS_HELP_FREESIZE,ModuleRes(ET_FREESIZE)) - ,m_FT_MEMORYUSING( this , ModuleRes(FT_MEMORYUSING)) - ,m_ET_MEMORYUSING( this , STR_ADABAS_HELP_MEMORYUSING,ModuleRes(ET_MEMORYUSING)) - ,m_PB_OK( this , ModuleRes(PB_OK)) - ,m_xConnection(_xCurrentConnection) - ,m_bErrorShown(sal_False) -{ - DBG_CTOR(OAdabasStatistics,NULL); - - FreeResource(); - - OSL_ENSURE(m_xConnection.is(),"No connection"); - if(m_xConnection.is()) - { - Reference<XStatement> xStmt; - Reference<XResultSet> xRes; - - sal_Bool bCanSelect = sal_False; - ::rtl::OUString aStmt; - ::rtl::OUString sSchema = _rUser.toAsciiUpperCase(); - - Reference<XDatabaseMetaData> xMetaData; - // first read the sizes - try - { - xMetaData = m_xConnection->getMetaData(); - bCanSelect = checkSystemTable(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SERVERDBSTATISTICS")), sSchema); - - if(bCanSelect) - { - aStmt = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SELECT SERVERDBSIZE, UNUSEDPAGES FROM ")); - - aStmt += ::dbtools::quoteTableName(xMetaData,sSchema,::dbtools::eInDataManipulation); - aStmt += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".\"SERVERDBSTATISTICS\"")); - - xStmt = m_xConnection->createStatement(); - xRes = xStmt->executeQuery(aStmt); - - - Reference<XRow> xRow(xRes,UNO_QUERY); - // first the db sizes - if(xRes.is() && xRes->next()) - { - double nUsedPages = xRow->getInt(1) / 256; - double nFreePages = xRow->getInt(2) / 256; - - m_ET_SIZE.SetText(::rtl::OUString::valueOf((sal_Int32)nUsedPages)); - m_ET_FREESIZE.SetText(::rtl::OUString::valueOf((sal_Int32)nFreePages)); - m_ET_MEMORYUSING.SetValue(static_cast<sal_Int32>(((nUsedPages-nFreePages)/nUsedPages)*100)); - } - else - showError(); - - xRow = NULL; - } - else - showError(); - } - catch(const SQLException& ) - { - ::dbaui::showError( SQLExceptionInfo( ::cppu::getCaughtException() ), pParent, _xFactory ); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - try - { - ::comphelper::disposeComponent(xStmt); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - - // now fill the datadev spaces - if(bCanSelect) - { - try - { - bCanSelect = checkSystemTable(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DATADEVSPACES")), sSchema); - - if(bCanSelect) - { - // then the db files - aStmt = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SELECT DEVSPACENAME FROM ")); - aStmt += ::dbtools::quoteTableName(xMetaData,sSchema,::dbtools::eInDataManipulation); - aStmt += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".\"DATADEVSPACES\"")); - xStmt = m_xConnection->createStatement(); - xRes = xStmt->executeQuery(aStmt); - - Reference<XRow> xRow(xRes,UNO_QUERY); - while(xRes.is() && xRes->next()) - { - m_LB_DATADEVS.InsertEntry(xRow->getString(1)); - } - if(!m_LB_DATADEVS.GetEntryCount()) - showError(); - } - else - showError(); - } - catch(const SQLException& e) - { - ::dbaui::showError(SQLExceptionInfo(e),pParent,_xFactory); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - try - { - ::comphelper::disposeComponent(xStmt); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - - // now fill the sysdatadev spaces - if(bCanSelect) - { - try - { - bCanSelect = checkSystemTable(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CONFIGURATION")), sSchema); - - if(bCanSelect) - { - aStmt = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SELECT * FROM ")); - aStmt += ::dbtools::quoteTableName(xMetaData,sSchema,::dbtools::eInDataManipulation); - aStmt += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".CONFIGURATION WHERE DESCRIPTION LIKE 'SYS%DEVSPACE%NAME'")); - xStmt = m_xConnection->createStatement(); - xRes = xStmt->executeQuery(aStmt); - if(xRes.is() && xRes->next()) - { - Reference<XRow> xRow(xRes,UNO_QUERY); - m_ET_SYSDEVSPACE.SetText(xRow->getString(2)); - } - else - showError(); - - aStmt = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SELECT * FROM ")); - aStmt += ::dbtools::quoteTableName(xMetaData,sSchema,::dbtools::eInDataManipulation); - aStmt += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".CONFIGURATION WHERE DESCRIPTION = 'TRANSACTION LOG NAME'")); - xRes = xStmt->executeQuery(aStmt); - if(xRes.is() && xRes->next()) - { - Reference<XRow> xRow(xRes,UNO_QUERY); - m_ET_TRANSACTIONLOG.SetText(xRow->getString(2)); - } - else - showError(); - } - else - showError(); - } - catch(const SQLException& e) - { - ::dbaui::showError(SQLExceptionInfo(e),pParent,_xFactory); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - try - { - ::comphelper::disposeComponent(xStmt); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - } - } - } - - m_ET_SYSDEVSPACE.SetSpecialReadOnly(sal_True); - m_ET_TRANSACTIONLOG.SetSpecialReadOnly(sal_True); - m_LB_DATADEVS.SetSpecialReadOnly(sal_True); - m_ET_SIZE.SetSpecialReadOnly(sal_True); - m_ET_FREESIZE.SetSpecialReadOnly(sal_True); - m_ET_MEMORYUSING.SetSpecialReadOnly(sal_True); -} -//------------------------------------------------------------------------ -OAdabasStatistics::~OAdabasStatistics() -{ - DBG_DTOR(OAdabasStatistics,NULL); -} -// ----------------------------------------------------------------------------- -sal_Bool OAdabasStatistics::checkSystemTable(const ::rtl::OUString& _rsSystemTable, ::rtl::OUString& _rsSchemaName ) -{ - sal_Bool bCanSelect = sal_False; - Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData(); - if ( xMeta.is() ) - { - Reference<XResultSet> xRes = xMeta->getTablePrivileges(Any(), ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%")), _rsSystemTable); - if(xRes.is()) - { - Reference<XRow> xRow(xRes,UNO_QUERY); - static const ::rtl::OUString sSelect(RTL_CONSTASCII_USTRINGPARAM("SELECT")); - // first the db sizes - while( xRow.is() && xRes->next() ) - { - _rsSchemaName = xRow->getString(2); - if(sSelect == xRow->getString(6) && !xRow->wasNull()) - { - bCanSelect = sal_True; - break; - } - } - ::comphelper::disposeComponent(xRes); - } - } - - return bCanSelect; -} -// ----------------------------------------------------------------------------- -void OAdabasStatistics::showError() -{ - if(!m_bErrorShown) - { - OSQLMessageBox aMsg(GetParent(),GetText(),String(ModuleRes(STR_ADABAS_ERROR_SYSTEMTABLES))); - aMsg.Execute(); - m_bErrorShown = sal_True; - } -} -// ----------------------------------------------------------------------------- -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/AdabasStat.hrc b/dbaccess/source/ui/dlg/AdabasStat.hrc deleted file mode 100644 index d2bb95c38..000000000 --- a/dbaccess/source/ui/dlg/AdabasStat.hrc +++ /dev/null @@ -1,52 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef DBAUI_ADABASSTAT_HRC -#define DBAUI_ADABASSTAT_HRC - - -#define FT_SYSDEVSPACE 1 -#define FT_TRANSACTIONLOG 2 -#define FT_DATADEVSPACE 3 -#define FT_SIZE 4 -#define FT_FREESIZE 5 -#define FT_MEMORYUSING 6 - -#define ET_SYSDEVSPACE 1 -#define ET_TRANSACTIONLOG 2 -#define ET_MEMORYUSING 3 -#define ET_SIZE 4 -#define ET_FREESIZE 5 - -#define LB_DATADEVS 1 - -#define PB_OK 1 - -#define FL_FILES 1 -#define FL_SIZES 2 - - -#endif // DBAUI_ADABASSTAT_HRC diff --git a/dbaccess/source/ui/dlg/AdabasStat.hxx b/dbaccess/source/ui/dlg/AdabasStat.hxx deleted file mode 100644 index f9cec381c..000000000 --- a/dbaccess/source/ui/dlg/AdabasStat.hxx +++ /dev/null @@ -1,86 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef _DBAUI_ADASTAT_HXX_ -#define _DBAUI_ADASTAT_HXX_ - -#include <vcl/fixed.hxx> -#include <vcl/button.hxx> -#include <vcl/dialog.hxx> -#include "FieldControls.hxx" -#include <svtools/prgsbar.hxx> -#include <com/sun/star/sdbc/XConnection.hpp> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> - - -namespace dbaui -{ - //======================================================================== - // shows some statistics - //======================================================================== - class OAdabasStatistics : public ModalDialog - { - protected: - - FixedLine m_FL_FILES; - FixedText m_FT_SYSDEVSPACE; - OPropEditCtrl m_ET_SYSDEVSPACE; - FixedText m_FT_TRANSACTIONLOG; - OPropEditCtrl m_ET_TRANSACTIONLOG; - FixedText m_FT_DATADEVSPACE; - OPropListBoxCtrl m_LB_DATADEVS; - FixedLine m_FL_SIZES; - FixedText m_FT_SIZE; - OPropEditCtrl m_ET_SIZE; - FixedText m_FT_FREESIZE; - OPropEditCtrl m_ET_FREESIZE; - FixedText m_FT_MEMORYUSING; - OPropNumericEditCtrl m_ET_MEMORYUSING; - - OKButton m_PB_OK; - - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > - m_xConnection; /// valid as long as the page is active - sal_Bool m_bErrorShown; // true when we shown already the error - - // check if the given table is accessable by the connected user - sal_Bool checkSystemTable(const ::rtl::OUString& _rsSystemTable, ::rtl::OUString& _rsSchemaName ); - void showError(); - - public: - OAdabasStatistics( Window* pParent, - const ::rtl::OUString& _rUser, - const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _xCurrentConnection, - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xFactory); - ~OAdabasStatistics(); - - }; -} -#endif //_DBAUI_ADASTAT_HXX_ - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/AdabasStat.src b/dbaccess/source/ui/dlg/AdabasStat.src deleted file mode 100644 index bb083ade5..000000000 --- a/dbaccess/source/ui/dlg/AdabasStat.src +++ /dev/null @@ -1,208 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_ADABASSTAT_HRC -#include "AdabasStat.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif - -#define WINDOW_SIZE_X 260 -#define WINDOW_SIZE_Y 190 - -ModalDialog DLG_ADABASSTAT -{ - HelpID = "dbaccess:ModalDialog:DLG_ADABASSTAT"; - OutputSize = TRUE ; - Moveable = TRUE ; - Closeable = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( WINDOW_SIZE_X , WINDOW_SIZE_Y ) ; - - FixedLine FL_FILES - { - Pos = MAP_APPFONT ( 6 , 3 ) ; - Size = MAP_APPFONT ( WINDOW_SIZE_X - 12, 8 ) ; - Text [ en-US ] = "Database files"; - }; - - FixedText FT_SYSDEVSPACE - { - Pos = MAP_APPFONT ( 12 , 14 ) ; - Size = MAP_APPFONT ( 102 , 10 ) ; - Text [ en-US ] = "S~YSDEVSPACE:"; - }; - - Edit ET_SYSDEVSPACE - { - HelpID = "dbaccess:Edit:DLG_ADABASSTAT:ET_SYSDEVSPACE"; - Border = TRUE ; - Pos = MAP_APPFONT ( 120 , 14 ) ; - Size = MAP_APPFONT ( 128 , 12 ) ; - TabStop = TRUE ; - ReadOnly = TRUE; - }; - - FixedText FT_TRANSACTIONLOG - { - Pos = MAP_APPFONT ( 12 , 32 ) ; - Size = MAP_APPFONT ( 102 , 10 ) ; - Text [ en-US ] = "~TRANSACTIONLOG:"; - }; - - Edit ET_TRANSACTIONLOG - { - HelpID = "dbaccess:Edit:DLG_ADABASSTAT:ET_TRANSACTIONLOG"; - Border = TRUE ; - Pos = MAP_APPFONT ( 120 , 31 ) ; - Size = MAP_APPFONT ( 128 , 12 ) ; - TabStop = TRUE ; - ReadOnly = TRUE; - }; - - FixedText FT_DATADEVSPACE - { - Pos = MAP_APPFONT ( 12 , 49 ) ; - Size = MAP_APPFONT ( 102 , 10 ) ; - Text [ en-US ] = "DATAD~EVSPACE:"; - }; - - ListBox LB_DATADEVS - { - HelpID = "dbaccess:ListBox:DLG_ADABASSTAT:LB_DATADEVS"; - Border = TRUE ; - Pos = MAP_APPFONT ( 120 , 48 ) ; - Size = MAP_APPFONT ( 128 , 42 ) ; - TabStop = TRUE; - AutoHScroll = TRUE; - VScroll = TRUE; - HScroll = TRUE; - }; - FixedLine FL_SIZES - { - Pos = MAP_APPFONT ( 6 , 99 ) ; - Size = MAP_APPFONT ( WINDOW_SIZE_X - 12 , 8 ) ; - Text [ en-US ] = "Database sizes"; - }; - - FixedText FT_SIZE - { - Pos = MAP_APPFONT ( 12 , 110 ) ; - Size = MAP_APPFONT ( 102 , 10 ) ; - Text [ en-US ] = "S~ize (MB):"; - }; - - Edit ET_SIZE - { - HelpID = "dbaccess:Edit:DLG_ADABASSTAT:ET_SIZE"; - Border = TRUE ; - Pos = MAP_APPFONT ( 120 , 109 ) ; - Size = MAP_APPFONT ( 60 , 12 ) ; - TabStop = TRUE ; - ReadOnly = TRUE; - }; - - FixedText FT_FREESIZE - { - Pos = MAP_APPFONT ( 12 , 127 ) ; - Size = MAP_APPFONT ( 102 , 10 ) ; - Text [ en-US ] = "~Free memory space (MB):"; - }; - - Edit ET_FREESIZE - { - HelpID = "dbaccess:Edit:DLG_ADABASSTAT:ET_FREESIZE"; - Border = TRUE ; - Pos = MAP_APPFONT ( 120 , 126 ) ; - Size = MAP_APPFONT ( 60 , 12 ) ; - TabStop = TRUE ; - ReadOnly = TRUE; - }; - - FixedText FT_MEMORYUSING - { - Pos = MAP_APPFONT ( 12 , 144 ) ; - Size = MAP_APPFONT ( 102 , 10 ) ; - Text [ en-US ] = "~Memory utilization (in %):"; - }; - - NumericField ET_MEMORYUSING - { - HelpID = "dbaccess:NumericField:DLG_ADABASSTAT:ET_MEMORYUSING"; - Border = TRUE ; - Pos = MAP_APPFONT ( 120 , 144 ) ; - Size = MAP_APPFONT ( 60 , 12 ) ; - TabStop = TRUE ; - ReadOnly = TRUE; - }; - - OKButton PB_OK - { - Pos = MAP_APPFONT ( WINDOW_SIZE_X - 56,WINDOW_SIZE_Y - 20 ) ; - Size = MAP_APPFONT ( 50, 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - }; - - Text [ en-US ] = "Database Statistics"; -}; - -String STR_ADABAS_HELP_SYSDEVSPACE -{ - Text [ en-US ] = "Contains the system tables"; -}; - -String STR_ADABAS_HELP_TRANSACT -{ - Text [ en-US ] = "Contains information about transaction"; -}; - -String STR_ADABAS_HELP_DATADEVSPACES -{ - Text [ en-US ] = "Contains all data files"; -}; - -String STR_ADABAS_HELP_SIZE -{ - Text [ en-US ] = "Total size of the database files"; -}; - -String STR_ADABAS_HELP_FREESIZE -{ - Text [ en-US ] = "Currently available space before a new datadev file is created."; -}; - -String STR_ADABAS_HELP_MEMORYUSING -{ - Text [ en-US ] = "Currently used memory"; -}; - -String STR_ADABAS_ERROR_SYSTEMTABLES -{ - Text [ en-US ] = "No information could be displayed because no access rights exist for the required system tables."; -}; diff --git a/dbaccess/source/ui/dlg/AutoControls.src b/dbaccess/source/ui/dlg/AutoControls.src deleted file mode 100644 index e43e2a13a..000000000 --- a/dbaccess/source/ui/dlg/AutoControls.src +++ /dev/null @@ -1,97 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_AUTOCONTROLS_HRC_ -#include "AutoControls.hrc" -#endif - -String STR_DBASE_PATH_OR_FILE -{ - Text[ en-US ] = "Path to the dBASE files"; -}; - -String STR_FLAT_PATH_OR_FILE -{ - Text[ en-US ] = "Path to the text files"; -}; - -String STR_CALC_PATH_OR_FILE -{ - Text[ en-US ] = "Path to the spreadsheet document"; -}; - -String STR_NAME_OF_ODBC_DATASOURCE -{ - Text[ en-US ] = "Name of the ODBC data source on your system"; -}; - -String STR_MYSQL_DATABASE_NAME -{ - Text[ en-US ] = "Name of the MySQL database"; -}; - -String STR_ORACLE_DATABASE_NAME -{ - Text[ en-US ] = "Name of the Oracle database"; -}; - -String STR_ADABAS_DATABASE_NAME -{ - Text[ en-US ] = "Name of the Adabas D database"; -}; - -String STR_MSACCESS_MDB_FILE -{ - Text[ en-US ] = "Microsoft Access database file"; -}; - -String STR_NO_ADDITIONAL_SETTINGS -{ - Text[ en-US ] = "No more settings are necessary. To verify that the connection is working, click the '%test' button."; -}; - -String STR_COMMONURL -{ - Text [ en-US ] = "Datasource URL" ; -}; - -String STR_HOSTNAME -{ - Text[ en-US ] = "~Host name"; -}; - -String STR_MOZILLA_PROFILE_NAME -{ - Text[ en-US ] = "~Mozilla profile name"; -}; - -String STR_THUNDERBIRD_PROFILE_NAME -{ - Text[ en-US ] = "~Thunderbird profile name"; -}; - -// ------------------------------------------------------------------------------------------------- diff --git a/dbaccess/source/ui/dlg/AutoControlsDef.hrc b/dbaccess/source/ui/dlg/AutoControlsDef.hrc deleted file mode 100644 index 2466c8ce6..000000000 --- a/dbaccess/source/ui/dlg/AutoControlsDef.hrc +++ /dev/null @@ -1,86 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - - -#ifndef _DBAUI_AUTOCONTROLSDEF_HRC_ -#define _DBAUI_AUTOCONTROLSDEF_HRC_ - -#define FT_AUTOJDBCDRIVERCLASS 80 -#define FT_AUTOFIELDSEPARATOR 81 -#define FT_AUTOTEXTSEPARATOR 82 -#define FT_AUTODECIMALSEPARATOR 83 -#define FT_AUTOTHOUSANDSSEPARATOR 84 -#define FT_AUTOPORTNUMBER 85 -#define FT_AUTOPORTNUMBERDEFAULT 86 -#define FT_AUTOBASEDN 87 -#define FT_AUTOHOSTNAME 88 -#define FT_AUTOBROWSEURL 89 -#define FT_AUTODATABASENAME 90 -#define FT_AUTOWIZARDHELPTEXT 91 -#define FT_AUTOWIZARDHEADER 92 -#define FT_AUTOEXTENSIONHEADER 93 -#define FT_AUTOOWNEXTENSIONAPPENDIX 94 -#define FT_CHARSET 95 -#define FT_SOCKET 96 - -#define FL_AUTOSEPARATOR2 80 -#define FL_DATACONVERT 81 -#define FL_SEPARATOR1 82 - -#define CB_AUTOHEADER 80 - -#define PB_AUTOTESTDRIVERCLASS 80 -#define PB_AUTOBROWSEURL 81 - -#define CM_AUTOFIELDSEPARATOR 80 -#define CM_AUTOTEXTSEPARATOR 81 -#define CM_AUTODECIMALSEPARATOR 82 -#define CM_AUTOTHOUSANDSSEPARATOR 83 - -#define NF_AUTOPORTNUMBER 80 - -#define ET_AUTOBASEDN 80 -#define ET_AUTOHOSTNAME 81 -#define ET_AUTODATABASENAME 82 -#define ET_AUTOBROWSEURL 83 -#define ET_AUTOJDBCDRIVERCLASS 84 -#define ET_AUTOOWNEXTENSION 85 -#define ET_SOCKET 86 - -#define RB_AUTOACCESSCTEXTFILES 80 -#define RB_AUTOACCESSCCSVFILES 81 -#define RB_AUTOACCESSOTHERS 82 - -#define LB_CHARSET 80 - -#define STR_AUTOFIELDSEPARATORLIST 100 -#define STR_AUTOTEXTSEPARATORLIST 101 -#define STR_AUTOTEXT_FIELD_SEP_NONE 102 -#define STR_AUTODELIMITER_MISSING 103 -#define STR_AUTODELIMITER_MUST_DIFFER 104 -#define STR_AUTONO_WILDCARDS 105 -#endif // _DBAUI_AUTOCONTROLSDEF_HRC_ diff --git a/dbaccess/source/ui/dlg/AutoControls_tmpl.hrc b/dbaccess/source/ui/dlg/AutoControls_tmpl.hrc deleted file mode 100644 index 3d837e2e4..000000000 --- a/dbaccess/source/ui/dlg/AutoControls_tmpl.hrc +++ /dev/null @@ -1,517 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - - -#ifndef _DBAUI_AUTOCONTROLS_HRC_ -#define _DBAUI_AUTOCONTROLS_HRC_ - - -#ifndef _DBA_DBACCESS_HELPID_HRC_ -#include "dbaccess_helpid.hrc" -#endif - -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif - -#ifndef _DBA_DBACCESS_HELPID_HRC_ -#include "dbaccess_helpid.hrc" -#endif - - -#define CHECKBOX_HEIGHT 8 -#define FIXEDTEXT_HEIGHT 8 -#define RELATED_CONTROLS 4 -#define UNRELATED_CONTROLS 7 -#define EDIT_HEIGHT 12 -#define EDIT_X 101 - -#define FT_AUTOJDBCDRIVERCLASS 80 -#define FT_AUTOFIELDSEPARATOR 81 -#define FT_AUTOTEXTSEPARATOR 82 -#define FT_AUTODECIMALSEPARATOR 83 -#define FT_AUTOTHOUSANDSSEPARATOR 84 -#define FT_AUTOPORTNUMBER 85 -#define FT_AUTOPORTNUMBERDEFAULT 86 -#define FT_AUTOBASEDN 87 -#define FT_AUTOHOSTNAME 88 -#define FT_AUTOBROWSEURL 89 -#define FT_AUTODATABASENAME 90 -#define FT_AUTOWIZARDHELPTEXT 91 -#define FT_AUTOWIZARDHEADER 92 -#define FT_AUTOEXTENSIONHEADER 93 -#define FT_AUTOOWNEXTENSIONAPPENDIX 94 -#define FT_CHARSET 95 -#define FT_SOCKET 96 - -#define FL_AUTOSEPARATOR2 80 -#define FL_DATACONVERT 81 -#define FL_SEPARATOR1 82 - -#define CB_AUTOHEADER 80 - -#define PB_AUTOTESTDRIVERCLASS 80 -#define PB_AUTOBROWSEURL 81 - -#define CM_AUTOFIELDSEPARATOR 80 -#define CM_AUTOTEXTSEPARATOR 81 -#define CM_AUTODECIMALSEPARATOR 82 -#define CM_AUTOTHOUSANDSSEPARATOR 83 - -#define NF_AUTOPORTNUMBER 80 - -#define ET_AUTOBASEDN 80 -#define ET_AUTOHOSTNAME 81 -#define ET_AUTODATABASENAME 82 -#define ET_AUTOBROWSEURL 83 -#define ET_AUTOJDBCDRIVERCLASS 84 -#define ET_AUTOOWNEXTENSION 85 -#define ET_SOCKET 86 - -#define RB_AUTOACCESSCTEXTFILES 80 -#define RB_AUTOACCESSCCSVFILES 81 -#define RB_AUTOACCESSOTHERS 82 - -#define LB_CHARSET 80 - -#define STR_AUTOFIELDSEPARATORLIST 100 -#define STR_AUTOTEXTSEPARATORLIST 101 -#define STR_AUTOTEXT_FIELD_SEP_NONE 102 -#define STR_AUTODELIMITER_MISSING 103 -#define STR_AUTODELIMITER_MUST_DIFFER 104 -#define STR_AUTONO_WILDCARDS 105 - - -#define AUTO_WIZARDHELPTEXT( AUTO_LINECOUNT ) \ - FixedText FT_AUTOWIZARDHEADER \ - { \ - Pos = MAP_APPFONT ( START_X , 8 ) ; \ - Size = MAP_APPFONT ( (WIZARD_PAGE_X - START_X) - 12 , 2 * FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = ""; \ - WordBreak = TRUE; \ - }; \ - \ - FixedText FT_AUTOWIZARDHELPTEXT \ - { \ - Pos = MAP_APPFONT ( START_X , INIT_Y ) ; \ - Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X - 6 , AUTO_LINECOUNT * FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = ""; \ - WordBreak = TRUE; \ - }; - -// ------------------------------------------------------------------------------------------------- - - -#define AUTO_BROWSECONTROLGROUP( AUTO_X, AUTO_Y, AUTOPAGE_X, AUTO_HID, AUTO_HID2) \ - FixedText FT_AUTOBROWSEURL { \ - Pos = MAP_APPFONT ( AUTO_X , AUTO_Y ) ; \ - Size = MAP_APPFONT ( AUTOPAGE_X - AUTO_X - 6 , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = ""; \ - }; \ - \ - \ - Edit ET_AUTOBROWSEURL \ - { \ - Pos = MAP_APPFONT ( AUTO_X , AUTO_Y + FIXEDTEXT_HEIGHT + 3) ; \ - Size = MAP_APPFONT ( AUTOPAGE_X - AUTO_X - 6 - 3 - BUTTON_WIDTH , EDIT_HEIGHT ) ; \ - HelpId = AUTO_HID; \ - TabStop = TRUE ; \ - Border = TRUE ; \ - }; \ - \ - PushButton PB_AUTOBROWSEURL \ - { \ - Pos = MAP_APPFONT ( AUTOPAGE_X - BUTTON_WIDTH - 6 , AUTO_Y + FIXEDTEXT_HEIGHT + 2 ) ; \ - Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ; \ - HelpId = AUTO_HID2; \ - TabStop = TRUE ; \ - Text[ en-US ] = "Browse"; \ - }; - -// -------------------------------------------------------------------------------------------------- - - -#define AUTO_NAMECONTROLGROUP(AUTO_Y, AUTO_HID) \ - FixedText FT_AUTODATABASENAME \ - { \ - Pos = MAP_APPFONT ( START_X , AUTO_Y + 2) ; \ - Size = MAP_APPFONT ( EDIT_X - START_X - UNRELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "Database name"; \ - }; \ - \ - Edit ET_AUTODATABASENAME \ - { \ - Pos = MAP_APPFONT ( EDIT_X, AUTO_Y) ; \ - Size = MAP_APPFONT ( 97, EDIT_HEIGHT ) ; \ - HelpId = AUTO_HID; \ - TabStop = TRUE ; \ - Border = TRUE ; \ - }; - -// -------------------------------------------------------------------------------------------------- - - -#define AUTO_HOSTCONTROLGROUP(AUTO_Y, AUTO_HID) \ - FixedText FT_AUTOHOSTNAME \ - { \ - Pos = MAP_APPFONT (START_X , AUTO_Y + 2 ) ; \ - Size = MAP_APPFONT ( EDIT_X - START_X - UNRELATED_CONTROLS , FIXEDTEXT_HEIGHT ); \ - Text [ en-US ] = "Server" ; \ - }; \ - \ - Edit ET_AUTOHOSTNAME \ - { \ - Pos = MAP_APPFONT (EDIT_X, AUTO_Y ) ; \ - Size = MAP_APPFONT ( 60, EDIT_HEIGHT ) ; \ - HelpId = AUTO_HID; \ - TabStop = TRUE ; \ - Border = TRUE ; \ - }; - -// -------------------------------------------------------------------------------------------------- - - -#define AUTO_BASEDNCONTROLGROUP(AUTO_Y, AUTO_HID) \ - FixedText FT_AUTOBASEDN \ - { \ - Pos = MAP_APPFONT (START_X , AUTO_Y + 2 ) ; \ - Size = MAP_APPFONT ( EDIT_X - START_X - UNRELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; \ - Text [ en-US ] = "Base ~DN" ; \ - }; \ - \ - Edit ET_AUTOBASEDN \ - { \ - HelpId = AUTO_HID ; \ - Pos = MAP_APPFONT (EDIT_X, AUTO_Y ) ; \ - Size = MAP_APPFONT ( 60, EDIT_HEIGHT ) ; \ - TabStop = TRUE ; \ - Border = TRUE ; \ - }; \ - -// -------------------------------------------------------------------------------------------------- - -// MBA: the HID set in the FixText can't make any sense; in case this macro was called from within the -// AUTOHELP_JDBCCONTROLGROUP, the FixText would have got the same HID as an EditField from the -// also called AUTO_JDBCDRIVERCLASSGROUP macro; thus I conclude that we can remove the HID from the FixedText -#define AUTO_PORTCONTROLGROUP(AUTO_Y, AUTO_HID) \ - FixedText FT_AUTOPORTNUMBER \ - { \ - Pos = MAP_APPFONT (START_X , AUTO_Y +2) ; \ - Size = MAP_APPFONT ( EDIT_X - START_X - UNRELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; \ - Text [ en-US ] = "~Port number" ; \ - }; \ - \ - NumericField NF_AUTOPORTNUMBER \ - { \ - HelpId = AUTO_HID ; \ - Pos = MAP_APPFONT (EDIT_X, AUTO_Y ) ; \ - Size = MAP_APPFONT ( 22 , EDIT_HEIGHT ) ; \ - TabStop = TRUE ; \ - Border = TRUE ; \ - NoThousandSep = TRUE; \ - }; \ - \ - FixedText FT_AUTOPORTNUMBERDEFAULT \ - { \ - Pos = MAP_APPFONT (EDIT_X + 22 + UNRELATED_CONTROLS, AUTO_Y +2) ; \ - Size = MAP_APPFONT ( WIZARD_PAGE_X - EDIT_X - 22 - UNRELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "" ; \ - }; - -//------------------------------------------------------------------------- - -#define AUTO_CHARSET( AUTO_Y, AUTOPAGE_X ) \ - FixedLine FL_DATACONVERT \ - { \ - Pos = MAP_APPFONT ( 4 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( AUTOPAGE_X - 2*RELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; \ - Text [ en-US ] = "Data conversion"; \ - }; \ - FixedText FT_CHARSET \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y + RELATED_CONTROLS + FIXEDTEXT_HEIGHT ) ; \ - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; \ - Text [ en-US ] = "~Character set" ; \ - }; \ - ListBox LB_CHARSET \ - { \ - Border = TRUE ; \ - Pos = MAP_APPFONT ( EDIT_X , AUTO_Y + RELATED_CONTROLS + FIXEDTEXT_HEIGHT -1 ) ; \ - Size = MAP_APPFONT ( AUTOPAGE_X - EDIT_X - 6 , 60 ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_CHARSET; \ - DropDown = TRUE ; \ - CurPos = 0 ; \ - }; \ - -// -------------------------------------------------------------------------------------------------- -#define AUTO_SEPARATORCONTROLGROUP(AUTO_Y,AUTOPAGE_X) \ - \ - FixedText FT_AUTOEXTENSIONHEADER \ - { \ - Pos = MAP_APPFONT ( START_X , AUTO_Y) ; \ - Size = MAP_APPFONT ( AUTOPAGE_X - 2*START_X , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "Specify the type of files you want to access" ; \ - }; \ - \ - RadioButton RB_AUTOACCESSCTEXTFILES \ - { \ - HelpId = HID_PAGE_DBWIZARD_TEXT_RB_ACCESSTXTFILES; \ - Pos = MAP_APPFONT (START_X + 6 , AUTO_Y + FIXEDTEXT_HEIGHT + RELATED_CONTROLS); \ - Size = MAP_APPFONT ( AUTOPAGE_X - 12 , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "Plain text files (*.txt)" ; \ - }; \ - \ - RadioButton RB_AUTOACCESSCCSVFILES \ - { \ - HelpId = HID_PAGE_DBWIZARD_TEXT_RB_ACCESSCSVFILES; \ - Pos = MAP_APPFONT (START_X + 6 , AUTO_Y + 2*FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS); \ - Size = MAP_APPFONT ( AUTOPAGE_X - 12 , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "'Comma separated value' files (*.csv)" ; \ - }; \ - \ - RadioButton RB_AUTOACCESSOTHERS \ - { \ - HelpId = HID_PAGE_DBWIZARD_TEXT_RB_ACCESSOTHERFILES; \ - Pos = MAP_APPFONT (START_X + 6 , AUTO_Y + 3*FIXEDTEXT_HEIGHT + 3*RELATED_CONTROLS); \ - Size = MAP_APPFONT ( 50 , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "Custom:" ; \ - }; \ - \ - Edit ET_AUTOOWNEXTENSION \ - { \ - HelpId = HID_PAGE_DBWIZARD_TEXT_ET_OWNEXTENSION; \ - Pos = MAP_APPFONT (START_X + 66, AUTO_Y + 3*FIXEDTEXT_HEIGHT + 3*RELATED_CONTROLS - 2 ) ; \ - Size = MAP_APPFONT ( 60, EDIT_HEIGHT ) ; \ - TabStop = TRUE ; \ - Border = TRUE ; \ - }; \ - \ - FIXEDTEXT FT_AUTOOWNEXTENSIONAPPENDIX \ - { \ - Pos = MAP_APPFONT (START_X + 130 , AUTO_Y + 3 * ( FIXEDTEXT_HEIGHT + RELATED_CONTROLS ) ); \ - Size = MAP_APPFONT ( AUTOPAGE_X - 6 -(START_X + 130), FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "Custom: *.abc" ; \ - }; \ - \ - FixedLine FL_AUTOSEPARATOR2 \ - { \ - Pos = MAP_APPFONT ( START_X , AUTO_Y + 50) ; \ - Size = MAP_APPFONT ( AUTOPAGE_X - 2 * START_X , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "Row Format"; \ - }; \ - \ - FixedText FT_AUTOFIELDSEPARATOR \ - { \ - Pos = MAP_APPFONT ( START_X + INDENTED_X , AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT ) ; \ - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "Field separator" ; \ - }; \ - ComboBox CM_AUTOFIELDSEPARATOR \ - { \ - Pos = MAP_APPFONT ( EDIT_X , AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT - 2 ) ; \ - Size = MAP_APPFONT ( 32 , 60 ) ; \ - Text = ";" ; \ - TabStop = TRUE ; \ - DropDown = TRUE ; \ - HelpId = HID_DSADMIN_FIELD_SEPARATOR; \ - }; \ - \ - FixedText FT_AUTOTEXTSEPARATOR \ - { \ - Pos = MAP_APPFONT ( START_X + INDENTED_X, AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + RELATED_CONTROLS + EDIT_HEIGHT ) ; \ - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "Text separator" ; \ - }; \ - ComboBox CM_AUTOTEXTSEPARATOR \ - { \ - Pos = MAP_APPFONT ( EDIT_X , AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + RELATED_CONTROLS + EDIT_HEIGHT - 2 ) ; \ - Size = MAP_APPFONT ( 32 , 60 ) ; \ - Text = "\"" ; \ - TabStop = TRUE ; \ - DropDown = TRUE ; \ - HelpId = HID_DSADMIN_TEXT_SEPARATOR; \ - }; \ - FixedText FT_AUTODECIMALSEPARATOR \ - { \ - Pos = MAP_APPFONT ( START_X + INDENTED_X, AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS + 2*EDIT_HEIGHT ) ; \ - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "Decimal separator" ; \ - }; \ - ComboBox CM_AUTODECIMALSEPARATOR \ - { \ - Pos = MAP_APPFONT ( EDIT_X , AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS + 2*EDIT_HEIGHT - 2 ) ; \ - Size = MAP_APPFONT ( 32 , 60 ) ; \ - TabStop = TRUE ; \ - MaxTextLength = 1 ; \ - DropDown = TRUE ; \ - StringList = \ - { \ - "." ; \ - "," ; \ - ";" ; \ - ":" ; \ - }; \ - HelpId = HID_DSADMIN_DECIMAL_SEPARATOR; \ - }; \ - FixedText FT_AUTOTHOUSANDSSEPARATOR \ - { \ - Pos = MAP_APPFONT ( START_X + INDENTED_X, AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 3*RELATED_CONTROLS + 3*EDIT_HEIGHT ) ; \ - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "Thousands separator" ; \ - }; \ - ComboBox CM_AUTOTHOUSANDSSEPARATOR \ - { \ - Pos = MAP_APPFONT ( EDIT_X , AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 3*RELATED_CONTROLS + 3*EDIT_HEIGHT - 2 ) ; \ - Size = MAP_APPFONT ( 32 , 44 ) ; \ - Text = "." ; \ - TabStop = TRUE ; \ - MaxTextLength = 1 ; \ - DropDown = TRUE ; \ - StringList = \ - { \ - "," ; \ - "." ; \ - }; \ - HelpId = HID_DSADMIN_THOUSANDS_SEPARATOR; \ - }; \ - \ - CheckBox CB_AUTOHEADER \ - { \ - TabStop = TRUE ; \ - Pos = MAP_APPFONT ( START_X + INDENTED_X, AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 4*RELATED_CONTROLS + 4*EDIT_HEIGHT ) ; \ - Size = MAP_APPFONT ( 150 , CHECKBOX_HEIGHT ) ; \ - HelpId = HID_DSADMIN_TEXT_HEADER; \ - Text [ en-US ] = "~Text contains headers" ; \ - }; \ - \ - AUTO_CHARSET( AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 4*RELATED_CONTROLS + 4*EDIT_HEIGHT + CHECKBOX_HEIGHT + UNRELATED_CONTROLS, AUTOPAGE_X ) \ - \ - String STR_AUTOTEXT_FIELD_SEP_NONE \ - { \ - Text[ en-US ] = "{None}"; \ - }; \ - \ - String STR_AUTOTEXTSEPARATORLIST \ - { \ - Text = "\"\t34\t'\t39" ; \ - }; \ - \ - String STR_AUTOFIELDSEPARATORLIST \ - { \ - Text [ x-comment ] = "EM Dec 2002: \'Space\' refers to what you get when you hit the space bar on your keyboard."; \ - Text [ en-US ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{Space}\t32" ; \ - }; \ - \ - String STR_AUTODELIMITER_MISSING \ - { \ - Text[ en-US ] = "#1 must be set." ; \ - }; \ - String STR_AUTODELIMITER_MUST_DIFFER \ - { \ - Text[ en-US ] = "#1 and #2 must be different." ; \ - }; \ - String STR_AUTONO_WILDCARDS \ - { \ - Text[ en-US ] = "Wildcards such as ?,* are not allowed in #1." ; \ - }; - - -#define NAMECONTROLGROUP_HEIGHT (FIXEDTEXT_HEIGHT + 2 + EDIT_HEIGHT) -#define BROWSECONTROLGROUP_HEIGHT ( FIXEDTEXT_HEIGHT + 2 + BUTTON_HEIGHT) - -// -------------------------------------------------------------------------------------------------- - -#define AUTO_HELP_BROWSECONTROLGROUP(AUTO_LINECOUNT, AUTO_HID, AUTO_HID2) \ - AUTO_WIZARDHELPTEXT(AUTO_LINECOUNT) \ - AUTO_BROWSECONTROLGROUP(START_X, INIT_Y + AUTO_LINECOUNT * FIXEDTEXT_HEIGHT + 2, WIZARD_PAGE_X, AUTO_HID, AUTO_HID2) - - -// -------------------------------------------------------------------------------------------------- - - -// -------------------------------------------------------------------------------------------------- - -#define AUTO_JDBCDRIVERCLASSGROUP(AUTO_Y, AUTO_HID, AUTO_HID2) \ - \ - FixedText FT_AUTOJDBCDRIVERCLASS \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y) ; \ - Size = MAP_APPFONT ( PAGE_X - 12 , FIXEDTEXT_HEIGHT ) ; \ - Text [ en-US ] = "JDBC d~river class"; \ - }; \ - \ - Edit ET_AUTOJDBCDRIVERCLASS \ - { \ - Pos = MAP_APPFONT ( START_X, AUTO_Y + FIXEDTEXT_HEIGHT + RELATED_CONTROLS ) ; \ - Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X - BUTTON_WIDTH - RELATED_CONTROLS - UNRELATED_CONTROLS , EDIT_HEIGHT ) ; \ - TabStop = TRUE ; \ - Border = TRUE ; \ - HelpId = AUTO_HID; \ - }; \ - \ - PushButton PB_AUTOTESTDRIVERCLASS \ - { \ - TabStop = TRUE ; \ - Pos = MAP_APPFONT ( WIZARD_PAGE_X - BUTTON_WIDTH - UNRELATED_CONTROLS , AUTO_Y + FIXEDTEXT_HEIGHT + 2) ; \ - Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ; \ - Size = MAP_APPFONT (50, 14); \ - HelpId = AUTO_HID2; \ - Text[ en-US ] = "Test class" ; \ - }; - -// -------------------------------------------------------------------------------------------------- - -#define AUTO_SOCKETCONTROLGROUP(AUTO_Y) \ - FixedText FT_SOCKET \ - { \ - Pos = MAP_APPFONT (START_X , AUTO_Y +2) ; \ - Size = MAP_APPFONT ( EDIT_X - START_X - UNRELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; \ - Text [ en-US ] = "Socket" ; \ - }; \ - \ - Edit ET_SOCKET \ - { \ - Pos = MAP_APPFONT (EDIT_X, AUTO_Y ) ; \ - Size = MAP_APPFONT ( 97, EDIT_HEIGHT ) ; \ - TabStop = TRUE ; \ - Border = TRUE ; \ - }; - - -#define AUTOHELP_JDBCCONTROLGROUP( AUTO_HID, AUTO_HID2, AUTO_HID3, AUTO_HID4, AUTO_HID5 ) \ - AUTO_WIZARDHELPTEXT( 6 ) \ - AUTO_NAMECONTROLGROUP( INIT_Y + 6 * FIXEDTEXT_HEIGHT + 2, AUTO_HID ) \ - AUTO_HOSTCONTROLGROUP(96, AUTO_HID2) \ - AUTO_PORTCONTROLGROUP(113, AUTO_HID3 ) \ - AUTO_SOCKETCONTROLGROUP(129) \ - AUTO_JDBCDRIVERCLASSGROUP(146, AUTO_HID4, AUTO_HID5) - - -// -------------------------------------------------------------------------------------------------- - -#endif diff --git a/dbaccess/source/ui/dlg/CollectionView.cxx b/dbaccess/source/ui/dlg/CollectionView.cxx deleted file mode 100644 index e10396c72..000000000 --- a/dbaccess/source/ui/dlg/CollectionView.cxx +++ /dev/null @@ -1,340 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" -#include "CollectionView.hxx" -#include "CollectionView.hrc" -#include <tools/debug.hxx> -#include <tools/diagnose_ex.h> -#include "moduledbu.hxx" -#include "dbu_dlg.hrc" -#include <comphelper/interaction.hxx> -#include <cppuhelper/exc_hlp.hxx> -#include <toolkit/helper/vclunohelper.hxx> -#include <svtools/QueryFolderName.hxx> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/lang/XInitialization.hpp> -#include <com/sun/star/container/XChild.hpp> -#include <com/sun/star/container/XNameContainer.hpp> -#include <com/sun/star/beans/PropertyValue.hpp> -#include <vcl/msgbox.hxx> -#include "dbustrings.hrc" -#include "UITools.hxx" -#include <com/sun/star/container/XHierarchicalNameContainer.hpp> -#include <com/sun/star/ucb/InteractiveAugmentedIOException.hpp> -#include <com/sun/star/ucb/IOErrorCode.hpp> -#include <com/sun/star/task/XInteractionHandler.hpp> -#include <com/sun/star/task/InteractionClassification.hpp> -#include <com/sun/star/sdbc/SQLException.hpp> -#include <com/sun/star/awt/XWindow.hpp> -#include <unotools/viewoptions.hxx> -#include <osl/thread.h> -#include <connectivity/dbexception.hxx> - -#define FILEDIALOG_DEF_IMAGEBORDER 10 -//......................................................................... -namespace dbaui -{ -//......................................................................... - -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::ucb; -using namespace ::com::sun::star::lang; -using namespace ::com::sun::star::beans; -using namespace ::com::sun::star::container; -using namespace ::com::sun::star::ucb; -using namespace ::com::sun::star::task; -using namespace ::com::sun::star::sdbc; -using namespace comphelper; -// ----------------------------------------------------------------------------- -DBG_NAME(OCollectionView) -OCollectionView::OCollectionView( Window * pParent - ,const Reference< XContent>& _xContent - ,const ::rtl::OUString& _sDefaultName - ,const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xORB) - : ModalDialog( pParent, ModuleRes(DLG_COLLECTION_VIEW)) - , m_aFTCurrentPath( this, ModuleRes( FT_EXPLORERFILE_CURRENTPATH ) ) - , m_aNewFolder( this, ModuleRes( BTN_EXPLORERFILE_NEWFOLDER ) ) - , m_aUp( this, ModuleRes( BTN_EXPLORERFILE_UP ) ) - , m_aView( this, ModuleRes( CTRL_VIEW ) ,FILEVIEW_SHOW_TITLE ) - , m_aFTName( this, ModuleRes( FT_EXPLORERFILE_FILENAME ) ) - , m_aName( this, ModuleRes( ED_EXPLORERFILE_FILENAME ) ) - , m_aFL( this, ModuleRes( FL_1 ) ) - , m_aPB_OK( this, ModuleRes( BTN_EXPLORERFILE_SAVE ) ) - , m_aPB_CANCEL( this, ModuleRes( PB_CANCEL ) ) - , m_aPB_HELP( this, ModuleRes( PB_HELP ) ) - , m_sPath( ModuleRes( STR_PATHNAME ) ) - , m_xContent(_xContent) - , m_xORB(_xORB) - , m_bCreateForm(sal_True) -{ - DBG_CTOR(OCollectionView,NULL); - FreeResource(); - - OSL_ENSURE(m_xContent.is(),"No valid content!"); - m_aView.Initialize(m_xContent,String()); - m_aFTCurrentPath.SetStyle( m_aFTCurrentPath.GetStyle() | WB_PATHELLIPSIS ); - initCurrentPath(); - - m_aName.SetText(_sDefaultName); - m_aName.GrabFocus(); - - m_aNewFolder.SetStyle( m_aNewFolder.GetStyle() | WB_NOPOINTERFOCUS ); - m_aUp.SetModeImage(ModuleRes(IMG_NAVIGATION_BTN_UP_SC)); - m_aNewFolder.SetModeImage(ModuleRes(IMG_NAVIGATION_CREATEFOLDER_SC)); - - m_aView.SetDoubleClickHdl( LINK( this, OCollectionView, Dbl_Click_FileView ) ); - m_aView.EnableAutoResize(); - m_aUp.SetClickHdl( LINK( this, OCollectionView, Up_Click ) ); - m_aNewFolder.SetClickHdl( LINK( this, OCollectionView, NewFolder_Click ) ); - m_aPB_OK.SetClickHdl( LINK( this, OCollectionView, Save_Click ) ); -} -// ----------------------------------------------------------------------------- -OCollectionView::~OCollectionView( ) -{ - DBG_DTOR(OCollectionView,NULL); -} -// ----------------------------------------------------------------------------- -Reference< XContent> OCollectionView::getSelectedFolder() const -{ - return m_xContent; -} -// ----------------------------------------------------------------------------- -IMPL_LINK( OCollectionView, Save_Click, PushButton*, EMPTYARG ) -{ - ::rtl::OUString sName = m_aName.GetText(); - if ( !sName.getLength() ) - return 0; - try - { - ::rtl::OUString sSubFolder = m_aView.GetCurrentURL(); - sal_Int32 nIndex = sName.lastIndexOf('/') + 1; - if ( nIndex ) - { - if ( nIndex == 1 ) // special handling for root - { - Reference<XChild> xChild(m_xContent,UNO_QUERY); - Reference<XNameAccess> xNameAccess(xChild,UNO_QUERY); - while( xNameAccess.is() ) - { - xNameAccess.set(xChild->getParent(),UNO_QUERY); - if ( xNameAccess.is() ) - { - m_xContent.set(xNameAccess,UNO_QUERY); - xChild.set(m_xContent,UNO_QUERY); - } - } - m_aView.Initialize(m_xContent,String()); - initCurrentPath(); - } - sSubFolder = sName.copy(0,nIndex-1); - sName = sName.copy(nIndex); - Reference<XHierarchicalNameContainer> xHier(m_xContent,UNO_QUERY); - OSL_ENSURE(xHier.is(),"XHierarchicalNameContainer not supported!"); - if ( sSubFolder.getLength() && xHier.is() ) - { - if ( xHier->hasByHierarchicalName(sSubFolder) ) - { - m_xContent.set(xHier->getByHierarchicalName(sSubFolder),UNO_QUERY); - } - else // sub folder doesn't exist - { - Sequence< Any > aValues(2); - PropertyValue aValue; - aValue.Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ResourceName")); - aValue.Value <<= sSubFolder; - aValues[0] <<= aValue; - - aValue.Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ResourceType")); - aValue.Value <<= ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("folder")); - aValues[1] <<= aValue; - - InteractionClassification eClass = InteractionClassification_ERROR; - ::com::sun::star::ucb::IOErrorCode eError = IOErrorCode_NOT_EXISTING_PATH; - ::rtl::OUString sTemp; - InteractiveAugmentedIOException aException(sTemp,Reference<XInterface>(),eClass,eError,aValues); - - - Reference<XInitialization> xIni(m_xORB->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.task.InteractionHandler"))),UNO_QUERY); - if ( xIni.is() ) - { - aValue.Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Parent")); - aValue.Value <<= VCLUnoHelper::GetInterface( this ); - Sequence< Any > aArgs(1); - aArgs[0] <<= makeAny(aValue); - xIni->initialize(aArgs); - OInteractionRequest* pRequest = new OInteractionRequest(makeAny(aException)); - Reference< XInteractionRequest > xRequest(pRequest); - - OInteractionApprove* pApprove = new OInteractionApprove; - pRequest->addContinuation(pApprove); - - Reference< XInteractionHandler > xHandler(xIni,UNO_QUERY); - xHandler->handle(xRequest); - } - return 0; - } - } - } - Reference<XNameContainer> xNameContainer(m_xContent,UNO_QUERY); - if ( xNameContainer.is() ) - { - Reference< XContent> xContent; - if ( xNameContainer->hasByName(sName) ) - { - QueryBox aBox( this, WB_YES_NO, ModuleRes( STR_ALREADYEXISTOVERWRITE ) ); - if ( aBox.Execute() != RET_YES ) - return 0; - } - m_aName.SetText(sName); - EndDialog( sal_True ); - } - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - return 0; -} -// ----------------------------------------------------------------------------- -IMPL_LINK( OCollectionView, NewFolder_Click, PushButton*, EMPTYARG ) -{ - try - { - Reference<XHierarchicalNameContainer> xNameContainer(m_xContent,UNO_QUERY); - if ( dbaui::insertHierachyElement(this,m_xORB,xNameContainer,String(),m_bCreateForm) ) - m_aView.Initialize(m_xContent,String()); - } - catch( const SQLException& ) - { - showError( ::dbtools::SQLExceptionInfo( ::cppu::getCaughtException() ), this, m_xORB ); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - return 0; -} -// ----------------------------------------------------------------------------- -IMPL_LINK( OCollectionView, Up_Click, PushButton*, EMPTYARG ) -{ - try - { - Reference<XChild> xChild(m_xContent,UNO_QUERY); - if ( xChild.is() ) - { - Reference<XNameAccess> xNameAccess(xChild->getParent(),UNO_QUERY); - if ( xNameAccess.is() ) - { - m_xContent.set(xNameAccess,UNO_QUERY); - m_aView.Initialize(m_xContent,String()); - initCurrentPath(); - } - else - m_aUp.Disable(); - } - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - return 0; -} -// ----------------------------------------------------------------------------- -IMPL_LINK( OCollectionView, Dbl_Click_FileView, SvtFileView*, EMPTYARG ) -{ - try - { - Reference<XNameAccess> xNameAccess(m_xContent,UNO_QUERY); - if ( xNameAccess.is() ) - { - ::rtl::OUString sSubFolder = m_aView.GetCurrentURL(); - sal_Int32 nIndex = sSubFolder.lastIndexOf('/') + 1; - sSubFolder = sSubFolder.getToken(0,'/',nIndex); - if ( sSubFolder.getLength() ) - { - Reference< XContent> xContent; - if ( xNameAccess->hasByName(sSubFolder) ) - xContent.set(xNameAccess->getByName(sSubFolder),UNO_QUERY); - if ( xContent.is() ) - { - m_xContent = xContent; - m_aView.Initialize(m_xContent,String()); - initCurrentPath(); - } - } - } - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - return 0; -} -// ----------------------------------------------------------------------------- -void OCollectionView::initCurrentPath() -{ - sal_Bool bEnable = sal_False; - try - { - if ( m_xContent.is() ) - { - const ::rtl::OUString sCID = m_xContent->getIdentifier()->getContentIdentifier(); - const static ::rtl::OUString s_sFormsCID(RTL_CONSTASCII_USTRINGPARAM("private:forms")); - const static ::rtl::OUString s_sReportsCID(RTL_CONSTASCII_USTRINGPARAM("private:reports")); - m_bCreateForm = s_sFormsCID.compareTo(sCID) == 0; - ::rtl::OUString sPath(RTL_CONSTASCII_USTRINGPARAM("/")); - if ( m_bCreateForm && sCID.getLength() != s_sFormsCID.getLength()) - sPath = sCID.copy(s_sFormsCID.getLength()); - else if ( !m_bCreateForm && sCID.getLength() != s_sReportsCID.getLength() ) - sPath = sCID.copy(s_sReportsCID.getLength()); - - m_aFTCurrentPath.SetText(sPath); - Reference<XChild> xChild(m_xContent,UNO_QUERY); - bEnable = xChild.is() && Reference<XNameAccess>(xChild->getParent(),UNO_QUERY).is(); - } - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - m_aUp.Enable(bEnable); -} -// ----------------------------------------------------------------------------- -::rtl::OUString OCollectionView::getName() const -{ - return m_aName.GetText(); -} -// ----------------------------------------------------------------------------- -//......................................................................... -} // namespace dbaui -//......................................................................... - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/CollectionView.hrc b/dbaccess/source/ui/dlg/CollectionView.hrc deleted file mode 100644 index 8c43b4c0c..000000000 --- a/dbaccess/source/ui/dlg/CollectionView.hrc +++ /dev/null @@ -1,50 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_COLLECTIONVIEW_HRC -#define DBAUI_COLLECTIONVIEW_HRC - -#define CTRL_VIEW 1 - -#define PB_CANCEL 1 -#define PB_HELP 1 - -#define ED_EXPLORERFILE_FILENAME 1 - -#define FT_EXPLORERFILE_CURRENTPATH 1 -#define FT_EXPLORERFILE_FILENAME 2 - -#define BTN_EXPLORERFILE_NEWFOLDER 1 -#define BTN_EXPLORERFILE_UP 2 -#define BTN_EXPLORERFILE_SAVE 3 - -#define STR_PATHNAME 1 - -#define FL_1 1 - -#endif //DBAUI_COLLECTIONVIEW_HRC - diff --git a/dbaccess/source/ui/dlg/CollectionView.src b/dbaccess/source/ui/dlg/CollectionView.src deleted file mode 100644 index bdb50859a..000000000 --- a/dbaccess/source/ui/dlg/CollectionView.src +++ /dev/null @@ -1,159 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif -#include "dbaccess_helpid.hrc" -#include "CollectionView.hrc" - -#define WIN_X 200 -#define WIN_Y 192 - -#define CHECKBOX_HEIGHT 8 -#define FIXEDTEXT_HEIGHT 8 -#define RELATED_CONTROLS 4 -#define UNRELATED_CONTROLS 7 -#define EDIT_HEIGHT 12 -#define BUTTON_HEIGHT 14 -#define FIXEDLINE_HEIGHT 1 -#define IMG_SIZE 15 - -ModalDialog DLG_COLLECTION_VIEW -{ - OutputSize = TRUE ; - SVLook = TRUE ; - Moveable = TRUE ; - Closeable = TRUE ; - HelpId = HID_EXPLORERDLG_COLLECTION ; - - Size = MAP_APPFONT ( WIN_X , WIN_Y ) ; - Text [ en-US ] = "Save" ; - - FixedText FT_EXPLORERFILE_CURRENTPATH - { - Pos = MAP_APPFONT ( UNRELATED_CONTROLS , UNRELATED_CONTROLS ) ; - Size = MAP_APPFONT ( 100 , FIXEDTEXT_HEIGHT ) ; - NoLabel = TRUE ; - }; - ImageButton BTN_EXPLORERFILE_NEWFOLDER - { - HelpID = "dbaccess:ImageButton:DLG_COLLECTION_VIEW:BTN_EXPLORERFILE_NEWFOLDER"; - TabStop = FALSE ; - Pos = MAP_APPFONT ( WIN_X - UNRELATED_CONTROLS - RELATED_CONTROLS - 2*IMG_SIZE, UNRELATED_CONTROLS ) ; - Size = MAP_APPFONT ( IMG_SIZE , IMG_SIZE ) ; - QuickHelpText [ en-US ] = "Create New Directory" ; - }; - ImageButton BTN_EXPLORERFILE_UP - { - HelpID = "dbaccess:ImageButton:DLG_COLLECTION_VIEW:BTN_EXPLORERFILE_UP"; - TabStop = TRUE ; - Pos = MAP_APPFONT ( WIN_X - UNRELATED_CONTROLS - IMG_SIZE, UNRELATED_CONTROLS ) ; - Size = MAP_APPFONT ( IMG_SIZE , IMG_SIZE ) ; - QuickHelpText [ en-US ] = "Up One Level" ; - }; - - Control CTRL_VIEW - { - TabStop = TRUE ; - Pos = MAP_APPFONT ( UNRELATED_CONTROLS , 2*UNRELATED_CONTROLS + IMG_SIZE) ; - Size = MAP_APPFONT ( WIN_X - 2*UNRELATED_CONTROLS , WIN_Y - 6*UNRELATED_CONTROLS - BUTTON_HEIGHT - IMG_SIZE - EDIT_HEIGHT - FIXEDTEXT_HEIGHT) ; - Border = TRUE ; - }; - - FixedText FT_EXPLORERFILE_FILENAME - { - Pos = MAP_APPFONT ( UNRELATED_CONTROLS , WIN_Y - 3*UNRELATED_CONTROLS - BUTTON_HEIGHT - FIXEDLINE_HEIGHT - EDIT_HEIGHT ) ; - Size = MAP_APPFONT ( 50 , FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "File ~name:" ; - }; - Edit ED_EXPLORERFILE_FILENAME - { - HelpID = "dbaccess:Edit:DLG_COLLECTION_VIEW:ED_EXPLORERFILE_FILENAME"; - Pos = MAP_APPFONT ( RELATED_CONTROLS + UNRELATED_CONTROLS + 50 , WIN_Y - 3*UNRELATED_CONTROLS - BUTTON_HEIGHT - FIXEDLINE_HEIGHT - EDIT_HEIGHT) ; - Size = MAP_APPFONT ( WIN_X - RELATED_CONTROLS - 2*UNRELATED_CONTROLS - 50 , EDIT_HEIGHT ) ; - Border = TRUE ; - TabStop = TRUE ; - }; - - FixedLine FL_1 - { - Pos = MAP_APPFONT ( 0 , WIN_Y - 2*UNRELATED_CONTROLS - BUTTON_HEIGHT - FIXEDLINE_HEIGHT) ; - Size = MAP_APPFONT ( WIN_X , FIXEDLINE_HEIGHT ) ; - }; - - PushButton BTN_EXPLORERFILE_SAVE - { - HelpID = "dbaccess:PushButton:DLG_COLLECTION_VIEW:BTN_EXPLORERFILE_SAVE"; - Pos = MAP_APPFONT ( WIN_X - 2*UNRELATED_CONTROLS - RELATED_CONTROLS - 150, WIN_Y - UNRELATED_CONTROLS - BUTTON_HEIGHT ) ; - Size = MAP_APPFONT ( 50 , BUTTON_HEIGHT ) ; - DefButton = TRUE ; - TabStop = TRUE ; - Text [ en-US ] = "Save" ; - }; - - CancelButton PB_CANCEL - { - TabStop = TRUE ; - Pos = MAP_APPFONT ( WIN_X - 2*UNRELATED_CONTROLS - 100, WIN_Y - UNRELATED_CONTROLS - BUTTON_HEIGHT ) ; - Size = MAP_APPFONT ( 50 , BUTTON_HEIGHT ) ; - }; - - HelpButton PB_HELP - { - TabStop = TRUE ; - Pos = MAP_APPFONT ( WIN_X - UNRELATED_CONTROLS - 50, WIN_Y - UNRELATED_CONTROLS - BUTTON_HEIGHT ) ; - Size = MAP_APPFONT ( 50 , BUTTON_HEIGHT ) ; - }; - - String STR_PATHNAME - { - Text [ en-US ] = "~Path:" ; - }; -}; - -String STR_NEW_FOLDER -{ - Text [ en-US ] = "Folder" ; -}; - -Image IMG_NAVIGATION_BTN_UP_SC -{ - ImageBitmap = Bitmap { File = "fp010"; }; - MaskColor = Color { Red = 0xFFFF; Green = 0x0; Blue = 0xFFFF; }; -}; - -Image IMG_NAVIGATION_CREATEFOLDER_SC -{ - ImageBitmap = Bitmap { File = "fp015"; }; - MaskColor = Color { Red = 0xFFFF; Green = 0x0; Blue = 0xFFFF; }; -}; - -String STR_ALREADYEXISTOVERWRITE -{ - Text [ en-US ] = "The file already exists. Overwrite?" ; -}; diff --git a/dbaccess/source/ui/dlg/ConnectionHelper.cxx b/dbaccess/source/ui/dlg/ConnectionHelper.cxx deleted file mode 100644 index 8c0d2c330..000000000 --- a/dbaccess/source/ui/dlg/ConnectionHelper.cxx +++ /dev/null @@ -1,902 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "dsnItem.hxx" -#include "ConnectionHelper.hxx" -#include "AutoControls.hrc" -#include "dbu_dlg.hrc" -#include "dbu_misc.hrc" -#include <svl/itemset.hxx> -#include <unotools/moduleoptions.hxx> -#include <sfx2/fcontnr.hxx> -#include <unotools/pathoptions.hxx> -#include <svl/stritem.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include "dsitems.hxx" -#include "dbaccess_helpid.hrc" -#include "localresaccess.hxx" -#include <osl/process.h> -#include <osl/diagnose.h> -#include <vcl/msgbox.hxx> -#include <sfx2/filedlghelper.hxx> -#include "dbadmin.hxx" -#include <comphelper/types.hxx> -#include <vcl/stdtext.hxx> -#include "sqlmessage.hxx" -#include "odbcconfig.hxx" -#include "dsselect.hxx" -#include <svl/filenotation.hxx> -#include "dbustrings.hrc" -#include <com/sun/star/ui/dialogs/XFolderPicker.hpp> -#include <com/sun/star/sdbc/XRow.hpp> -#include <com/sun/star/awt/XWindow.hpp> -#include <com/sun/star/task/XInteractionHandler.hpp> -#include <com/sun/star/ucb/XProgressHandler.hpp> -#include "UITools.hxx" -#include <unotools/localfilehelper.hxx> -#include <unotools/ucbhelper.hxx> -#include <ucbhelper/commandenvironment.hxx> -#include "finteraction.hxx" -#include <connectivity/CommonTools.hxx> -#include <tools/urlobj.hxx> -#include <tools/diagnose_ex.h> -#include <sfx2/docfilt.hxx> - -#ifdef _ADO_DATALINK_BROWSE_ -#include <vcl/sysdata.hxx> -#include "adodatalinks.hxx" -#endif //_ADO_DATALINK_BROWSE_ - -#include <com/sun/star/mozilla/XMozillaBootstrap.hpp> -#include <unotools/processfactory.hxx> - - - -//......................................................................... -namespace dbaui -{ -//......................................................................... - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::ucb; - using namespace ::com::sun::star::ui::dialogs; - using namespace ::com::sun::star::sdbc; - using namespace ::com::sun::star::beans; - using namespace ::com::sun::star::lang; - using namespace ::com::sun::star::container; - using namespace ::com::sun::star::mozilla; - using namespace ::dbtools; - using namespace ::svt; - - -DBG_NAME(OConnectionHelper) - - OConnectionHelper::OConnectionHelper( Window* pParent, const ResId& _rId, const SfxItemSet& _rCoreAttrs) - :OGenericAdministrationPage(pParent, _rId, _rCoreAttrs) - ,m_aFT_Connection ( this, ResId( FT_AUTOBROWSEURL, *_rId.GetResMgr() ) ) - ,m_aConnectionURL ( this, ResId( ET_AUTOBROWSEURL, *_rId.GetResMgr() ) ) - ,m_aPB_Connection ( this, ResId( PB_AUTOBROWSEURL, *_rId.GetResMgr() ) ) - { - DBG_CTOR(OConnectionHelper,NULL); - - // extract the datasource type collection from the item set - DbuTypeCollectionItem* pCollectionItem = PTR_CAST(DbuTypeCollectionItem, _rCoreAttrs.GetItem(DSID_TYPECOLLECTION)); - if (pCollectionItem) - m_pCollection = pCollectionItem->getCollection(); - m_aPB_Connection.SetClickHdl(LINK(this, OConnectionHelper, OnBrowseConnections)); - OSL_ENSURE(m_pCollection, "OConnectionHelper::OConnectionHelper : really need a DSN type collection !"); - m_aConnectionURL.SetTypeCollection(m_pCollection); - } - - - OConnectionHelper::~OConnectionHelper() - { - - DBG_DTOR(OConnectionHelper,NULL); - } - - - // ----------------------------------------------------------------------- - void OConnectionHelper::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - m_aFT_Connection.Show(); - m_aConnectionURL.Show(); - m_aConnectionURL.ShowPrefix( ::dbaccess::DST_JDBC == m_pCollection->determineType(m_eType) ); - - sal_Bool bEnableBrowseButton = m_pCollection->supportsBrowsing( m_eType ); - m_aPB_Connection.Show( bEnableBrowseButton ); - - SFX_ITEMSET_GET(_rSet, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True); - - // forward the values to the controls - if ( bValid ) - { - String sUrl = pUrlItem->GetValue(); - setURL( sUrl ); - - checkTestConnection(); - m_aConnectionURL.ClearModifyFlag(); - } - - OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue); - } - - // ----------------------------------------------------------------------- - void OConnectionHelper::implUpdateURLDependentStates() const - { - OSL_PRECOND( m_pAdminDialog, "OConnectionHelper::implUpdateURLDependentStates: no admin dialog!" ); - if ( !m_pAdminDialog ) - return; - - if ( m_pCollection->isFileSystemBased(m_eType) ) - m_pAdminDialog->enableConfirmSettings( getURLNoPrefix().Len() > 0 ); - } - - // ----------------------------------------------------------------------- - IMPL_LINK(OConnectionHelper, OnBrowseConnections, PushButton*, /*_pButton*/) - { - OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF"); - const ::dbaccess::DATASOURCE_TYPE eType = m_pCollection->determineType(m_eType); - switch ( eType ) - { - case ::dbaccess::DST_DBASE: - case ::dbaccess::DST_FLAT: - { - try - { - ::rtl::OUString sFolderPickerService(SERVICE_UI_FOLDERPICKER); - Reference< XFolderPicker > xFolderPicker(m_xORB->createInstance(sFolderPickerService), UNO_QUERY); - if (!xFolderPicker.is()) - { - ShowServiceNotAvailableError(GetParent(), sFolderPickerService, sal_True); - break; - } - - sal_Bool bDoBrowse = sal_False; - String sOldPath = getURLNoPrefix(); - do - { - if (sOldPath.Len()) - xFolderPicker->setDisplayDirectory(sOldPath); - if (0 == xFolderPicker->execute()) - // cancelled by the user - return 0L; - - sOldPath = xFolderPicker->getDirectory(); - switch (checkPathExistence(sOldPath)) - { - case RET_RETRY: - bDoBrowse = sal_True; - break; - case RET_CANCEL: - return 0L; - default: - break; - } - } - while (bDoBrowse); - - String sSelectedDirectory = xFolderPicker->getDirectory(); - INetURLObject aSelectedDirectory( sSelectedDirectory, INetURLObject::WAS_ENCODED, RTL_TEXTENCODING_UTF8 ); - - // for UI purpose, we don't want to have the path encoded - sSelectedDirectory = aSelectedDirectory.GetMainURL( INetURLObject::DECODE_WITH_CHARSET, RTL_TEXTENCODING_UTF8 ); - - setURLNoPrefix( sSelectedDirectory ); - SetRoadmapStateValue(sal_True); - callModifiedHdl(); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - } - break; - case ::dbaccess::DST_CALC: - { - SvtModuleOptions aModule; - ::sfx2::FileDialogHelper aFileDlg(WB_3DLOOK | WB_STDMODAL | WB_OPEN - ,aModule.GetFactoryEmptyDocumentURL(SvtModuleOptions::E_CALC) - ,SFX_FILTER_IMPORT); - askForFileName(aFileDlg); - } - break; - case ::dbaccess::DST_MSACCESS: - { - const ::rtl::OUString sExt(RTL_CONSTASCII_USTRINGPARAM("*.mdb")); - String sFilterName(ModuleRes (STR_MSACCESS_FILTERNAME)); - ::sfx2::FileDialogHelper aFileDlg(WB_3DLOOK | WB_STDMODAL | WB_OPEN); - aFileDlg.AddFilter(sFilterName,sExt); - aFileDlg.SetCurrentFilter(sFilterName); - askForFileName(aFileDlg); - } - break; - case ::dbaccess::DST_MSACCESS_2007: - { - const ::rtl::OUString sAccdb(RTL_CONSTASCII_USTRINGPARAM("*.accdb")); - String sFilterName2(ModuleRes (STR_MSACCESS_2007_FILTERNAME)); - ::sfx2::FileDialogHelper aFileDlg(WB_3DLOOK | WB_STDMODAL | WB_OPEN); - aFileDlg.AddFilter(sFilterName2,sAccdb); - aFileDlg.SetCurrentFilter(sFilterName2); - askForFileName(aFileDlg); - } - break; - case ::dbaccess::DST_ADABAS: - { - // collect all names from the config dir - // and all dir's of the DBWORK/wrk or DBROOT/wrk dir - // compare the names - - // collect the names of the installed databases - StringBag aInstalledDBs; - ::rtl::OUString sAdabasConfigDir,sAdabasWorkDir,sRootDir; - ::rtl::OUString sEnvVarName(RTL_CONSTASCII_USTRINGPARAM("DBWORK")); - rtl_uString* pDbVar = NULL; - if(osl_getEnvironment(sEnvVarName.pData,&pDbVar) == osl_Process_E_None && pDbVar) - { - sAdabasWorkDir = pDbVar; - String sURL; - utl::LocalFileHelper::ConvertPhysicalNameToURL(sAdabasWorkDir,sURL); - sAdabasWorkDir = sURL; - rtl_uString_release(pDbVar); - pDbVar = NULL; - } - - sEnvVarName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DBCONFIG")); - if(osl_getEnvironment(sEnvVarName.pData,&pDbVar) == osl_Process_E_None && pDbVar) - { - sAdabasConfigDir = pDbVar; - String sURL; - utl::LocalFileHelper::ConvertPhysicalNameToURL(sAdabasConfigDir,sURL); - sAdabasConfigDir = sURL; - rtl_uString_release(pDbVar); - pDbVar = NULL; - } - - sEnvVarName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DBROOT")); - if(osl_getEnvironment(sEnvVarName.pData,&pDbVar) == osl_Process_E_None && pDbVar) - { - sRootDir = pDbVar; - String sURL; - utl::LocalFileHelper::ConvertPhysicalNameToURL(sRootDir,sURL); - sRootDir = sURL; - rtl_uString_release(pDbVar); - pDbVar = NULL; - } - - sal_Bool bOldFashion = sAdabasConfigDir.getLength() && sAdabasWorkDir.getLength(); - - if(!bOldFashion) // we have a normal adabas installation - { // so we check the local database names in $DBROOT/config - sAdabasConfigDir = sRootDir; - sAdabasWorkDir = sRootDir; - } - - if(sAdabasConfigDir.getLength() && sAdabasWorkDir.getLength() && sRootDir.getLength()) - { - - aInstalledDBs = getInstalledAdabasDBs(sAdabasConfigDir,sAdabasWorkDir); - - if(!aInstalledDBs.size() && bOldFashion) - { - sAdabasConfigDir = sRootDir; - sAdabasWorkDir = sRootDir; - aInstalledDBs = getInstalledAdabasDBs(sAdabasConfigDir,sAdabasWorkDir); - } - - ODatasourceSelectDialog aSelector(GetParent(), aInstalledDBs, true,m_pItemSetHelper->getWriteOutputSet()); - if (RET_OK == aSelector.Execute()) - { - setURLNoPrefix(aSelector.GetSelected()); - SetRoadmapStateValue(sal_True); - callModifiedHdl(); - } - } - else - { - LocalResourceAccess aLocRes( PAGE_CONNECTION, RSC_TABPAGE ); - String sError = String(ModuleRes(STR_NO_ADABASE_DATASOURCES)); - ErrorBox aBox(this, WB_OK, sError); - aBox.Execute(); - } - } - break; - case ::dbaccess::DST_MYSQL_ODBC: - case ::dbaccess::DST_ODBC: - { - // collect all ODBC data source names - ::rtl::OUString sCurrDatasource = getURLNoPrefix(); - ::rtl::OUString sDataSource; - if ( getSelectedDataSource(sDataSource,sCurrDatasource) && sDataSource.getLength() ) - { - setURLNoPrefix(sDataSource); - SetRoadmapStateValue(sal_True); - callModifiedHdl(); - } - else - return 1L; - } - break; -#ifdef _ADO_DATALINK_BROWSE_ - case ::dbaccess::DST_ADO: - { - ::rtl::OUString sOldDataSource=getURLNoPrefix(); - ::rtl::OUString sNewDataSource; - HWND hWnd = GetParent()->GetSystemData()->hWnd; - sNewDataSource = getAdoDatalink((long)hWnd,sOldDataSource); - if ( sNewDataSource.getLength() ) - { - setURLNoPrefix(sNewDataSource); - SetRoadmapStateValue(sal_True); - callModifiedHdl(); - } - else - return 1L; - } - break; -#endif - case ::dbaccess::DST_MOZILLA: - case ::dbaccess::DST_THUNDERBIRD: - { - MozillaProductType profileType = MozillaProductType_Mozilla; - if (eType == ::dbaccess::DST_THUNDERBIRD) - profileType = MozillaProductType_Thunderbird; - - Reference<XMultiServiceFactory> xFactory = ::comphelper::getProcessServiceFactory(); - OSL_ENSURE( xFactory.is(), "can't get service factory" ); - - Reference<XInterface> xInstance = xFactory->createInstance(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.mozilla.MozillaBootstrap")) ); - OSL_ENSURE( xInstance.is(), "failed to create instance" ); - Reference<XMozillaBootstrap> xMozillaBootstrap = Reference<XMozillaBootstrap>(xInstance,UNO_QUERY); - OSL_ENSURE( xMozillaBootstrap.is(), "failed to create instance" ); - - if (xMozillaBootstrap.is()) - { - // collect all Mozilla Profiles - ::com::sun::star::uno::Sequence< ::rtl::OUString > list; - - xMozillaBootstrap->getProfileList( profileType, list ); - const ::rtl::OUString * pArray = list.getConstArray(); - - sal_Int32 count = list.getLength(); - - StringBag aProfiles; - for (sal_Int32 index=0; index < count; index++) - aProfiles.insert(pArray[index]); - - - // execute the select dialog - ODatasourceSelectDialog aSelector(GetParent(), aProfiles, eType); - ::rtl::OUString sOldProfile=getURLNoPrefix(); - - if (sOldProfile.getLength()) - aSelector.Select(sOldProfile); - else - aSelector.Select(xMozillaBootstrap->getDefaultProfile(profileType)); - - if ( RET_OK == aSelector.Execute() ) - setURLNoPrefix(aSelector.GetSelected()); - break; - } - } - default: - break; - } - - checkTestConnection(); - - return 0L; - } - - //------------------------------------------------------------------------- - - bool OConnectionHelper::checkTestConnection() - { - return true; - } - - //------------------------------------------------------------------------- - void OConnectionHelper::impl_setURL( const String& _rURL, sal_Bool _bPrefix ) - { - String sURL( _rURL ); - OSL_ENSURE( m_pCollection, "OConnectionHelper::impl_setURL: have no interpreter for the URLs!" ); - - if ( m_pCollection && sURL.Len() ) - { - if ( m_pCollection->isFileSystemBased( m_eType ) ) - { - // get the two parts: prefix and file URL - String sTypePrefix, sFileURLEncoded; - if ( _bPrefix ) - { - sTypePrefix = m_pCollection->getPrefix( m_eType ); - sFileURLEncoded = m_pCollection->cutPrefix( sURL ); - } - else - { - sFileURLEncoded = sURL; - } - - // substitute any variables - sFileURLEncoded = SvtPathOptions().SubstituteVariable( sFileURLEncoded ); - - // decode the URL - sURL = sTypePrefix; - if ( sFileURLEncoded.Len() ) - { - OFileNotation aFileNotation(sFileURLEncoded); - // set this decoded URL as text - sURL += String(aFileNotation.get(OFileNotation::N_SYSTEM)); - } - } - } - - if ( _bPrefix ) - m_aConnectionURL.SetText( sURL ); - else - m_aConnectionURL.SetTextNoPrefix( sURL ); - - implUpdateURLDependentStates(); - } - - //------------------------------------------------------------------------- - String OConnectionHelper::impl_getURL( sal_Bool _bPrefix ) const - { - // get the pure text - String sURL = _bPrefix ? m_aConnectionURL.GetText() : m_aConnectionURL.GetTextNoPrefix(); - - OSL_ENSURE( m_pCollection, "OConnectionHelper::impl_getURL: have no interpreter for the URLs!" ); - - if ( m_pCollection && sURL.Len() ) - { - if ( m_pCollection->isFileSystemBased( m_eType ) ) - { - // get the two parts: prefix and file URL - String sTypePrefix, sFileURLDecoded; - if ( _bPrefix ) - { - sTypePrefix = m_pCollection->getPrefix( m_eType ); - sFileURLDecoded = m_pCollection->cutPrefix( sURL ); - } - else - { - sFileURLDecoded = sURL; - } - - sURL = sTypePrefix; - if ( sFileURLDecoded.Len() ) - { - OFileNotation aFileNotation( sFileURLDecoded, OFileNotation::N_SYSTEM ); - sURL += String( aFileNotation.get( OFileNotation::N_URL ) ); - } - - // encode the URL - INetURLObject aFileURL( sFileURLDecoded, INetURLObject::ENCODE_ALL, RTL_TEXTENCODING_UTF8 ); - sFileURLDecoded = aFileURL.GetMainURL( INetURLObject::NO_DECODE ); - } - } - return sURL; - } - - //------------------------------------------------------------------------- - void OConnectionHelper::setURL( const String& _rURL ) - { - impl_setURL( _rURL, sal_True ); - } - - //------------------------------------------------------------------------- - String OConnectionHelper::getURLNoPrefix( ) const - { - return impl_getURL( sal_False ); - } - - //------------------------------------------------------------------------- - void OConnectionHelper::setURLNoPrefix( const String& _rURL ) - { - impl_setURL( _rURL, sal_False ); - } - - //------------------------------------------------------------------------- - sal_Int32 OConnectionHelper::checkPathExistence(const String& _rURL) - { - IS_PATH_EXIST e_exists = pathExists(_rURL, sal_False); - if (( e_exists == PATH_NOT_EXIST) || ( e_exists == PATH_NOT_KNOWN)) - { - String sQuery(ModuleRes(STR_ASK_FOR_DIRECTORY_CREATION)); - OFileNotation aTransformer(_rURL); - sQuery.SearchAndReplaceAscii("$path$", aTransformer.get(OFileNotation::N_SYSTEM)); - - m_bUserGrabFocus = sal_False; - QueryBox aQuery(GetParent(), WB_YES_NO | WB_DEF_YES, sQuery); - sal_Int32 nQueryResult = aQuery.Execute(); - m_bUserGrabFocus = sal_True; - - switch (nQueryResult) - { - case RET_YES: - { - sal_Bool bTryCreate = sal_False; - do - { - if ( !createDirectoryDeep(_rURL) ) - { // could not create the directory - sQuery = String(ModuleRes(STR_COULD_NOT_CREATE_DIRECTORY)); - sQuery.SearchAndReplaceAscii("$name$", aTransformer.get(OFileNotation::N_SYSTEM)); - - m_bUserGrabFocus = sal_False; - QueryBox aWhatToDo(GetParent(), WB_RETRY_CANCEL | WB_DEF_RETRY, sQuery); - nQueryResult = aWhatToDo.Execute(); - m_bUserGrabFocus = sal_True; - - if (RET_RETRY == nQueryResult) - bTryCreate = sal_True; - else - { - SetRoadmapStateValue(sal_False); - callModifiedHdl(); - return RET_RETRY; - } - } - } - while (bTryCreate); - } - break; - - case RET_NO: - callModifiedHdl(); - return RET_OK; - - default: - // cancelled - SetRoadmapStateValue(sal_False); - callModifiedHdl(); - return RET_CANCEL; - } - } -/* else - { - // TODO: error msg - return RET_CANCEL; - } */ - SetRoadmapStateValue(sal_True); - callModifiedHdl(); - return RET_OK; - } - - - //------------------------------------------------------------------------- - StringBag OConnectionHelper::getInstalledAdabasDBDirs(const String& _rPath,const ::ucbhelper::ResultSetInclude& _reResultSetInclude) - { - INetURLObject aNormalizer; - aNormalizer.SetSmartProtocol(INET_PROT_FILE); - aNormalizer.SetSmartURL(_rPath); - String sAdabasConfigDir = aNormalizer.GetMainURL(INetURLObject::NO_DECODE); - - ::ucbhelper::Content aAdabasConfigDir; - try - { - aAdabasConfigDir = ::ucbhelper::Content(sAdabasConfigDir, Reference< ::com::sun::star::ucb::XCommandEnvironment >()); - } - catch(::com::sun::star::ucb::ContentCreationException&) - { - return StringBag(); - } - - StringBag aInstalledDBs; - sal_Bool bIsFolder = sal_False; - try - { - bIsFolder = aAdabasConfigDir.isFolder(); - } - catch(Exception&) // the exception is thrown when the path doesn't exists - { - } - if (bIsFolder && aAdabasConfigDir.get().is()) - { // we have a content for the directory, loop through all entries - Sequence< ::rtl::OUString > aProperties(1); - aProperties[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Title")); - - try - { - Reference< XResultSet > xFiles = aAdabasConfigDir.createCursor(aProperties, _reResultSetInclude); - Reference< XRow > xRow(xFiles, UNO_QUERY); - xFiles->beforeFirst(); - while (xFiles->next()) - { -#ifdef DBG_UTIL - ::rtl::OUString sName = xRow->getString(1); -#endif - aInstalledDBs.insert(xRow->getString(1)); - } - } - catch(Exception&) - { - OSL_FAIL("OConnectionHelper::getInstalledAdabasDBDirs: could not enumerate the adabas config files!"); - } - } - - - return aInstalledDBs; - } - // ----------------------------------------------------------------------------- - StringBag OConnectionHelper::getInstalledAdabasDBs(const String &_rConfigDir,const String &_rWorkDir) - { - String sAdabasConfigDir(_rConfigDir),sAdabasWorkDir(_rWorkDir); - - if (sAdabasConfigDir.Len() && ('/' == sAdabasConfigDir.GetBuffer()[sAdabasConfigDir.Len() - 1])) - sAdabasConfigDir.AppendAscii("config"); - else - sAdabasConfigDir.AppendAscii("/config"); - - if (sAdabasWorkDir.Len() && ('/' == sAdabasWorkDir.GetBuffer()[sAdabasWorkDir.Len() - 1])) - sAdabasWorkDir.AppendAscii("wrk"); - else - sAdabasWorkDir.AppendAscii("/wrk"); - // collect the names of the installed databases - StringBag aInstalledDBs; - // collect the names of the installed databases - StringBag aConfigDBs,aWrkDBs; - aConfigDBs = getInstalledAdabasDBDirs(sAdabasConfigDir,::ucbhelper::INCLUDE_DOCUMENTS_ONLY); - aWrkDBs = getInstalledAdabasDBDirs(sAdabasWorkDir,::ucbhelper::INCLUDE_FOLDERS_ONLY); - ConstStringBagIterator aOuter = aConfigDBs.begin(); - ConstStringBagIterator aOuterEnd = aConfigDBs.end(); - for(;aOuter != aOuterEnd;++aOuter) - { - ConstStringBagIterator aInner = aWrkDBs.begin(); - ConstStringBagIterator aInnerEnd = aWrkDBs.end(); - for (;aInner != aInnerEnd; ++aInner) - { - if (aInner->equalsIgnoreAsciiCase(*aOuter)) - { - aInstalledDBs.insert(*aInner); - break; - } - } - } - return aInstalledDBs; - } - // ----------------------------------------------------------------------------- - IS_PATH_EXIST OConnectionHelper::pathExists(const ::rtl::OUString& _rURL, sal_Bool bIsFile) const - { - ::ucbhelper::Content aCheckExistence; - sal_Bool bExists = sal_False; - IS_PATH_EXIST eExists = PATH_NOT_EXIST; - Reference< ::com::sun::star::task::XInteractionHandler > xInteractionHandler = Reference< ::com::sun::star::task::XInteractionHandler >( - m_xORB->createInstance( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.task.InteractionHandler") ) ), UNO_QUERY ); - OFilePickerInteractionHandler* pHandler = new OFilePickerInteractionHandler(xInteractionHandler); - xInteractionHandler = pHandler; - - Reference< XCommandEnvironment > xCmdEnv = new ::ucbhelper::CommandEnvironment( xInteractionHandler, Reference< XProgressHandler >() ); - try - { - aCheckExistence = ::ucbhelper::Content(_rURL, xCmdEnv ); - bExists = bIsFile? aCheckExistence.isDocument(): aCheckExistence.isFolder(); - eExists = bExists? PATH_EXIST: PATH_NOT_EXIST; - } - catch(const Exception&) - { - eExists = ( pHandler && pHandler->isDoesNotExist() ) ? PATH_NOT_EXIST: (bIsFile ? PATH_NOT_EXIST : PATH_NOT_KNOWN); - } - return eExists; - } - //------------------------------------------------------------------------- - long OConnectionHelper::PreNotify( NotifyEvent& _rNEvt ) - { - if ( m_pCollection->isFileSystemBased(m_eType) ) - { - switch (_rNEvt.GetType()) - { - case EVENT_GETFOCUS: - if (m_aConnectionURL.IsWindowOrChild(_rNEvt.GetWindow()) && m_bUserGrabFocus) - { // a descendant of the URL edit field got the focus - m_aConnectionURL.SaveValueNoPrefix(); - } - break; - - case EVENT_LOSEFOCUS: - if (m_aConnectionURL.IsWindowOrChild(_rNEvt.GetWindow()) && m_bUserGrabFocus) - { // a descendant of the URL edit field lost the focus - if (!commitURL()) - return 1L; // handled - } - break; - } - } - - return OGenericAdministrationPage::PreNotify( _rNEvt ); - } - - //------------------------------------------------------------------------- - - sal_Bool OConnectionHelper::createDirectoryDeep(const String& _rPathURL) - { - ::rtl::OUString sPath(_rPathURL); - - // get an URL object analyzing the URL for us ... - INetURLObject aParser; - aParser.SetURL(_rPathURL); - - INetProtocol eProtocol = aParser.GetProtocol(); - - ::std::vector< ::rtl::OUString > aToBeCreated; // the to-be-created levels - - // search a level which exists - IS_PATH_EXIST eParentExists = PATH_NOT_EXIST; - while ( eParentExists == PATH_NOT_EXIST && aParser.getSegmentCount()) - { - aToBeCreated.push_back(aParser.getName()); // remember the local name for creation - aParser.removeSegment(); // cut the local name - eParentExists = pathExists(aParser.GetMainURL(INetURLObject::NO_DECODE), sal_False); - } - - if (!aParser.getSegmentCount()) - return sal_False; - - // create all the missing levels - try - { - // the parent content - Reference< XCommandEnvironment > xEmptyEnv; - ::ucbhelper::Content aParent(aParser.GetMainURL(INetURLObject::NO_DECODE), xEmptyEnv); - - ::rtl::OUString sContentType; - if ( INET_PROT_FILE == eProtocol ) - { - sContentType = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("application/vnd.sun.staroffice.fsys-folder")); - // the file UCP currently does not support the ContentType property - } - else - { - Any aContentType = aParent.getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ContentType")) ); - aContentType >>= sContentType; - } - - // the properties which need to be set on the new content - Sequence< ::rtl::OUString > aNewDirectoryProperties(1); - aNewDirectoryProperties[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Title")); - - // the values to be set - Sequence< Any > aNewDirectoryAttributes(1); - - // loop - for ( ::std::vector< ::rtl::OUString >::reverse_iterator aLocalName = aToBeCreated.rbegin(); - aLocalName != aToBeCreated.rend(); - ++aLocalName - ) - { - aNewDirectoryAttributes[0] <<= *aLocalName; - if (!aParent.insertNewContent(sContentType, aNewDirectoryProperties, aNewDirectoryAttributes, aParent)) - return sal_False; - } - } - catch ( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - return sal_False; - } - - return sal_True; - } - - - // ----------------------------------------------------------------------- - void OConnectionHelper::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFT_Connection)); - _rControlList.push_back(new ODisableWrapper<PushButton>(&m_aPB_Connection)); - } - - - // ----------------------------------------------------------------------- - void OConnectionHelper::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back( new OSaveValueWrapper<Edit>( &m_aConnectionURL ) ); - } - - //------------------------------------------------------------------------- - sal_Bool OConnectionHelper::commitURL() - { - String sURL; - String sOldPath; - sOldPath = m_aConnectionURL.GetSavedValueNoPrefix(); - sURL = m_aConnectionURL.GetTextNoPrefix(); - - if ( m_pCollection->isFileSystemBased(m_eType) ) - { - if ( ( sURL != sOldPath ) && ( 0 != sURL.Len() ) ) - { // the text changed since entering the control - - // the path may be in system notation .... - OFileNotation aTransformer(sURL); - sURL = aTransformer.get(OFileNotation::N_URL); - - const ::dbaccess::DATASOURCE_TYPE eType = m_pCollection->determineType(m_eType); - - if ( ( ::dbaccess::DST_CALC == eType) || ( ::dbaccess::DST_MSACCESS == eType) || ( ::dbaccess::DST_MSACCESS_2007 == eType) ) - { - if( pathExists(sURL, sal_True) == PATH_NOT_EXIST ) - { - String sFile = String( ModuleRes( STR_FILE_DOES_NOT_EXIST ) ); - sFile.SearchAndReplaceAscii("$file$", aTransformer.get(OFileNotation::N_SYSTEM)); - OSQLWarningBox( this, sFile ).Execute(); - setURLNoPrefix(sOldPath); - SetRoadmapStateValue(sal_False); - callModifiedHdl(); - return sal_False; - } - } - else - { - switch (checkPathExistence(sURL)) - { - case RET_RETRY: - m_bUserGrabFocus = sal_False; - m_aConnectionURL.GrabFocus(); - m_bUserGrabFocus = sal_True; - return sal_False; - - case RET_CANCEL: - setURLNoPrefix(sOldPath); - return sal_False; - } - } - } - } - - setURLNoPrefix(sURL); - m_aConnectionURL.SaveValueNoPrefix(); - return sal_True; - } - //------------------------------------------------------------------------- - void OConnectionHelper::askForFileName(::sfx2::FileDialogHelper& _aFileOpen) - { - String sOldPath = getURLNoPrefix(); - if ( sOldPath.Len() ) - _aFileOpen.SetDisplayDirectory(sOldPath); - else - _aFileOpen.SetDisplayDirectory( SvtPathOptions().GetWorkPath() ); - if (0 == _aFileOpen.Execute()) - { - setURLNoPrefix(_aFileOpen.GetPath()); - SetRoadmapStateValue(checkTestConnection()); - callModifiedHdl(); - } - } - -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/ConnectionHelper.hxx b/dbaccess/source/ui/dlg/ConnectionHelper.hxx deleted file mode 100644 index f553c24bc..000000000 --- a/dbaccess/source/ui/dlg/ConnectionHelper.hxx +++ /dev/null @@ -1,134 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_CONNECTIONHELPER_HXX -#define DBAUI_CONNECTIONHELPER_HXX - -#include "adminpages.hxx" -#include <ucbhelper/content.hxx> -#include "curledit.hxx" -#include <sfx2/filedlghelper.hxx> - - -#define FILL_STRING_ITEM(editcontrol, itemset, itemid, modifiedflag) \ - if (editcontrol.GetText() != editcontrol.GetSavedValue()) \ - { \ - itemset.Put(SfxStringItem(itemid, editcontrol.GetText())); \ - modifiedflag = sal_True; \ - } - -//......................................................................... -namespace dbaui -{ -//......................................................................... - - enum IS_PATH_EXIST - { - PATH_NOT_EXIST = 0, - PATH_EXIST, - PATH_NOT_KNOWN - }; - - class IDatabaseSettingsDialog; - - class OConnectionHelper : public OGenericAdministrationPage - { - sal_Bool m_bUserGrabFocus : 1; - - public: - OConnectionHelper( Window* pParent, const ResId& _rId, const SfxItemSet& _rCoreAttrs); - virtual ~OConnectionHelper(); - FixedText m_aFT_Connection; - OConnectionURLEdit m_aConnectionURL; - PushButton m_aPB_Connection; - ::rtl::OUString m_eType; // the type can't be changed in this class, so we hold it as member. - - public: - - // setting/retrieving the current connection URL - // necessary because for some types, the URL must be decoded for display purposes - ::dbaccess::ODsnTypeCollection* m_pCollection; /// the DSN type collection instance - virtual long PreNotify( NotifyEvent& _rNEvt ); - - // <method>OGenericAdministrationPage::fillControls</method> - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - // <method>OGenericAdministrationPage::fillWindows</method> - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - - - // setting/retrieving the current connection URL - // necessary because for some types, the URL must be decoded for display purposes - //String getURL( OConnectionURLEdit* _m_pConnection ) const; - //void setURL( const String& _rURL, OConnectionURLEdit* _m_pConnection ); - - String getURLNoPrefix( ) const; - void setURLNoPrefix( const String& _rURL ); - - /** checks if the path is existence - @param _rURL - The URL to check. - */ - sal_Int32 checkPathExistence(const String& _rURL); - - - IS_PATH_EXIST pathExists(const ::rtl::OUString& _rURL, sal_Bool bIsFile) const; - sal_Bool createDirectoryDeep(const String& _rPathNormalized); - sal_Bool commitURL(); - - /** opens the FileOpen dialog and asks for a FileName - @param _aFileOpen - Executes the file open dialog, which must be filled from caller. - */ - void askForFileName(::sfx2::FileDialogHelper& _aFileOpen); - - virtual void SetServiceFactory(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > _rxORB) - { - OGenericAdministrationPage::SetServiceFactory(_rxORB); - } - - protected: - void setURL( const String& _rURL ); - virtual bool checkTestConnection(); - - private: - DECL_LINK(OnBrowseConnections, PushButton*); - StringBag getInstalledAdabasDBDirs(const String &_rPath,const ::ucbhelper::ResultSetInclude& _reResultSetInclude); - StringBag getInstalledAdabasDBs(const String &_rConfigDir,const String &_rWorkDir); - String impl_getURL( sal_Bool _bPrefix ) const; - void impl_setURL( const String& _rURL, sal_Bool _bPrefix ); - void implUpdateURLDependentStates() const; - }; - -//......................................................................... -} // namespace dbaui -//......................................................................... - -#endif // DBAUI_CONNECTIONHELPER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/ConnectionPage.cxx b/dbaccess/source/ui/dlg/ConnectionPage.cxx deleted file mode 100644 index 7cfd6e7dd..000000000 --- a/dbaccess/source/ui/dlg/ConnectionPage.cxx +++ /dev/null @@ -1,378 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "ConnectionPage.hxx" -#include "ConnectionPage.hrc" -#include "dbu_dlg.hrc" -#include "dsmeta.hxx" -#include <svl/itemset.hxx> -#include <unotools/pathoptions.hxx> -#include <svl/stritem.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include <unotools/moduleoptions.hxx> -#include "dsitems.hxx" -#include "dbaccess_helpid.hrc" -#include "localresaccess.hxx" -#include <osl/process.h> -#include <vcl/msgbox.hxx> -#include <sfx2/filedlghelper.hxx> -#include "dbadmin.hxx" -#include <comphelper/types.hxx> -#include <vcl/stdtext.hxx> -#include "sqlmessage.hxx" -#include "odbcconfig.hxx" -#include "dsselect.hxx" -#include <svl/filenotation.hxx> -#include "dbustrings.hrc" -#include <com/sun/star/ui/dialogs/XFolderPicker.hpp> -#include <com/sun/star/sdbc/XRow.hpp> -#include <com/sun/star/awt/XWindow.hpp> -#include <com/sun/star/task/XInteractionHandler.hpp> -#include <com/sun/star/ucb/XProgressHandler.hpp> -#include <com/sun/star/sdbc/XConnection.hpp> -#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp> -#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp> -#include <com/sun/star/ui/dialogs/XFilePicker.hpp> -#include "UITools.hxx" -#include <unotools/localfilehelper.hxx> -#include <unotools/ucbhelper.hxx> -#include <ucbhelper/commandenvironment.hxx> -#include "finteraction.hxx" -#include <connectivity/CommonTools.hxx> -#include <tools/urlobj.hxx> -#include <sfx2/docfilt.hxx> -#include "dsnItem.hxx" -#if defined(WNT) -#define _ADO_DATALINK_BROWSE_ -#endif - -#ifdef _ADO_DATALINK_BROWSE_ -#include <vcl/sysdata.hxx> -#include "adodatalinks.hxx" -#endif //_ADO_DATALINK_BROWSE_ - -#include "AutoControls.hrc" - -//......................................................................... -namespace dbaui -{ -//......................................................................... - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::ucb; - using namespace ::com::sun::star::ui::dialogs; - using namespace ::com::sun::star::sdbc; - using namespace ::com::sun::star::beans; - using namespace ::com::sun::star::lang; - using namespace ::com::sun::star::container; - using namespace ::dbtools; - using namespace ::svt; - - SfxTabPage* OConnectionTabPage::Create( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OConnectionTabPage( pParent, _rAttrSet ) ); - } - //======================================================================== - //= OConnectionTabPage - //======================================================================== - DBG_NAME(OConnectionTabPage) - OConnectionTabPage::OConnectionTabPage(Window* pParent, const SfxItemSet& _rCoreAttrs) - :OConnectionHelper(pParent, ModuleRes(PAGE_CONNECTION), _rCoreAttrs) - ,m_bUserGrabFocus(sal_True) - ,m_aFL1(this, ModuleRes(FL_SEPARATOR1)) - ,m_aFL2(this, ModuleRes(FL_SEPARATOR2)) - ,m_aUserNameLabel(this, ModuleRes(FT_USERNAME)) - ,m_aUserName(this, ModuleRes(ET_USERNAME)) - ,m_aPasswordRequired(this, ModuleRes(CB_PASSWORD_REQUIRED)) - ,m_aFL3(this, ModuleRes(FL_SEPARATOR3)) - ,m_aJavaDriverLabel(this, ModuleRes(FT_JDBCDRIVERCLASS)) - ,m_aJavaDriver(this, ModuleRes(ET_JDBCDRIVERCLASS)) - ,m_aTestJavaDriver(this, ModuleRes(PB_TESTDRIVERCLASS)) - ,m_aTestConnection(this, ModuleRes(PB_TESTCONNECTION)) - { - DBG_CTOR(OConnectionTabPage,NULL); - m_aConnectionURL.SetModifyHdl(LINK(this, OConnectionTabPage, OnEditModified)); - m_aJavaDriver.SetModifyHdl(getControlModifiedLink()); - m_aJavaDriver.SetModifyHdl(LINK(this, OConnectionTabPage, OnEditModified)); - m_aUserName.SetModifyHdl(getControlModifiedLink()); - m_aPasswordRequired.SetClickHdl(getControlModifiedLink()); - - m_aTestConnection.SetClickHdl(LINK(this,OGenericAdministrationPage,OnTestConnectionClickHdl)); - m_aTestJavaDriver.SetClickHdl(LINK(this,OConnectionTabPage,OnTestJavaClickHdl)); - - FreeResource(); - - LayoutHelper::fitSizeRightAligned( m_aTestConnection ); - } - - // ----------------------------------------------------------------------- - OConnectionTabPage::~OConnectionTabPage() - { - DBG_DTOR(OConnectionTabPage,NULL); - } - - // ----------------------------------------------------------------------- - void OConnectionTabPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - m_eType = m_pAdminDialog->getDatasourceType(_rSet); - OConnectionHelper::implInitControls( _rSet, _bSaveValue); - - LocalResourceAccess aLocRes( PAGE_CONNECTION, RSC_TABPAGE ); - ::dbaccess::DATASOURCE_TYPE eType = m_pCollection->determineType(m_eType); - switch( eType ) - { - case ::dbaccess::DST_DBASE: - m_aFT_Connection.SetText(String(ModuleRes(STR_DBASE_PATH_OR_FILE))); - m_aConnectionURL.SetHelpId(HID_DSADMIN_DBASE_PATH); - break; - case ::dbaccess::DST_FLAT: - m_aFT_Connection.SetText(String(ModuleRes(STR_FLAT_PATH_OR_FILE))); - m_aConnectionURL.SetHelpId(HID_DSADMIN_FLAT_PATH); - break; - case ::dbaccess::DST_CALC: - m_aFT_Connection.SetText(String(ModuleRes(STR_CALC_PATH_OR_FILE))); - m_aConnectionURL.SetHelpId(HID_DSADMIN_CALC_PATH); - break; - case ::dbaccess::DST_ADABAS: - m_aFT_Connection.SetText(String(ModuleRes(STR_ADABAS_DATABASE_NAME))); - m_aConnectionURL.SetHelpId(HID_DSADMIN_ADABAS_DATABASE); - break; - case ::dbaccess::DST_ADO: - m_aFT_Connection.SetText(String(ModuleRes(STR_COMMONURL))); - break; - case ::dbaccess::DST_MSACCESS: - case ::dbaccess::DST_MSACCESS_2007: - m_aFT_Connection.SetText(String(ModuleRes(STR_MSACCESS_MDB_FILE))); - m_aConnectionURL.SetHelpId(HID_DSADMIN_MSACCESS_MDB_FILE); - break; - case ::dbaccess::DST_MYSQL_NATIVE: - case ::dbaccess::DST_MYSQL_JDBC: - m_aFT_Connection.SetText(String(ModuleRes(STR_MYSQL_DATABASE_NAME))); - m_aConnectionURL.SetHelpId( HID_DSADMIN_MYSQL_DATABASE ); - break; - case ::dbaccess::DST_ORACLE_JDBC: - m_aFT_Connection.SetText(String(ModuleRes(STR_ORACLE_DATABASE_NAME))); - m_aConnectionURL.SetHelpId(HID_DSADMIN_ORACLE_DATABASE); - break; - case ::dbaccess::DST_MYSQL_ODBC: - case ::dbaccess::DST_ODBC: - m_aFT_Connection.SetText(String(ModuleRes(STR_NAME_OF_ODBC_DATASOURCE))); - m_aConnectionURL.SetHelpId( eType == ::dbaccess::DST_MYSQL_ODBC ? HID_DSADMIN_MYSQL_ODBC_DATASOURCE : HID_DSADMIN_ODBC_DATASOURCE); - break; - case ::dbaccess::DST_LDAP: - m_aFT_Connection.SetText(String(ModuleRes(STR_HOSTNAME))); - m_aConnectionURL.SetHelpId( HID_DSADMIN_LDAP_HOSTNAME ); - break; - case ::dbaccess::DST_MOZILLA: - m_aFT_Connection.SetText(String(ModuleRes(STR_MOZILLA_PROFILE_NAME))); - m_aConnectionURL.SetHelpId( HID_DSADMIN_MOZILLA_PROFILE_NAME ); - break; - case ::dbaccess::DST_THUNDERBIRD: - m_aFT_Connection.SetText(String(ModuleRes(STR_THUNDERBIRD_PROFILE_NAME))); - m_aConnectionURL.SetHelpId( HID_DSADMIN_THUNDERBIRD_PROFILE_NAME ); - break; - case ::dbaccess::DST_OUTLOOK: - case ::dbaccess::DST_OUTLOOKEXP: - case ::dbaccess::DST_EVOLUTION: - case ::dbaccess::DST_EVOLUTION_GROUPWISE: - case ::dbaccess::DST_EVOLUTION_LDAP: - case ::dbaccess::DST_KAB: - case ::dbaccess::DST_MACAB: - m_aFT_Connection.SetText(String(ModuleRes(STR_NO_ADDITIONAL_SETTINGS))); - { - String sText = m_aFT_Connection.GetText(); - sText.SearchAndReplaceAscii("%test",m_aTestConnection.GetText()); - String sTemp; - sText.SearchAndReplaceAscii("~",sTemp); - m_aFT_Connection.SetText(sText); - } - m_aConnectionURL.Hide(); - break; - case ::dbaccess::DST_JDBC: - default: - m_aFT_Connection.SetText(String(ModuleRes(STR_COMMONURL))); - break; - } - - ; - AuthenticationMode eAuthMode( DataSourceMetaData::getAuthentication( m_eType ) ); - bool bShowUserAuthenfication = ( eAuthMode != AuthNone ); - bool bShowUser = ( eAuthMode == AuthUserPwd ); - - m_aPB_Connection.SetHelpId(HID_DSADMIN_BROWSECONN); - m_aFL2.Show( bShowUserAuthenfication ); - m_aUserNameLabel.Show( bShowUser && bShowUserAuthenfication ); - m_aUserName.Show( bShowUser && bShowUserAuthenfication ); - m_aPasswordRequired.Show( bShowUserAuthenfication ); - if ( !bShowUser && bShowUserAuthenfication ) - m_aPasswordRequired.SetPosPixel(m_aUserNameLabel.GetPosPixel()); - - // collect the items - SFX_ITEMSET_GET(_rSet, pUidItem, SfxStringItem, DSID_USER, sal_True); - - SFX_ITEMSET_GET(_rSet, pJdbcDrvItem, SfxStringItem, DSID_JDBCDRIVERCLASS, sal_True); - SFX_ITEMSET_GET(_rSet, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True); - SFX_ITEMSET_GET(_rSet, pAllowEmptyPwd, SfxBoolItem, DSID_PASSWORDREQUIRED, sal_True); - - // forward the values to the controls - if ( bValid ) - { - m_aUserName.SetText(pUidItem->GetValue()); - m_aPasswordRequired.Check(pAllowEmptyPwd->GetValue()); - - String sUrl = pUrlItem->GetValue(); - setURL( sUrl ); - - const sal_Bool bEnableJDBC = m_pCollection->determineType(m_eType) == ::dbaccess::DST_JDBC; - if ( !pJdbcDrvItem->GetValue().Len() ) - { - String sDefaultJdbcDriverName = m_pCollection->getJavaDriverClass(m_eType); - if ( sDefaultJdbcDriverName.Len() ) - { - m_aJavaDriver.SetText(sDefaultJdbcDriverName); - m_aJavaDriver.SetModifyFlag(); - } - } - else - m_aJavaDriver.SetText(pJdbcDrvItem->GetValue()); - - m_aJavaDriverLabel.Show(bEnableJDBC); - m_aJavaDriver.Show(bEnableJDBC); - m_aTestJavaDriver.Show(bEnableJDBC); - m_aTestJavaDriver.Enable( m_aJavaDriver.GetText().Len() != 0); - m_aFL3.Show(bEnableJDBC); - - checkTestConnection(); - - m_aUserName.ClearModifyFlag(); - m_aConnectionURL.ClearModifyFlag(); - m_aJavaDriver.ClearModifyFlag(); - } - } - // ----------------------------------------------------------------------- - void OConnectionTabPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL1)); - - _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL2)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aJavaDriverLabel)); - _rControlList.push_back(new ODisableWrapper<PushButton>(&m_aTestJavaDriver)); - - _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL3)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aUserNameLabel)); - _rControlList.push_back(new ODisableWrapper<PushButton>(&m_aTestConnection)); - OConnectionHelper::fillWindows(_rControlList); - - } - // ----------------------------------------------------------------------- - void OConnectionTabPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aJavaDriver)); - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aUserName)); - _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aPasswordRequired)); - OConnectionHelper::fillControls(_rControlList); - } - - // ----------------------------------------------------------------------- - sal_Bool OConnectionTabPage::FillItemSet(SfxItemSet& _rSet) - { - sal_Bool bChangedSomething = sal_False; - - if (m_aUserName.GetText() != m_aUserName.GetSavedValue()) - { - _rSet.Put(SfxStringItem(DSID_USER, m_aUserName.GetText())); - _rSet.Put(SfxStringItem(DSID_PASSWORD, String())); - bChangedSomething = sal_True; - } - - fillBool(_rSet,&m_aPasswordRequired,DSID_PASSWORDREQUIRED,bChangedSomething); - - if ( m_pCollection->determineType(m_eType) == ::dbaccess::DST_JDBC ) - { - fillString(_rSet,&m_aJavaDriver, DSID_JDBCDRIVERCLASS, bChangedSomething); - } - - fillString(_rSet,&m_aConnectionURL, DSID_CONNECTURL, bChangedSomething); - - return bChangedSomething; - } - // ----------------------------------------------------------------------- - IMPL_LINK(OConnectionTabPage, OnTestJavaClickHdl, PushButton*, /*_pButton*/) - { - OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF"); - sal_Bool bSuccess = sal_False; - try - { - if ( m_aJavaDriver.GetText().Len() ) - { - ::rtl::Reference< jvmaccess::VirtualMachine > xJVM = ::connectivity::getJavaVM(m_pAdminDialog->getORB()); - bSuccess = ::connectivity::existsJavaClassByName(xJVM,m_aJavaDriver.GetText()); - } - } - catch(Exception&) - { - } - - sal_uInt16 nMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS; - OSQLMessageBox aMsg( this, String( ModuleRes( nMessage ) ), String() ); - aMsg.Execute(); - return 0L; - } - // ----------------------------------------------------------------------- - bool OConnectionTabPage::checkTestConnection() - { - OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF"); - sal_Bool bEnableTestConnection = !m_aConnectionURL.IsVisible() || (m_aConnectionURL.GetTextNoPrefix().Len() != 0); - if ( m_pCollection->determineType(m_eType) == ::dbaccess::DST_JDBC ) - bEnableTestConnection = bEnableTestConnection && (m_aJavaDriver.GetText().Len() != 0); - m_aTestConnection.Enable(bEnableTestConnection); - return true; - } - // ----------------------------------------------------------------------- - IMPL_LINK(OConnectionTabPage, OnEditModified, Edit*, _pEdit) - { - if ( _pEdit == &m_aJavaDriver ) - m_aTestJavaDriver.Enable( m_aJavaDriver.GetText().Len() != 0 ); - - checkTestConnection(); - // tell the listener we were modified - callModifiedHdl(); - return 0L; - } -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/ConnectionPage.hrc b/dbaccess/source/ui/dlg/ConnectionPage.hrc deleted file mode 100644 index 6c18a3e42..000000000 --- a/dbaccess/source/ui/dlg/ConnectionPage.hrc +++ /dev/null @@ -1,59 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_CONNECTIONPAGE_HRC -#define DBAUI_CONNECTIONPAGE_HRC - -//======================================================================== -// control ids - -#define FT_USERNAME 1 -#define FT_JDBCDRIVERCLASS 2 -#define FT_DBASE_PATH_OR_FILE 3 -#define FT_NAME_OF_ODBC_DATASOURCE 4 -#define FT_MYSQL_DATABASE_NAME 5 -#define FT_MSACCESS_MDB_FILE 6 -#define FT_FLAT_PATH_OR_FILE 7 -#define FT_CALC_PATH_OR_FILE 8 -#define FT_ADABAS_DATABASE_NAME 9 -#define FT_NO_ADDITIONAL_SETTINGS 10 -#define FT_HOSTNAME 11 -#define FT_ORACLE_DATABASE_NAME 12 - -#define ET_USERNAME 1 -#define ET_JDBCDRIVERCLASS 2 - -#define PB_TESTDRIVERCLASS 1 -#define PB_TESTCONNECTION 2 - -#define CB_PASSWORD_REQUIRED 1 - -#define FL_SEPARATOR2 1 -#define FL_SEPARATOR3 2 - -#endif // DBAUI_CONNECTIONPAGE_HRC - diff --git a/dbaccess/source/ui/dlg/ConnectionPage.hxx b/dbaccess/source/ui/dlg/ConnectionPage.hxx deleted file mode 100644 index b0c29ca3f..000000000 --- a/dbaccess/source/ui/dlg/ConnectionPage.hxx +++ /dev/null @@ -1,109 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_CONNECTIONPAGE_HXX -#define DBAUI_CONNECTIONPAGE_HXX - -#include "ConnectionHelper.hxx" -#include "adminpages.hxx" -#include <ucbhelper/content.hxx> -#include "curledit.hxx" - -//......................................................................... -namespace dbaui -{ -//......................................................................... - - class IDatabaseSettingsDialog; - //========================================================================= - //= OConnectionTabPage - //========================================================================= - - /** implements the connection page of teh data source properties dialog. - */ - class OConnectionTabPage : public OConnectionHelper - { - sal_Bool m_bUserGrabFocus : 1; - protected: - // connection - FixedLine m_aFL1; - // user authentification - FixedLine m_aFL2; - FixedText m_aUserNameLabel; - Edit m_aUserName; - CheckBox m_aPasswordRequired; - - // jdbc driver - FixedLine m_aFL3; - FixedText m_aJavaDriverLabel; - Edit m_aJavaDriver; - PushButton m_aTestJavaDriver; - - // connection test - PushButton m_aTestConnection; - - - // called when the test connection button was clicked - DECL_LINK(OnTestJavaClickHdl,PushButton*); - DECL_LINK(OnEditModified,Edit*); - - public: - static SfxTabPage* Create( Window* pParent, const SfxItemSet& _rAttrSet ); - virtual sal_Bool FillItemSet (SfxItemSet& _rCoreAttrs); - - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - - inline void enableConnectionURL() { m_aConnectionURL.SetReadOnly(sal_False); } - inline void disableConnectionURL() { m_aConnectionURL.SetReadOnly(); } - - /** changes the connection URL. - <p>The new URL must be of the type which is currently selected, only the parts which do not - affect the type may be changed (compared to the previous URL).</p> - */ - private: - OConnectionTabPage(Window* pParent, const SfxItemSet& _rCoreAttrs); - // nControlFlags ist eine Kombination der CBTP_xxx-Konstanten - virtual ~OConnectionTabPage(); - - // <method>OGenericAdministrationPage::fillControls</method> - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - // <method>OGenericAdministrationPage::fillWindows</method> - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - - private: - /** enables the test connection button, if allowed - */ - virtual bool checkTestConnection(); - }; -//......................................................................... -} // namespace dbaui -//......................................................................... - -#endif // _DBAUI_DETAILPAGES_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/ConnectionPage.src b/dbaccess/source/ui/dlg/ConnectionPage.src deleted file mode 100644 index 63c400b0a..000000000 --- a/dbaccess/source/ui/dlg/ConnectionPage.src +++ /dev/null @@ -1,190 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBA_DBACCESS_HELPID_HRC_ -#include "dbaccess_helpid.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif -#ifndef DBAUI_CONNECTIONPAGE_HRC -#include "ConnectionPage.hrc" -#endif -#ifndef _DBAUI_AUTOCONTROLS_HRC_ -#include "AutoControls.hrc" -#endif - - -//......................................................................... -TabPage PAGE_CONNECTION -{ - HelpID = "dbaccess:TabPage:PAGE_CONNECTION"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( PAGE_X , PAGE_Y ) ; - Hide = TRUE; - - FixedLine FL_SEPARATOR1 - { - Pos = MAP_APPFONT ( 4 , UNRELATED_CONTROLS ) ; - Size = MAP_APPFONT ( PAGE_X - 8 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "General"; - }; - - AUTO_BROWSECONTROLGROUP( 6, UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + RELATED_CONTROLS, PAGE_X, HID_DSADMIN_URL_GENERAL, HID_DSADMIN_BROWSECONN) - - FixedText FT_NO_ADDITIONAL_SETTINGS - { - Hide = TRUE; - WordBreak = TRUE; - Pos = MAP_APPFONT ( 6 , UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + RELATED_CONTROLS ) ; - Size = MAP_APPFONT ( PAGE_X - 12 , 3*FIXEDTEXT_HEIGHT ) ; - }; - - FixedText FT_HOSTNAME - { - Hide = TRUE; - Pos = MAP_APPFONT ( 6 , UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + RELATED_CONTROLS ) ; - Size = MAP_APPFONT ( PAGE_X - 12 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "~Host name"; - }; - - FixedLine FL_SEPARATOR2 - { - Pos = MAP_APPFONT ( 4 , 3*FIXEDTEXT_HEIGHT + 3*UNRELATED_CONTROLS + RELATED_CONTROLS ) ; - Size = MAP_APPFONT ( PAGE_X - 8 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "User authentication"; - }; - - FixedText FT_USERNAME - { - Pos = MAP_APPFONT ( 6 , 3*UNRELATED_CONTROLS + 4*FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS ) ; - Size = MAP_APPFONT ( 90 - 12 , FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "~User name" ; - }; - - Edit ET_USERNAME - { - HelpID = "dbaccess:Edit:PAGE_CONNECTION:ET_USERNAME"; - Border = TRUE ; - Pos = MAP_APPFONT ( 90 , 3*UNRELATED_CONTROLS + 4*FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS -1 ) ; - Size = MAP_APPFONT ( 105 , EDIT_HEIGHT ) ; - TabStop = TRUE ; - }; - - CheckBox CB_PASSWORD_REQUIRED - { - HelpID = "dbaccess:CheckBox:PAGE_CONNECTION:CB_PASSWORD_REQUIRED"; - Pos = MAP_APPFONT ( 90 , 4*UNRELATED_CONTROLS + 5*FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS ) ; - Size = MAP_APPFONT ( 105 , CHECKBOX_HEIGHT ) ; - Text [ en-US ] = "Password required"; - }; - - FixedLine FL_SEPARATOR3 - { - Pos = MAP_APPFONT ( 4 , 5*UNRELATED_CONTROLS + 5*FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS + CHECKBOX_HEIGHT) ; - - Size = MAP_APPFONT ( PAGE_X - 8 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "JDBC properties"; - }; - - FixedText FT_JDBCDRIVERCLASS - { - Pos = MAP_APPFONT ( 6 , 5*UNRELATED_CONTROLS + 6*FIXEDTEXT_HEIGHT + 3*RELATED_CONTROLS + CHECKBOX_HEIGHT) ; - - Size = MAP_APPFONT ( 90 - 12 , FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "~JDBC driver class" ; - }; - - Edit ET_JDBCDRIVERCLASS - { - Border = TRUE ; - Pos = MAP_APPFONT ( 90 , 5*UNRELATED_CONTROLS + 6*FIXEDTEXT_HEIGHT + 3*RELATED_CONTROLS + CHECKBOX_HEIGHT -1) ; - Size = MAP_APPFONT ( 105 , EDIT_HEIGHT ) ; - TabStop = TRUE ; - HelpId = HID_DSADMIN_DRIVERCLASS; - }; - - PushButton PB_TESTDRIVERCLASS - { - HelpID = "dbaccess:PushButton:PAGE_CONNECTION:PB_TESTDRIVERCLASS"; - TabStop = TRUE ; - Pos = MAP_APPFONT ( PAGE_X - BUTTON_WIDTH - UNRELATED_CONTROLS , 5*UNRELATED_CONTROLS + 6*FIXEDTEXT_HEIGHT + 3*RELATED_CONTROLS + CHECKBOX_HEIGHT -2 ) ; - Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ; - Text [ en-US ] = "Test Class" ; - }; - - PushButton PB_TESTCONNECTION - { - HelpID = "dbaccess:PushButton:PAGE_CONNECTION:PB_TESTCONNECTION"; - Pos = MAP_APPFONT ( PAGE_X - 75 - UNRELATED_CONTROLS, PAGE_Y - BUTTON_HEIGHT - UNRELATED_CONTROLS) ; - Size = MAP_APPFONT ( 75 , BUTTON_HEIGHT ) ; - TabStop = TRUE ; - Text [ en-US ] = "Test Connection"; - }; - -}; - -String STR_NO_ADABASE_DATASOURCES -{ - Text [ en-US ] = "No Adabas D data sources were found on your system."; -}; - -String STR_CONNECTION_TEST -{ - Text [ en-US ] = "Connection Test"; -}; - -String STR_CONNECTION_SUCCESS -{ - Text [ en-US ] = "The connection was established successfully."; -}; - -String STR_CONNECTION_NO_SUCCESS -{ - Text [ en-US ] = "The connection could not be established."; -}; - -String STR_JDBCDRIVER_SUCCESS -{ - Text [ en-US ] = "The JDBC driver was loaded successfully."; -}; - -String STR_JDBCDRIVER_NO_SUCCESS -{ - Text [ en-US ] = "The JDBC driver could not be loaded."; -}; - -String STR_MSACCESS_FILTERNAME -{ - Text [ en-US ] = "MS Access file"; -}; - -String STR_MSACCESS_2007_FILTERNAME -{ - Text [ en-US ] = "MS Access 2007 file"; -}; diff --git a/dbaccess/source/ui/dlg/ConnectionPageSetup.cxx b/dbaccess/source/ui/dlg/ConnectionPageSetup.cxx deleted file mode 100644 index bbba4a4b9..000000000 --- a/dbaccess/source/ui/dlg/ConnectionPageSetup.cxx +++ /dev/null @@ -1,244 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "ConnectionPageSetup.hxx" -#include "AutoControls.hrc" -#include "dbadminsetup.hrc" -#include "dbu_dlg.hrc" -#include <svl/itemset.hxx> -#include <unotools/pathoptions.hxx> -#include <svl/stritem.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include "dsitems.hxx" -#include "dbaccess_helpid.hrc" -#include "localresaccess.hxx" -#include <osl/process.h> -#include <vcl/msgbox.hxx> -#include <sfx2/filedlghelper.hxx> -#include "dbadmin.hxx" -#include "dbadmin.hrc" -#include <comphelper/types.hxx> -#include <vcl/stdtext.hxx> -#include "sqlmessage.hxx" -#include "odbcconfig.hxx" -#include "dsselect.hxx" -#include <svl/filenotation.hxx> -#include "dbustrings.hrc" -#include <com/sun/star/ui/dialogs/XFolderPicker.hpp> -#include <com/sun/star/sdbc/XRow.hpp> -#include <com/sun/star/awt/XWindow.hpp> -#include <com/sun/star/task/XInteractionHandler.hpp> -#include <com/sun/star/ucb/XProgressHandler.hpp> -#include <com/sun/star/sdbc/XConnection.hpp> -#include "UITools.hxx" -#include <unotools/localfilehelper.hxx> -#include <unotools/ucbhelper.hxx> -#include <ucbhelper/commandenvironment.hxx> -#include "finteraction.hxx" -#include <connectivity/CommonTools.hxx> -#include <tools/urlobj.hxx> -#include <sfx2/docfilt.hxx> -#include <vcl/mnemonic.hxx> - -//......................................................................... -namespace dbaui -{ -//......................................................................... - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::ucb; - using namespace ::com::sun::star::ui::dialogs; - using namespace ::com::sun::star::sdbc; - using namespace ::com::sun::star::beans; - using namespace ::com::sun::star::lang; - using namespace ::com::sun::star::container; - using namespace ::dbtools; - using namespace ::svt; - - - - OGenericAdministrationPage* OConnectionTabPageSetup::CreateDbaseTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) - { - OConnectionTabPageSetup* oDBWizardPage = new OConnectionTabPageSetup( pParent, PAGE_DBWIZARD_DBASE, _rAttrSet, STR_DBASE_HELPTEXT, STR_DBASE_HEADERTEXT, STR_DBASE_PATH_OR_FILE); - oDBWizardPage->FreeResource(); - return oDBWizardPage; - } - - - OGenericAdministrationPage* OConnectionTabPageSetup::CreateMSAccessTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) - { - OConnectionTabPageSetup* oDBWizardPage = new OConnectionTabPageSetup( pParent, PAGE_DBWIZARD_MSACCESS, _rAttrSet, STR_MSACCESS_HELPTEXT, STR_MSACCESS_HEADERTEXT, STR_MSACCESS_MDB_FILE); - oDBWizardPage->FreeResource(); - return oDBWizardPage; - } - - OGenericAdministrationPage* OConnectionTabPageSetup::CreateAdabasTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) - { - OConnectionTabPageSetup* oDBWizardPage = new OConnectionTabPageSetup( pParent, PAGE_DBWIZARD_ADABAS, _rAttrSet, STR_ADABAS_HELPTEXT, STR_ADABAS_HEADERTEXT, STR_ADABAS_DATABASE_NAME); - oDBWizardPage->FreeResource(); - return oDBWizardPage; - } - - OGenericAdministrationPage* OConnectionTabPageSetup::CreateADOTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) - { - OConnectionTabPageSetup* oDBWizardPage = new OConnectionTabPageSetup( pParent, PAGE_DBWIZARD_ADO, _rAttrSet, STR_ADO_HELPTEXT, STR_ADO_HEADERTEXT, STR_COMMONURL); - oDBWizardPage->FreeResource(); - return oDBWizardPage; - } - - OGenericAdministrationPage* OConnectionTabPageSetup::CreateODBCTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) - { - OConnectionTabPageSetup* oDBWizardPage = new OConnectionTabPageSetup( pParent, PAGE_DBWIZARD_ODBC, _rAttrSet, STR_ODBC_HELPTEXT, STR_ODBC_HEADERTEXT, STR_NAME_OF_ODBC_DATASOURCE); - oDBWizardPage->FreeResource(); - return oDBWizardPage; - } - - OGenericAdministrationPage* OConnectionTabPageSetup::CreateUserDefinedTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) - { - OConnectionTabPageSetup* oDBWizardPage = new OConnectionTabPageSetup( pParent, PAGE_DBWIZARD_USERDEFINED, _rAttrSet, USHRT_MAX, USHRT_MAX, STR_COMMONURL); - oDBWizardPage->FreeResource(); - return oDBWizardPage; - } - - - //======================================================================== - //= OConnectionTabPageSetup - //======================================================================== - DBG_NAME(OConnectionTabPageSetup) - OConnectionTabPageSetup::OConnectionTabPageSetup(Window* pParent, sal_uInt16 _rId, const SfxItemSet& _rCoreAttrs, sal_uInt16 _nHelpTextResId, sal_uInt16 _nHeaderResId, sal_uInt16 _nUrlResId) - :OConnectionHelper(pParent, ModuleRes(_rId), _rCoreAttrs) - ,m_bUserGrabFocus(sal_True) - ,m_aFT_HelpText(this, ModuleRes(FT_AUTOWIZARDHELPTEXT)) - { - DBG_CTOR(OConnectionTabPageSetup, NULL); - - if ( USHRT_MAX != _nHelpTextResId ) - { - String sHelpText = String(ModuleRes(_nHelpTextResId)); - m_aFT_HelpText.SetText(sHelpText); - } - else - m_aFT_HelpText.Hide(); - - - if ( USHRT_MAX != _nHeaderResId ) - SetHeaderText(FT_AUTOWIZARDHEADER, _nHeaderResId); - - if ( USHRT_MAX != _nUrlResId ) - { - String sLabelText = String(ModuleRes(_nUrlResId)); - m_aFT_Connection.SetText(sLabelText); - if ( USHRT_MAX == _nHelpTextResId ) - { - Point aPos = m_aFT_HelpText.GetPosPixel(); - Point aFTPos = m_aFT_Connection.GetPosPixel(); - Point aEDPos = m_aConnectionURL.GetPosPixel(); - Point aPBPos = m_aPB_Connection.GetPosPixel(); - - aEDPos.Y() = aPos.Y() + aEDPos.Y() - aFTPos.Y(); - aPBPos.Y() = aPos.Y() + aPBPos.Y() - aFTPos.Y(); - aFTPos.Y() = aPos.Y(); - m_aFT_Connection.SetPosPixel(aFTPos); - m_aConnectionURL.SetPosPixel(aEDPos); - m_aPB_Connection.SetPosPixel(aPBPos); - } - } - else - m_aFT_Connection.Hide(); - - m_aConnectionURL.SetModifyHdl(LINK(this, OConnectionTabPageSetup, OnEditModified)); - - SetRoadmapStateValue(sal_False); - } - - // ----------------------------------------------------------------------- - OConnectionTabPageSetup::~OConnectionTabPageSetup() - { - DBG_DTOR(OConnectionTabPageSetup,NULL); - } - - // ----------------------------------------------------------------------- - void OConnectionTabPageSetup::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - m_eType = m_pAdminDialog->getDatasourceType(_rSet); - // special handling for oracle, this can only happen - // if the user enters the same url as used for Oracle and we are on the JDBC path - //! TODO - //if ( ::dbaccess::DST_ORACLE_JDBC == m_eType ) - // m_eType = ::dbaccess::DST_JDBC; - - OConnectionHelper::implInitControls(_rSet, _bSaveValue); - - //! TODO - //if ( m_eType >= ::dbaccess::DST_USERDEFINE1 ) - //{ - // String sDisplayName = m_pCollection->getTypeDisplayName(m_eType); - // FixedText* ppTextControls[] ={&m_aFT_Connection}; - // for (size_t i = 0; i < SAL_N_ELEMENTS(ppTextControls); ++i) - // { - // ppTextControls[i]->SetText(sDisplayName); - // } - //} - - callModifiedHdl(); - } - // ----------------------------------------------------------------------- - sal_Bool OConnectionTabPageSetup::commitPage( ::svt::WizardTypes::CommitPageReason /*_eReason*/ ) - { - return commitURL(); - } - - // ----------------------------------------------------------------------- - sal_Bool OConnectionTabPageSetup::FillItemSet(SfxItemSet& _rSet) - { - sal_Bool bChangedSomething = sal_False; - fillString(_rSet,&m_aConnectionURL, DSID_CONNECTURL, bChangedSomething); - return bChangedSomething; - } - // ----------------------------------------------------------------------- - bool OConnectionTabPageSetup::checkTestConnection() - { - return !m_aConnectionURL.IsVisible() || (m_aConnectionURL.GetTextNoPrefix().Len() != 0); - } - - // ----------------------------------------------------------------------- - IMPL_LINK(OConnectionTabPageSetup, OnEditModified, Edit*, /*_pEdit*/) - { - SetRoadmapStateValue(checkTestConnection()); - callModifiedHdl(); - return 0L; - } -//......................................................................... -} // namespace dbaui -//......................................................................... - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/ConnectionPageSetup.hxx b/dbaccess/source/ui/dlg/ConnectionPageSetup.hxx deleted file mode 100644 index 2cb23923a..000000000 --- a/dbaccess/source/ui/dlg/ConnectionPageSetup.hxx +++ /dev/null @@ -1,102 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - - -#ifndef DBAUI_CONNECTIONPAGESETUP_HXX -#define DBAUI_CONNECTIONPAGESETUP_HXX -#include "ConnectionHelper.hxx" - -#include "adminpages.hxx" -#include <ucbhelper/content.hxx> -#include "curledit.hxx" - -#include <vcl/field.hxx> - - -//......................................................................... -namespace dbaui -{ -//......................................................................... - - class IDatabaseSettingsDialog; - //========================================================================= - //= OConnectionTabPageSetup - //========================================================================= - - /** implements the connection page of the data source properties dialog. - */ - class OConnectionTabPageSetup : public OConnectionHelper - { - sal_Bool m_bUserGrabFocus : 1; - protected: - - FixedText m_aFT_HelpText; - - // called when the test connection button was clicked - DECL_LINK(OnEditModified,Edit*); - - public: - static OGenericAdministrationPage* CreateDbaseTabPage( Window* pParent, const SfxItemSet& _rAttrSet ); - static OGenericAdministrationPage* CreateMSAccessTabPage( Window* pParent, const SfxItemSet& _rAttrSet ); - static OGenericAdministrationPage* CreateAdabasTabPage( Window* pParent, const SfxItemSet& _rAttrSet ); - static OGenericAdministrationPage* CreateADOTabPage( Window* pParent, const SfxItemSet& _rAttrSet ); - static OGenericAdministrationPage* CreateODBCTabPage( Window* pParent, const SfxItemSet& _rAttrSet ); - static OGenericAdministrationPage* CreateUserDefinedTabPage( Window* pParent, const SfxItemSet& _rAttrSet ); - - - virtual sal_Bool FillItemSet (SfxItemSet& _rCoreAttrs); - - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual sal_Bool commitPage( ::svt::WizardTypes::CommitPageReason _eReason ); - - - inline void enableConnectionURL() { m_aConnectionURL.SetReadOnly(sal_False); } - inline void disableConnectionURL() { m_aConnectionURL.SetReadOnly(); } - - /** changes the connection URL. - <p>The new URL must be of the type which is currently selected, only the parts which do not - affect the type may be changed (compared to the previous URL).</p> - */ - void changeConnectionURL( const String& _rNewDSN ); - String getConnectionURL( ) const; - - - protected: - OConnectionTabPageSetup(Window* pParent, sal_uInt16 _rId, const SfxItemSet& _rCoreAttrs, sal_uInt16 _nHelpTextResId, sal_uInt16 _nHeaderResId, sal_uInt16 _nUrlResId); - virtual bool checkTestConnection(); - // nControlFlags ist eine Kombination der CBTP_xxx-Konstanten - virtual ~OConnectionTabPageSetup(); - }; - -//......................................................................... -} // namespace dbaui -//......................................................................... - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx b/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx deleted file mode 100644 index 8ea13e284..000000000 --- a/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx +++ /dev/null @@ -1,978 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" -#include "DBSetupConnectionPages.hxx" -#include "sqlmessage.hxx" -#include "dbu_resource.hrc" -#include "AutoControls.hrc" -#include "dbadminsetup.hrc" -#include <svl/itemset.hxx> -#include <svl/stritem.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include "dsitems.hxx" -#include "dsnItem.hxx" -#include "dbaccess_helpid.hrc" -#include "localresaccess.hxx" -#include <vcl/msgbox.hxx> -#include <vcl/mnemonic.hxx> -#include <svl/cjkoptions.hxx> -#include <jvmaccess/virtualmachine.hxx> -#include <connectivity/CommonTools.hxx> -#include "DriverSettings.hxx" -#include "dbadmin.hxx" -#include <comphelper/types.hxx> - -#include <com/sun/star/ui/dialogs/XFolderPicker.hpp> -#include <com/sun/star/task/XInteractionHandler.hpp> -#include <com/sun/star/sdbc/XDriverAccess.hpp> -#include "dbustrings.hrc" -#include <svl/filenotation.hxx> - -#include <unotools/localfilehelper.hxx> -#include <unotools/ucbhelper.hxx> -#include <ucbhelper/commandenvironment.hxx> -#include "finteraction.hxx" -#include <connectivity/CommonTools.hxx> -#include "dbaccess_helpid.hrc" -#include <unotools/pathoptions.hxx> -#include <svtools/roadmapwizard.hxx> -#include "TextConnectionHelper.hxx" -#include <osl/diagnose.h> - - -//......................................................................... -namespace dbaui -{ -//......................................................................... -using namespace ::com::sun::star; - - OGenericAdministrationPage* OTextConnectionPageSetup::CreateTextTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OTextConnectionPageSetup( pParent, _rAttrSet ) ); - } - - - //======================================================================== - //= OTextConnectionPageSetup - //======================================================================== -DBG_NAME(OTextConnectionPageSetup) -//------------------------------------------------------------------------ - OTextConnectionPageSetup::OTextConnectionPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OConnectionTabPageSetup(pParent, PAGE_DBWIZARD_TEXT, _rCoreAttrs, STR_TEXT_HELPTEXT, STR_TEXT_HEADERTEXT, STR_TEXT_PATH_OR_FILE) - { - DBG_CTOR(OTextConnectionPageSetup,NULL); - - m_pTextConnectionHelper = new OTextConnectionHelper( this, TC_EXTENSION | TC_SEPARATORS ); - m_pTextConnectionHelper->SetClickHandler(LINK( this, OTextConnectionPageSetup, ImplGetExtensionHdl ) ); - - FreeResource(); - } - - - // ----------------------------------------------------------------------- - OTextConnectionPageSetup::~OTextConnectionPageSetup() - { - DELETEZ(m_pTextConnectionHelper); - - DBG_DTOR(OTextConnectionPageSetup,NULL); - } - - IMPL_LINK(OTextConnectionPageSetup, ImplGetExtensionHdl, OTextConnectionHelper*, /*_pTextConnectionHelper*/) - { - SetRoadmapStateValue((m_pTextConnectionHelper->GetExtension().Len() > 0) && OConnectionTabPageSetup::checkTestConnection()); - callModifiedHdl(); - return sal_True; - } - - - bool OTextConnectionPageSetup::checkTestConnection() - { - bool bDoEnable = OConnectionTabPageSetup::checkTestConnection(); - bDoEnable = (m_pTextConnectionHelper->GetExtension().Len() > 0) && bDoEnable; - return bDoEnable; - } - - // ----------------------------------------------------------------------- - void OTextConnectionPageSetup::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OConnectionTabPageSetup::fillControls(_rControlList); - m_pTextConnectionHelper->fillControls(_rControlList); - } - // ----------------------------------------------------------------------- - void OTextConnectionPageSetup::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OConnectionTabPageSetup::fillWindows(_rControlList); - m_pTextConnectionHelper->fillWindows(_rControlList); - } - // ----------------------------------------------------------------------- - void OTextConnectionPageSetup::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // first check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - OConnectionTabPageSetup::implInitControls( _rSet, _bSaveValue); - m_pTextConnectionHelper->implInitControls(_rSet, bValid); - } - - - // ----------------------------------------------------------------------- - sal_Bool OTextConnectionPageSetup::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = OConnectionTabPageSetup::FillItemSet(_rSet); - bChangedSomething = m_pTextConnectionHelper->FillItemSet(_rSet, bChangedSomething); - return bChangedSomething; - } - - - sal_Bool OTextConnectionPageSetup::prepareLeave(){ - return m_pTextConnectionHelper->prepareLeave(); - } - - - OGenericAdministrationPage* OLDAPConnectionPageSetup::CreateLDAPTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OLDAPConnectionPageSetup( pParent, _rAttrSet ) ); - } - - - //======================================================================== - //= OLDAPPageSetup - //======================================================================== - OLDAPConnectionPageSetup::OLDAPConnectionPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OGenericAdministrationPage(pParent, ModuleRes(PAGE_DBWIZARD_LDAP), _rCoreAttrs) - ,m_aFTHeaderText (this, ModuleRes(FT_LDAP_HEADERTEXT)) - ,m_aFTHelpText (this, ModuleRes(FT_LDAP_HELPTEXT)) - ,m_aFTHostServer (this, ModuleRes(FT_AUTOHOSTNAME)) - ,m_aETHostServer (this, ModuleRes(ET_AUTOHOSTNAME)) - ,m_aFTBaseDN (this, ModuleRes(FT_AUTOBASEDN)) - ,m_aETBaseDN (this, ModuleRes(ET_AUTOBASEDN)) - ,m_aFTPortNumber (this, ModuleRes(FT_AUTOPORTNUMBER)) - ,m_aNFPortNumber (this, ModuleRes(NF_AUTOPORTNUMBER)) - ,m_aFTDefaultPortNumber (this, ModuleRes(FT_AUTOPORTNUMBERDEFAULT)) - ,m_aCBUseSSL (this, ModuleRes(CB_WIZ_USESSL)) - { - SetControlFontWeight(&m_aFTHeaderText); - m_aFTDefaultPortNumber.SetText(String(ModuleRes(STR_LDAP_DEFAULT))); - m_aETHostServer.SetModifyHdl(getControlModifiedLink()); - m_aETBaseDN.SetModifyHdl(getControlModifiedLink()); - m_aNFPortNumber.SetModifyHdl(getControlModifiedLink()); - m_aCBUseSSL.SetToggleHdl(getControlModifiedLink()); - SetRoadmapStateValue(sal_False); - FreeResource(); - } - - // ----------------------------------------------------------------------- - sal_Bool OLDAPConnectionPageSetup::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = sal_False; - fillString(_rSet,&m_aETBaseDN,DSID_CONN_LDAP_BASEDN, bChangedSomething); - fillInt32(_rSet,&m_aNFPortNumber,DSID_CONN_LDAP_PORTNUMBER,bChangedSomething); - - if ( m_aETHostServer.GetText() != m_aETHostServer.GetSavedValue() ) - { - DbuTypeCollectionItem* pCollectionItem = PTR_CAST(DbuTypeCollectionItem, _rSet.GetItem(DSID_TYPECOLLECTION)); - ::dbaccess::ODsnTypeCollection* pCollection = NULL; - if (pCollectionItem) - pCollection = pCollectionItem->getCollection(); - OSL_ENSURE(pCollection, "OLDAPConnectionPageSetup::FillItemSet : really need a DSN type collection !"); - - String sUrl = pCollection->getPrefix( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:address:ldap:"))); - sUrl += m_aETHostServer.GetText(); - _rSet.Put(SfxStringItem(DSID_CONNECTURL, sUrl)); - bChangedSomething = sal_True; - } - - fillBool(_rSet,&m_aCBUseSSL,DSID_CONN_LDAP_USESSL,bChangedSomething); - return bChangedSomething; - } - // ----------------------------------------------------------------------- - void OLDAPConnectionPageSetup::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aETHostServer)); - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aETBaseDN)); - _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_aNFPortNumber)); - _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aCBUseSSL)); - } - // ----------------------------------------------------------------------- - void OLDAPConnectionPageSetup::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTHelpText)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTHostServer)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTBaseDN)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTPortNumber)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTDefaultPortNumber)); - } - // ----------------------------------------------------------------------- - void OLDAPConnectionPageSetup::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - - SFX_ITEMSET_GET(_rSet, pBaseDN, SfxStringItem, DSID_CONN_LDAP_BASEDN, sal_True); - SFX_ITEMSET_GET(_rSet, pPortNumber, SfxInt32Item, DSID_CONN_LDAP_PORTNUMBER, sal_True); - - if ( bValid ) - { - m_aETBaseDN.SetText(pBaseDN->GetValue()); - m_aNFPortNumber.SetValue(pPortNumber->GetValue()); - } - OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue); - callModifiedHdl(); - } - - // ----------------------------------------------------------------------- - IMPL_LINK(OLDAPConnectionPageSetup, OnEditModified, Edit*, /*_pEdit*/) - { - sal_Bool bRoadmapState = ((m_aETHostServer.GetText().Len() != 0 ) && ( m_aETBaseDN.GetText().Len() != 0 ) && (m_aFTPortNumber.GetText().Len() != 0 )); - SetRoadmapStateValue(bRoadmapState); - callModifiedHdl(); - return 0L; - } - - - // ----------------------------------------------------------------------- //OGenericAdministrationPage* - OMySQLIntroPageSetup* OMySQLIntroPageSetup::CreateMySQLIntroTabPage( Window* _pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OMySQLIntroPageSetup( _pParent, _rAttrSet) ); - } - -DBG_NAME(OMySQLIntroPageSetup) - - OMySQLIntroPageSetup::OMySQLIntroPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OGenericAdministrationPage(pParent, ModuleRes(PAGE_DBWIZARD_MYSQL_INTRO), _rCoreAttrs) - ,m_aRB_ODBCDatabase(this, ModuleRes(RB_CONNECTVIAODBC)) - ,m_aRB_JDBCDatabase(this, ModuleRes(RB_CONNECTVIAJDBC)) - ,m_aRB_NATIVEDatabase(this, ModuleRes(RB_CONNECTVIANATIVE)) - ,m_aFT_ConnectionMode(this, ModuleRes(FT_MYSQLCONNECTIONMODE)) - ,m_aFT_Helptext(this, ModuleRes(FT_MYSQL_HELPTEXT)) - ,m_aFT_Headertext(this, ModuleRes(FT_MYSQL_HEADERTEXT)) - { - DBG_CTOR(OMySQLIntroPageSetup,NULL); - - SetControlFontWeight(&m_aFT_Headertext); - m_aRB_ODBCDatabase.SetToggleHdl(LINK(this, OMySQLIntroPageSetup, OnSetupModeSelected)); - m_aRB_JDBCDatabase.SetToggleHdl(LINK(this, OMySQLIntroPageSetup, OnSetupModeSelected)); - m_aRB_NATIVEDatabase.SetToggleHdl(LINK(this, OMySQLIntroPageSetup, OnSetupModeSelected)); - FreeResource(); - } - - IMPL_LINK(OMySQLIntroPageSetup, OnSetupModeSelected, RadioButton*, /*_pBox*/) - { - maClickHdl.Call( this ); - return true; - } - - // ----------------------------------------------------------------------- - OMySQLIntroPageSetup::~OMySQLIntroPageSetup() - { - - DBG_DTOR(OMySQLIntroPageSetup,NULL); - } - - - // ----------------------------------------------------------------------- - void OMySQLIntroPageSetup::implInitControls(const SfxItemSet& _rSet, sal_Bool /*_bSaveValue*/) - { - // show the "Connect directly" option only if the driver is installed - DbuTypeCollectionItem* pCollectionItem = PTR_CAST(DbuTypeCollectionItem, _rSet.GetItem(DSID_TYPECOLLECTION)); - bool bHasMySQLNative = ( pCollectionItem != NULL ) && pCollectionItem->getCollection()->hasDriver( "sdbc:mysqlc:" ); - if ( bHasMySQLNative ) - m_aRB_NATIVEDatabase.Show(); - - // if any of the options is checked, then there's nothing to do - if ( m_aRB_ODBCDatabase.IsChecked() || m_aRB_JDBCDatabase.IsChecked() || m_aRB_NATIVEDatabase.IsChecked() ) - return; - - // prefer "native" or "JDBC" - if ( bHasMySQLNative ) - m_aRB_NATIVEDatabase.Check(); - else - m_aRB_JDBCDatabase.Check(); - } - - - // ----------------------------------------------------------------------- - void OMySQLIntroPageSetup::fillControls(::std::vector< ISaveValueWrapper* >& /*_rControlList*/) - { - } - - // ----------------------------------------------------------------------- - void OMySQLIntroPageSetup::fillWindows(::std::vector< ISaveValueWrapper* >& /*_rControlList*/) - { - } - - - // ----------------------------------------------------------------------- - sal_Bool OMySQLIntroPageSetup::FillItemSet(SfxItemSet& /*_rSet*/) - { - OSL_FAIL("Who called me?! Please ask oj for more information."); - return sal_True; - } - - - OMySQLIntroPageSetup::ConnectionType OMySQLIntroPageSetup::getMySQLMode() - { - if (m_aRB_JDBCDatabase.IsChecked()) - return VIA_JDBC; - else if (m_aRB_NATIVEDatabase.IsChecked()) - return VIA_NATIVE; - else - return VIA_ODBC; - } - - // ======================================================================= - // = MySQLNativeSetupPage - // ======================================================================= - // ----------------------------------------------------------------------- - MySQLNativeSetupPage::MySQLNativeSetupPage( Window* _pParent, const SfxItemSet& _rCoreAttrs ) - :OGenericAdministrationPage( _pParent, ModuleRes( PAGE_DBWIZARD_MYSQL_NATIVE ), _rCoreAttrs ) - ,m_aHeader ( this, ModuleRes( FT_SETUP_WIZARD_HEADER ) ) - ,m_aHelpText ( this, ModuleRes( FT_SETUP_WIZARD_HELP ) ) - ,m_aMySQLSettings ( *this, getControlModifiedLink() ) - { - SetControlFontWeight( &m_aHeader ); - - LayoutHelper::positionBelow( m_aHelpText, m_aMySQLSettings, UnrelatedControls, 0 ); - m_aMySQLSettings.Show(); - - SetRoadmapStateValue(sal_False); - FreeResource(); - } - - // ----------------------------------------------------------------------- - OGenericAdministrationPage* MySQLNativeSetupPage::Create( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return new MySQLNativeSetupPage( pParent, _rAttrSet ); - } - - // ----------------------------------------------------------------------- - void MySQLNativeSetupPage::fillControls( ::std::vector< ISaveValueWrapper* >& _rControlList ) - { - m_aMySQLSettings.fillControls( _rControlList ); - } - - // ----------------------------------------------------------------------- - void MySQLNativeSetupPage::fillWindows( ::std::vector< ISaveValueWrapper* >& _rControlList ) - { - _rControlList.push_back( new ODisableWrapper< FixedText >( &m_aHelpText ) ); - m_aMySQLSettings.fillWindows( _rControlList ); - } - - // ----------------------------------------------------------------------- - sal_Bool MySQLNativeSetupPage::FillItemSet( SfxItemSet& _rSet ) - { - return m_aMySQLSettings.FillItemSet( _rSet ); - } - - // ----------------------------------------------------------------------- - void MySQLNativeSetupPage::implInitControls( const SfxItemSet& _rSet, sal_Bool _bSaveValue ) - { - m_aMySQLSettings.implInitControls( _rSet ); - - OGenericAdministrationPage::implInitControls( _rSet, _bSaveValue ); - - OnModified( NULL ); - } - - // ----------------------------------------------------------------------- - Link MySQLNativeSetupPage::getControlModifiedLink() - { - return LINK( this, MySQLNativeSetupPage, OnModified ); - } - - // ----------------------------------------------------------------------- - IMPL_LINK( MySQLNativeSetupPage, OnModified, Edit*, _pEdit ) - { - SetRoadmapStateValue( m_aMySQLSettings.canAdvance() ); - - return OGenericAdministrationPage::getControlModifiedLink().Call( _pEdit ); - } - - //======================================================================== - //= OMySQLJDBCConnectionPageSetup - //======================================================================== - OGeneralSpecialJDBCConnectionPageSetup::OGeneralSpecialJDBCConnectionPageSetup( Window* pParent,sal_uInt16 _nResId, const SfxItemSet& _rCoreAttrs ,sal_uInt16 _nPortId, sal_uInt16 _nDefaultPortResId, sal_uInt16 _nHelpTextResId, sal_uInt16 _nHeaderTextResId, sal_uInt16 _nDriverClassId) - :OGenericAdministrationPage(pParent, ModuleRes(_nResId), _rCoreAttrs) - ,m_aFTHelpText (this, ModuleRes(FT_AUTOWIZARDHELPTEXT)) - ,m_aFTDatabasename (this, ModuleRes(FT_AUTODATABASENAME)) - ,m_aETDatabasename (this, ModuleRes(ET_AUTODATABASENAME)) - ,m_aFTHostname (this, ModuleRes(FT_AUTOHOSTNAME)) - ,m_aETHostname (this, ModuleRes(ET_AUTOHOSTNAME)) - ,m_aFTPortNumber (this, ModuleRes(FT_AUTOPORTNUMBER)) - ,m_aFTDefaultPortNumber (this, ModuleRes(FT_AUTOPORTNUMBERDEFAULT)) - ,m_aNFPortNumber (this, ModuleRes(NF_AUTOPORTNUMBER)) - ,m_aFTDriverClass (this, ModuleRes(FT_AUTOJDBCDRIVERCLASS)) - ,m_aETDriverClass (this, ModuleRes(ET_AUTOJDBCDRIVERCLASS)) - ,m_aPBTestJavaDriver (this, ModuleRes(PB_AUTOTESTDRIVERCLASS)) - ,m_nPortId(_nPortId) - { - m_aFTDriverClass.SetText(String(ModuleRes(_nDriverClassId))); - - m_aFTDefaultPortNumber.SetText(String(ModuleRes(_nDefaultPortResId))); - String sHelpText = String(ModuleRes(_nHelpTextResId)); - m_aFTHelpText.SetText(sHelpText); - //TODO this code snippet is redundant - SetHeaderText(FT_AUTOWIZARDHEADER, _nHeaderTextResId); - - m_aETDatabasename.SetModifyHdl(getControlModifiedLink()); - m_aETHostname.SetModifyHdl(getControlModifiedLink()); - m_aNFPortNumber.SetModifyHdl(getControlModifiedLink()); - - m_aETDriverClass.SetModifyHdl(LINK(this, OGeneralSpecialJDBCConnectionPageSetup, OnEditModified)); - m_aPBTestJavaDriver.SetClickHdl(LINK(this,OGeneralSpecialJDBCConnectionPageSetup,OnTestJavaClickHdl)); - - SFX_ITEMSET_GET(_rCoreAttrs, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True); - SFX_ITEMSET_GET(_rCoreAttrs, pTypesItem, DbuTypeCollectionItem, DSID_TYPECOLLECTION, sal_True); - ::dbaccess::ODsnTypeCollection* pTypeCollection = pTypesItem ? pTypesItem->getCollection() : NULL; - if (pTypeCollection && pUrlItem && pUrlItem->GetValue().Len() ) - { - m_sDefaultJdbcDriverName = pTypeCollection->getJavaDriverClass(pUrlItem->GetValue()); - } - - SetRoadmapStateValue(sal_False); - FreeResource(); - } - - - // ----------------------------------------------------------------------- - OGenericAdministrationPage* OGeneralSpecialJDBCConnectionPageSetup::CreateMySQLJDBCTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OGeneralSpecialJDBCConnectionPageSetup( pParent, - PAGE_DBWIZARD_MYSQL_JDBC, - _rAttrSet, - DSID_MYSQL_PORTNUMBER , - STR_MYSQL_DEFAULT, - STR_MYSQLJDBC_HELPTEXT, - STR_MYSQLJDBC_HEADERTEXT, - STR_MYSQL_DRIVERCLASSTEXT) ); - } - - // ----------------------------------------------------------------------- - OGenericAdministrationPage* OGeneralSpecialJDBCConnectionPageSetup::CreateOracleJDBCTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OGeneralSpecialJDBCConnectionPageSetup( pParent, - PAGE_DBWIZARD_ORACLE, - _rAttrSet, - DSID_ORACLE_PORTNUMBER, - STR_ORACLE_DEFAULT, - STR_ORACLE_HELPTEXT, - STR_ORACLE_HEADERTEXT, - STR_ORACLE_DRIVERCLASSTEXT) ); - } - - // ----------------------------------------------------------------------- - void OGeneralSpecialJDBCConnectionPageSetup::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aETDatabasename)); - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aETDriverClass)); - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aETHostname)); - _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_aNFPortNumber)); - } - // ----------------------------------------------------------------------- - void OGeneralSpecialJDBCConnectionPageSetup::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTHelpText)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTDatabasename)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTHostname)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTPortNumber)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTDefaultPortNumber)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTDriverClass)); - } - - // ----------------------------------------------------------------------- - sal_Bool OGeneralSpecialJDBCConnectionPageSetup::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = sal_False; - fillString(_rSet,&m_aETDriverClass,DSID_JDBCDRIVERCLASS,bChangedSomething); - fillString(_rSet,&m_aETHostname,DSID_CONN_HOSTNAME,bChangedSomething); - fillString(_rSet,&m_aETDatabasename,DSID_DATABASENAME,bChangedSomething); - fillInt32(_rSet,&m_aNFPortNumber,m_nPortId,bChangedSomething ); - return bChangedSomething; - } - - // ----------------------------------------------------------------------- - void OGeneralSpecialJDBCConnectionPageSetup::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - SFX_ITEMSET_GET(_rSet, pDatabaseName, SfxStringItem, DSID_DATABASENAME, sal_True); - SFX_ITEMSET_GET(_rSet, pDrvItem, SfxStringItem, DSID_JDBCDRIVERCLASS, sal_True); - SFX_ITEMSET_GET(_rSet, pHostName, SfxStringItem, DSID_CONN_HOSTNAME, sal_True); - SFX_ITEMSET_GET(_rSet, pPortNumber, SfxInt32Item, m_nPortId, sal_True); - - if ( bValid ) - { - m_aETDatabasename.SetText(pDatabaseName->GetValue()); - m_aETDatabasename.ClearModifyFlag(); - - m_aETDriverClass.SetText(pDrvItem->GetValue()); - m_aETDriverClass.ClearModifyFlag(); - - m_aETHostname.SetText(pHostName->GetValue()); - m_aETHostname.ClearModifyFlag(); - - m_aNFPortNumber.SetValue(pPortNumber->GetValue()); - m_aNFPortNumber.ClearModifyFlag(); - } - OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue); - - // to get the correct value when saveValue was called by base class - if ( !m_aETDriverClass.GetText().Len() ) - { - m_aETDriverClass.SetText(m_sDefaultJdbcDriverName); - m_aETDriverClass.SetModifyFlag(); - } - callModifiedHdl(); - - sal_Bool bRoadmapState = ((m_aETDatabasename.GetText().Len() != 0 ) && ( m_aETHostname.GetText().Len() != 0 ) && (m_aNFPortNumber.GetText().Len() != 0 ) && ( m_aETDriverClass.GetText().Len() != 0 )); - SetRoadmapStateValue(bRoadmapState); - } - - // ----------------------------------------------------------------------- - IMPL_LINK(OGeneralSpecialJDBCConnectionPageSetup, OnTestJavaClickHdl, PushButton*, /*_pButton*/) - { - OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF"); - - sal_Bool bSuccess = sal_False; - try - { - if ( m_aETDriverClass.GetText().Len() ) - { -// TODO chage jvmaccess - ::rtl::Reference< jvmaccess::VirtualMachine > xJVM = ::connectivity::getJavaVM(m_pAdminDialog->getORB()); - bSuccess = ::connectivity::existsJavaClassByName(xJVM,m_aETDriverClass.GetText()); - } - } - catch(::com::sun::star::uno::Exception&) - { - } - - sal_uInt16 nMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS; - OSQLMessageBox aMsg( this, String( ModuleRes( nMessage ) ), String() ); - aMsg.Execute(); - return 0L; - } - - // ----------------------------------------------------------------------- - IMPL_LINK(OGeneralSpecialJDBCConnectionPageSetup, OnEditModified, Edit*, _pEdit) - { - if ( _pEdit == &m_aETDriverClass ) - m_aPBTestJavaDriver.Enable( m_aETDriverClass.GetText().Len() != 0 ); - sal_Bool bRoadmapState = ((m_aETDatabasename.GetText().Len() != 0 ) && ( m_aETHostname.GetText().Len() != 0 ) && (m_aNFPortNumber.GetText().Len() != 0 ) && ( m_aETDriverClass.GetText().Len() != 0 )); - SetRoadmapStateValue(bRoadmapState); - callModifiedHdl(); - return 0L; - } - - // ----------------------------------------------------------------------- - OGenericAdministrationPage* OJDBCConnectionPageSetup::CreateJDBCTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OJDBCConnectionPageSetup( pParent, _rAttrSet)); - } - - - //======================================================================== - //= OMySQLJDBCConnectionPageSetup - //======================================================================== - OJDBCConnectionPageSetup::OJDBCConnectionPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs) - :OConnectionTabPageSetup(pParent, PAGE_DBWIZARD_JDBC, _rCoreAttrs, STR_JDBC_HELPTEXT, STR_JDBC_HEADERTEXT, STR_COMMONURL) - ,m_aFTDriverClass (this, ModuleRes(FT_AUTOJDBCDRIVERCLASS)) - ,m_aETDriverClass (this, ModuleRes(ET_AUTOJDBCDRIVERCLASS)) - ,m_aPBTestJavaDriver (this, ModuleRes(PB_AUTOTESTDRIVERCLASS)) - { - m_aETDriverClass.SetModifyHdl(LINK(this, OJDBCConnectionPageSetup, OnEditModified)); - m_aPBTestJavaDriver.SetClickHdl(LINK(this,OJDBCConnectionPageSetup,OnTestJavaClickHdl)); - FreeResource(); - } - - // ----------------------------------------------------------------------- - void OJDBCConnectionPageSetup::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aETDriverClass)); - } - - // ----------------------------------------------------------------------- - void OJDBCConnectionPageSetup::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTDriverClass)); - } - - // ----------------------------------------------------------------------- - sal_Bool OJDBCConnectionPageSetup::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = OConnectionTabPageSetup::FillItemSet(_rSet); - fillString(_rSet,&m_aETDriverClass,DSID_JDBCDRIVERCLASS,bChangedSomething); - return bChangedSomething; - } - - // ----------------------------------------------------------------------- - void OJDBCConnectionPageSetup::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - SFX_ITEMSET_GET(_rSet, pDrvItem, SfxStringItem, DSID_JDBCDRIVERCLASS, sal_True); - - if ( bValid ) - { - if ( !pDrvItem->GetValue().Len() ) - { - String sDefaultJdbcDriverName = m_pCollection->getJavaDriverClass(m_eType); - if ( sDefaultJdbcDriverName.Len() ) - { - m_aETDriverClass.SetText(sDefaultJdbcDriverName); - m_aETDriverClass.SetModifyFlag(); - } - } - else - { - m_aETDriverClass.SetText(pDrvItem->GetValue()); - m_aETDriverClass.ClearModifyFlag(); - } - } - sal_Bool bEnable = pDrvItem->GetValue().Len() != 0; - m_aPBTestJavaDriver.Enable(bEnable); - OConnectionTabPageSetup::implInitControls(_rSet, _bSaveValue); - - SetRoadmapStateValue(checkTestConnection()); - } - - - bool OJDBCConnectionPageSetup::checkTestConnection() - { - OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF"); - sal_Bool bEnableTestConnection = !m_aConnectionURL.IsVisible() || (m_aConnectionURL.GetTextNoPrefix().Len() != 0); - bEnableTestConnection = bEnableTestConnection && (m_aETDriverClass.GetText().Len() != 0); - return bEnableTestConnection; - } - - - // ----------------------------------------------------------------------- - IMPL_LINK(OJDBCConnectionPageSetup, OnTestJavaClickHdl, PushButton*, /*_pButton*/) - { - OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF"); - sal_Bool bSuccess = sal_False; - try - { - if ( m_aETDriverClass.GetText().Len() ) - { -// TODO chage jvmaccess - ::rtl::Reference< jvmaccess::VirtualMachine > xJVM = ::connectivity::getJavaVM(m_pAdminDialog->getORB()); - bSuccess = xJVM.is() && ::connectivity::existsJavaClassByName(xJVM,m_aETDriverClass.GetText()); - } - } - catch(::com::sun::star::uno::Exception&) - { - } - - sal_uInt16 nMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS; - OSQLMessageBox aMsg( this, String( ModuleRes( nMessage ) ), String() ); - aMsg.Execute(); - return 0L; - } - - // ----------------------------------------------------------------------- - IMPL_LINK(OJDBCConnectionPageSetup, OnEditModified, Edit*, _pEdit) - { - if ( _pEdit == &m_aETDriverClass ) - m_aPBTestJavaDriver.Enable( m_aETDriverClass.GetText().Len() != 0 ); - SetRoadmapStateValue(checkTestConnection()); - // tell the listener we were modified - callModifiedHdl(); - return 0L; - } - - - OGenericAdministrationPage* OSpreadSheetConnectionPageSetup::CreateSpreadSheetTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OSpreadSheetConnectionPageSetup( pParent, _rAttrSet ) ); - } - -DBG_NAME(OSpreadSheetConnectionPageSetup) - - OSpreadSheetConnectionPageSetup::OSpreadSheetConnectionPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OConnectionTabPageSetup(pParent, PAGE_DBWIZARD_SPREADSHEET, _rCoreAttrs, STR_SPREADSHEET_HELPTEXT, STR_SPREADSHEET_HEADERTEXT, STR_SPREADSHEETPATH) - , m_aCBPasswordrequired(this, ModuleRes(CB_SPREADSHEETPASSWORDREQUIRED)) - { - DBG_CTOR(OSpreadSheetConnectionPageSetup,NULL); - - m_aCBPasswordrequired.SetToggleHdl(getControlModifiedLink()); - FreeResource(); - } - - - // ----------------------------------------------------------------------- - OSpreadSheetConnectionPageSetup::~OSpreadSheetConnectionPageSetup() - { - - DBG_DTOR(OSpreadSheetConnectionPageSetup,NULL); - } - - - void OSpreadSheetConnectionPageSetup::fillWindows(::std::vector< ISaveValueWrapper* >& /*_rControlList*/) - { - } - - // ----------------------------------------------------------------------- - void OSpreadSheetConnectionPageSetup::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OConnectionTabPageSetup::fillControls(_rControlList); - _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aCBPasswordrequired)); - - } - - // ----------------------------------------------------------------------- - void OSpreadSheetConnectionPageSetup::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - OConnectionTabPageSetup::implInitControls(_rSet, _bSaveValue); - } - - // ----------------------------------------------------------------------- - sal_Bool OSpreadSheetConnectionPageSetup::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = OConnectionTabPageSetup::FillItemSet(_rSet); - fillBool(_rSet,&m_aCBPasswordrequired,DSID_PASSWORDREQUIRED,bChangedSomething); - return bChangedSomething; - } - - OGenericAdministrationPage* OAuthentificationPageSetup::CreateAuthentificationTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OAuthentificationPageSetup( pParent, _rAttrSet) ); - } - -DBG_NAME(OAuthentificationPageSetup) - - OAuthentificationPageSetup::OAuthentificationPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OGenericAdministrationPage(pParent, ModuleRes(PAGE_DBWIZARD_AUTHENTIFICATION), _rCoreAttrs ) - , m_aFTHelpText (this, ModuleRes(FT_AUTHENTIFICATIONHELPTEXT)) - , m_aFTHeaderText (this, ModuleRes(FT_AUTHENTIFICATIONHEADERTEXT)) - , m_aFTUserName (this, ModuleRes(FT_GENERALUSERNAME)) - , m_aETUserName (this, ModuleRes(ET_GENERALUSERNAME)) - , m_aCBPasswordRequired (this, ModuleRes(CB_GENERALPASSWORDREQUIRED)) - , m_aPBTestConnection (this, ModuleRes(PB_TESTCONNECTION)) - { - DBG_CTOR(OAuthentificationPageSetup,NULL); - - SetControlFontWeight(&m_aFTHeaderText); - m_aETUserName.SetModifyHdl(getControlModifiedLink()); - m_aCBPasswordRequired.SetClickHdl(getControlModifiedLink()); - m_aPBTestConnection.SetClickHdl(LINK(this,OGenericAdministrationPage,OnTestConnectionClickHdl)); - FreeResource(); - - LayoutHelper::fitSizeRightAligned( m_aPBTestConnection ); - } - - - // ----------------------------------------------------------------------- - OAuthentificationPageSetup::~OAuthentificationPageSetup() - { - - DBG_DTOR(OAuthentificationPageSetup,NULL); - } - - - void OAuthentificationPageSetup::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTHelpText)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTUserName)); - _rControlList.push_back(new ODisableWrapper<PushButton>(&m_aPBTestConnection)); - } - - // ----------------------------------------------------------------------- - void OAuthentificationPageSetup::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aETUserName)); - _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aCBPasswordRequired)); - } - - // ----------------------------------------------------------------------- - void OAuthentificationPageSetup::implInitControls(const SfxItemSet& _rSet, sal_Bool /*_bSaveValue*/) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - SFX_ITEMSET_GET(_rSet, pUidItem, SfxStringItem, DSID_USER, sal_True); - SFX_ITEMSET_GET(_rSet, pAllowEmptyPwd, SfxBoolItem, DSID_PASSWORDREQUIRED, sal_True); - - m_aETUserName.SetText(pUidItem->GetValue()); - m_aCBPasswordRequired.Check(pAllowEmptyPwd->GetValue()); - - m_aETUserName.ClearModifyFlag(); - } - - // ----------------------------------------------------------------------- - sal_Bool OAuthentificationPageSetup::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = sal_False; - - if (m_aETUserName.GetText() != m_aETUserName.GetSavedValue()) - { - _rSet.Put(SfxStringItem(DSID_USER, m_aETUserName.GetText())); - _rSet.Put(SfxStringItem(DSID_PASSWORD, String())); - bChangedSomething = sal_True; - } - fillBool(_rSet,&m_aCBPasswordRequired,DSID_PASSWORDREQUIRED,bChangedSomething); - return bChangedSomething; - } - - - OGenericAdministrationPage* OFinalDBPageSetup::CreateFinalDBTabPageSetup( Window* pParent, const SfxItemSet& _rAttrSet) - { - return ( new OFinalDBPageSetup( pParent, _rAttrSet) ); - } - -DBG_NAME(OFinalDBPageSetup) - - OFinalDBPageSetup::OFinalDBPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OGenericAdministrationPage(pParent, ModuleRes(PAGE_DBWIZARD_FINAL), _rCoreAttrs ) - , m_aFTFinalHeader (this, ModuleRes(FT_FINALHEADER)) - , m_aFTFinalHelpText (this, ModuleRes(FT_FINALHELPTEXT)) - , m_aRBRegisterDataSource (this, ModuleRes(RB_REGISTERDATASOURCE)) - , m_aRBDontregisterDataSource (this, ModuleRes(RB_DONTREGISTERDATASOURCE)) - , m_aFTAdditionalSettings (this, ModuleRes(FT_ADDITIONALSETTINGS)) - , m_aCBOpenAfterwards (this, ModuleRes(CB_OPENAFTERWARDS)) - , m_aCBStartTableWizard (this, ModuleRes(CB_STARTTABLEWIZARD)) - , m_aFTFinalText (this, ModuleRes(FT_FINALTEXT)) - { - DBG_CTOR(OFinalDBPageSetup,NULL); - - String stext = m_aFTFinalHeader.GetText(); - SetControlFontWeight(&m_aFTFinalHeader); - m_aCBOpenAfterwards.SetClickHdl(LINK(this, OFinalDBPageSetup, OnOpenSelected)); - m_aCBStartTableWizard.SetClickHdl(getControlModifiedLink()); - m_aRBRegisterDataSource.SetState(sal_True); - FreeResource(); - - sal_Int32 nUnrelatedHeight = LogicToPixel( Size( 0, UNRELATED_CONTROLS ), MAP_APPFONT ).Height(); - sal_Int32 nRelatedHeight = LogicToPixel( Size( 0, RELATED_CONTROLS ), MAP_APPFONT ).Height(); - - ::std::pair<Window*,sal_Int32> pWindows[] = { - ::std::pair<Window*,sal_Int32>(&m_aFTFinalHelpText,nRelatedHeight) - ,::std::pair<Window*,sal_Int32>(&m_aRBRegisterDataSource,nRelatedHeight) - ,::std::pair<Window*,sal_Int32>(&m_aRBDontregisterDataSource,nUnrelatedHeight) - ,::std::pair<Window*,sal_Int32>(&m_aFTAdditionalSettings,nRelatedHeight) - ,::std::pair<Window*,sal_Int32>(&m_aCBOpenAfterwards,nRelatedHeight) - ,::std::pair<Window*,sal_Int32>(&m_aCBStartTableWizard,nUnrelatedHeight) - ,::std::pair<Window*,sal_Int32>(&m_aFTFinalText,nUnrelatedHeight) - }; - - Point aPos(m_aFTFinalHeader.GetPosPixel()); - Size aStart(m_aFTFinalHeader.GetSizePixel()); - aPos.Y() += aStart.Height() + nUnrelatedHeight; - sal_Int32 nCount = SAL_N_ELEMENTS(pWindows); - for (sal_Int32 i=0; i < nCount; ++i) - { - aPos.X() = pWindows[i].first->GetPosPixel().X(); - Size aSize = pWindows[i].first->GetSizePixel(); - FixedText* pText = dynamic_cast<FixedText*>(pWindows[i].first); - if ( pText ) - aSize = pText->CalcMinimumSize(aSize.Width()); - pWindows[i].first->SetPosSizePixel(aPos,aSize); - aPos.Y() += aSize.Height() + pWindows[i].second; - } - } - - - // ----------------------------------------------------------------------- - OFinalDBPageSetup::~OFinalDBPageSetup() - { - - DBG_DTOR(OFinalDBPageSetup,NULL); - } - - sal_Bool OFinalDBPageSetup::IsDatabaseDocumentToBeRegistered() - { - return m_aRBRegisterDataSource.IsChecked() && m_aRBRegisterDataSource.IsEnabled(); - } - - sal_Bool OFinalDBPageSetup::IsDatabaseDocumentToBeOpened() - { - return m_aCBOpenAfterwards.IsChecked() && m_aCBOpenAfterwards.IsEnabled(); - } - - sal_Bool OFinalDBPageSetup::IsTableWizardToBeStarted() - { - return m_aCBStartTableWizard.IsChecked() && m_aCBStartTableWizard.IsEnabled(); - } - - - void OFinalDBPageSetup::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTFinalHeader)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTFinalHelpText)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTAdditionalSettings)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTFinalText)); - } - - // ----------------------------------------------------------------------- - void OFinalDBPageSetup::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aCBOpenAfterwards)); - _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aCBStartTableWizard)); - _rControlList.push_back(new OSaveValueWrapper<RadioButton>(&m_aRBRegisterDataSource)); - _rControlList.push_back(new OSaveValueWrapper<RadioButton>(&m_aRBDontregisterDataSource)); - } - - // ----------------------------------------------------------------------- - void OFinalDBPageSetup::implInitControls(const SfxItemSet& /*_rSet*/, sal_Bool /*_bSaveValue*/) - { - m_aCBOpenAfterwards.Check(); - } - - void OFinalDBPageSetup::enableTableWizardCheckBox( sal_Bool _bSupportsTableCreation) - { - m_aCBStartTableWizard.Enable(_bSupportsTableCreation); - } - - // ----------------------------------------------------------------------- - sal_Bool OFinalDBPageSetup::FillItemSet( SfxItemSet& /*_rSet*/ ) - { - return sal_True; - } - // ----------------------------------------------------------------------------- - IMPL_LINK(OFinalDBPageSetup, OnOpenSelected, CheckBox*, _pBox) - { - m_aCBStartTableWizard.Enable( _pBox->IsEnabled() && _pBox->IsChecked() ); - callModifiedHdl(); - // outta here - return 0L; - } -//......................................................................... -} -// namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx b/dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx deleted file mode 100644 index f758015ed..000000000 --- a/dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx +++ /dev/null @@ -1,344 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_DBSETUPCONNECTIONPAGES_HXX -#define DBAUI_DBSETUPCONNECTIONPAGES_HXX - -#include "ConnectionPageSetup.hxx" - -#include "adminpages.hxx" -#include "admincontrols.hxx" -#include "curledit.hxx" -#include "TextConnectionHelper.hxx" - -#include <svtools/roadmapwizard.hxx> -#include <ucbhelper/content.hxx> -#include <vcl/field.hxx> - - -//......................................................................... -namespace dbaui - -{ -//......................................................................... - - class IDatabaseSettingsDialog; - - - //======================================================================== - //= OSpreadSheetConnectionPageSetup - //======================================================================== - class OSpreadSheetConnectionPageSetup : public OConnectionTabPageSetup - { - public: - virtual sal_Bool FillItemSet ( SfxItemSet& _rCoreAttrs ); - static OGenericAdministrationPage* CreateSpreadSheetTabPage( Window* pParent, const SfxItemSet& _rAttrSet ); - OSpreadSheetConnectionPageSetup(Window* pParent, const SfxItemSet& _rCoreAttrs); - - protected: - CheckBox m_aCBPasswordrequired; - virtual ~OSpreadSheetConnectionPageSetup(); - - protected: - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - - }; - - //======================================================================== - //= OTextConnectionPage - //======================================================================== - class OTextConnectionPageSetup : public OConnectionTabPageSetup - { - public: - virtual sal_Bool FillItemSet ( SfxItemSet& _rCoreAttrs ); - static OGenericAdministrationPage* CreateTextTabPage( Window* pParent, const SfxItemSet& _rAttrSet ); - OTextConnectionPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs ); - OTextConnectionHelper* m_pTextConnectionHelper; - private: - - protected: - virtual ~OTextConnectionPageSetup(); - virtual sal_Bool prepareLeave(); - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - bool checkTestConnection(); - - private: - DECL_LINK(ImplGetExtensionHdl, OTextConnectionHelper*); - }; - - //======================================================================== - //= OLDAPConnectionPageSetup - //======================================================================== - class OLDAPConnectionPageSetup : public OGenericAdministrationPage - { - public: - virtual sal_Bool FillItemSet ( SfxItemSet& _rCoreAttrs ); - static OGenericAdministrationPage* CreateLDAPTabPage( Window* pParent, const SfxItemSet& _rAttrSet ); - OLDAPConnectionPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs ); - virtual Link getControlModifiedLink() { return LINK(this, OLDAPConnectionPageSetup, OnEditModified); } - - protected: - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - DECL_LINK(OnEditModified,Edit*); - - private: - FixedText m_aFTHeaderText; - FixedText m_aFTHelpText; - FixedText m_aFTHostServer; - Edit m_aETHostServer; - FixedText m_aFTBaseDN; - Edit m_aETBaseDN; - FixedText m_aFTPortNumber; - NumericField m_aNFPortNumber; - FixedText m_aFTDefaultPortNumber; - CheckBox m_aCBUseSSL; - }; - - //======================================================================== - //= MySQLNativeSetupPage - //======================================================================== - class MySQLNativeSetupPage : public OGenericAdministrationPage - { - private: - FixedText m_aHeader; - FixedText m_aHelpText; - MySQLNativeSettings m_aMySQLSettings; - - public: - MySQLNativeSetupPage( Window* _pParent, const SfxItemSet& _rCoreAttrs ); - - static OGenericAdministrationPage* Create( Window* pParent, const SfxItemSet& _rAttrSet ); - - protected: - virtual void fillControls( ::std::vector< ISaveValueWrapper* >& _rControlList ); - virtual void fillWindows( ::std::vector< ISaveValueWrapper* >& _rControlList ); - - virtual sal_Bool FillItemSet( SfxItemSet& _rCoreAttrs ); - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - - virtual Link getControlModifiedLink(); - - private: - DECL_LINK( OnModified, Edit* ); - }; - - //======================================================================== - //= OGeneralSpecialJDBCConnectionPageSetup - //======================================================================== - class OGeneralSpecialJDBCConnectionPageSetup : public OGenericAdministrationPage - { - public: - OGeneralSpecialJDBCConnectionPageSetup( Window* pParent - , sal_uInt16 _nResId - , const SfxItemSet& _rCoreAttrs - , sal_uInt16 _nPortId - , sal_uInt16 _nDefaultPortResId - , sal_uInt16 _nHelpTextResId - , sal_uInt16 _nHeaderTextResId - , sal_uInt16 _nDriverClassId ); - static OGenericAdministrationPage* CreateMySQLJDBCTabPage( Window* pParent, const SfxItemSet& _rAttrSet ); - static OGenericAdministrationPage* CreateOracleJDBCTabPage( Window* pParent, const SfxItemSet& _rAttrSet ); - - protected: - virtual sal_Bool FillItemSet( SfxItemSet& _rCoreAttrs ); - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual Link getControlModifiedLink() { return LINK(this, OGeneralSpecialJDBCConnectionPageSetup, OnEditModified); } - - DECL_LINK(OnTestJavaClickHdl,PushButton*); - DECL_LINK(OnEditModified,Edit*); - FixedText m_aFTHelpText; - FixedText m_aFTDatabasename; - Edit m_aETDatabasename; - FixedText m_aFTHostname; - Edit m_aETHostname; - FixedText m_aFTPortNumber; - FixedText m_aFTDefaultPortNumber; - NumericField m_aNFPortNumber; - - - FixedText m_aFTDriverClass; - Edit m_aETDriverClass; - PushButton m_aPBTestJavaDriver; - - String m_sDefaultJdbcDriverName; - sal_uInt16 m_nPortId; - }; - - - //======================================================================== - //= OJDBCConnectionPageSetup - //======================================================================== - class OJDBCConnectionPageSetup : public OConnectionTabPageSetup - { - public: - OJDBCConnectionPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs ); - static OGenericAdministrationPage* CreateJDBCTabPage( Window* pParent, const SfxItemSet& _rAttrSet ); - - protected: - virtual bool checkTestConnection(); - - virtual sal_Bool FillItemSet( SfxItemSet& _rCoreAttrs ); - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - - DECL_LINK(OnTestJavaClickHdl,PushButton*); - DECL_LINK(OnEditModified,Edit*); - FixedText m_aFTDriverClass; - Edit m_aETDriverClass; - PushButton m_aPBTestJavaDriver; - }; - - - - //======================================================================== - //= OJDBCConnectionPageSetup - //======================================================================== - class OMySQLIntroPageSetup : public OGenericAdministrationPage - { - public: - enum ConnectionType - { - VIA_ODBC, - VIA_JDBC, - VIA_NATIVE - }; - - OMySQLIntroPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs); - - static OMySQLIntroPageSetup* CreateMySQLIntroTabPage( Window* _pParent, const SfxItemSet& _rAttrSet ); - ConnectionType getMySQLMode(); - Link maClickHdl; - void SetClickHdl( const Link& rLink ) { maClickHdl = rLink; } - const Link& GetClickHdl() const { return maClickHdl; } - DECL_LINK(ImplClickHdl, OMySQLIntroPageSetup*); - - - - - protected: - virtual sal_Bool FillItemSet(SfxItemSet& _rSet); - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual ~OMySQLIntroPageSetup(); - - private: - RadioButton m_aRB_ODBCDatabase; - RadioButton m_aRB_JDBCDatabase; - RadioButton m_aRB_NATIVEDatabase; - FixedText m_aFT_ConnectionMode; - FixedText m_aFT_Helptext; - FixedText m_aFT_Headertext; - - DECL_LINK(OnSetupModeSelected, RadioButton*); - - }; - - - - - //======================================================================== - //= OAuthentificationPageSetup - //======================================================================== - class OAuthentificationPageSetup : public OGenericAdministrationPage - { - public: - virtual sal_Bool FillItemSet ( SfxItemSet& _rCoreAttrs ); - static OGenericAdministrationPage* CreateAuthentificationTabPage( Window* pParent, const SfxItemSet& _rAttrSet ); - OAuthentificationPageSetup(Window* pParent, const SfxItemSet& _rCoreAttrs); - - protected: - FixedText m_aFTHelpText; - FixedText m_aFTHeaderText; - FixedText m_aFTUserName; - Edit m_aETUserName; - CheckBox m_aCBPasswordRequired; - PushButton m_aPBTestConnection; - virtual ~OAuthentificationPageSetup(); - - protected: - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - }; - - - - //======================================================================== - //= OFinalDBPageSetup - //======================================================================== - class OFinalDBPageSetup : public OGenericAdministrationPage - { - public: - virtual sal_Bool FillItemSet ( SfxItemSet& _rCoreAttrs ); - static OGenericAdministrationPage* CreateFinalDBTabPageSetup( Window* pParent, const SfxItemSet& _rAttrSet); - - FixedText m_aFTFinalHeader; - FixedText m_aFTFinalHelpText; - RadioButton m_aRBRegisterDataSource; - RadioButton m_aRBDontregisterDataSource; - FixedText m_aFTAdditionalSettings; - CheckBox m_aCBOpenAfterwards; - CheckBox m_aCBStartTableWizard; - FixedText m_aFTFinalText; - - OFinalDBPageSetup(Window* pParent, const SfxItemSet& _rCoreAttrs); - sal_Bool IsDatabaseDocumentToBeRegistered(); - sal_Bool IsDatabaseDocumentToBeOpened(); - sal_Bool IsTableWizardToBeStarted(); - void enableTableWizardCheckBox( sal_Bool _bSupportsTableCreation); - - /// may be used in SetXXXHdl calls to controls, is a link to <method>OnControlModified</method> - Link getControlModifiedLink() { return LINK(this, OGenericAdministrationPage, OnControlModified); } - - DECL_LINK(OnOpenSelected, CheckBox*); - protected: - virtual ~OFinalDBPageSetup(); - - protected: - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - }; - -//......................................................................... -} // namespace dbaui -//......................................................................... - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/DbAdminImpl.cxx b/dbaccess/source/ui/dlg/DbAdminImpl.cxx deleted file mode 100644 index 9a08090ff..000000000 --- a/dbaccess/source/ui/dlg/DbAdminImpl.cxx +++ /dev/null @@ -1,1224 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "DbAdminImpl.hxx" -#include "dsmeta.hxx" - -#include <svl/poolitem.hxx> -#include <svl/itempool.hxx> -#include <svl/stritem.hxx> -#include <svl/intitem.hxx> -#include <svl/eitem.hxx> -#include "DriverSettings.hxx" -#include "IItemSetHelper.hxx" -#include "UITools.hxx" -#include "dbu_dlg.hrc" -#include "dbustrings.hrc" -#include "dsitems.hxx" -#include "dsnItem.hxx" -#include "moduledbu.hxx" -#include "optionalboolitem.hxx" -#include "propertysetitem.hxx" -#include "stringlistitem.hxx" -#include "OAuthenticationContinuation.hxx" - -/** === begin UNO includes === **/ -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/frame/XStorable.hpp> -#include <com/sun/star/sdb/SQLContext.hpp> -#include <com/sun/star/sdbc/XDriver.hpp> -#include <com/sun/star/sdbc/XDriverAccess.hpp> -#include <com/sun/star/task/XInteractionHandler.hpp> -#include <com/sun/star/task/XInteractionRequest.hpp> -#include <com/sun/star/ucb/XInteractionSupplyAuthentication2.hpp> -#include <com/sun/star/ucb/AuthenticationRequest.hpp> -/** === end UNO includes === **/ - -#include <comphelper/interaction.hxx> -#include <comphelper/property.hxx> -#include <comphelper/sequence.hxx> -#include <comphelper/guarding.hxx> -#include <connectivity/DriversConfig.hxx> -#include <connectivity/dbexception.hxx> -#include <osl/file.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include <svl/itempool.hxx> -#include <svl/poolitem.hxx> -#include <svl/stritem.hxx> -#include <tools/urlobj.hxx> -#include <tools/diagnose_ex.h> -#include <osl/diagnose.h> -#include <typelib/typedescription.hxx> -#include <vcl/svapp.hxx> -#include <vcl/msgbox.hxx> -#include <vcl/stdtext.hxx> -#include <vcl/waitobj.hxx> -#include <osl/mutex.hxx> - -#include <algorithm> -#include <functional> -#include <o3tl/compat_functional.hxx> - -//......................................................................... -namespace dbaui -{ -//......................................................................... -using namespace ::dbtools; -using namespace com::sun::star::uno; -using namespace com::sun::star; -using namespace com::sun::star::ucb; -using namespace com::sun::star::task; -using namespace com::sun::star::sdbc; -using namespace com::sun::star::sdb; -using namespace com::sun::star::lang; -using namespace com::sun::star::beans; -using namespace com::sun::star::util; -using namespace com::sun::star::container; -using namespace com::sun::star::frame; - -//------------------------------------------------------------------------- -namespace -{ - sal_Bool implCheckItemType( SfxItemSet& _rSet, const sal_uInt16 _nId, const TypeId _nExpectedItemType ) - { - sal_Bool bCorrectType = sal_False; - - SfxItemPool* pPool = _rSet.GetPool(); - OSL_ENSURE( pPool, "implCheckItemType: invalid item pool!" ); - if ( pPool ) - { - const SfxPoolItem& rDefItem = pPool->GetDefaultItem( _nId ); - bCorrectType = rDefItem.IsA( _nExpectedItemType ); - } - return bCorrectType; - } - - void lcl_putProperty(const Reference< XPropertySet >& _rxSet, const ::rtl::OUString& _rName, const Any& _rValue) - { - try - { - if ( _rxSet.is() ) - _rxSet->setPropertyValue(_rName, _rValue); - } - catch(Exception&) - { - #if OSL_DEBUG_LEVEL > 0 - ::rtl::OString sMessage("ODbAdminDialog::implTranslateProperty: could not set the property "); - sMessage += ::rtl::OString(_rName.getStr(), _rName.getLength(), RTL_TEXTENCODING_ASCII_US); - sMessage += ::rtl::OString("!"); - OSL_FAIL(sMessage.getStr()); - #endif - } - - } - - String lcl_createHostWithPort(const SfxStringItem* _pHostName,const SfxInt32Item* _pPortNumber) - { - String sNewUrl; - - if ( _pHostName && _pHostName->GetValue().Len() ) - sNewUrl = _pHostName->GetValue(); - - if ( _pPortNumber ) - { - sNewUrl += String::CreateFromAscii(":"); - sNewUrl += String::CreateFromInt32(_pPortNumber->GetValue()); - } - - return sNewUrl; - } -} - - //======================================================================== - //= ODbDataSourceAdministrationHelper - //======================================================================== -ODbDataSourceAdministrationHelper::ODbDataSourceAdministrationHelper(const Reference< XMultiServiceFactory >& _xORB,Window* _pParent,IItemSetHelper* _pItemSetHelper) - : m_xORB(_xORB) - , m_pParent(_pParent) - , m_pItemSetHelper(_pItemSetHelper) -{ - /// initialize the property translation map - // direct properties of a data source - m_aDirectPropTranslator.insert(MapInt2String::value_type(DSID_CONNECTURL, PROPERTY_URL)); - m_aDirectPropTranslator.insert(MapInt2String::value_type(DSID_NAME, PROPERTY_NAME)); - m_aDirectPropTranslator.insert(MapInt2String::value_type(DSID_USER, PROPERTY_USER)); - m_aDirectPropTranslator.insert(MapInt2String::value_type(DSID_PASSWORD, PROPERTY_PASSWORD)); - m_aDirectPropTranslator.insert(MapInt2String::value_type(DSID_PASSWORDREQUIRED, PROPERTY_ISPASSWORDREQUIRED)); - m_aDirectPropTranslator.insert(MapInt2String::value_type(DSID_TABLEFILTER, PROPERTY_TABLEFILTER)); - m_aDirectPropTranslator.insert(MapInt2String::value_type(DSID_READONLY, PROPERTY_ISREADONLY)); - m_aDirectPropTranslator.insert(MapInt2String::value_type(DSID_SUPPRESSVERSIONCL, PROPERTY_SUPPRESSVERSIONCL)); - - // implicit properties, to be found in the direct property "Info" - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_JDBCDRIVERCLASS, INFO_JDBCDRIVERCLASS)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_TEXTFILEEXTENSION, INFO_TEXTFILEEXTENSION)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CHARSET, INFO_CHARSET)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_TEXTFILEHEADER, INFO_TEXTFILEHEADER)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_FIELDDELIMITER, INFO_FIELDDELIMITER)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_TEXTDELIMITER, INFO_TEXTDELIMITER)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_DECIMALDELIMITER, INFO_DECIMALDELIMITER)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_THOUSANDSDELIMITER, INFO_THOUSANDSDELIMITER)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_SHOWDELETEDROWS, INFO_SHOWDELETEDROWS)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_ALLOWLONGTABLENAMES, INFO_ALLOWLONGTABLENAMES)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_ADDITIONALOPTIONS, INFO_ADDITIONALOPTIONS)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_SQL92CHECK, PROPERTY_ENABLESQL92CHECK)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_AUTOINCREMENTVALUE, PROPERTY_AUTOINCREMENTCREATION)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_AUTORETRIEVEVALUE, INFO_AUTORETRIEVEVALUE)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_AUTORETRIEVEENABLED, INFO_AUTORETRIEVEENABLED)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_APPEND_TABLE_ALIAS, INFO_APPEND_TABLE_ALIAS)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_AS_BEFORE_CORRNAME, INFO_AS_BEFORE_CORRELATION_NAME ) ); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CHECK_REQUIRED_FIELDS, INFO_FORMS_CHECK_REQUIRED_FIELDS ) ); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_ESCAPE_DATETIME, INFO_ESCAPE_DATETIME ) ); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_PRIMARY_KEY_SUPPORT, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrimaryKeySupport" ) ) ) ); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_PARAMETERNAMESUBST, INFO_PARAMETERNAMESUBST)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_IGNOREDRIVER_PRIV, INFO_IGNOREDRIVER_PRIV)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_BOOLEANCOMPARISON, PROPERTY_BOOLEANCOMPARISONMODE)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_ENABLEOUTERJOIN, PROPERTY_ENABLEOUTERJOIN)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CATALOG, PROPERTY_USECATALOGINSELECT)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_SCHEMA, PROPERTY_USESCHEMAINSELECT)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_INDEXAPPENDIX, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AddIndexAppendix")))); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_DOSLINEENDS, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PreferDosLikeLineEnds" ) ) ) ); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_SOCKET, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LocalSocket" ) ) ) ); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_NAMED_PIPE, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "NamedPipe" ) ) ) ); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_RESPECTRESULTSETTYPE, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RespectDriverResultSetType" ) ) ) ); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_MAX_ROW_SCAN, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MaxRowScan" ) ) ) ); - - // special settings for adabas - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_SHUTSERVICE, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ShutdownDatabase")))); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_DATAINC, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DataCacheSizeIncrement")))); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_CACHESIZE, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DataCacheSize")))); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_CTRLUSER, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ControlUser")))); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_CTRLPWD, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ControlPassword")))); - - // extra settings for odbc - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_USECATALOG, INFO_USECATALOG)); - // extra settings for a ldap address book - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_LDAP_BASEDN, INFO_CONN_LDAP_BASEDN)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_LDAP_ROWCOUNT, INFO_CONN_LDAP_ROWCOUNT)); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_LDAP_USESSL, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UseSSL")))); - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_DOCUMENT_URL, PROPERTY_URL)); - - // oracle - m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_IGNORECURRENCY, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IgnoreCurrency")))); - - try - { - m_xDatabaseContext = Reference< XNameAccess >(m_xORB->createInstance(SERVICE_SDB_DATABASECONTEXT), UNO_QUERY); - m_xDynamicContext.set(m_xDatabaseContext,UNO_QUERY); - } - catch(Exception&) - { - } - - if ( !m_xDatabaseContext.is() ) - { - ShowServiceNotAvailableError(_pParent->GetParent(), String(SERVICE_SDB_DATABASECONTEXT), sal_True); - } - - OSL_ENSURE(m_xDynamicContext.is(), "ODbAdminDialog::ODbAdminDialog : no XNamingService interface !"); -} - //------------------------------------------------------------------------- -sal_Bool ODbDataSourceAdministrationHelper::getCurrentSettings(Sequence< PropertyValue >& _rDriverParam) -{ - OSL_ENSURE(m_pItemSetHelper->getOutputSet(), "ODbDataSourceAdministrationHelper::getCurrentSettings : not to be called without an example set!"); - if (!m_pItemSetHelper->getOutputSet()) - return sal_False; - - ::std::vector< PropertyValue > aReturn; - // collecting this in a vector because it has a push_back, in opposite to sequences - - // user: DSID_USER -> "user" - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pUser, SfxStringItem, DSID_USER, sal_True); - if (pUser && pUser->GetValue().Len()) - aReturn.push_back( - PropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("user")), 0, - makeAny(::rtl::OUString(pUser->GetValue())), PropertyState_DIRECT_VALUE)); - - // check if the connection type requires a password - if (hasAuthentication(*m_pItemSetHelper->getOutputSet())) - { - // password: DSID_PASSWORD -> "password" - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pPassword, SfxStringItem, DSID_PASSWORD, sal_True); - String sPassword = pPassword ? pPassword->GetValue() : String(); - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pPasswordRequired, SfxBoolItem, DSID_PASSWORDREQUIRED, sal_True); - // if the set does not contain a password, but the item set says it requires one, ask the user - if ((!pPassword || !pPassword->GetValue().Len()) && (pPasswordRequired && pPasswordRequired->GetValue())) - { - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pName, SfxStringItem, DSID_NAME, sal_True); - - Reference< XModel > xModel( getDataSourceOrModel( m_xDatasource ), UNO_QUERY_THROW ); - ::comphelper::NamedValueCollection aArgs( xModel->getArgs() ); - Reference< XInteractionHandler > xHandler( aArgs.getOrDefault( "InteractionHandler", Reference< XInteractionHandler >() ) ); - - if ( !xHandler.is() ) - { - // instantiate the default SDB interaction handler - xHandler = Reference< XInteractionHandler >( m_xORB->createInstance( SERVICE_TASK_INTERACTION_HANDLER ), UNO_QUERY ); - if ( !xHandler.is() ) - ShowServiceNotAvailableError(m_pParent->GetParent(), String(SERVICE_TASK_INTERACTION_HANDLER), sal_True); - } - - String sName = pName ? pName->GetValue() : String(); - String sLoginRequest(ModuleRes(STR_ENTER_CONNECTION_PASSWORD)); - ::rtl::OUString sTemp = sName; - sName = ::dbaui::getStrippedDatabaseName(NULL,sTemp); - if ( sName.Len() ) - sLoginRequest.SearchAndReplaceAscii("$name$", sName); - else - { - sLoginRequest.SearchAndReplaceAscii("\"$name$\"", String()); - sLoginRequest.SearchAndReplaceAscii("$name$", String()); // just to be sure that in other languages the string will be deleted - } - - // the request - AuthenticationRequest aRequest; - aRequest.ServerName = sName; - aRequest.Diagnostic = sLoginRequest; - aRequest.HasRealm = aRequest.HasAccount = sal_False; - // aRequest.Realm - aRequest.HasUserName = pUser != 0; - aRequest.UserName = pUser ? rtl::OUString(pUser->GetValue()) : ::rtl::OUString(); - aRequest.HasPassword = sal_True; - //aRequest.Password - aRequest.HasAccount = sal_False; - // aRequest.Account - - comphelper::OInteractionRequest* pRequest = new comphelper::OInteractionRequest(makeAny(aRequest)); - uno::Reference< XInteractionRequest > xRequest(pRequest); - - // build an interaction request - // two continuations (Ok and Cancel) - ::rtl::Reference< comphelper::OInteractionAbort > pAbort = new comphelper::OInteractionAbort; - ::rtl::Reference< dbaccess::OAuthenticationContinuation > pAuthenticate = new dbaccess::OAuthenticationContinuation; - pAuthenticate->setCanChangeUserName( sal_False ); - pAuthenticate->setRememberPassword( RememberAuthentication_SESSION ); - - // some knittings - pRequest->addContinuation(pAbort.get()); - pRequest->addContinuation(pAuthenticate.get()); - - // handle the request - try - { - SolarMutexGuard aSolarGuard; - // release the mutex when calling the handler, it may need to lock the SolarMutex - xHandler->handle(xRequest); - } - catch(Exception&) - { - DBG_UNHANDLED_EXCEPTION(); - } - if (!pAuthenticate->wasSelected()) - return sal_False; - - sPassword = pAuthenticate->getPassword(); - if (pAuthenticate->getRememberPassword()) - m_pItemSetHelper->getWriteOutputSet()->Put(SfxStringItem(DSID_PASSWORD, sPassword)); - } - - if (sPassword.Len()) - aReturn.push_back( - PropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("password")), 0, - makeAny(::rtl::OUString(sPassword)), PropertyState_DIRECT_VALUE)); - } - - if ( !aReturn.empty() ) - _rDriverParam = Sequence< PropertyValue >(&(*aReturn.begin()), aReturn.size()); - - // append all the other stuff (charset etc.) - fillDatasourceInfo(*m_pItemSetHelper->getOutputSet(), _rDriverParam); - - return sal_True; -} -//------------------------------------------------------------------------- -void ODbDataSourceAdministrationHelper::successfullyConnected() -{ - OSL_ENSURE(m_pItemSetHelper->getOutputSet(), "ODbDataSourceAdministrationHelper::successfullyConnected: not to be called without an example set!"); - if (!m_pItemSetHelper->getOutputSet()) - return; - - if (hasAuthentication(*m_pItemSetHelper->getOutputSet())) - { - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pPassword, SfxStringItem, DSID_PASSWORD, sal_True); - if (pPassword && (0 != pPassword->GetValue().Len())) - { - ::rtl::OUString sPassword = pPassword->GetValue(); - - Reference< XPropertySet > xCurrentDatasource = getCurrentDataSource(); - lcl_putProperty(xCurrentDatasource,m_aDirectPropTranslator[DSID_PASSWORD], makeAny(sPassword)); - } - } -} -//------------------------------------------------------------------------- -void ODbDataSourceAdministrationHelper::clearPassword() -{ - if (m_pItemSetHelper->getWriteOutputSet()) - m_pItemSetHelper->getWriteOutputSet()->ClearItem(DSID_PASSWORD); -} -// ----------------------------------------------------------------------------- -::std::pair< Reference<XConnection>,sal_Bool> ODbDataSourceAdministrationHelper::createConnection() -{ - ::std::pair< Reference<XConnection>,sal_Bool> aRet; - aRet.second = sal_False; - Sequence< PropertyValue > aConnectionParams; - if ( getCurrentSettings(aConnectionParams) ) - { - // the current DSN - // fill the table list with this connection information - SQLExceptionInfo aErrorInfo; - try - { - WaitObject aWaitCursor(m_pParent); - aRet.first = getDriver()->connect(getConnectionURL(), aConnectionParams); - aRet.second = sal_True; - } - catch (SQLContext& e) { aErrorInfo = SQLExceptionInfo(e); } - catch (SQLWarning& e) { aErrorInfo = SQLExceptionInfo(e); } - catch (SQLException& e) { aErrorInfo = SQLExceptionInfo(e); } - - showError(aErrorInfo,m_pParent,getORB()); - } - if ( aRet.first.is() ) - successfullyConnected();// notify the admindlg to save the password - - return aRet; -} -// ----------------------------------------------------------------------------- -Reference< XDriver > ODbDataSourceAdministrationHelper::getDriver() -{ - return getDriver(getConnectionURL()); -} -// ----------------------------------------------------------------------------- -Reference< XDriver > ODbDataSourceAdministrationHelper::getDriver(const ::rtl::OUString& _sURL) -{ - // get the global DriverManager - Reference< XDriverAccess > xDriverManager; - String sCurrentActionError = String(ModuleRes(STR_COULDNOTCREATE_DRIVERMANAGER)); - // in case an error occures - sCurrentActionError.SearchAndReplaceAscii("#servicename#", (::rtl::OUString)SERVICE_SDBC_CONNECTIONPOOL); - try - { - xDriverManager = Reference< XDriverAccess >(getORB()->createInstance(SERVICE_SDBC_CONNECTIONPOOL), UNO_QUERY); - OSL_ENSURE(xDriverManager.is(), "ODbDataSourceAdministrationHelper::getDriver: could not instantiate the driver manager, or it does not provide the necessary interface!"); - } - catch (Exception& e) - { - // wrap the exception into an SQLException - SQLException aSQLWrapper(e.Message, getORB(), ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("S1000")), 0, Any()); - throw SQLException(sCurrentActionError, getORB(), ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("S1000")), 0, makeAny(aSQLWrapper)); - } - if (!xDriverManager.is()) - throw SQLException(sCurrentActionError, getORB(), ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("S1000")), 0, Any()); - - - Reference< XDriver > xDriver = xDriverManager->getDriverByURL(_sURL); - if (!xDriver.is()) - { - sCurrentActionError = String(ModuleRes(STR_NOREGISTEREDDRIVER)); - sCurrentActionError.SearchAndReplaceAscii("#connurl#", _sURL); - // will be caught and translated into an SQLContext exception - throw SQLException(sCurrentActionError, getORB(), ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("S1000")), 0, Any()); - } - return xDriver; -} - -// ----------------------------------------------------------------------------- -Reference< XPropertySet > ODbDataSourceAdministrationHelper::getCurrentDataSource() -{ - if ( !m_xDatasource.is() ) - { - Reference<XInterface> xIn(m_aDataSourceOrName,UNO_QUERY); - if ( !xIn.is() ) - { - ::rtl::OUString sCurrentDatasource; - m_aDataSourceOrName >>= sCurrentDatasource; - OSL_ENSURE(sCurrentDatasource.getLength(),"No datasource name given!"); - try - { - if ( m_xDatabaseContext.is() ) - m_xDatasource.set(m_xDatabaseContext->getByName(sCurrentDatasource),UNO_QUERY); - xIn = m_xDatasource; - } - catch(const Exception&) - { - } - } - m_xModel.set(getDataSourceOrModel(xIn),UNO_QUERY); - if ( m_xModel.is() ) - m_xDatasource.set(xIn,UNO_QUERY); - else - { - m_xDatasource.set(getDataSourceOrModel(xIn),UNO_QUERY); - m_xModel.set(xIn,UNO_QUERY); - } - } - - - OSL_ENSURE(m_xDatasource.is(), "ODbDataSourceAdministrationHelper::getCurrentDataSource: no data source!"); - return m_xDatasource; -} -//------------------------------------------------------------------------- -::rtl::OUString ODbDataSourceAdministrationHelper::getDatasourceType( const SfxItemSet& _rSet ) -{ - SFX_ITEMSET_GET( _rSet, pConnectURL, SfxStringItem, DSID_CONNECTURL, sal_True ); - OSL_ENSURE( pConnectURL , "ODbDataSourceAdministrationHelper::getDatasourceType: invalid items in the source set!" ); - SFX_ITEMSET_GET(_rSet, pTypeCollection, DbuTypeCollectionItem, DSID_TYPECOLLECTION, sal_True); - OSL_ENSURE(pTypeCollection, "ODbDataSourceAdministrationHelper::getDatasourceType: invalid items in the source set!"); - ::dbaccess::ODsnTypeCollection* pCollection = pTypeCollection->getCollection(); - return pCollection->getType(pConnectURL->GetValue()); -} - -//------------------------------------------------------------------------- -sal_Bool ODbDataSourceAdministrationHelper::hasAuthentication(const SfxItemSet& _rSet) const -{ - return DataSourceMetaData::getAuthentication( getDatasourceType( _rSet ) ) != AuthNone; -} -// ----------------------------------------------------------------------------- -String ODbDataSourceAdministrationHelper::getConnectionURL() const -{ - String sNewUrl; - - ::rtl::OUString eType = getDatasourceType(*m_pItemSetHelper->getOutputSet()); - - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True); - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pTypeCollection, DbuTypeCollectionItem, DSID_TYPECOLLECTION, sal_True); - - OSL_ENSURE(pUrlItem,"Connection URL is NULL. -> GPF!"); - OSL_ENSURE(pTypeCollection, "ODbDataSourceAdministrationHelper::getDatasourceType: invalid items in the source set!"); - ::dbaccess::ODsnTypeCollection* pCollection = pTypeCollection->getCollection(); - OSL_ENSURE(pCollection, "ODbDataSourceAdministrationHelper::getDatasourceType: invalid type collection!"); - - switch( pCollection->determineType(eType) ) - { - case ::dbaccess::DST_DBASE: - case ::dbaccess::DST_FLAT: - case ::dbaccess::DST_CALC: - break; - case ::dbaccess::DST_ADABAS: - { - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pHostName, SfxStringItem, DSID_CONN_HOSTNAME, sal_True); - sNewUrl = lcl_createHostWithPort(pHostName,NULL); - String sUrl = pCollection->cutPrefix(pUrlItem->GetValue()); - if ( sUrl.GetTokenCount(':') == 1 ) - sNewUrl += String::CreateFromAscii(":"); - - sNewUrl += sUrl; - } - break; - case ::dbaccess::DST_MSACCESS: - case ::dbaccess::DST_MSACCESS_2007: - { - ::rtl::OUString sFileName = pCollection->cutPrefix(pUrlItem->GetValue()); - ::rtl::OUString sNewFileName; - if ( ::osl::FileBase::getSystemPathFromFileURL( sFileName, sNewFileName ) == ::osl::FileBase::E_None ) - { - sNewUrl += String(sNewFileName); - } - } - break; - case ::dbaccess::DST_MYSQL_NATIVE: - case ::dbaccess::DST_MYSQL_JDBC: - { - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pHostName, SfxStringItem, DSID_CONN_HOSTNAME, sal_True); - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pPortNumber, SfxInt32Item, DSID_MYSQL_PORTNUMBER, sal_True); - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pDatabaseName, SfxStringItem, DSID_DATABASENAME, sal_True); - sNewUrl = lcl_createHostWithPort(pHostName,pPortNumber); - String sDatabaseName = pDatabaseName ? pDatabaseName->GetValue() : String(); - if ( !sDatabaseName.Len() && pUrlItem ) - sDatabaseName = pCollection->cutPrefix( pUrlItem->GetValue() ); - // TODO: what's that? Why is the database name transported via the URL Item? - // Huh? Anybody there? - // OJ: It is needed when the connection properties are changed. There the URL is used for every type. - - if ( sDatabaseName.Len() ) - { - sNewUrl += String::CreateFromAscii("/"); - sNewUrl += sDatabaseName; - } - } - break; - case ::dbaccess::DST_ORACLE_JDBC: - { - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pHostName, SfxStringItem, DSID_CONN_HOSTNAME, sal_True); - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pPortNumber, SfxInt32Item, DSID_ORACLE_PORTNUMBER, sal_True); - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pDatabaseName, SfxStringItem, DSID_DATABASENAME, sal_True); - if ( pHostName && pHostName->GetValue().Len() ) - { - sNewUrl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("@")); - sNewUrl += lcl_createHostWithPort(pHostName,pPortNumber); - String sDatabaseName = pDatabaseName ? pDatabaseName->GetValue() : String(); - if ( !sDatabaseName.Len() && pUrlItem ) - sDatabaseName = pCollection->cutPrefix( pUrlItem->GetValue() ); - if ( sDatabaseName.Len() ) - { - sNewUrl += String::CreateFromAscii(":"); - sNewUrl += sDatabaseName; - } - } - else - { // here someone entered a JDBC url which looks like oracle, so we have to use the url property - - } - } - break; - case ::dbaccess::DST_LDAP: - { - SFX_ITEMSET_GET(*m_pItemSetHelper->getOutputSet(), pPortNumber, SfxInt32Item, DSID_CONN_LDAP_PORTNUMBER, sal_True); - sNewUrl = pCollection->cutPrefix(pUrlItem->GetValue()); - sNewUrl += lcl_createHostWithPort(NULL,pPortNumber); - } - break; - case ::dbaccess::DST_JDBC: - // run through - default: - break; - } - if ( sNewUrl.Len() ) - { - String sUrl = pCollection->getPrefix(eType); - sUrl += sNewUrl; - sNewUrl = sUrl; - } - else - sNewUrl = pUrlItem->GetValue(); - - return sNewUrl; -} -//------------------------------------------------------------------------- -struct PropertyValueLess -{ - bool operator() (const PropertyValue& x, const PropertyValue& y) const - { return x.Name < y.Name ? true : false; } // construct prevents a MSVC6 warning -}; -DECLARE_STL_SET( PropertyValue, PropertyValueLess, PropertyValueSet); - -//........................................................................ -void ODbDataSourceAdministrationHelper::translateProperties(const Reference< XPropertySet >& _rxSource, SfxItemSet& _rDest) -{ - ::rtl::OUString sNewConnectURL, sName, sUid, sPwd; - Sequence< ::rtl::OUString > aTableFitler; - - if (_rxSource.is()) - { - for ( ConstMapInt2StringIterator aDirect = m_aDirectPropTranslator.begin(); - aDirect != m_aDirectPropTranslator.end(); - ++aDirect - ) - { - // get the property value - Any aValue; - try - { - aValue = _rxSource->getPropertyValue(aDirect->second); - } - catch(Exception&) - { -#if OSL_DEBUG_LEVEL > 0 - ::rtl::OString aMessage("ODbDataSourceAdministrationHelper::translateProperties: could not extract the property "); - aMessage += ::rtl::OString(aDirect->second.getStr(), aDirect->second.getLength(), RTL_TEXTENCODING_ASCII_US); - aMessage += ::rtl::OString("!"); - OSL_FAIL(aMessage.getStr()); -#endif - } - // transfer it into an item - implTranslateProperty(_rDest, aDirect->first, aValue); - } - - // get the additional informations - Sequence< PropertyValue > aAdditionalInfo; - try - { - _rxSource->getPropertyValue(PROPERTY_INFO) >>= aAdditionalInfo; - } - catch(Exception&) { } - - // collect the names of the additional settings - const PropertyValue* pAdditionalInfo = aAdditionalInfo.getConstArray(); - PropertyValueSet aInfos; - for (sal_Int32 i=0; i<aAdditionalInfo.getLength(); ++i, ++pAdditionalInfo) - { - if (0 == pAdditionalInfo->Name.compareToAscii("JDBCDRV")) - { // compatibility - PropertyValue aCompatibility(*pAdditionalInfo); - aCompatibility.Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("JavaDriverClass")); - aInfos.insert(aCompatibility); - } - else - aInfos.insert(*pAdditionalInfo); - } - - // go through all known translations and check if we have such a setting - if ( !aInfos.empty() ) - { - PropertyValue aSearchFor; - ConstMapInt2StringIterator aEnd = m_aIndirectPropTranslator.end(); - for ( ConstMapInt2StringIterator aIndirect = m_aIndirectPropTranslator.begin(); - aIndirect != aEnd; - ++aIndirect) - { - aSearchFor.Name = aIndirect->second; - ConstPropertyValueSetIterator aInfoPos = aInfos.find(aSearchFor); - if (aInfos.end() != aInfoPos) - // the property is contained in the info sequence - // -> transfer it into an item - implTranslateProperty(_rDest, aIndirect->first, aInfoPos->Value); - } - } - - convertUrl(_rDest); - } - - try - { - _rDest.Put(OPropertySetItem(DSID_DATASOURCE_UNO, _rxSource)); - Reference<XStorable> xStore(getDataSourceOrModel(_rxSource),UNO_QUERY); - _rDest.Put(SfxBoolItem(DSID_READONLY, !xStore.is() || xStore->isReadonly() )); - } - catch(Exception&) - { - OSL_FAIL("IsReadOnly throws an exception!"); - } -} - -//------------------------------------------------------------------------- -void ODbDataSourceAdministrationHelper::translateProperties(const SfxItemSet& _rSource, const Reference< XPropertySet >& _rxDest) -{ - OSL_ENSURE(_rxDest.is(), "ODbDataSourceAdministrationHelper::translateProperties: invalid property set!"); - if (!_rxDest.is()) - return; - - // the property set info - Reference< XPropertySetInfo > xInfo; - try { xInfo = _rxDest->getPropertySetInfo(); } - catch(Exception&) { } - - const ::rtl::OUString sUrlProp(RTL_CONSTASCII_USTRINGPARAM("URL")); - // ----------------------------- - // transfer the direct properties - for ( ConstMapInt2StringIterator aDirect = m_aDirectPropTranslator.begin(); - aDirect != m_aDirectPropTranslator.end(); - ++aDirect - ) - { - const SfxPoolItem* pCurrentItem = _rSource.GetItem((sal_uInt16)aDirect->first); - if (pCurrentItem) - { - sal_Int16 nAttributes = PropertyAttribute::READONLY; - if (xInfo.is()) - { - try { nAttributes = xInfo->getPropertyByName(aDirect->second).Attributes; } - catch(Exception&) { } - } - if ((nAttributes & PropertyAttribute::READONLY) == 0) - { - if ( sUrlProp == aDirect->second ) - { - Any aValue(makeAny(::rtl::OUString(getConnectionURL()))); - // aValue <<= ::rtl::OUString(); - lcl_putProperty(_rxDest, aDirect->second,aValue); - } - else - implTranslateProperty(_rxDest, aDirect->second, pCurrentItem); - } - } - } - - // ------------------------------- - // now for the indirect properties - - Sequence< PropertyValue > aInfo; - // the original properties - try - { - _rxDest->getPropertyValue(PROPERTY_INFO) >>= aInfo; - } - catch(Exception&) { } - - // overwrite and extend them - fillDatasourceInfo(_rSource, aInfo); - // and propagate the (newly composed) sequence to the set - lcl_putProperty(_rxDest,PROPERTY_INFO, makeAny(aInfo)); -} - - -//------------------------------------------------------------------------- -void ODbDataSourceAdministrationHelper::fillDatasourceInfo(const SfxItemSet& _rSource, Sequence< ::com::sun::star::beans::PropertyValue >& _rInfo) -{ - // within the current "Info" sequence, replace the ones we can examine from the item set - // (we don't just fill a completely new sequence with our own items, but we preserve any properties unknown to - // us) - - // first determine which of all the items are relevant for the data source (depends on the connection url) - ::rtl::OUString eType = getDatasourceType(_rSource); - ::std::vector< sal_Int32> aDetailIds; - ODriversSettings::getSupportedIndirectSettings(eType,getORB(),aDetailIds); - - // collect the translated property values for the relevant items - PropertyValueSet aRelevantSettings; - ConstMapInt2StringIterator aTranslation; - ::std::vector< sal_Int32>::iterator aDetailsEnd = aDetailIds.end(); - for (::std::vector< sal_Int32>::iterator aIter = aDetailIds.begin();aIter != aDetailsEnd ; ++aIter) - { - const SfxPoolItem* pCurrent = _rSource.GetItem((sal_uInt16)*aIter); - aTranslation = m_aIndirectPropTranslator.find(*aIter); - if ( pCurrent && (m_aIndirectPropTranslator.end() != aTranslation) ) - { - if ( aTranslation->second == INFO_CHARSET ) - { - ::rtl::OUString sCharSet; - implTranslateProperty(pCurrent) >>= sCharSet; - if ( sCharSet.getLength() ) - aRelevantSettings.insert(PropertyValue(aTranslation->second, 0, makeAny(sCharSet), PropertyState_DIRECT_VALUE)); - } - else - aRelevantSettings.insert(PropertyValue(aTranslation->second, 0, implTranslateProperty(pCurrent), PropertyState_DIRECT_VALUE)); - } - } - - // settings to preserve - MapInt2String aPreservedSettings; - - // now aRelevantSettings contains all the property values relevant for the current data source type, - // check the original sequence if it already contains any of these values (which have to be overwritten, then) - PropertyValue* pInfo = _rInfo.getArray(); - PropertyValue aSearchFor; - sal_Int32 nObsoleteSetting = -1; - sal_Int32 nCount = _rInfo.getLength(); - for (sal_Int32 i = 0; i < nCount; ++i, ++pInfo) - { - aSearchFor.Name = pInfo->Name; - PropertyValueSetIterator aOverwrittenSetting = aRelevantSettings.find(aSearchFor); - if (aRelevantSettings.end() != aOverwrittenSetting) - { // the setting was present in the original sequence, and it is to be overwritten -> replace it - if ( !::comphelper::compare(pInfo->Value,aOverwrittenSetting->Value) ) - *pInfo = *aOverwrittenSetting; - aRelevantSettings.erase(aOverwrittenSetting); - } - else if (0 == pInfo->Name.compareToAscii("JDBCDRV")) - { // this is a compatibility setting, remove it from the sequence (it's replaced by JavaDriverClass) - nObsoleteSetting = i; - } - else - aPreservedSettings[i] = pInfo->Name; - } - if (-1 != nObsoleteSetting) - ::comphelper::removeElementAt(_rInfo, nObsoleteSetting); - - if ( !aPreservedSettings.empty() ) - { // check if there are settings which - // * are known as indirect properties - // * but not relevant for the current data source type - // These settings have to be removed: If they're not relevant, we have no UI for changing them. - - // for this, we need a string-controlled quick access to m_aIndirectPropTranslator - StringSet aIndirectProps; - ::std::transform(m_aIndirectPropTranslator.begin(), - m_aIndirectPropTranslator.end(), - ::std::insert_iterator<StringSet>(aIndirectProps,aIndirectProps.begin()), - ::o3tl::select2nd<MapInt2String::value_type>()); - - // now check the to-be-preserved props - ::std::vector< sal_Int32 > aRemoveIndexes; - sal_Int32 nPositionCorrector = 0; - ConstMapInt2StringIterator aPreservedEnd = aPreservedSettings.end(); - for ( ConstMapInt2StringIterator aPreserved = aPreservedSettings.begin(); - aPreserved != aPreservedEnd; - ++aPreserved - ) - { - if (aIndirectProps.end() != aIndirectProps.find(aPreserved->second)) - { -#if OSL_DEBUG_LEVEL > 0 - const ::rtl::OUString sName = aPreserved->second; -#endif - aRemoveIndexes.push_back(aPreserved->first - nPositionCorrector); - ++nPositionCorrector; - } - } - // now finally remove all such props - ::std::vector< sal_Int32 >::const_iterator aRemoveEnd = aRemoveIndexes.end(); - for ( ::std::vector< sal_Int32 >::const_iterator aRemoveIndex = aRemoveIndexes.begin(); - aRemoveIndex != aRemoveEnd; - ++aRemoveIndex - ) - ::comphelper::removeElementAt(_rInfo, *aRemoveIndex); -#if OSL_DEBUG_LEVEL > 0 - const PropertyValue* pWhatsLeft = _rInfo.getConstArray(); - const PropertyValue* pWhatsLeftEnd = pWhatsLeft + _rInfo.getLength(); - for (; pWhatsLeft != pWhatsLeftEnd; ++pWhatsLeft) - { - ::rtl::OUString sLookAtIt = pWhatsLeft->Name; - } -#endif - } - - ::connectivity::DriversConfig aDriverConfig(getORB()); - const ::comphelper::NamedValueCollection& aProperties = aDriverConfig.getProperties(eType); - Sequence< Any> aTypeSettings; - aTypeSettings = aProperties.getOrDefault("TypeInfoSettings",aTypeSettings); - // here we have a special entry for types from oracle - if ( aTypeSettings.getLength() ) - { - aRelevantSettings.insert(PropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TypeInfoSettings")), 0, makeAny(aTypeSettings), PropertyState_DIRECT_VALUE)); - } - - // check which values are still left ('cause they were not present in the original sequence, but are to be set) - if ( !aRelevantSettings.empty() ) - { - sal_Int32 nOldLength = _rInfo.getLength(); - _rInfo.realloc(nOldLength + aRelevantSettings.size()); - PropertyValue* pAppendValues = _rInfo.getArray() + nOldLength; - ConstPropertyValueSetIterator aRelevantEnd = aRelevantSettings.end(); - for ( ConstPropertyValueSetIterator aLoop = aRelevantSettings.begin(); - aLoop != aRelevantEnd; - ++aLoop, ++pAppendValues - ) - { - if ( aLoop->Name == INFO_CHARSET ) - { - ::rtl::OUString sCharSet; - aLoop->Value >>= sCharSet; - if ( sCharSet.getLength() ) - *pAppendValues = *aLoop; - } - else - *pAppendValues = *aLoop; - } - } -} -//------------------------------------------------------------------------- -Any ODbDataSourceAdministrationHelper::implTranslateProperty(const SfxPoolItem* _pItem) -{ - // translate the SfxPoolItem - Any aValue; - - const SfxStringItem* pStringItem = PTR_CAST( SfxStringItem, _pItem ); - const SfxBoolItem* pBoolItem = PTR_CAST( SfxBoolItem, _pItem ); - const OptionalBoolItem* pOptBoolItem = PTR_CAST( OptionalBoolItem, _pItem ); - const SfxInt32Item* pInt32Item = PTR_CAST( SfxInt32Item, _pItem ); - const OStringListItem* pStringListItem = PTR_CAST( OStringListItem, _pItem ); - - if ( pStringItem ) - { - aValue <<= ::rtl::OUString( pStringItem->GetValue().GetBuffer() ); - } - else if ( pBoolItem ) - { - aValue <<= pBoolItem->GetValue(); - } - else if ( pOptBoolItem ) - { - if ( !pOptBoolItem->HasValue() ) - aValue.clear(); - else - aValue <<= (sal_Bool)pOptBoolItem->GetValue(); - } - else if ( pInt32Item ) - { - aValue <<= pInt32Item->GetValue(); - } - else if ( pStringListItem ) - { - aValue <<= pStringListItem->getList(); - } - else - { - OSL_FAIL("ODbDataSourceAdministrationHelper::implTranslateProperty: unsupported item type!"); - return aValue; - } - - return aValue; -} -//------------------------------------------------------------------------- -void ODbDataSourceAdministrationHelper::implTranslateProperty(const Reference< XPropertySet >& _rxSet, const ::rtl::OUString& _rName, const SfxPoolItem* _pItem) -{ - Any aValue = implTranslateProperty(_pItem); - lcl_putProperty(_rxSet, _rName,aValue); -} - -#if OSL_DEBUG_LEVEL > 0 -//------------------------------------------------------------------------- -::rtl::OString ODbDataSourceAdministrationHelper::translatePropertyId( sal_Int32 _nId ) -{ - ::rtl::OUString aString; - - MapInt2String::const_iterator aPos = m_aDirectPropTranslator.find( _nId ); - if ( m_aDirectPropTranslator.end() != aPos ) - { - aString = aPos->second; - } - else - { - MapInt2String::const_iterator indirectPos = m_aIndirectPropTranslator.find( _nId ); - if ( m_aIndirectPropTranslator.end() != indirectPos ) - aString = indirectPos->second; - } - - ::rtl::OString aReturn( aString.getStr(), aString.getLength(), RTL_TEXTENCODING_ASCII_US ); - return aReturn; -} -#endif - -//------------------------------------------------------------------------- -void ODbDataSourceAdministrationHelper::implTranslateProperty( SfxItemSet& _rSet, sal_Int32 _nId, const Any& _rValue ) -{ - switch ( _rValue.getValueType().getTypeClass() ) - { - case TypeClass_STRING: - if ( implCheckItemType( _rSet, _nId, SfxStringItem::StaticType() ) ) - { - ::rtl::OUString sValue; - _rValue >>= sValue; - _rSet.Put(SfxStringItem(_nId, sValue.getStr())); - } - else { - OSL_FAIL( - ( ::rtl::OString( "ODbDataSourceAdministrationHelper::implTranslateProperty: invalid property value (" ) - += ::rtl::OString( translatePropertyId( _nId ) ) - += ::rtl::OString( " should be no string)!" ) - ).getStr() - ); - } - break; - - case TypeClass_BOOLEAN: - if ( implCheckItemType( _rSet, _nId, SfxBoolItem::StaticType() ) ) - { - sal_Bool bVal = sal_False; - _rValue >>= bVal; - _rSet.Put(SfxBoolItem(_nId, bVal)); - } - else if ( implCheckItemType( _rSet, _nId, OptionalBoolItem::StaticType() ) ) - { - OptionalBoolItem aItem( _nId ); - if ( _rValue.hasValue() ) - { - sal_Bool bValue = sal_False; - _rValue >>= bValue; - aItem.SetValue( bValue ); - } - else - aItem.ClearValue(); - _rSet.Put( aItem ); - } - else { - OSL_FAIL( - ( ::rtl::OString( "ODbDataSourceAdministrationHelper::implTranslateProperty: invalid property value (" ) - += ::rtl::OString( translatePropertyId( _nId ) ) - += ::rtl::OString( " should be no boolean)!" ) - ).getStr() - ); - } - break; - - case TypeClass_LONG: - if ( implCheckItemType( _rSet, _nId, SfxInt32Item::StaticType() ) ) - { - sal_Int32 nValue = 0; - _rValue >>= nValue; - _rSet.Put( SfxInt32Item( _nId, nValue ) ); - } - else { - OSL_FAIL( - ( ::rtl::OString( "ODbDataSourceAdministrationHelper::implTranslateProperty: invalid property value (" ) - += ::rtl::OString( translatePropertyId( _nId ) ) - += ::rtl::OString( " should be no int)!" ) - ).getStr() - ); - } - break; - - case TypeClass_SEQUENCE: - if ( implCheckItemType( _rSet, _nId, OStringListItem::StaticType() ) ) - { - // determine the element type - TypeDescription aTD(_rValue.getValueType()); - typelib_IndirectTypeDescription* pSequenceTD = - reinterpret_cast< typelib_IndirectTypeDescription* >(aTD.get()); - OSL_ENSURE(pSequenceTD && pSequenceTD->pType, "ODbDataSourceAdministrationHelper::implTranslateProperty: invalid sequence type!"); - - Type aElementType(pSequenceTD->pType); - switch (aElementType.getTypeClass()) - { - case TypeClass_STRING: - { - Sequence< ::rtl::OUString > aStringList; - _rValue >>= aStringList; - _rSet.Put(OStringListItem(_nId, aStringList)); - } - break; - default: - OSL_FAIL("ODbDataSourceAdministrationHelper::implTranslateProperty: unsupported property value type!"); - } - } - else { - OSL_FAIL( - ( ::rtl::OString( "ODbDataSourceAdministrationHelper::implTranslateProperty: invalid property value (" ) - += ::rtl::OString( translatePropertyId( _nId ) ) - += ::rtl::OString( " should be no string sequence)!" ) - ).getStr() - ); - } - break; - - case TypeClass_VOID: - _rSet.ClearItem(_nId); - break; - - default: - OSL_FAIL("ODbDataSourceAdministrationHelper::implTranslateProperty: unsupported property value type!"); - } -} - - -String ODbDataSourceAdministrationHelper::getDocumentUrl(SfxItemSet& _rDest) -{ - SFX_ITEMSET_GET(_rDest, pUrlItem, SfxStringItem, DSID_DOCUMENT_URL, sal_True); - OSL_ENSURE(pUrlItem,"Document URL is NULL. -> GPF!"); - return pUrlItem->GetValue(); -} - - -// ----------------------------------------------------------------------------- -void ODbDataSourceAdministrationHelper::convertUrl(SfxItemSet& _rDest) -{ - ::rtl::OUString eType = getDatasourceType(_rDest); - - SFX_ITEMSET_GET(_rDest, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True); - SFX_ITEMSET_GET(_rDest, pTypeCollection, DbuTypeCollectionItem, DSID_TYPECOLLECTION, sal_True); - - OSL_ENSURE(pUrlItem,"Connection URL is NULL. -> GPF!"); - OSL_ENSURE(pTypeCollection, "ODbAdminDialog::getDatasourceType: invalid items in the source set!"); - ::dbaccess::ODsnTypeCollection* pCollection = pTypeCollection->getCollection(); - OSL_ENSURE(pCollection, "ODbAdminDialog::getDatasourceType: invalid type collection!"); - - sal_uInt16 nPortNumberId = 0; - sal_Int32 nPortNumber = -1; - String sNewHostName; - String sUrlPart; - - pCollection->extractHostNamePort(pUrlItem->GetValue(),sUrlPart,sNewHostName,nPortNumber); - const ::dbaccess::DATASOURCE_TYPE eTy = pCollection->determineType(eType); - - switch( eTy ) - { - case ::dbaccess::DST_MYSQL_NATIVE: - case ::dbaccess::DST_MYSQL_JDBC: - nPortNumberId = DSID_MYSQL_PORTNUMBER; - break; - case ::dbaccess::DST_ORACLE_JDBC: - nPortNumberId = DSID_ORACLE_PORTNUMBER; - break; - case ::dbaccess::DST_LDAP: - nPortNumberId = DSID_CONN_LDAP_PORTNUMBER; - break; - default: - break; - } - - if ( sUrlPart.Len() ) - { - if ( eTy == ::dbaccess::DST_MYSQL_NATIVE ) - { - _rDest.Put( SfxStringItem( DSID_DATABASENAME, sUrlPart ) ); - } - else - { - String sNewUrl = pCollection->getPrefix(eType); - sNewUrl += sUrlPart; - _rDest.Put( SfxStringItem( DSID_CONNECTURL, sNewUrl ) ); - } - } - - if ( sNewHostName.Len() ) - _rDest.Put(SfxStringItem(DSID_CONN_HOSTNAME, sNewHostName)); - - if ( nPortNumber != -1 && nPortNumberId != 0 ) - _rDest.Put(SfxInt32Item(nPortNumberId, nPortNumber)); - -} -// ----------------------------------------------------------------------------- -sal_Bool ODbDataSourceAdministrationHelper::saveChanges(const SfxItemSet& _rSource) -{ - // put the remembered settings into the property set - Reference<XPropertySet> xDatasource = getCurrentDataSource(); - if ( !xDatasource.is() ) - return sal_False; - - translateProperties(_rSource,xDatasource ); - - return sal_True; -} -// ----------------------------------------------------------------------------- -void ODbDataSourceAdministrationHelper::setDataSourceOrName( const Any& _rDataSourceOrName ) -{ - OSL_ENSURE( !m_aDataSourceOrName.hasValue(), "ODbDataSourceAdministrationHelper::setDataSourceOrName: already have one!" ); - // hmm. We could reset m_xDatasource/m_xModel, probably, and continue working - m_aDataSourceOrName = _rDataSourceOrName; -} -//========================================================================= -//= DbuTypeCollectionItem -//========================================================================= -TYPEINIT1(DbuTypeCollectionItem, SfxPoolItem); -//------------------------------------------------------------------------- -DbuTypeCollectionItem::DbuTypeCollectionItem(sal_Int16 _nWhich, ::dbaccess::ODsnTypeCollection* _pCollection) - :SfxPoolItem(_nWhich) - ,m_pCollection(_pCollection) -{ -} - -//------------------------------------------------------------------------- -DbuTypeCollectionItem::DbuTypeCollectionItem(const DbuTypeCollectionItem& _rSource) - :SfxPoolItem(_rSource) - ,m_pCollection(_rSource.getCollection()) -{ -} - -//------------------------------------------------------------------------- -int DbuTypeCollectionItem::operator==(const SfxPoolItem& _rItem) const -{ - DbuTypeCollectionItem* pCompare = PTR_CAST(DbuTypeCollectionItem, &_rItem); - return pCompare && (pCompare->getCollection() == getCollection()); -} - -//------------------------------------------------------------------------- -SfxPoolItem* DbuTypeCollectionItem::Clone(SfxItemPool* /*_pPool*/) const -{ - return new DbuTypeCollectionItem(*this); -} - -//......................................................................... -} // namespace dbaui -//......................................................................... - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/DbAdminImpl.hxx b/dbaccess/source/ui/dlg/DbAdminImpl.hxx deleted file mode 100644 index ad27050f0..000000000 --- a/dbaccess/source/ui/dlg/DbAdminImpl.hxx +++ /dev/null @@ -1,196 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_DBADMINIMPL_HXX_ -#define _DBAUI_DBADMINIMPL_HXX_ - -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/container/XNameAccess.hpp> -#include <com/sun/star/uno/XNamingService.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/beans/PropertyValue.hpp> -#include <com/sun/star/sdbc/XConnection.hpp> -#include <com/sun/star/sdbc/XDriver.hpp> -#include <comphelper/stl_types.hxx> -#include "dsntypes.hxx" -#include <svl/itemset.hxx> -#include <com/sun/star/frame/XModel.hpp> -#include <svl/poolitem.hxx> - -class Window; -//......................................................................... -namespace dbaui -{ -//......................................................................... - class DataSourceInfoConverter - { - ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory; - public: - DataSourceInfoConverter(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xFactory) - :m_xFactory(_xFactory) - { - } - void convert(const ::dbaccess::ODsnTypeCollection* _pCollection,const ::rtl::OUString& _sOldURLPrefix,const ::rtl::OUString& _sNewURLPrefix,const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _xDatasource); - }; - class IItemSetHelper; - //======================================================================== - //= ODbDataSourceAdministrationHelper - //======================================================================== - class ODbDataSourceAdministrationHelper - { - public: - DECLARE_STL_MAP(sal_Int32, ::rtl::OUString, ::std::less< sal_Int32 >, MapInt2String); - - private: - ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > - m_xORB; /// service factory - ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > - m_xDatabaseContext; /// database context we're working in - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XNamingService > - m_xDynamicContext; /// just another interface of the context ... - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xDatasource; - ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > m_xModel; - - ::com::sun::star::uno::Any m_aDataSourceOrName; - typedef ::std::set< ::rtl::OUString > StringSet; - typedef StringSet::const_iterator ConstStringSetIterator; - - - MapInt2String m_aDirectPropTranslator; /// translating property id's into names (direct properties of a data source) - MapInt2String m_aIndirectPropTranslator; /// translating property id's into names (indirect properties of a data source) - Window* m_pParent; - IItemSetHelper* m_pItemSetHelper; - public: - - ODbDataSourceAdministrationHelper(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xORB - ,Window* _pParent - ,IItemSetHelper* _pItemSetHelper); - - /** translate the current dialog SfxItems into driver relevant PropertyValues - @see successfullyConnected - */ - sal_Bool getCurrentSettings(::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& _rDriverParams); - - /** to be called if the settings got from getCurrentSettings have been used for successfully connecting - @see getCurrentSettings - */ - void successfullyConnected(); - - /// clear the password in the current data source's item set - void clearPassword(); - - inline ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > getORB() const { return m_xORB; } - - ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > getDatabaseContext() const { return m_xDatabaseContext; } - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XNamingService > getDynamicContext() const { return m_xDynamicContext; } - - /** creates a new connection. The caller is responsible to dispose it !!!! - */ - ::std::pair< ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >,sal_Bool> createConnection(); - - /** return the corresponding driver for the selected URL - */ - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDriver > getDriver(); - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDriver > getDriver(const ::rtl::OUString& _sURL); - - /** returns the data source the dialog is currently working with - */ - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > getCurrentDataSource(); - // returns the Url of a database document - String getDocumentUrl(SfxItemSet& _rDest); - - void setDataSourceOrName( const ::com::sun::star::uno::Any& _rDataSourceOrName ); - - /** extracts the connection type from the given set<p/> - The connection type is determined by the value of the DSN item, analyzed by the TypeCollection item. - */ - static ::rtl::OUString getDatasourceType( const SfxItemSet& _rSet ); - - /** returns the connection URL - @return - The connection URL - */ - String getConnectionURL() const; - - /// fill the nescessary information from the url line - void convertUrl(SfxItemSet& _rDest); - - const MapInt2String& getIndirectProperties() const { return m_aIndirectPropTranslator; } - - /** translates properties of an UNO data source into SfxItems - @param _rxSource - The data source - @param _rDest - The item set to fill. - */ - void translateProperties( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxSource, - SfxItemSet& _rDest); - - /** translate SfxItems into properties of an UNO data source - @param _rSource - The item set to read from. - @param _rxDest - The data source to fill. - */ - void translateProperties( - const SfxItemSet& _rSource, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxDest); - - sal_Bool saveChanges(const SfxItemSet& _rSource); - protected: - /** fill a data source info array with the settings from a given item set - */ - void fillDatasourceInfo(const SfxItemSet& _rSource, ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& _rInfo); - - /// translate the given value into an SfxPoolItem, put this into the given set under the given id - void implTranslateProperty(SfxItemSet& _rSet, sal_Int32 _nId, const ::com::sun::star::uno::Any& _rValue); - - /// translate the given SfxPoolItem into an <type scope="com.sun.star.Any">uno</type> - ::com::sun::star::uno::Any implTranslateProperty(const SfxPoolItem* _pItem); - - /// translate the given SfxPoolItem into an <type scope="com.sun.star.Any">uno</type>, set it (under the given name) on the given property set - void implTranslateProperty(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxSet, const ::rtl::OUString& _rName, const SfxPoolItem* _pItem); - - /** check if the data source described by the given set needs authentication<p/> - The return value depends on the data source type only. - */ - sal_Bool hasAuthentication(const SfxItemSet& _rSet) const; - -#if OSL_DEBUG_LEVEL > 0 - ::rtl::OString translatePropertyId( sal_Int32 _nId ); -#endif - }; - -//......................................................................... -} // namespace dbaui -//......................................................................... - -#endif // _DBAUI_DBADMINIMPL_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/DriverSettings.cxx b/dbaccess/source/ui/dlg/DriverSettings.cxx deleted file mode 100644 index 82e8cd7ac..000000000 --- a/dbaccess/source/ui/dlg/DriverSettings.cxx +++ /dev/null @@ -1,119 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "DriverSettings.hxx" -#include "dsmeta.hxx" - -#include <com/sun/star/uno/Sequence.hxx> -#include <com/sun/star/beans/NamedValue.hpp> - -#include <connectivity/DriversConfig.hxx> - -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::beans::NamedValue; - -using namespace dbaui; -void ODriversSettings::getSupportedIndirectSettings( const ::rtl::OUString& _sURLPrefix,const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xFactory, ::std::vector< sal_Int32>& _out_rDetailsIds ) -{ - // for a number of settings, we do not need to use hard-coded here, but can ask a - // central DataSourceUI instance. - DataSourceMetaData aMeta( _sURLPrefix ); - const FeatureSet& rFeatures( aMeta.getFeatureSet() ); - for ( FeatureSet::const_iterator feature = rFeatures.begin(); - feature != rFeatures.end(); - ++feature - ) - { - _out_rDetailsIds.push_back( *feature ); - } - - // the rest is configuration-based - // TODO: that's not really true: *everything* is configuration-based nowadays, even the FeatureSet obtained - // from the DataSourceMetaData has been initialized from the configuration. So in fact, we could consolidate - // the two blocks. - // The best approach would be to extend the FeatureSet to contain *all* known data source features, not only - // the ones from the "Advanced settings" UI. - - ::connectivity::DriversConfig aDriverConfig(_xFactory); - const ::comphelper::NamedValueCollection& aProperties = aDriverConfig.getProperties(_sURLPrefix); -#if OSL_DEBUG_LEVEL > 0 - { - Sequence< NamedValue > aNamedValues; - aProperties >>= aNamedValues; - for ( const NamedValue* loop = aNamedValues.getConstArray(); - loop != aNamedValues.getConstArray() + aNamedValues.getLength(); - ++loop - ) - { - int dummy = 0; - (void)dummy; - } - } -#endif - typedef ::std::pair<sal_uInt16, ::rtl::OUString> TProperties; - TProperties aProps[] = { TProperties(DSID_SHOWDELETEDROWS,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ShowDeleted"))) - ,TProperties(DSID_CHARSET,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharSet"))) - ,TProperties(DSID_FIELDDELIMITER,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FieldDelimiter"))) - ,TProperties(DSID_TEXTDELIMITER,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("StringDelimiter"))) - ,TProperties(DSID_DECIMALDELIMITER,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DecimalDelimiter"))) - ,TProperties(DSID_THOUSANDSDELIMITER,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ThousandDelimiter"))) - ,TProperties(DSID_TEXTFILEEXTENSION,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Extension"))) - ,TProperties(DSID_TEXTFILEHEADER,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HeaderLine"))) - ,TProperties(DSID_ADDITIONALOPTIONS,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SystemDriverSettings"))) - ,TProperties(DSID_CONN_SHUTSERVICE,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ShutdownDatabase"))) - ,TProperties(DSID_CONN_DATAINC,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DataCacheSizeIncrement"))) - ,TProperties(DSID_CONN_CACHESIZE,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DataCacheSize"))) - ,TProperties(DSID_CONN_CTRLUSER,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ControlUser"))) - ,TProperties(DSID_CONN_CTRLPWD,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ControlPassword"))) - ,TProperties(DSID_USECATALOG,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UseCatalog"))) - ,TProperties(DSID_CONN_SOCKET,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LocalSocket"))) - ,TProperties(DSID_NAMED_PIPE,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NamedPipe"))) - ,TProperties(DSID_JDBCDRIVERCLASS,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("JavaDriverClass"))) - ,TProperties(DSID_CONN_LDAP_BASEDN,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("BaseDN"))) - ,TProperties(DSID_CONN_LDAP_ROWCOUNT,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MaxRowCount"))) - ,TProperties(DSID_CONN_LDAP_USESSL,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UseSSL"))) - ,TProperties(DSID_IGNORECURRENCY,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IgnoreCurrency"))) - ,TProperties(0,::rtl::OUString()) - }; - // TODO: This mapping between IDs and property names already exists - in ODbDataSourceAdministrationHelper::ODbDataSourceAdministrationHelper. - // Another mapping (which is also duplicated in ODbDataSourceAdministrationHelper) exists in dsmeta.cxx. We should - // consolidate those three places into one. - // However, care has to be taken: We need to distinguish between "features" and "properties" of a data source (resp. driver). - // That is, a driver can support a certain property, but not allow to change it in the UI, which means it would - // not have the respective "feature". - for ( TProperties* pProps = aProps; pProps->first; ++pProps ) - { - if ( aProperties.has(pProps->second) ) - _out_rDetailsIds.push_back(pProps->first); - } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/DriverSettings.hxx b/dbaccess/source/ui/dlg/DriverSettings.hxx deleted file mode 100644 index 754b391b4..000000000 --- a/dbaccess/source/ui/dlg/DriverSettings.hxx +++ /dev/null @@ -1,112 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef DBAUI_DRIVERSETTINGS_HXX -#define DBAUI_DRIVERSETTINGS_HXX - -#include "dsntypes.hxx" -#include <svl/poolitem.hxx> -#include <vector> - -class SfxTabPage; -class Window; -namespace dbaui -{ - /// a collection class for all details a driver needs - class ODriversSettings - { - public: - - /** filles the IDs of the settings which are reflected in indirect data source properties - (aka properties in the css.sdb.DataSource.Info sequence) - - @param _eType - The Type of the data source. - @param _out_rDetailsIds - Will be filled. - */ - static void getSupportedIndirectSettings( const ::rtl::OUString& _sURLPrefix,const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xFactory,::std::vector< sal_Int32>& _out_rDetailsIds ); - - /** Creates the detail page for Dbase - */ - static SfxTabPage* CreateDbase2( Window* _pParent, const SfxItemSet& _rAttrSet ); - - /** Creates the detail page for ado - */ - static SfxTabPage* CreateDbase( Window* _pParent, const SfxItemSet& _rAttrSet ); - - /** Creates the detail page for ado - */ - static SfxTabPage* CreateAdo( Window* _pParent, const SfxItemSet& _rAttrSet ); - - /** Creates the detail page for ODBC - */ - static SfxTabPage* CreateODBC( Window* _pParent, const SfxItemSet& _rAttrSet ); - - /** Creates the detail page for user - */ - static SfxTabPage* CreateUser( Window* _pParent, const SfxItemSet& _rAttrSet ); - - /** Creates the detail page for MySQLODBC - */ - static SfxTabPage* CreateMySQLODBC( Window* _pParent, const SfxItemSet& _rAttrSet ); - - /** Creates the detail page for MySQLJDBC - */ - static SfxTabPage* CreateMySQLJDBC( Window* _pParent, const SfxItemSet& _rAttrSet ); - - /** Creates the detail page for MySQLNATIVE - */ - static SfxTabPage* CreateMySQLNATIVE( Window* _pParent, const SfxItemSet& _rAttrSet ); - - /** Creates the detail page for Oracle JDBC - */ - static SfxTabPage* CreateOracleJDBC( Window* pParent, const SfxItemSet& _rAttrSet ); - - /** Creates the detail page for Adabas - */ - static SfxTabPage* CreateAdabas( Window* _pParent, const SfxItemSet& _rAttrSet ); - - /** Creates the detail page for LDAP - */ - static SfxTabPage* CreateLDAP( Window* _pParent, const SfxItemSet& _rAttrSet ); - - /// Creates the detail page for Text - static SfxTabPage* CreateText( Window* _pParent, const SfxItemSet& _rAttrSet ); - - - /// creates the GeneratedValues page - static SfxTabPage* CreateGeneratedValuesPage( Window* _pParent, const SfxItemSet& _rAttrSet ); - - /// creates the "Special Settings" page of the "Advanced Settings" dialog - static SfxTabPage* CreateSpecialSettingsPage( Window* _pParent, const SfxItemSet& _rAttrSet ); - }; -} - -#endif // DBAUI_DRIVERSETTINGS_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/RelationDlg.cxx b/dbaccess/source/ui/dlg/RelationDlg.cxx deleted file mode 100644 index 35d3fb331..000000000 --- a/dbaccess/source/ui/dlg/RelationDlg.cxx +++ /dev/null @@ -1,270 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" -#include "RelationDlg.hrc" -#include "RelationDlg.hxx" - -#include <vcl/wrkwin.hxx> - -#include <vcl/svapp.hxx> -#include "dbu_dlg.hrc" -#include "dbaccess_helpid.hrc" -#include <com/sun/star/sdbc/KeyRule.hpp> - -#include <tools/debug.hxx> -#include <tools/diagnose_ex.h> -#include "UITools.hxx" -#include "JoinDesignView.hxx" -#include "JoinController.hxx" -#include <connectivity/dbexception.hxx> -#include "RTableConnectionData.hxx" -#include "RelationControl.hxx" -#include <cppuhelper/exc_hlp.hxx> - -#include <algorithm> - -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::sdbc; -using namespace ::com::sun::star::container; -using namespace ::com::sun::star::beans; -using namespace ::dbaui; -using namespace ::dbtools; - -//======================================================================== -// class ORelationDialog -DBG_NAME(ORelationDialog) -//======================================================================== -ORelationDialog::ORelationDialog( OJoinTableView* pParent, - const TTableConnectionData::value_type& pConnectionData, - sal_Bool bAllowTableSelect ) - :ModalDialog( pParent, ModuleRes(DLG_REL_PROPERTIES) ) - ,m_pTableMap(pParent->GetTabWinMap()) - - ,aFL_CascUpd( this, ModuleRes(FL_CASC_UPD) ) - ,aRB_NoCascUpd( this, ModuleRes(RB_NO_CASC_UPD) ) - ,aRB_CascUpd( this, ModuleRes(RB_CASC_UPD) ) - ,aRB_CascUpdNull( this, ModuleRes(RB_CASC_UPD_NULL) ) - ,aRB_CascUpdDefault( this, ModuleRes(RB_CASC_UPD_DEFAULT) ) - ,aFL_CascDel( this, ModuleRes(FL_CASC_DEL) ) - ,aRB_NoCascDel( this, ModuleRes(RB_NO_CASC_DEL) ) - ,aRB_CascDel( this, ModuleRes(RB_CASC_DEL) ) - ,aRB_CascDelNull( this, ModuleRes(RB_CASC_DEL_NULL) ) - ,aRB_CascDelDefault( this, ModuleRes(RB_CASC_DEL_DEFAULT) ) - - ,aPB_OK( this, ModuleRes( PB_OK ) ) - ,aPB_CANCEL( this, ModuleRes( PB_CANCEL ) ) - ,aPB_HELP( this, ModuleRes( PB_HELP ) ) - - ,m_pOrigConnData( pConnectionData ) - ,m_bTriedOneUpdate(sal_False) -{ - DBG_CTOR(ORelationDialog,NULL); - - m_xConnection = pParent->getDesignView()->getController().getConnection(); - - ////////////////////////////////////////////////////////////////////// - // Connection kopieren - m_pConnData.reset( static_cast<ORelationTableConnectionData*>(pConnectionData->NewInstance()) ); - m_pConnData->CopyFrom( *pConnectionData ); - - Init(m_pConnData); - m_pTableControl.reset( new OTableListBoxControl(this,ModuleRes(WND_CONTROL),m_pTableMap,this) ); - - aPB_OK.SetClickHdl( LINK(this, ORelationDialog, OKClickHdl) ); - - m_pTableControl->Init( m_pConnData ); - if ( bAllowTableSelect ) - m_pTableControl->fillListBoxes(); - else - m_pTableControl->fillAndDisable(pConnectionData); - - m_pTableControl->lateInit(); - - m_pTableControl->NotifyCellChange(); - - FreeResource(); -} - -//------------------------------------------------------------------------ -void ORelationDialog::Init(const TTableConnectionData::value_type& _pConnectionData) -{ - ORelationTableConnectionData* pConnData = static_cast<ORelationTableConnectionData*>(_pConnectionData.get()); - // Update Rules - switch (pConnData->GetUpdateRules()) - { - case KeyRule::NO_ACTION: - case KeyRule::RESTRICT: - aRB_NoCascUpd.Check( sal_True ); - break; - - case KeyRule::CASCADE: - aRB_CascUpd.Check( sal_True ); - break; - - case KeyRule::SET_NULL: - aRB_CascUpdNull.Check( sal_True ); - break; - case KeyRule::SET_DEFAULT: - aRB_CascUpdDefault.Check( sal_True ); - break; - } - - // Delete Rules - switch (pConnData->GetDeleteRules()) - { - case KeyRule::NO_ACTION: - case KeyRule::RESTRICT: - aRB_NoCascDel.Check( sal_True ); - break; - - case KeyRule::CASCADE: - aRB_CascDel.Check( sal_True ); - break; - - case KeyRule::SET_NULL: - aRB_CascDelNull.Check( sal_True ); - break; - case KeyRule::SET_DEFAULT: - aRB_CascDelDefault.Check( sal_True ); - break; - } -} - -//------------------------------------------------------------------------ -ORelationDialog::~ORelationDialog() -{ - DBG_DTOR(ORelationDialog,NULL); -} - -//------------------------------------------------------------------------ - - -//------------------------------------------------------------------------ -IMPL_LINK( ORelationDialog, OKClickHdl, Button*, /*pButton*/ ) -{ - ////////////////////////////////////////////////////////////////////// - // RadioButtons auslesen - sal_uInt16 nAttrib = 0; - - // Delete Rules - if( aRB_NoCascDel.IsChecked() ) - nAttrib |= KeyRule::NO_ACTION; - if( aRB_CascDel.IsChecked() ) - nAttrib |= KeyRule::CASCADE; - if( aRB_CascDelNull.IsChecked() ) - nAttrib |= KeyRule::SET_NULL; - if( aRB_CascDelDefault.IsChecked() ) - nAttrib |= KeyRule::SET_DEFAULT; - - ORelationTableConnectionData* pConnData = static_cast<ORelationTableConnectionData*>(m_pConnData.get()); - pConnData->SetDeleteRules( nAttrib ); - - // Update Rules - nAttrib = 0; - if( aRB_NoCascUpd.IsChecked() ) - nAttrib |= KeyRule::NO_ACTION; - if( aRB_CascUpd.IsChecked() ) - nAttrib |= KeyRule::CASCADE; - if( aRB_CascUpdNull.IsChecked() ) - nAttrib |= KeyRule::SET_NULL; - if( aRB_CascUpdDefault.IsChecked() ) - nAttrib |= KeyRule::SET_DEFAULT; - pConnData->SetUpdateRules( nAttrib ); - - m_pTableControl->SaveModified(); - - //// wenn die ComboBoxen fuer die Tabellenauswahl enabled sind (Constructor mit bAllowTableSelect==sal_True), dann muss ich in die - //// Connection auch die Tabellennamen stecken - //m_pConnData->SetSourceWinName(m_pTableControl->getSourceWinName()); - //m_pConnData->SetDestWinName(m_pTableControl->getDestWinName()); - - // try to create the relation - try - { - ORelationTableConnectionData* pOrigConnData = static_cast<ORelationTableConnectionData*>(m_pOrigConnData.get()); - if ( *pConnData == *pOrigConnData || pConnData->Update()) - { - m_pOrigConnData->CopyFrom( *m_pConnData ); - EndDialog( RET_OK ); - return 0L; - } - } - catch( const SQLException& ) - { - ::dbaui::showError( SQLExceptionInfo( ::cppu::getCaughtException() ), - this, - static_cast<OJoinTableView*>(GetParent())->getDesignView()->getController().getORB()); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - - m_bTriedOneUpdate = sal_True; - // this means that the original connection may be lost (if m_pConnData was not a newly created but an - // existent conn to be modified), which we reflect by returning RET_NO (see ::Execute) - - // try again - Init(m_pConnData); - m_pTableControl->Init( m_pConnData ); - m_pTableControl->lateInit(); - - return 0; -} - - -//------------------------------------------------------------------------ -short ORelationDialog::Execute() -{ - short nResult = ModalDialog::Execute(); - if ((nResult != RET_OK) && m_bTriedOneUpdate) - return RET_NO; - - return nResult; -} -// ----------------------------------------------------------------------------- -TTableConnectionData::value_type ORelationDialog::getConnectionData() const -{ - return m_pConnData; -} -// ----------------------------------------------------------------------------- -void ORelationDialog::setValid(sal_Bool _bValid) -{ - aPB_OK.Enable(_bValid); -} -// ----------------------------------------------------------------------------- -void ORelationDialog::notifyConnectionChange() -{ - Init(m_pConnData); -} -// ----------------------------------------------------------------------------- - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/RelationDlg.hrc b/dbaccess/source/ui/dlg/RelationDlg.hrc deleted file mode 100644 index 0e1f57174..000000000 --- a/dbaccess/source/ui/dlg/RelationDlg.hrc +++ /dev/null @@ -1,54 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef DBAUI_RELATIONDIALOG_HRC -#define DBAUI_RELATIONDIALOG_HRC - -#ifndef DBACCESS_SOURCE_UI_INC_RELATIONCONTROL_HRC -#include "RelationControl.hrc" -#endif - -#define FL_CASC_DEL 3 -#define FL_CASC_UPD 4 - -#define RB_NO_CASC_DEL 1 -#define RB_NO_CASC_UPD 2 -#define RB_CASC_DEL 3 -#define RB_CASC_UPD 4 -#define RB_CASC_DEL_NULL 5 -#define RB_CASC_DEL_DEFAULT 6 -#define RB_CASC_UPD_NULL 7 -#define RB_CASC_UPD_DEFAULT 8 - -#define PB_OK 1 -#define PB_CANCEL 2 -#define PB_HELP 3 - -#define WND_CONTROL 1 - -#endif // DBAUI_RELATIONDIALOG_HRC - - diff --git a/dbaccess/source/ui/dlg/RelationDlg.src b/dbaccess/source/ui/dlg/RelationDlg.src deleted file mode 100644 index 90602e37c..000000000 --- a/dbaccess/source/ui/dlg/RelationDlg.src +++ /dev/null @@ -1,179 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_RELATIONDIALOG_HRC -#include "RelationDlg.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif -#include "dbaccess_helpid.hrc" - -ModalDialog DLG_REL_PROPERTIES -{ - HelpID = "dbaccess:ModalDialog:DLG_REL_PROPERTIES"; - OutputSize = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( 186 , 205 ) ; - Text [ en-US ] = "Relations" ; - Moveable = TRUE ; - Closeable = TRUE ; - - Window WND_CONTROL - { - Pos = MAP_APPFONT( 0, 0 ); - Size = MAP_APPFONT( 186, 113 ); - DialogControl = TRUE; - HelpId = HID_DLG_QRY_WINDOW_CONTROL ; - - FixedLine FL_INVOLVED_TABLES - { - Pos = MAP_APPFONT ( 6 , 3 ) ; - Size = MAP_APPFONT ( 174 , 8 ) ; - Text [ en-US ] = "Tables involved"; - }; - - ListBox LB_LEFT_TABLE - { - Border = TRUE; - Pos = MAP_APPFONT( 12, 14 ); - Size = MAP_APPFONT( 78, 60 ); - HelpId = HID_DLG_QRY_LEFT_TABLE ; - DropDown = TRUE; - TabStop = TRUE; - }; - - ListBox LB_RIGHT_TABLE - { - Border = TRUE; - Pos = MAP_APPFONT( 96, 14 ); - Size = MAP_APPFONT( 78, 60 ); - HelpId = HID_DLG_QRY_RIGHT_TABLE ; - DropDown = TRUE; - TabStop = TRUE; - }; - - FixedLine FL_INVOLVED_FIELDS - { - Pos = MAP_APPFONT ( 6 , 29 ) ; - Size = MAP_APPFONT ( 174 , 8 ) ; - Text [ en-US ] = "Fields involved"; - }; - }; - - FixedLine FL_CASC_UPD - { - Pos = MAP_APPFONT ( 6 , 114 ) ; - Size = MAP_APPFONT ( 84 , 8 ) ; - Text [ en-US ] = "Update options" ; - }; - RadioButton RB_NO_CASC_UPD - { - Pos = MAP_APPFONT ( 12 , 125 ) ; - Size = MAP_APPFONT ( 72 , 10 ) ; - TabStop = TRUE ; - HelpId = HID_DLG_REL_NO_CASC_UPD; - Text [ en-US ] = "~No action" ; - }; - RadioButton RB_CASC_UPD - { - Pos = MAP_APPFONT ( 12 , 139 ) ; - Size = MAP_APPFONT ( 72 , 10 ) ; - HelpId = HID_DLG_REL_CASC_UPD ; - Text [ en-US ] = "~Update cascade" ; - }; - RadioButton RB_CASC_UPD_NULL - { - Pos = MAP_APPFONT ( 12 , 153 ) ; - Size = MAP_APPFONT ( 72 , 10 ) ; - HelpId = HID_DLG_REL_CASC_UPD_NULL ; - Text [ en-US ] = "~Set null" ; - }; - RadioButton RB_CASC_UPD_DEFAULT - { - Pos = MAP_APPFONT ( 12 , 167 ) ; - Size = MAP_APPFONT ( 72 , 10 ) ; - HelpId = HID_DLG_REL_CASC_UPD_DEFAULT ; - Text [ en-US ] = "Set ~default" ; - }; - FixedLine FL_CASC_DEL - { - Pos = MAP_APPFONT ( 96 , 114 ) ; - Size = MAP_APPFONT ( 84 , 8 ) ; - Text [ en-US ] = "Delete options" ; - }; - RadioButton RB_NO_CASC_DEL - { - Pos = MAP_APPFONT ( 102 , 125 ) ; - Size = MAP_APPFONT ( 72 , 10 ) ; - TabStop = TRUE ; - HelpId = HID_DLG_REL_NO_CASC_DEL ; - Text [ en-US ] = "~No action" ; - }; - RadioButton RB_CASC_DEL - { - Pos = MAP_APPFONT ( 102 , 139 ) ; - Size = MAP_APPFONT ( 72 , 10 ) ; - HelpId = HID_DLG_REL_CASC_DEL ; - Text [ en-US ] = "Delete ~cascade" ; - }; - RadioButton RB_CASC_DEL_NULL - { - Pos = MAP_APPFONT ( 102 , 153 ) ; - Size = MAP_APPFONT ( 72 , 10 ) ; - HelpId = HID_DLG_REL_CASC_DEL_NULL ; - Text [ en-US ] = "~Set null" ; - }; - RadioButton RB_CASC_DEL_DEFAULT - { - Pos = MAP_APPFONT ( 102 , 167 ) ; - Size = MAP_APPFONT ( 72 , 10 ) ; - HelpId = HID_DLG_REL_CASC_DEL_DEFAULT ; - Text [ en-US ] = "Set ~default" ; - }; - - OKButton PB_OK - { - Pos = MAP_APPFONT ( 6 , 184 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - }; - CancelButton PB_CANCEL - { - Pos = MAP_APPFONT ( 59 , 184 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - HelpButton PB_HELP - { - Pos = MAP_APPFONT ( 115 , 184 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - -}; diff --git a/dbaccess/source/ui/dlg/TablesSingleDlg.cxx b/dbaccess/source/ui/dlg/TablesSingleDlg.cxx deleted file mode 100644 index 4726c9de2..000000000 --- a/dbaccess/source/ui/dlg/TablesSingleDlg.cxx +++ /dev/null @@ -1,140 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "TablesSingleDlg.hxx" -#include "DbAdminImpl.hxx" -#include "tablespage.hxx" -#include <vcl/msgbox.hxx> -#include "dsitems.hxx" - -#include "propertysetitem.hxx" - -#include "dbu_dlg.hrc" - -//......................................................................... -namespace dbaui -{ -//......................................................................... -using namespace com::sun::star::uno; -using namespace com::sun::star::sdbc; -using namespace com::sun::star::lang; -using namespace com::sun::star::beans; -using namespace com::sun::star::container; - -DBG_NAME(OTableSubscriptionDialog) - //======================================================================== - //= OTableSubscriptionDialog - //======================================================================== -OTableSubscriptionDialog::OTableSubscriptionDialog(Window* pParent - ,SfxItemSet* _pItems - ,const Reference< XMultiServiceFactory >& _rxORB - ,const ::com::sun::star::uno::Any& _aDataSourceName) - :SfxSingleTabDialog(pParent,DLG_TABLE_FILTER,_pItems) - ,m_pImpl( new ODbDataSourceAdministrationHelper( _rxORB, pParent, this ) ) - ,m_bStopExecution(sal_False) - ,m_pOutSet(_pItems) -{ - DBG_CTOR(OTableSubscriptionDialog,NULL); - m_pImpl->setDataSourceOrName(_aDataSourceName); - Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource(); - m_pOutSet = new SfxItemSet( *_pItems ); - - m_pImpl->translateProperties(xDatasource, *m_pOutSet); - SetInputSet(m_pOutSet); - - OTableSubscriptionPage* pTabPage = new OTableSubscriptionPage(this,*m_pOutSet,this); - pTabPage->SetServiceFactory(_rxORB); - SetTabPage(pTabPage); -} -// ----------------------------------------------------------------------------- -OTableSubscriptionDialog::~OTableSubscriptionDialog() -{ - DBG_DTOR(OTableSubscriptionDialog,NULL); - delete m_pOutSet; -} -// ----------------------------------------------------------------------------- -short OTableSubscriptionDialog::Execute() -{ - short nRet = RET_CANCEL; - if ( !m_bStopExecution ) - { - nRet = SfxSingleTabDialog::Execute(); - if ( nRet == RET_OK ) - { - m_pOutSet->Put(*GetOutputItemSet()); - m_pImpl->saveChanges(*m_pOutSet); - } - } - return nRet; -} -// ----------------------------------------------------------------------------- -sal_Bool OTableSubscriptionDialog::getCurrentSettings(Sequence< PropertyValue >& _rDriverParams) -{ - return m_pImpl->getCurrentSettings(_rDriverParams); -} -// ----------------------------------------------------------------------------- -void OTableSubscriptionDialog::successfullyConnected() -{ - m_pImpl->successfullyConnected(); -} -// ----------------------------------------------------------------------------- -void OTableSubscriptionDialog::clearPassword() -{ - m_pImpl->clearPassword(); -} -// ----------------------------------------------------------------------------- -String OTableSubscriptionDialog::getConnectionURL() const -{ - return m_pImpl->getConnectionURL(); -} -// ----------------------------------------------------------------------------- -Reference< XPropertySet > OTableSubscriptionDialog::getCurrentDataSource() -{ - return m_pImpl->getCurrentDataSource(); -} -// ----------------------------------------------------------------------------- -const SfxItemSet* OTableSubscriptionDialog::getOutputSet() const -{ - return m_pOutSet; -} -// ----------------------------------------------------------------------------- -SfxItemSet* OTableSubscriptionDialog::getWriteOutputSet() -{ - return m_pOutSet; -} -// ----------------------------------------------------------------------------- -//......................................................................... -} // namespace dbaui -//......................................................................... - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/TextConnectionHelper.cxx b/dbaccess/source/ui/dlg/TextConnectionHelper.cxx deleted file mode 100644 index 1d9429bab..000000000 --- a/dbaccess/source/ui/dlg/TextConnectionHelper.cxx +++ /dev/null @@ -1,546 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" -#include "moduledbu.hxx" - -#include "TextConnectionHelper.hxx" - -#include "sqlmessage.hxx" -#include "dbu_dlg.hrc" -#include "dbu_resource.hrc" -#include "AutoControls.hrc" - -#include <svl/itemset.hxx> -#include <svl/stritem.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include "dsitems.hxx" -#include "dbfindex.hxx" -#include "dbaccess_helpid.hrc" -#include "localresaccess.hxx" -#include <vcl/msgbox.hxx> -#include <vcl/mnemonic.hxx> -#include <svl/cjkoptions.hxx> -#include <jvmaccess/virtualmachine.hxx> -#include "AdabasStat.hxx" -#include <connectivity/CommonTools.hxx> -#include "DriverSettings.hxx" -#include "dbadmin.hxx" -#include <comphelper/types.hxx> - -#include <com/sun/star/ui/dialogs/XFolderPicker.hpp> -#include <com/sun/star/task/XInteractionHandler.hpp> - -#include <svl/filenotation.hxx> - -#include <unotools/localfilehelper.hxx> -#include <unotools/ucbhelper.hxx> -#include <ucbhelper/commandenvironment.hxx> -#include "finteraction.hxx" -#include <connectivity/CommonTools.hxx> - -#include "DBSetupConnectionPages.hxx" - -#include "dbu_dlg.hrc" - -#include "dbaccess_helpid.hrc" - -#include <unotools/pathoptions.hxx> - -#include <svtools/roadmapwizard.hxx> - - -namespace dbaui -{ - - //======================================================================== - //= OTextConnectionPageSetup - //======================================================================== -DBG_NAME(OTextConnectionHelper) -//------------------------------------------------------------------------ - OTextConnectionHelper::OTextConnectionHelper( Window* pParent, const short _nAvailableSections ) - :Control( pParent, WB_DIALOGCONTROL ) - ,m_aFTExtensionHeader (this, ModuleRes(FT_AUTOEXTENSIONHEADER)) - ,m_aRBAccessTextFiles (this, ModuleRes(RB_AUTOACCESSCTEXTFILES)) - ,m_aRBAccessCSVFiles (this, ModuleRes(RB_AUTOACCESSCCSVFILES)) - ,m_aRBAccessOtherFiles (this, ModuleRes(RB_AUTOACCESSOTHERS)) - ,m_aETOwnExtension (this, ModuleRes(ET_AUTOOWNEXTENSION)) - ,m_aFTExtensionExample (this, ModuleRes(FT_AUTOOWNEXTENSIONAPPENDIX)) - ,m_aLineFormat (this, ModuleRes(FL_AUTOSEPARATOR2)) - ,m_aFieldSeparatorLabel (this, ModuleRes(FT_AUTOFIELDSEPARATOR)) - ,m_aFieldSeparator (this, ModuleRes(CM_AUTOFIELDSEPARATOR)) - ,m_aTextSeparatorLabel (this, ModuleRes(FT_AUTOTEXTSEPARATOR)) - ,m_aTextSeparator (this, ModuleRes(CM_AUTOTEXTSEPARATOR)) - ,m_aDecimalSeparatorLabel (this, ModuleRes(FT_AUTODECIMALSEPARATOR)) - ,m_aDecimalSeparator (this, ModuleRes(CM_AUTODECIMALSEPARATOR)) - ,m_aThousandsSeparatorLabel (this, ModuleRes(FT_AUTOTHOUSANDSSEPARATOR)) - ,m_aThousandsSeparator (this, ModuleRes(CM_AUTOTHOUSANDSSEPARATOR)) - ,m_aRowHeader (this, ModuleRes(CB_AUTOHEADER)) - ,m_aCharSetHeader (this, ModuleRes(FL_DATACONVERT)) - ,m_aCharSetLabel (this, ModuleRes(FT_CHARSET)) - ,m_aCharSet (this, ModuleRes(LB_CHARSET)) - ,m_aFieldSeparatorList (ModuleRes(STR_AUTOFIELDSEPARATORLIST)) - ,m_aTextSeparatorList (ModuleRes(STR_AUTOTEXTSEPARATORLIST)) - ,m_aTextNone (ModuleRes(STR_AUTOTEXT_FIELD_SEP_NONE)) - ,m_nAvailableSections( _nAvailableSections ) - { - DBG_CTOR(OTextConnectionHelper,NULL); - - xub_StrLen nCnt = m_aFieldSeparatorList.GetTokenCount( '\t' ); - xub_StrLen i; - - for( i = 0 ; i < nCnt ; i += 2 ) - m_aFieldSeparator.InsertEntry( m_aFieldSeparatorList.GetToken( i, '\t' ) ); - - nCnt = m_aTextSeparatorList.GetTokenCount( '\t' ); - for( i=0 ; i<nCnt ; i+=2 ) - m_aTextSeparator.InsertEntry( m_aTextSeparatorList.GetToken( i, '\t' ) ); - m_aTextSeparator.InsertEntry(m_aTextNone); - - // set the modify handlers - m_aFieldSeparator.SetUpdateDataHdl(getControlModifiedLink()); - m_aFieldSeparator.SetSelectHdl(getControlModifiedLink()); - m_aTextSeparator.SetUpdateDataHdl(getControlModifiedLink()); - m_aTextSeparator.SetSelectHdl(getControlModifiedLink()); - m_aCharSet.SetSelectHdl(getControlModifiedLink()); - - m_aFieldSeparator.SetModifyHdl(getControlModifiedLink()); - m_aTextSeparator.SetModifyHdl(getControlModifiedLink()); - m_aDecimalSeparator.SetModifyHdl(getControlModifiedLink()); - m_aThousandsSeparator.SetModifyHdl(getControlModifiedLink()); - m_aETOwnExtension.SetModifyHdl(LINK(this, OTextConnectionHelper, OnEditModified)); - m_aRBAccessTextFiles.SetToggleHdl(LINK(this, OTextConnectionHelper, OnSetExtensionHdl)); - m_aRBAccessCSVFiles.SetToggleHdl(LINK(this, OTextConnectionHelper, OnSetExtensionHdl)); - m_aRBAccessOtherFiles.SetToggleHdl(LINK(this, OTextConnectionHelper, OnSetExtensionHdl)); - m_aRBAccessCSVFiles.Check(sal_True); - - struct SectionDescriptor - { - short nFlag; - Window* pFirstControl; - } aSections[] = { - { TC_EXTENSION, &m_aFTExtensionHeader }, - { TC_SEPARATORS, &m_aLineFormat }, - { TC_HEADER, &m_aRowHeader }, - { TC_CHARSET, &m_aCharSetHeader }, - { 0, NULL } - }; - - for ( size_t section=0; section < SAL_N_ELEMENTS( aSections ) - 1; ++section ) - { - if ( ( m_nAvailableSections & aSections[section].nFlag ) != 0 ) - { - // the section is visible, no need to do anything here - continue; - } - - Window* pThisSection = aSections[section].pFirstControl; - Window* pNextSection = aSections[section+1].pFirstControl; - - // hide all elements from this section - Window* pControl = pThisSection; - while ( ( pControl != pNextSection ) && pControl ) - { - Window* pRealWindow = pControl->GetWindow( WINDOW_CLIENT ); - #if OSL_DEBUG_LEVEL > 0 - String sWindowText( pRealWindow->GetText() ); - (void)sWindowText; - #endif - pRealWindow->Hide(); - pControl = pControl->GetWindow( WINDOW_NEXT ); - } - - // move all controls in following sections up - if ( !pNextSection ) - continue; - const long nThisSectionStart = pThisSection->GetPosPixel().Y(); - const long nNextSectionStart = pNextSection->GetPosPixel().Y(); - const long nMoveOffset( nThisSectionStart - nNextSectionStart ); - while ( pControl ) - { - Point aPos = pControl->GetPosPixel(); - aPos.Move( 0, nMoveOffset ); - pControl->SetPosPixel( aPos ); - pControl = pControl->GetWindow( WINDOW_NEXT ); - } - } - - Rectangle aControlRectUnion; - for ( Window* pControl = aSections[0].pFirstControl; - pControl != NULL; - pControl = pControl->GetWindow( WINDOW_NEXT ) - ) - { - aControlRectUnion = aControlRectUnion.Union( Rectangle( pControl->GetPosPixel(), pControl->GetSizePixel() ) ); - } - - // need some adjustments to the positions, since the resource-specified - // positions for the control were relative to *our* parent, while by now - // the controls have |this| as parent. - - // first, move ourself to the upper left of the area occupied by all controls - SetPosPixel( aControlRectUnion.TopLeft() ); - - // then, compensate in the control positions, by moving them the up/left - for ( Window* pControl = aSections[0].pFirstControl; - pControl != NULL; - pControl = pControl->GetWindow( WINDOW_NEXT ) - ) - { - Point aPos( pControl->GetPosPixel() ); - aPos.Move( -aControlRectUnion.Left(), -aControlRectUnion.Top() ); - pControl->SetPosPixel( aPos ); - - // while we are here ... the controls should not have an own background - // (this would not be needed when our outer dialog were also the parent - // of the controls) - pControl->SetBackground(); - } - - // now, change our own size so all controls fit - SetSizePixel( aControlRectUnion.GetSize() ); - - SetBackground(); - Show(); - } - - // ----------------------------------------------------------------------- - OTextConnectionHelper::~OTextConnectionHelper() - { - - DBG_DTOR(OTextConnectionHelper,NULL); - } - - - // ----------------------------------------------------------------------- - IMPL_LINK(OTextConnectionHelper, OnControlModified, Control*, /*EMPTYARG*/) - { - callModifiedHdl(); - return 0L; - } - - // ----------------------------------------------------------------------- - IMPL_LINK(OTextConnectionHelper, OnEditModified, Edit*, /*_pEdit*/) - { - m_aGetExtensionHandler.Call(this); - return 0L; - } - - - IMPL_LINK(OTextConnectionHelper, OnSetExtensionHdl, RadioButton*, /*_pRadioButton*/) - { - sal_Bool bDoEnable = m_aRBAccessOtherFiles.IsChecked(); - m_aETOwnExtension.Enable(bDoEnable); - m_aFTExtensionExample.Enable(bDoEnable); - m_aGetExtensionHandler.Call(this); - return 0L; - } - - - // ----------------------------------------------------------------------- - void OTextConnectionHelper::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new OSaveValueWrapper<ComboBox>(&m_aFieldSeparator)); - _rControlList.push_back(new OSaveValueWrapper<ComboBox>(&m_aTextSeparator)); - _rControlList.push_back(new OSaveValueWrapper<ComboBox>(&m_aDecimalSeparator)); - _rControlList.push_back(new OSaveValueWrapper<ComboBox>(&m_aThousandsSeparator)); - _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aRowHeader)); - _rControlList.push_back(new OSaveValueWrapper<ListBox>(&m_aCharSet)); - } - // ----------------------------------------------------------------------- - void OTextConnectionHelper::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFieldSeparatorLabel)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aTextSeparatorLabel)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aDecimalSeparatorLabel)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aThousandsSeparatorLabel)); - _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aCharSetHeader)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aCharSetLabel)); - _rControlList.push_back(new ODisableWrapper<ListBox>(&m_aCharSet)); - } - - // ----------------------------------------------------------------------- - void OTextConnectionHelper::implInitControls(const SfxItemSet& _rSet, sal_Bool _bValid) - { - if ( !_bValid ) - return; - - SFX_ITEMSET_GET( _rSet, pDelItem, SfxStringItem, DSID_FIELDDELIMITER, sal_True ); - SFX_ITEMSET_GET( _rSet, pStrItem, SfxStringItem, DSID_TEXTDELIMITER, sal_True ); - SFX_ITEMSET_GET( _rSet, pDecdelItem, SfxStringItem, DSID_DECIMALDELIMITER, sal_True ); - SFX_ITEMSET_GET( _rSet, pThodelItem, SfxStringItem, DSID_THOUSANDSDELIMITER, sal_True ); - SFX_ITEMSET_GET( _rSet, pExtensionItem, SfxStringItem, DSID_TEXTFILEEXTENSION, sal_True ); - SFX_ITEMSET_GET( _rSet, pCharsetItem, SfxStringItem, DSID_CHARSET, sal_True ); - - if ( ( m_nAvailableSections & TC_EXTENSION ) != 0 ) - { - m_aOldExtension = pExtensionItem->GetValue(); - SetExtension( m_aOldExtension ); - } - - if ( ( m_nAvailableSections & TC_HEADER ) != 0 ) - { - SFX_ITEMSET_GET( _rSet, pHdrItem, SfxBoolItem, DSID_TEXTFILEHEADER, sal_True ); - m_aRowHeader.Check( pHdrItem->GetValue() ); - } - - if ( ( m_nAvailableSections & TC_SEPARATORS ) != 0 ) - { - SetSeparator( m_aFieldSeparator, m_aFieldSeparatorList, pDelItem->GetValue() ); - SetSeparator( m_aTextSeparator, m_aTextSeparatorList, pStrItem->GetValue() ); - m_aDecimalSeparator.SetText( pDecdelItem->GetValue() ); - m_aThousandsSeparator.SetText( pThodelItem->GetValue() ); - } - - if ( ( m_nAvailableSections & TC_CHARSET ) != 0 ) - { - m_aCharSet.SelectEntryByIanaName( pCharsetItem->GetValue() ); - } - } - - - - // ----------------------------------------------------------------------- - sal_Bool OTextConnectionHelper::prepareLeave() - { - LocalResourceAccess aStringResAccess(PAGE_TEXT, RSC_TABPAGE); - // for accessing the strings which are local to our own resource block - String sExtension = GetExtension(); - String aErrorText; - Control* pErrorWin = NULL; - String aDelText(m_aFieldSeparator.GetText()); - if(!aDelText.Len()) - { // Kein FeldTrenner - aErrorText = String(ModuleRes(STR_AUTODELIMITER_MISSING)); - aErrorText.SearchAndReplaceAscii("#1",m_aFieldSeparatorLabel.GetText()); - pErrorWin = &m_aFieldSeparator; - } - else if (!m_aDecimalSeparator.GetText().Len()) - { // kein Decimaltrenner - aErrorText = String(ModuleRes(STR_AUTODELIMITER_MISSING)); - aErrorText.SearchAndReplaceAscii("#1",m_aDecimalSeparatorLabel.GetText()); - pErrorWin = &m_aDecimalSeparator; - } - else if (m_aTextSeparator.GetText() == m_aFieldSeparator.GetText()) - { // Feld und TextTrenner duerfen nicht gleich sein - aErrorText = String(ModuleRes(STR_AUTODELIMITER_MUST_DIFFER)); - aErrorText.SearchAndReplaceAscii("#1",m_aTextSeparatorLabel.GetText()); - aErrorText.SearchAndReplaceAscii("#2",m_aFieldSeparatorLabel.GetText()); - pErrorWin = &m_aTextSeparator; - } - else if (m_aDecimalSeparator.GetText() == m_aThousandsSeparator.GetText()) - { // Tausender und DecimalTrenner duerfen nicht gleich sein - aErrorText = String(ModuleRes(STR_AUTODELIMITER_MUST_DIFFER)); - aErrorText.SearchAndReplaceAscii("#1",m_aDecimalSeparatorLabel.GetText()); - aErrorText.SearchAndReplaceAscii("#2",m_aThousandsSeparatorLabel.GetText()); - pErrorWin = &m_aDecimalSeparator; - } - else if (m_aFieldSeparator.GetText() == m_aThousandsSeparator.GetText()) - { // Tausender und FeldTrenner duerfen nicht gleich sein - aErrorText = String(ModuleRes(STR_AUTODELIMITER_MUST_DIFFER)); - aErrorText.SearchAndReplaceAscii("#1",m_aFieldSeparatorLabel.GetText()); - aErrorText.SearchAndReplaceAscii("#2",m_aThousandsSeparatorLabel.GetText()); - pErrorWin = &m_aFieldSeparator; - } - else if (m_aFieldSeparator.GetText() == m_aDecimalSeparator.GetText()) - { // Zehner und FeldTrenner duerfen nicht gleich sein - aErrorText = String(ModuleRes(STR_AUTODELIMITER_MUST_DIFFER)); - aErrorText.SearchAndReplaceAscii("#1",m_aFieldSeparatorLabel.GetText()); - aErrorText.SearchAndReplaceAscii("#2",m_aDecimalSeparatorLabel.GetText()); - pErrorWin = &m_aFieldSeparator; - } - else if (m_aTextSeparator.GetText() == m_aThousandsSeparator.GetText()) - { // Tausender und TextTrenner duerfen nicht gleich sein - aErrorText = String(ModuleRes(STR_AUTODELIMITER_MUST_DIFFER)); - aErrorText.SearchAndReplaceAscii("#1",m_aTextSeparatorLabel.GetText()); - aErrorText.SearchAndReplaceAscii("#2",m_aThousandsSeparatorLabel.GetText()); - pErrorWin = &m_aTextSeparator; - } - else if (m_aTextSeparator.GetText() == m_aDecimalSeparator.GetText()) - { // Zehner und TextTrenner duerfen nicht gleich sein - aErrorText = String(ModuleRes(STR_AUTODELIMITER_MUST_DIFFER)); - aErrorText.SearchAndReplaceAscii("#1",m_aTextSeparatorLabel.GetText()); - aErrorText.SearchAndReplaceAscii("#2",m_aDecimalSeparatorLabel.GetText()); - pErrorWin = &m_aTextSeparator; - } - else if ((sExtension.Search('*') != STRING_NOTFOUND) || (sExtension.Search('?') != STRING_NOTFOUND)) - { - aErrorText = String(ModuleRes(STR_AUTONO_WILDCARDS)); - aErrorText.SearchAndReplaceAscii("#1",sExtension); - pErrorWin = &m_aETOwnExtension; - } - else - return sal_True; - ErrorBox(NULL, WB_OK, MnemonicGenerator::EraseAllMnemonicChars( aErrorText)).Execute(); - pErrorWin->GrabFocus(); - return 0; - } - - - // ----------------------------------------------------------------------- - sal_Bool OTextConnectionHelper::FillItemSet( SfxItemSet& rSet, const sal_Bool _bChangedSomething ) - { - sal_Bool bChangedSomething = _bChangedSomething; - - if ( ( m_nAvailableSections & TC_EXTENSION ) != 0 ) - { - String sExtension = GetExtension(); - if( !m_aOldExtension.Equals( sExtension ) ) - { - rSet.Put( SfxStringItem( DSID_TEXTFILEEXTENSION, sExtension ) ); - bChangedSomething = sal_True; - } - } - - if ( ( m_nAvailableSections & TC_HEADER ) != 0 ) - { - if( (m_aRowHeader.GetState() != m_aRowHeader.GetSavedValue()) ) - { - rSet.Put(SfxBoolItem(DSID_TEXTFILEHEADER, m_aRowHeader.IsChecked())); - bChangedSomething = sal_True; - } - } - - if ( ( m_nAvailableSections & TC_SEPARATORS ) != 0 ) - { - if( m_aFieldSeparator.GetText() != m_aFieldSeparator.GetSavedValue() ) - { - rSet.Put( SfxStringItem(DSID_FIELDDELIMITER, GetSeparator( m_aFieldSeparator, m_aFieldSeparatorList) ) ); - bChangedSomething = sal_True; - } - if( m_aTextSeparator.GetText() != m_aTextSeparator.GetSavedValue() ) - { - rSet.Put( SfxStringItem(DSID_TEXTDELIMITER, GetSeparator( m_aTextSeparator, m_aTextSeparatorList) ) ); - bChangedSomething = sal_True; - } - - if( m_aDecimalSeparator.GetText() != m_aDecimalSeparator.GetSavedValue() ) - { - rSet.Put( SfxStringItem(DSID_DECIMALDELIMITER, m_aDecimalSeparator.GetText().Copy(0, 1) ) ); - bChangedSomething = sal_True; - } - if( m_aThousandsSeparator.GetText() != m_aThousandsSeparator.GetSavedValue() ) - { - rSet.Put( SfxStringItem(DSID_THOUSANDSDELIMITER, m_aThousandsSeparator.GetText().Copy(0,1) ) ); - bChangedSomething = sal_True; - } - } - - if ( ( m_nAvailableSections & TC_CHARSET ) != 0 ) - { - if ( m_aCharSet.StoreSelectedCharSet( rSet, DSID_CHARSET ) ) - bChangedSomething = sal_True; - } - - return bChangedSomething; - } - - - void OTextConnectionHelper::SetExtension(const String& _rVal) - { - if (_rVal.EqualsAscii("txt")) - m_aRBAccessTextFiles.Check(sal_True); - else if (_rVal.EqualsAscii( "csv" )) - m_aRBAccessCSVFiles.Check(sal_True); - else - { - m_aRBAccessOtherFiles.Check(sal_True); - m_aFTExtensionExample.SetText(_rVal); - } - } - - - String OTextConnectionHelper::GetExtension() - { - String sExtension; - if (m_aRBAccessTextFiles.IsChecked()) - sExtension = String::CreateFromAscii("txt"); - else if (m_aRBAccessCSVFiles.IsChecked()) - sExtension = String::CreateFromAscii("csv"); - else - { - sExtension = m_aETOwnExtension.GetText(); - if ( sExtension.GetToken(0,'.').Equals('*') ) - sExtension.Erase(0,2); - } - return sExtension; - } - - - //------------------------------------------------------------------------ - String OTextConnectionHelper::GetSeparator( const ComboBox& rBox, const String& rList ) - { - sal_Unicode nTok = '\t'; - xub_StrLen nPos(rBox.GetEntryPos( rBox.GetText() )); - - if( nPos == COMBOBOX_ENTRY_NOTFOUND ) - return rBox.GetText().Copy(0); - - if ( !( &m_aTextSeparator == &rBox && nPos == (rBox.GetEntryCount()-1) ) ) - return String( - static_cast< sal_Unicode >( - rList.GetToken(((nPos*2)+1), nTok ).ToInt32())); - // somewhat strange ... translates for instance an "32" into " " - return String(); - } - - //------------------------------------------------------------------------ - void OTextConnectionHelper::SetSeparator( ComboBox& rBox, const String& rList, const String& rVal ) - { - char nTok = '\t'; - xub_StrLen nCnt(rList.GetTokenCount( nTok )); - xub_StrLen i; - - for( i=0 ; i<nCnt ; i+=2 ) - { - String sTVal( - static_cast< sal_Unicode >( - rList.GetToken( (i+1), nTok ).ToInt32())); - - if( sTVal == rVal ) - { - rBox.SetText( rList.GetToken( i, nTok ) ); - break; - } - } - - if ( i >= nCnt ) - { - if ( &m_aTextSeparator == &rBox && !rVal.Len() ) - rBox.SetText(m_aTextNone); - else - rBox.SetText( rVal.Copy(0, 1) ); - } - } - -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/TextConnectionHelper.hxx b/dbaccess/source/ui/dlg/TextConnectionHelper.hxx deleted file mode 100644 index c178e3a68..000000000 --- a/dbaccess/source/ui/dlg/TextConnectionHelper.hxx +++ /dev/null @@ -1,124 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_TEXTCONNECTIONHELPER_HXX -#define DBAUI_TEXTCONNECTIONHELPER_HXX - -#include "ConnectionPageSetup.hxx" -#include "adminpages.hxx" -#include "charsetlistbox.hxx" -#include <ucbhelper/content.hxx> -#include "curledit.hxx" -#include <svtools/roadmapwizard.hxx> -#include <vcl/field.hxx> -#include <rtl/ustring.hxx> -#include <vcl/lstbox.hxx> - - -//......................................................................... -namespace dbaui - -{ -//......................................................................... - - #define TC_EXTENSION ((short)0x01) // a section specifying the extension of the files to connect to - #define TC_SEPARATORS ((short)0x02) // a section specifying the various separators - #define TC_HEADER ((short)0x04) // a section containing the "Text contains header" check box only - #define TC_CHARSET ((short)0x08) // not yet implemented - - //======================================================================== - //= OTextConnectionPage - //======================================================================== - class OTextConnectionHelper : public Control - { - OTextConnectionHelper(); - - Link m_aModifiedHandler; /// to be called if something on the page has been modified - - public: - OTextConnectionHelper( Window* pParent, const short _nAvailableSections ); - virtual ~OTextConnectionHelper(); - - private: - FixedText m_aFTExtensionHeader; - RadioButton m_aRBAccessTextFiles; - RadioButton m_aRBAccessCSVFiles; - RadioButton m_aRBAccessOtherFiles; - Edit m_aETOwnExtension; - FixedText m_aFTExtensionExample; - FixedLine m_aLineFormat; - FixedText m_aFieldSeparatorLabel; - ComboBox m_aFieldSeparator; - FixedText m_aTextSeparatorLabel; - ComboBox m_aTextSeparator; - FixedText m_aDecimalSeparatorLabel; - ComboBox m_aDecimalSeparator; - FixedText m_aThousandsSeparatorLabel; - ComboBox m_aThousandsSeparator; - CheckBox m_aRowHeader; - FixedLine m_aCharSetHeader; - FixedText m_aCharSetLabel; - CharSetListBox m_aCharSet; - String m_aFieldSeparatorList; - String m_aTextSeparatorList; - String m_aTextNone; - String m_aOldExtension; - Link m_aGetExtensionHandler; /// to be called if a new type is selected - - short m_nAvailableSections; - - protected: - void callModifiedHdl() const { if (m_aModifiedHandler.IsSet()) m_aModifiedHandler.Call((void*)this); } - Link getControlModifiedLink() { return LINK(this, OTextConnectionHelper, OnControlModified); } - DECL_LINK(OnSetExtensionHdl,RadioButton*); - DECL_LINK(OnControlModified,Control*); - DECL_LINK(OnEditModified,Edit*); - - private: - String GetSeparator( const ComboBox& rBox, const String& rList ); - void SetSeparator( ComboBox& rBox, const String& rList, const String& rVal ); - void SetExtension(const String& _rVal); - - - public: - void implInitControls(const SfxItemSet& _rSet, sal_Bool _bValid); - void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - void SetClickHandler(const Link& _rHandler) { m_aGetExtensionHandler = _rHandler; } - String GetExtension(); - sal_Bool FillItemSet( SfxItemSet& rSet, const sal_Bool bChangedSomething ); - sal_Bool prepareLeave(); - }; - -//......................................................................... -} // namespace dbaui -//......................................................................... - -#endif // DBAUI_DBWIZ2_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/UserAdmin.cxx b/dbaccess/source/ui/dlg/UserAdmin.cxx deleted file mode 100644 index 961375276..000000000 --- a/dbaccess/source/ui/dlg/UserAdmin.cxx +++ /dev/null @@ -1,354 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "UserAdmin.hxx" -#include "UserAdmin.hrc" -#include "UITools.hxx" -#include "dbu_dlg.hrc" -#include <comphelper/types.hxx> -#include <com/sun/star/sdbc/XDatabaseMetaData.hpp> -#include <com/sun/star/sdbcx/XDataDefinitionSupplier.hpp> -#include <com/sun/star/sdbcx/XUsersSupplier.hpp> -#include <com/sun/star/sdbcx/XDrop.hpp> -#include <ucbhelper/interactionrequest.hxx> -#include <ucbhelper/simpleauthenticationrequest.hxx> -#include <com/sun/star/sdbcx/XDataDescriptorFactory.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/sdbcx/XUser.hpp> -#include <com/sun/star/sdbcx/XAppend.hpp> -#include "dbustrings.hrc" -#include <tools/debug.hxx> -#include "dbadmin.hxx" -#include "moduledbu.hxx" -#include <vcl/msgbox.hxx> -#include <sfx2/passwd.hxx> - -using namespace ::com::sun::star::container; -using namespace ::com::sun::star::beans; -using namespace ::com::sun::star::sdbcx; -using namespace ::com::sun::star::sdbc; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::task; -using namespace dbaui; -using namespace ucbhelper; -using namespace comphelper; - - -class OPasswordDialog : public ModalDialog -{ - FixedLine aFLUser; - FixedText aFTOldPassword; - Edit aEDOldPassword; - FixedText aFTPassword; - Edit aEDPassword; - FixedText aFTPasswordRepeat; - Edit aEDPasswordRepeat; - OKButton aOKBtn; - CancelButton aCancelBtn; - HelpButton aHelpBtn; - - - DECL_LINK( OKHdl_Impl, OKButton * ); - DECL_LINK( ModifiedHdl, Edit * ); - -public: - OPasswordDialog( Window* pParent,const String& _sUserName); - - String GetOldPassword() const { return aEDOldPassword.GetText(); } - String GetNewPassword() const { return aEDPassword.GetText(); } -}; - -OPasswordDialog::OPasswordDialog(Window* _pParent,const String& _sUserName) : - - ModalDialog( _pParent, ModuleRes( DLG_PASSWORD) ), - - aFLUser ( this, ModuleRes( FL_USER ) ), - aFTOldPassword ( this, ModuleRes( FT_OLDPASSWORD ) ), - aEDOldPassword ( this, ModuleRes( ED_OLDPASSWORD ) ), - aFTPassword ( this, ModuleRes( FT_PASSWORD ) ), - aEDPassword ( this, ModuleRes( ED_PASSWORD ) ), - aFTPasswordRepeat ( this, ModuleRes( FT_PASSWORD_REPEAT ) ), - aEDPasswordRepeat ( this, ModuleRes( ED_PASSWORD_REPEAT ) ), - aOKBtn ( this, ModuleRes( BTN_PASSWORD_OK ) ), - aCancelBtn ( this, ModuleRes( BTN_PASSWORD_CANCEL ) ), - aHelpBtn ( this, ModuleRes( BTN_PASSWORD_HELP ) ) -{ - // hide until a help is avalable - aHelpBtn.Hide(); - - FreeResource(); - String sUser = aFLUser.GetText(); - sUser.SearchAndReplaceAscii("$name$: $",_sUserName); - aFLUser.SetText(sUser); - aOKBtn.Disable(); - - aOKBtn.SetClickHdl( LINK( this, OPasswordDialog, OKHdl_Impl ) ); - aEDOldPassword.SetModifyHdl( LINK( this, OPasswordDialog, ModifiedHdl ) ); -} -// ----------------------------------------------------------------------------- -IMPL_LINK( OPasswordDialog, OKHdl_Impl, OKButton *, EMPTYARG ) -{ - if( aEDPassword.GetText() == aEDPasswordRepeat.GetText() ) - EndDialog( RET_OK ); - else - { - String aErrorMsg( ModuleRes( STR_ERROR_PASSWORDS_NOT_IDENTICAL)); - ErrorBox aErrorBox( this, WB_OK, aErrorMsg ); - aErrorBox.Execute(); - aEDPassword.SetText( String() ); - aEDPasswordRepeat.SetText( String() ); - aEDPassword.GrabFocus(); - } - return 0; -} -// ----------------------------------------------------------------------------- -IMPL_LINK( OPasswordDialog, ModifiedHdl, Edit *, pEdit ) -{ - aOKBtn.Enable(pEdit->GetText().Len() != 0); - return 0; -} - -DBG_NAME(OUserAdmin); -//================================================================================ -// OUserAdmin -//================================================================================ -OUserAdmin::OUserAdmin(Window* pParent,const SfxItemSet& _rAttrSet) - : OGenericAdministrationPage( pParent, ModuleRes(TAB_PAGE_USERADMIN), _rAttrSet) - ,m_FL_USER( this , ModuleRes(FL_USER)) - ,m_FT_USER( this , ModuleRes(FT_USER)) - ,m_LB_USER( this , ModuleRes(LB_USER)) - ,m_PB_NEWUSER( this , ModuleRes(PB_NEWUSER)) - ,m_PB_CHANGEPWD( this , ModuleRes(PB_CHANGEPWD)) - ,m_PB_DELETEUSER( this , ModuleRes(PB_DELETEUSER)) - ,m_FL_TABLE_GRANTS( this , ModuleRes(FL_TABLE_GRANTS)) - ,m_TableCtrl( this , ModuleRes(CTRL_TABLE_GRANTS)) -{ - DBG_CTOR(OUserAdmin,NULL); - m_LB_USER.SetSelectHdl(LINK(this, OUserAdmin, ListDblClickHdl)); - - m_PB_NEWUSER.SetClickHdl(LINK(this, OUserAdmin, UserHdl)); - m_PB_CHANGEPWD.SetClickHdl(LINK(this, OUserAdmin, UserHdl)); - m_PB_DELETEUSER.SetClickHdl(LINK(this, OUserAdmin, UserHdl)); - - FreeResource(); -} -// ----------------------------------------------------------------------- -OUserAdmin::~OUserAdmin() -{ - DBG_DTOR(OUserAdmin,NULL); - m_xConnection = NULL; -} -// ----------------------------------------------------------------------- -void OUserAdmin::FillUserNames() -{ - if(m_xConnection.is()) - { - m_LB_USER.Clear(); - - Reference<XDatabaseMetaData> xMetaData = m_xConnection->getMetaData(); - - if ( xMetaData.is() ) - { - m_UserName = xMetaData->getUserName(); - - // first we need the users - if ( m_xUsers.is() ) - { - m_LB_USER.Clear(); - - m_aUserNames = m_xUsers->getElementNames(); - const ::rtl::OUString* pBegin = m_aUserNames.getConstArray(); - const ::rtl::OUString* pEnd = pBegin + m_aUserNames.getLength(); - ::rtl::OUString sUserName = m_UserName; - for(;pBegin != pEnd;++pBegin) - m_LB_USER.InsertEntry(*pBegin); - - m_LB_USER.SelectEntryPos(0); - if(m_xUsers->hasByName(m_UserName)) - { - Reference<XAuthorizable> xAuth; - m_xUsers->getByName(m_UserName) >>= xAuth; - m_TableCtrl.setGrantUser(xAuth); - } - - m_TableCtrl.setUserName(GetUser()); - m_TableCtrl.Init(); - } - } - } - - Reference<XAppend> xAppend(m_xUsers,UNO_QUERY); - m_PB_NEWUSER.Enable(xAppend.is()); - Reference<XDrop> xDrop(m_xUsers,UNO_QUERY); - m_PB_DELETEUSER.Enable(xDrop.is()); - - m_PB_CHANGEPWD.Enable(m_xUsers.is()); - m_TableCtrl.Enable(m_xUsers.is()); - -} -// ----------------------------------------------------------------------- -SfxTabPage* OUserAdmin::Create( Window* pParent, const SfxItemSet& _rAttrSet ) -{ - return ( new OUserAdmin( pParent, _rAttrSet ) ); -} -// ----------------------------------------------------------------------- -IMPL_LINK( OUserAdmin, UserHdl, PushButton *, pButton ) -{ - try - { - if(pButton == &m_PB_NEWUSER) - { - SfxPasswordDialog aPwdDlg(this); - aPwdDlg.ShowExtras(SHOWEXTRAS_ALL); - if(aPwdDlg.Execute()) - { - Reference<XDataDescriptorFactory> xUserFactory(m_xUsers,UNO_QUERY); - Reference<XPropertySet> xNewUser = xUserFactory->createDataDescriptor(); - if(xNewUser.is()) - { - xNewUser->setPropertyValue(PROPERTY_NAME,makeAny(rtl::OUString(aPwdDlg.GetUser()))); - xNewUser->setPropertyValue(PROPERTY_PASSWORD,makeAny(rtl::OUString(aPwdDlg.GetPassword()))); - Reference<XAppend> xAppend(m_xUsers,UNO_QUERY); - if(xAppend.is()) - xAppend->appendByDescriptor(xNewUser); - } - } - } - else if(pButton == &m_PB_CHANGEPWD) - { - String sName = GetUser(); - - if(m_xUsers->hasByName(sName)) - { - Reference<XUser> xUser; - m_xUsers->getByName(sName) >>= xUser; - if(xUser.is()) - { - ::rtl::OUString sNewPassword,sOldPassword; - OPasswordDialog aDlg(this,sName); - if(aDlg.Execute() == RET_OK) - { - sNewPassword = aDlg.GetNewPassword(); - sOldPassword = aDlg.GetOldPassword(); - - if(sNewPassword.getLength()) - xUser->changePassword(sOldPassword,sNewPassword); - } - } - } - } - else - {// delete user - if(m_xUsers.is() && m_xUsers->hasByName(GetUser())) - { - Reference<XDrop> xDrop(m_xUsers,UNO_QUERY); - if(xDrop.is()) - { - QueryBox aQry(this, ModuleRes(QUERY_USERADMIN_DELETE_USER)); - if(aQry.Execute() == RET_YES) - xDrop->dropByName(GetUser()); - } - } - } - FillUserNames(); - } - catch(SQLException& e) - { - ::dbaui::showError(::dbtools::SQLExceptionInfo(e),this,m_xORB); - return 0; - } - catch(Exception& ) - { - return 0; - } - - return 0; -} -// ----------------------------------------------------------------------- -IMPL_LINK( OUserAdmin, ListDblClickHdl, ListBox *, /*pListBox*/ ) -{ - m_TableCtrl.setUserName(GetUser()); - m_TableCtrl.UpdateTables(); - m_TableCtrl.DeactivateCell(); - m_TableCtrl.ActivateCell(m_TableCtrl.GetCurRow(),m_TableCtrl.GetCurColumnId()); - return 0; -} - -// ----------------------------------------------------------------------- -String OUserAdmin::GetUser() -{ - return m_LB_USER.GetSelectEntry(); -} -// ----------------------------------------------------------------------------- -void OUserAdmin::fillControls(::std::vector< ISaveValueWrapper* >& /*_rControlList*/) -{ -} -// ----------------------------------------------------------------------- -void OUserAdmin::fillWindows(::std::vector< ISaveValueWrapper* >& /*_rControlList*/) -{ -} -// ----------------------------------------------------------------------------- -void OUserAdmin::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) -{ - m_TableCtrl.setORB(m_xORB); - try - { - if ( !m_xConnection.is() && m_pAdminDialog ) - { - m_xConnection = m_pAdminDialog->createConnection().first; - Reference< XTablesSupplier > xTablesSup(m_xConnection,UNO_QUERY); - Reference<XUsersSupplier> xUsersSup(xTablesSup,UNO_QUERY); - if ( !xUsersSup.is() ) - { - Reference< XDataDefinitionSupplier > xDriver(m_pAdminDialog->getDriver(),UNO_QUERY); - if ( xDriver.is() ) - { - xUsersSup.set(xDriver->getDataDefinitionByConnection(m_xConnection),UNO_QUERY); - xTablesSup.set(xUsersSup,UNO_QUERY); - } - } - if ( xUsersSup.is() ) - { - m_TableCtrl.setTablesSupplier(xTablesSup); - m_xUsers = xUsersSup->getUsers(); - } - } - FillUserNames(); - } - catch(SQLException& e) - { - ::dbaui::showError(::dbtools::SQLExceptionInfo(e),this,m_xORB); - } - - OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/UserAdmin.hrc b/dbaccess/source/ui/dlg/UserAdmin.hrc deleted file mode 100644 index 35ae40db6..000000000 --- a/dbaccess/source/ui/dlg/UserAdmin.hrc +++ /dev/null @@ -1,59 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef DBAUI_USERADMIN_HRC -#define DBAUI_USERADMIN_HRC - -#define FT_USER 1 - -#define LB_USER 1 - -#define NF_TIMEOUT 1 - -#define FL_TABLE_GRANTS 1 -#define FL_USER 2 - -#define CTRL_TABLE_GRANTS 1 - -#define PB_NEWUSER 2 -#define PB_CHANGEPWD 3 -#define PB_DELETEUSER 4 - - - -#define FT_OLDPASSWORD 19 -#define ED_OLDPASSWORD 19 -#define FT_PASSWORD 20 -#define ED_PASSWORD 21 -#define FT_PASSWORD_REPEAT 22 -#define ED_PASSWORD_REPEAT 23 - -#define BTN_PASSWORD_OK 50 -#define BTN_PASSWORD_CANCEL 51 -#define BTN_PASSWORD_HELP 52 - - -#endif // DBAUI_USERADMIN_HRC diff --git a/dbaccess/source/ui/dlg/UserAdmin.hxx b/dbaccess/source/ui/dlg/UserAdmin.hxx deleted file mode 100644 index 45995bc20..000000000 --- a/dbaccess/source/ui/dlg/UserAdmin.hxx +++ /dev/null @@ -1,92 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef DBAUI_USERADMIN_HXX -#define DBAUI_USERADMIN_HXX - -#include <vcl/fixed.hxx> -#include <vcl/field.hxx> -#include <vcl/lstbox.hxx> -#include <vcl/button.hxx> -#include <vcl/dialog.hxx> -#include <vcl/group.hxx> -#include "TableGrantCtrl.hxx" -#include "adminpages.hxx" -#include <comphelper/uno3.hxx> - -FORWARD_DECLARE_INTERFACE(beans,XPropertySet) -FORWARD_DECLARE_INTERFACE(sdbc,XConnection) -FORWARD_DECLARE_INTERFACE(lang,XMultiServiceFactory) - -namespace dbaui -{ - -class OUserAdmin : public OGenericAdministrationPage -{ -protected: - FixedLine m_FL_USER; - FixedText m_FT_USER; - ListBox m_LB_USER; - PushButton m_PB_NEWUSER; - PushButton m_PB_CHANGEPWD; - PushButton m_PB_DELETEUSER; - FixedLine m_FL_TABLE_GRANTS; - OTableGrantControl m_TableCtrl; // show the grant rights of one user - - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> m_xConnection; - ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > m_xUsers; - ::com::sun::star::uno::Sequence< ::rtl::OUString> m_aUserNames; - - String m_UserName; - - // methods - DECL_LINK( ListDblClickHdl, ListBox * ); - DECL_LINK( CloseHdl, PushButton * ); - DECL_LINK( UserHdl, PushButton * ); - - void FillUserNames(); - - OUserAdmin( Window* pParent, const SfxItemSet& _rCoreAttrs); -public: - static SfxTabPage* Create( Window* pParent, const SfxItemSet& _rAttrSet ); - - ~OUserAdmin(); - String GetUser(); - - // must be overloaded by subclasses, but it isn't pure virtual - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - - // <method>OGenericAdministrationPage::fillControls</method> - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - - // <method>OGenericAdministrationPage::fillWindows</method> - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); -}; -} -#endif // DBAUI_USERADMIN_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/UserAdmin.src b/dbaccess/source/ui/dlg/UserAdmin.src deleted file mode 100644 index e717f90ec..000000000 --- a/dbaccess/source/ui/dlg/UserAdmin.src +++ /dev/null @@ -1,218 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_USERADMIN_HRC -#include "UserAdmin.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif -#ifndef _DBA_DBACCESS_HELPID_HRC_ -#include "dbaccess_helpid.hrc" -#endif - -#define WINDOW_SIZE_X 260 -#define WINDOW_SIZE_Y 185 - -TabPage TAB_PAGE_USERADMIN -{ - SVLook = TRUE ; - HelpId = HID_TAB_PAGE_USERADMIN ; - Size = MAP_APPFONT ( WINDOW_SIZE_X , WINDOW_SIZE_Y ) ; - Hide = TRUE; - - FixedLine FL_USER - { - Pos = MAP_APPFONT ( 6 , 3 ) ; - Size = MAP_APPFONT ( WINDOW_SIZE_X - 8, 8) ; - Text [ en-US ] = "User selection"; - }; - - FixedText FT_USER - { - Pos = MAP_APPFONT ( 12 , 14 ) ; - Size = MAP_APPFONT ( 90 , 10 ) ; - Text [ en-US ] = "Us~er:"; - }; - - ListBox LB_USER - { - Border = TRUE ; - Pos = MAP_APPFONT ( 108 , 13) ; - Size = MAP_APPFONT ( 105 , 97 ) ; - TabStop = TRUE ; - HScroll = TRUE ; - Sort = TRUE ; - DropDown = TRUE ; - HelpId = HID_TAB_PAGE_LBUSER ; - }; - - PushButton PB_NEWUSER - { - Pos = MAP_APPFONT ( 12 , 29 ) ; - Size = MAP_APPFONT ( 70 , 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - HelpId = HID_TAB_PAGE_PBUSER ; - Text [ en-US ] = "~Add User..."; - }; - - PushButton PB_CHANGEPWD - { - Pos = MAP_APPFONT ( 95 , 29 ) ; - Size = MAP_APPFONT ( 70 , 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - HelpId = HID_TAB_PAGE_PBCHGPWD ; - Text [ en-US ] = "Change ~Password..."; - }; - - PushButton PB_DELETEUSER - { - Pos = MAP_APPFONT ( WINDOW_SIZE_X - 82 , 29 ) ; - Size = MAP_APPFONT ( 70 , 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - HelpId = HID_TAB_PAGE_PBUSERDELETE ; - Text [ en-US ] = "~Delete User..."; - }; - - FixedLine FL_TABLE_GRANTS - { - Pos = MAP_APPFONT ( 6 , 52 ) ; - Size = MAP_APPFONT ( WINDOW_SIZE_X - 8, 8) ; - Text [ en-US ] = "Access rights for selected user"; - }; - - Control CTRL_TABLE_GRANTS - { - Pos = MAP_APPFONT ( 12 , 63 ) ; - Size = MAP_APPFONT ( WINDOW_SIZE_X - 22, WINDOW_SIZE_Y - 75 ); - Border = TRUE ; - TabStop = TRUE ; - HelpId = HID_TAB_PAGE_TBLGRANTS ; - }; -}; - -QueryBox QUERY_USERADMIN_DELETE_USER -{ - Buttons = WB_YES_NO ; - Message [ en-US ] = "Do you really want to delete the user?"; -}; - -String STR_USERADMIN_NOT_AVAILABLE -{ - Text [ en-US ] = "The database does not support user administration." ; -}; - -#define EDIT_SIZE_X 50 -#define FT_SIZE_X 90 -#define WIN_X 220 -#define WIN_Y 72 - -ModalDialog DLG_PASSWORD -{ - HelpId = HID_DLG_PASSWORD ; - Border = TRUE ; - Moveable = TRUE ; - OutputSize = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( WIN_X , WIN_Y ) ; - - FixedLine FL_USER - { - Pos = MAP_APPFONT ( 3 , 3 ) ; - Size = MAP_APPFONT ( WIN_X - 3 - 6 - 6 - 50 , 8 ) ; - Text [ en-US ] = "User \"$name$: $\""; - }; - FixedText FT_OLDPASSWORD - { - Pos = MAP_APPFONT ( 6 , 17 ) ; - Size = MAP_APPFONT ( FT_SIZE_X , 10 ) ; - Text [ en-US ] = "Old p~assword"; - }; - Edit ED_OLDPASSWORD - { - HelpID = "dbaccess:Edit:DLG_PASSWORD:ED_OLDPASSWORD"; - Border = TRUE ; - Pos = MAP_APPFONT ( 12 + FT_SIZE_X , 16 ) ; - Size = MAP_APPFONT ( EDIT_SIZE_X , 12 ) ; - PassWord = TRUE ; - }; - - FixedText FT_PASSWORD - { - Pos = MAP_APPFONT ( 6 , 35 ) ; - Size = MAP_APPFONT ( FT_SIZE_X , 10 ) ; - Text [ en-US ] = "~Password"; - }; - Edit ED_PASSWORD - { - HelpID = "dbaccess:Edit:DLG_PASSWORD:ED_PASSWORD"; - Border = TRUE ; - Pos = MAP_APPFONT ( 12 + FT_SIZE_X , 34 ) ; - Size = MAP_APPFONT ( EDIT_SIZE_X , 12 ) ; - PassWord = TRUE ; - }; - FixedText FT_PASSWORD_REPEAT - { - Pos = MAP_APPFONT ( 6 , 52 ) ; - Size = MAP_APPFONT ( FT_SIZE_X , 10 ) ; - Text [ en-US ] = "~Confirm password"; - }; - Edit ED_PASSWORD_REPEAT - { - HelpID = "dbaccess:Edit:DLG_PASSWORD:ED_PASSWORD_REPEAT"; - Border = TRUE ; - Pos = MAP_APPFONT ( 12 + FT_SIZE_X , 51 ) ; - Size = MAP_APPFONT ( EDIT_SIZE_X , 12 ) ; - PassWord = TRUE ; - }; - - OKButton BTN_PASSWORD_OK - { - Pos = MAP_APPFONT ( WIN_X - 56 , 6 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - DefButton = TRUE ; - }; - CancelButton BTN_PASSWORD_CANCEL - { - Pos = MAP_APPFONT ( WIN_X - 56 , 23 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - }; - HelpButton BTN_PASSWORD_HELP - { - Pos = MAP_APPFONT ( WIN_X - 56 , 43 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - }; - Text [ en-US ] = "Change Password"; -}; - -String STR_ERROR_PASSWORDS_NOT_IDENTICAL -{ - Text [ en-US ] = "The passwords do not match. Please enter the password again."; -}; diff --git a/dbaccess/source/ui/dlg/UserAdminDlg.cxx b/dbaccess/source/ui/dlg/UserAdminDlg.cxx deleted file mode 100644 index edad27790..000000000 --- a/dbaccess/source/ui/dlg/UserAdminDlg.cxx +++ /dev/null @@ -1,213 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "adminpages.hxx" -#include "DbAdminImpl.hxx" -#include "dbu_dlg.hrc" -#include "DriverSettings.hxx" -#include "dsitems.hxx" -#include "propertysetitem.hxx" -#include "UITools.hxx" -#include "UserAdmin.hxx" -#include "UserAdminDlg.hrc" -#include "UserAdminDlg.hxx" - -#include <comphelper/componentcontext.hxx> -#include <connectivity/dbmetadata.hxx> -#include <cppuhelper/exc_hlp.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include <svl/stritem.hxx> -#include <tools/diagnose_ex.h> -#include <vcl/msgbox.hxx> -#include <vcl/stdtext.hxx> - -//......................................................................... -namespace dbaui -{ -//......................................................................... - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::beans; - using namespace ::com::sun::star::lang; - using namespace ::com::sun::star::sdbc; - using namespace ::com::sun::star::sdbcx; - - //======================================================================== - //= OUserAdminDlg -DBG_NAME(OUserAdminDlg) -//======================================================================== - OUserAdminDlg::OUserAdminDlg(Window* _pParent - , SfxItemSet* _pItems - ,const Reference< XMultiServiceFactory >& _rxORB - ,const ::com::sun::star::uno::Any& _aDataSourceName - ,const Reference< XConnection >& _xConnection) - :SfxTabDialog(_pParent, ModuleRes(DLG_DATABASE_USERADMIN), _pItems) - ,m_pItemSet(_pItems) - ,m_xConnection(_xConnection) - ,m_bOwnConnection(!_xConnection.is()) - { - DBG_CTOR(OUserAdminDlg,NULL); - - m_pImpl = ::std::auto_ptr<ODbDataSourceAdministrationHelper>(new ODbDataSourceAdministrationHelper(_rxORB,_pParent,this)); - m_pImpl->setDataSourceOrName(_aDataSourceName); - Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource(); - m_pImpl->translateProperties(xDatasource, *_pItems); - SetInputSet(_pItems); - // propagate this set as our new input set and reset the example set - delete pExampleSet; - pExampleSet = new SfxItemSet(*GetInputSetImpl()); - - AddTabPage(TAB_PAGE_USERADMIN, String(ModuleRes(STR_PAGETITLE_USERADMIN)), OUserAdmin::Create,0, sal_False, 1); - - // remove the reset button - it's meaning is much too ambiguous in this dialog - RemoveResetButton(); - FreeResource(); - } - - // ----------------------------------------------------------------------- - OUserAdminDlg::~OUserAdminDlg() - { - if ( m_bOwnConnection ) - { - try - { - ::comphelper::disposeComponent(m_xConnection); - } - catch(const Exception&) - { - } - } - - SetInputSet(NULL); - DELETEZ(pExampleSet); - - DBG_DTOR(OUserAdminDlg,NULL); - } - // ----------------------------------------------------------------------- - short OUserAdminDlg::Execute() - { - try - { - ::dbtools::DatabaseMetaData aMetaData( createConnection().first ); - if ( !aMetaData.supportsUserAdministration( ::comphelper::ComponentContext( getORB() ) ) ) - { - String sError(ModuleRes(STR_USERADMIN_NOT_AVAILABLE)); - throw SQLException(sError,NULL,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("S1000")) ,0,Any()); - } - } - catch(const SQLException&) - { - ::dbaui::showError( ::dbtools::SQLExceptionInfo( ::cppu::getCaughtException() ), GetParent(), getORB() ); - return RET_CANCEL; - } - catch(const Exception&) - { - DBG_UNHANDLED_EXCEPTION(); - } - short nRet = SfxTabDialog::Execute(); - if ( nRet == RET_OK ) - m_pImpl->saveChanges(*GetOutputItemSet()); - return nRet; - } - //------------------------------------------------------------------------- - void OUserAdminDlg::PageCreated(sal_uInt16 _nId, SfxTabPage& _rPage) - { - // register ourself as modified listener - static_cast<OGenericAdministrationPage&>(_rPage).SetServiceFactory(m_pImpl->getORB()); - static_cast<OGenericAdministrationPage&>(_rPage).SetAdminDialog(this,this); - - AdjustLayout(); - Window *pWin = GetViewWindow(); - if(pWin) - pWin->Invalidate(); - - SfxTabDialog::PageCreated(_nId, _rPage); - } - // ----------------------------------------------------------------------------- - const SfxItemSet* OUserAdminDlg::getOutputSet() const - { - return m_pItemSet; - } - // ----------------------------------------------------------------------------- - SfxItemSet* OUserAdminDlg::getWriteOutputSet() - { - return m_pItemSet; - } - // ----------------------------------------------------------------------------- - ::std::pair< Reference<XConnection>,sal_Bool> OUserAdminDlg::createConnection() - { - if ( !m_xConnection.is() ) - { - m_xConnection = m_pImpl->createConnection().first; - m_bOwnConnection = m_xConnection.is(); - } - return ::std::pair< Reference<XConnection>,sal_Bool> (m_xConnection,sal_False); - } - // ----------------------------------------------------------------------------- - Reference< XMultiServiceFactory > OUserAdminDlg::getORB() const - { - return m_pImpl->getORB(); - } - // ----------------------------------------------------------------------------- - Reference< XDriver > OUserAdminDlg::getDriver() - { - return m_pImpl->getDriver(); - } - // ----------------------------------------------------------------------------- - ::rtl::OUString OUserAdminDlg::getDatasourceType(const SfxItemSet& _rSet) const - { - return m_pImpl->getDatasourceType(_rSet); - } - // ----------------------------------------------------------------------------- - void OUserAdminDlg::clearPassword() - { - m_pImpl->clearPassword(); - } - // ----------------------------------------------------------------------------- - void OUserAdminDlg::setTitle(const ::rtl::OUString& _sTitle) - { - SetText(_sTitle); - } - //------------------------------------------------------------------------- - void OUserAdminDlg::enableConfirmSettings( bool _bEnable ) - { - (void)_bEnable; - } - //------------------------------------------------------------------------- - sal_Bool OUserAdminDlg::saveDatasource() - { - return PrepareLeaveCurrentPage(); - } -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/UserAdminDlg.hrc b/dbaccess/source/ui/dlg/UserAdminDlg.hrc deleted file mode 100644 index dd1bdd5b5..000000000 --- a/dbaccess/source/ui/dlg/UserAdminDlg.hrc +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef DBAUI_USERADMINDLG_HRC -#define DBAUI_USERADMINDLG_HRC - -#define STR_PAGETITLE_USERADMIN 1 - - -#endif // DBAUI_USERADMINDLG_HRC diff --git a/dbaccess/source/ui/dlg/UserAdminDlg.src b/dbaccess/source/ui/dlg/UserAdminDlg.src deleted file mode 100644 index 5b07b4309..000000000 --- a/dbaccess/source/ui/dlg/UserAdminDlg.src +++ /dev/null @@ -1,58 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBA_DBACCESS_HELPID_HRC_ -#include "dbaccess_helpid.hrc" -#endif -#ifndef DBAUI_USERADMINDLG_HRC -#include "UserAdminDlg.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif - -TabDialog DLG_DATABASE_USERADMIN -{ - OutputSize = TRUE ; - SVLook = TRUE ; - Moveable = TRUE ; - Closeable = TRUE ; - Hide = TRUE; - HelpId = HID_DSADMIN_USERADMIN; - - TabControl 1 - { - OutputSize = TRUE ; - HelpId = HID_DSADMIN_TABCONTROL; - }; - String STR_PAGETITLE_USERADMIN - { - Text[ en-US ] = "User Settings"; - }; - - Text [ en-US ] = "User administration" ; -}; diff --git a/dbaccess/source/ui/dlg/admincontrols.cxx b/dbaccess/source/ui/dlg/admincontrols.cxx deleted file mode 100644 index 7ef16bc3b..000000000 --- a/dbaccess/source/ui/dlg/admincontrols.cxx +++ /dev/null @@ -1,314 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * -************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "admincontrols.hxx" -#include "admincontrols.hrc" -#include "dbu_dlg.hrc" -#include "dsitems.hxx" -#include "moduledbu.hxx" - -#include <svl/eitem.hxx> -#include <svl/stritem.hxx> -#include <svl/intitem.hxx> - -//........................................................................ -namespace dbaui -{ -//........................................................................ - - //==================================================================== - //= TextResetOperatorEventFilter - //==================================================================== - class TextResetOperatorEventFilter : public ::svt::IWindowEventFilter - { - public: - TextResetOperatorEventFilter() - { - } - - // IWindowEventFilter - virtual bool payAttentionTo( const VclWindowEvent& _rEvent ) const - { - return ( _rEvent.GetId() == VCLEVENT_WINDOW_ENABLED ) - || ( _rEvent.GetId() == VCLEVENT_WINDOW_DISABLED ) - || ( _rEvent.GetId() == VCLEVENT_EDIT_MODIFY ); - } - }; - - //==================================================================== - //= TextResetOperator - //==================================================================== - class TextResetOperator :public ::svt::IWindowOperator - { - public: - TextResetOperator( const String& _rDisabledText ) - :m_sDisabledText( _rDisabledText ) - { - } - - // IWindowOperator - virtual void operateOn( const VclWindowEvent& _rTrigger, Window& _rOperateOn ) const; - - private: - const String m_sDisabledText; - String m_sUserText; - sal_Bool m_bLastKnownEnabledState; - }; - - //-------------------------------------------------------------------- - void TextResetOperator::operateOn( const VclWindowEvent& _rTrigger, Window& _rOperateOn ) const - { - OSL_ENSURE( _rTrigger.GetWindow() == &_rOperateOn, "TextResetOperator::operateOn: you're misusing this implementation!" ); - - switch ( _rTrigger.GetId() ) - { - case 0: - // initial call - const_cast< TextResetOperator* >( this )->m_sUserText = _rTrigger.GetWindow()->GetText(); - break; - - case VCLEVENT_EDIT_MODIFY: - if ( _rTrigger.GetWindow()->IsEnabled() ) - const_cast< TextResetOperator* >( this )->m_sUserText = _rTrigger.GetWindow()->GetText(); - break; - - case VCLEVENT_WINDOW_ENABLED: - _rOperateOn.SetText( m_sUserText ); - break; - - case VCLEVENT_WINDOW_DISABLED: - _rOperateOn.SetText( m_sDisabledText ); - break; - - default: - OSL_FAIL( "TextResetOperator::operateOn: unexpected event ID!" ); - // all those IDs should have been filtered out by payAttentionTo - break; - } - } - - //==================================================================== - //= TextResetOperatorController - //==================================================================== - class TextResetOperatorController_Base - { - protected: - TextResetOperatorController_Base( const String& _rDisabledText ) - :m_pEventFilter( new TextResetOperatorEventFilter ) - ,m_pOperator( new TextResetOperator( _rDisabledText ) ) - { - } - - inline ::svt::PWindowEventFilter getEventFilter() const { return m_pEventFilter; } - inline ::svt::PWindowOperator getOperator() const { return m_pOperator; } - - private: - ::svt::PWindowEventFilter m_pEventFilter; - ::svt::PWindowOperator m_pOperator; - }; - - class TextResetOperatorController :public TextResetOperatorController_Base - ,public ::svt::DialogController - { - public: - TextResetOperatorController( Window& _rObservee, const String& _rDisabledText ) - :TextResetOperatorController_Base( _rDisabledText ) - ,::svt::DialogController( _rObservee, getEventFilter(), getOperator() ) - { - addDependentWindow( _rObservee ); - } - }; - - //==================================================================== - //= MySQLNativeSettings - //==================================================================== - //-------------------------------------------------------------------- - MySQLNativeSettings::MySQLNativeSettings( Window& _rParent, const Link& _rControlModificationLink ) - :Control( &_rParent, ModuleRes( RID_MYSQL_NATIVE_SETTINGS ).SetAutoRelease( sal_False ) ) - ,m_aDatabaseNameLabel ( this, ModuleRes( FT_MYSQL_DATABASE_NAME ) ) - ,m_aDatabaseName ( this, ModuleRes( ED_MYSQL_DATABASE_NAME ) ) - ,m_aHostPortRadio ( this, ModuleRes( RB_MYSQL_HOST_PORT ) ) - ,m_aSocketRadio ( this, ModuleRes( RB_MYSQL_SOCKET ) ) - ,m_aNamedPipeRadio ( this, ModuleRes( RB_MYSQL_NAMED_PIPE ) ) - ,m_aHostNameLabel ( this, ModuleRes( FT_COMMON_HOST_NAME ) ) - ,m_aHostName ( this, ModuleRes( ED_COMMON_HOST_NAME ) ) - ,m_aPortLabel ( this, ModuleRes( FT_COMMON_PORT ) ) - ,m_aPort ( this, ModuleRes( NF_COMMON_PORT ) ) - ,m_aDefaultPort ( this, ModuleRes( FT_COMMON_PORT_DEFAULT ) ) - ,m_aSocket ( this, ModuleRes( ED_MYSQL_SOCKET ) ) - ,m_aNamedPipe ( this, ModuleRes( ED_MYSQL_NAMED_PIPE ) ) - { - FreeResource(); - - m_aDatabaseName.SetModifyHdl( _rControlModificationLink ); - m_aHostName.SetModifyHdl( _rControlModificationLink ); - m_aPort.SetModifyHdl( _rControlModificationLink ); - m_aNamedPipe.SetModifyHdl( _rControlModificationLink ); - m_aSocketRadio.SetToggleHdl( _rControlModificationLink ); - m_aNamedPipeRadio.SetToggleHdl( _rControlModificationLink ); - - m_aControlDependencies.enableOnRadioCheck( m_aHostPortRadio, m_aHostNameLabel, m_aHostName, m_aPortLabel, m_aPort, m_aDefaultPort ); - m_aControlDependencies.enableOnRadioCheck( m_aSocketRadio, m_aSocket ); - m_aControlDependencies.enableOnRadioCheck( m_aNamedPipeRadio, m_aNamedPipe ); - - m_aControlDependencies.addController( ::svt::PDialogController( - new TextResetOperatorController( m_aHostName, String::CreateFromAscii( "localhost" ) ) - ) ); - - // sockets are available on Unix systems only, named pipes only on Windows -#ifdef UNX - m_aNamedPipeRadio.Hide(); - m_aNamedPipe.Hide(); -#else - m_aSocketRadio.Hide(); - m_aSocket.Hide(); -#endif - } - - //-------------------------------------------------------------------- - MySQLNativeSettings::~MySQLNativeSettings() - { - } - - //-------------------------------------------------------------------- - void MySQLNativeSettings::fillControls( ::std::vector< ISaveValueWrapper* >& _rControlList ) - { - _rControlList.push_back( new OSaveValueWrapper< Edit >( &m_aDatabaseName ) ); - _rControlList.push_back( new OSaveValueWrapper< Edit >( &m_aHostName ) ); - _rControlList.push_back( new OSaveValueWrapper< Edit >( &m_aPort ) ); - _rControlList.push_back( new OSaveValueWrapper< Edit >( &m_aSocket ) ); - _rControlList.push_back( new OSaveValueWrapper< Edit >( &m_aNamedPipe ) ); - } - - //-------------------------------------------------------------------- - void MySQLNativeSettings::fillWindows( ::std::vector< ISaveValueWrapper* >& _rControlList ) - { - _rControlList.push_back( new ODisableWrapper< FixedText >( &m_aDatabaseNameLabel ) ); - _rControlList.push_back( new ODisableWrapper< FixedText >( &m_aHostNameLabel ) ); - _rControlList.push_back( new ODisableWrapper< FixedText >( &m_aPortLabel ) ); - _rControlList.push_back( new ODisableWrapper< FixedText >( &m_aDefaultPort ) ); - _rControlList.push_back( new ODisableWrapper< RadioButton >( &m_aSocketRadio ) ); - _rControlList.push_back( new ODisableWrapper< RadioButton >( &m_aNamedPipeRadio ) ); - } - - //-------------------------------------------------------------------- - sal_Bool MySQLNativeSettings::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = sal_False; - - OGenericAdministrationPage::fillString( _rSet, &m_aHostName, DSID_CONN_HOSTNAME, bChangedSomething ); - OGenericAdministrationPage::fillString( _rSet, &m_aDatabaseName, DSID_DATABASENAME, bChangedSomething ); - OGenericAdministrationPage::fillInt32 ( _rSet, &m_aPort, DSID_MYSQL_PORTNUMBER, bChangedSomething ); -#ifdef UNX - OGenericAdministrationPage::fillString( _rSet, &m_aSocket, DSID_CONN_SOCKET, bChangedSomething ); -#else - OGenericAdministrationPage::fillString( _rSet, &m_aNamedPipe, DSID_NAMED_PIPE, bChangedSomething ); -#endif - - return bChangedSomething; - } - - //-------------------------------------------------------------------- - void MySQLNativeSettings::implInitControls(const SfxItemSet& _rSet ) - { - SFX_ITEMSET_GET( _rSet, pInvalid, SfxBoolItem, DSID_INVALID_SELECTION, sal_True ); - bool bValid = !pInvalid || !pInvalid->GetValue(); - if ( !bValid ) - return; - - SFX_ITEMSET_GET( _rSet, pDatabaseName, SfxStringItem, DSID_DATABASENAME, sal_True ); - SFX_ITEMSET_GET( _rSet, pHostName, SfxStringItem, DSID_CONN_HOSTNAME, sal_True ); - SFX_ITEMSET_GET( _rSet, pPortNumber, SfxInt32Item, DSID_MYSQL_PORTNUMBER, sal_True ); - SFX_ITEMSET_GET( _rSet, pSocket, SfxStringItem, DSID_CONN_SOCKET, sal_True ); - SFX_ITEMSET_GET( _rSet, pNamedPipe, SfxStringItem, DSID_NAMED_PIPE, sal_True ); - - m_aDatabaseName.SetText( pDatabaseName->GetValue() ); - m_aDatabaseName.ClearModifyFlag(); - - m_aHostName.SetText( pHostName->GetValue() ); - m_aHostName.ClearModifyFlag(); - - m_aPort.SetValue( pPortNumber->GetValue() ); - m_aPort.ClearModifyFlag(); - - m_aSocket.SetText( pSocket->GetValue() ); - m_aSocket.ClearModifyFlag(); - - m_aNamedPipe.SetText( pNamedPipe->GetValue() ); - m_aNamedPipe.ClearModifyFlag(); - - // if a socket (on Unix) or a pipe name (on Windows) is given, this is preferred over - // the port -#ifdef UNX - RadioButton& rSocketPipeRadio = m_aSocketRadio; - const SfxStringItem* pSocketPipeItem = pSocket; -#else - RadioButton& rSocketPipeRadio = m_aNamedPipeRadio; - const SfxStringItem* pSocketPipeItem = pNamedPipe; -#endif - String sSocketPipe( pSocketPipeItem->GetValue() ); - if ( sSocketPipe.Len() > 0 ) - rSocketPipeRadio.Check(); - else - m_aHostPortRadio.Check(); - } - - //-------------------------------------------------------------------- - bool MySQLNativeSettings::canAdvance() const - { - if ( m_aDatabaseName.GetText().Len() == 0 ) - return false; - - if ( m_aHostPortRadio.IsChecked() - && ( ( m_aHostName.GetText().Len() == 0 ) - || ( m_aPort.GetText().Len() == 0 ) - ) - ) - return false; - -#ifdef UNX - if ( ( m_aSocketRadio.IsChecked() ) - && ( m_aSocket.GetText().Len() == 0 ) - ) -#else - if ( ( m_aNamedPipeRadio.IsChecked() ) - && ( m_aNamedPipe.GetText().Len() == 0 ) - ) -#endif - return false; - - return true; - } - -//........................................................................ -} // namespace dbaui -//........................................................................ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/admincontrols.hrc b/dbaccess/source/ui/dlg/admincontrols.hrc deleted file mode 100755 index 01eadee58..000000000 --- a/dbaccess/source/ui/dlg/admincontrols.hrc +++ /dev/null @@ -1,49 +0,0 @@ -/************************************************************************* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * -************************************************************************/ - -#ifndef ADMINCONTROLS_HRC -#define ADMINCONTROLS_HRC - -#define FT_MYSQL_DATABASE_NAME 1 -#define FT_COMMON_HOST_NAME 2 -#define FT_COMMON_PORT_DEFAULT 3 -#define FT_COMMON_PORT 4 - - -#define RB_MYSQL_HOST_PORT 1 -#define RB_MYSQL_SOCKET 2 -#define RB_MYSQL_NAMED_PIPE 3 - - -#define ED_MYSQL_DATABASE_NAME 1 -#define ED_MYSQL_SOCKET 2 -#define ED_COMMON_HOST_NAME 3 -#define ED_MYSQL_NAMED_PIPE 4 - - -#define NF_COMMON_PORT 1 - -#endif // ADMINCONTROLS_HRC diff --git a/dbaccess/source/ui/dlg/admincontrols.hxx b/dbaccess/source/ui/dlg/admincontrols.hxx deleted file mode 100644 index b6402f00a..000000000 --- a/dbaccess/source/ui/dlg/admincontrols.hxx +++ /dev/null @@ -1,85 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * -************************************************************************/ - -#ifndef DBACCESS_ADMINCONTROLS_HXX -#define DBACCESS_ADMINCONTROLS_HXX - -#include "adminpages.hxx" - -#include <vcl/edit.hxx> -#include <vcl/field.hxx> -#include <vcl/fixed.hxx> - -#include <svtools/dialogcontrolling.hxx> - -//........................................................................ -namespace dbaui -{ -//........................................................................ - - //==================================================================== - //= MySQLNativeSettings - //==================================================================== - class MySQLNativeSettings : public Control - { - private: - FixedText m_aDatabaseNameLabel; - Edit m_aDatabaseName; - RadioButton m_aHostPortRadio; - RadioButton m_aSocketRadio; - RadioButton m_aNamedPipeRadio; - FixedText m_aHostNameLabel; - Edit m_aHostName; - FixedText m_aPortLabel; - NumericField m_aPort; - FixedText m_aDefaultPort; - Edit m_aSocket; - Edit m_aNamedPipe; - - ::svt::ControlDependencyManager - m_aControlDependencies; - - public: - MySQLNativeSettings( Window& _rParent, const Link& _rControlModificationLink ); - ~MySQLNativeSettings(); - - void fillControls( ::std::vector< ISaveValueWrapper* >& _rControlList ); - void fillWindows( ::std::vector< ISaveValueWrapper* >& _rControlList ); - - sal_Bool FillItemSet( SfxItemSet& _rCoreAttrs ); - void implInitControls( const SfxItemSet& _rSet ); - - bool canAdvance() const; - }; - -//........................................................................ -} // namespace dbaui -//........................................................................ - -#endif // DBACCESS_ADMINCONTROLS_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/admincontrols.src b/dbaccess/source/ui/dlg/admincontrols.src deleted file mode 100644 index 5e5ceda60..000000000 --- a/dbaccess/source/ui/dlg/admincontrols.src +++ /dev/null @@ -1,131 +0,0 @@ -/************************************************************************* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * -************************************************************************/ - -#include "AutoControls.hrc" -#include "dbu_dlg.hrc" -#include "admincontrols.hrc" - -#define LINE_HEIGHT ( EDIT_HEIGHT + RELATED_CONTROLS ) -#define SETTINGS_CONTROL_WIDTH ( WIZARD_PAGE_X - 2 * START_X ) -#define COLUMN_WIDTH_1 80 -#define COLUMN_WIDTH_2 ( SETTINGS_CONTROL_WIDTH - COLUMN_WIDTH_1 ) - -Control RID_MYSQL_NATIVE_SETTINGS -{ - DialogControl = TRUE; - Size = MAP_APPFONT( SETTINGS_CONTROL_WIDTH, 5 * LINE_HEIGHT ); - Hide = FALSE; - - FixedText FT_MYSQL_DATABASE_NAME - { - Pos = MAP_APPFONT ( 0, 2 ); - Size = MAP_APPFONT ( COLUMN_WIDTH_1 - UNRELATED_CONTROLS, FIXEDTEXT_HEIGHT ); - Text[ en-US ] = "~Database name"; - }; - - Edit ED_MYSQL_DATABASE_NAME - { - Pos = MAP_APPFONT ( COLUMN_WIDTH_1, 0 ); - Size = MAP_APPFONT ( COLUMN_WIDTH_2, EDIT_HEIGHT ); - Border = TRUE; - }; - - RadioButton RB_MYSQL_HOST_PORT - { - Pos = MAP_APPFONT ( 0, LINE_HEIGHT ); - Size = MAP_APPFONT ( COLUMN_WIDTH_1, FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "Se~rver / Port" ; - Group = TRUE; - }; - -#define OPTION_GROUP_START ( LINE_HEIGHT + FIXEDTEXT_HEIGHT + RELATED_CONTROLS ) - - FixedText FT_COMMON_HOST_NAME - { - Pos = MAP_APPFONT ( INDENT_BELOW_RADIO, OPTION_GROUP_START + 2 ); - Size = MAP_APPFONT ( COLUMN_WIDTH_1 - RELATED_CONTROLS - INDENT_BELOW_RADIO, FIXEDTEXT_HEIGHT ); - Text [ en-US ] = "~Server" ; - }; - - Edit ED_COMMON_HOST_NAME - { - Pos = MAP_APPFONT ( COLUMN_WIDTH_1, OPTION_GROUP_START ); - Size = MAP_APPFONT ( COLUMN_WIDTH_2, EDIT_HEIGHT ); - Border = TRUE; - }; - - FixedText FT_COMMON_PORT - { - Pos = MAP_APPFONT ( INDENT_BELOW_RADIO, OPTION_GROUP_START + LINE_HEIGHT + 2 ); - Size = MAP_APPFONT ( COLUMN_WIDTH_1 - RELATED_CONTROLS - INDENT_BELOW_RADIO, FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "~Port" ; - Group = TRUE; - }; - - NumericField NF_COMMON_PORT - { - Pos = MAP_APPFONT ( COLUMN_WIDTH_1, OPTION_GROUP_START + LINE_HEIGHT ); - Size = MAP_APPFONT ( 25, EDIT_HEIGHT ); - Border = TRUE; - NoThousandSep = TRUE; - Value = 3306; - }; - - FixedText FT_COMMON_PORT_DEFAULT - { - Pos = MAP_APPFONT ( COLUMN_WIDTH_1 + 25 + RELATED_CONTROLS, OPTION_GROUP_START + LINE_HEIGHT + 2 ); - Size = MAP_APPFONT ( COLUMN_WIDTH_2 - 25 - RELATED_CONTROLS, FIXEDTEXT_HEIGHT ); - Text[ en-US ] = "Default: 3306"; - }; - - RadioButton RB_MYSQL_SOCKET - { - Pos = MAP_APPFONT ( 0, OPTION_GROUP_START + 2 * LINE_HEIGHT + 2 ); - Size = MAP_APPFONT ( COLUMN_WIDTH_1 - RELATED_CONTROLS, FIXEDTEXT_HEIGHT ); - Text [ en-US ] = "So~cket"; - }; - - Edit ED_MYSQL_SOCKET - { - Pos = MAP_APPFONT ( COLUMN_WIDTH_1, OPTION_GROUP_START + 2 * LINE_HEIGHT ); - Size = MAP_APPFONT ( COLUMN_WIDTH_2, EDIT_HEIGHT ); - Border = TRUE ; - }; - - RadioButton RB_MYSQL_NAMED_PIPE - { - Pos = MAP_APPFONT ( 0, OPTION_GROUP_START + 2 * LINE_HEIGHT + 2 ); - Size = MAP_APPFONT ( COLUMN_WIDTH_1 - RELATED_CONTROLS, FIXEDTEXT_HEIGHT ); - Text [ en-US ] = "Named p~ipe"; - }; - - Edit ED_MYSQL_NAMED_PIPE - { - Pos = MAP_APPFONT ( COLUMN_WIDTH_1, OPTION_GROUP_START + 2 * LINE_HEIGHT ); - Size = MAP_APPFONT ( COLUMN_WIDTH_2, EDIT_HEIGHT ); - Border = TRUE ; - }; -}; diff --git a/dbaccess/source/ui/dlg/adminpages.cxx b/dbaccess/source/ui/dlg/adminpages.cxx deleted file mode 100644 index 14ef2cdd8..000000000 --- a/dbaccess/source/ui/dlg/adminpages.cxx +++ /dev/null @@ -1,356 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "adminpages.hxx" -#include "dbadmin.hrc" -#include "dbadmin.hxx" -#include "dbu_dlg.hrc" -#include <svl/stritem.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include "dbustrings.hrc" -#include "dsitems.hxx" -#include "dsselect.hxx" -#include "localresaccess.hxx" -#include "odbcconfig.hxx" -#include "optionalboolitem.hxx" -#include "sqlmessage.hxx" - -#include <osl/file.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include <svl/stritem.hxx> -#include <vcl/accel.hxx> -#include <vcl/button.hxx> -#include <vcl/edit.hxx> -#include <vcl/field.hxx> -#include <vcl/lstbox.hxx> -#include <vcl/msgbox.hxx> - -#include <algorithm> -#include <stdlib.h> - -//......................................................................... -namespace dbaui -{ -//......................................................................... - - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::sdbc; - using namespace ::com::sun::star::beans; - using namespace ::com::sun::star::lang; - using namespace ::dbtools; - using namespace ::svt; - - - //========================================================================= - //= OGenericAdministrationPage - //========================================================================= - DBG_NAME(OGenericAdministrationPage) - //------------------------------------------------------------------------- - OGenericAdministrationPage::OGenericAdministrationPage(Window* _pParent, const ResId& _rId, const SfxItemSet& _rAttrSet) - :SfxTabPage(_pParent, _rId, _rAttrSet) - ,m_abEnableRoadmap(sal_False) - ,m_pAdminDialog(NULL) - ,m_pItemSetHelper(NULL) - ,m_pFT_HeaderText(NULL) - { - DBG_CTOR(OGenericAdministrationPage,NULL); - - SetExchangeSupport(sal_True); - } - - //------------------------------------------------------------------------- - OGenericAdministrationPage::~OGenericAdministrationPage() - { - DELETEZ(m_pFT_HeaderText); - - DBG_DTOR(OGenericAdministrationPage,NULL); - } - - //------------------------------------------------------------------------- - int OGenericAdministrationPage::DeactivatePage(SfxItemSet* _pSet) - { - if (_pSet) - { - if (!prepareLeave()) - return KEEP_PAGE; - FillItemSet(*_pSet); - } - - return LEAVE_PAGE; - } - - //------------------------------------------------------------------------- - void OGenericAdministrationPage::Reset(const SfxItemSet& _rCoreAttrs) - { - implInitControls(_rCoreAttrs, sal_False); - } - //------------------------------------------------------------------------- - void OGenericAdministrationPage::ActivatePage() - { - TabPage::ActivatePage(); - OSL_ENSURE(m_pItemSetHelper,"NO ItemSetHelper set!"); - if ( m_pItemSetHelper ) - ActivatePage(*m_pItemSetHelper->getOutputSet()); - } - //------------------------------------------------------------------------- - void OGenericAdministrationPage::ActivatePage(const SfxItemSet& _rSet) - { - implInitControls(_rSet, sal_True); - } - - // ----------------------------------------------------------------------- - void OGenericAdministrationPage::getFlags(const SfxItemSet& _rSet, sal_Bool& _rValid, sal_Bool& _rReadonly) - { - SFX_ITEMSET_GET(_rSet, pInvalid, SfxBoolItem, DSID_INVALID_SELECTION, sal_True); - _rValid = !pInvalid || !pInvalid->GetValue(); - SFX_ITEMSET_GET(_rSet, pReadonly, SfxBoolItem, DSID_READONLY, sal_True); - _rReadonly = !_rValid || (pReadonly && pReadonly->GetValue()); - } - - - // ----------------------------------------------------------------------- - IMPL_LINK(OGenericAdministrationPage, OnControlModified, Control*, EMPTYARG) - { - callModifiedHdl(); - return 0L; - } - // ----------------------------------------------------------------------- - sal_Bool OGenericAdministrationPage::getSelectedDataSource(::rtl::OUString& _sReturn,::rtl::OUString& _sCurr) - { - // collect all ODBC data source names - StringBag aOdbcDatasources; - OOdbcEnumeration aEnumeration; - if (!aEnumeration.isLoaded()) - { - // show an error message - LocalResourceAccess aLocRes( PAGE_GENERAL, RSC_TABPAGE ); - String sError(ModuleRes(STR_COULDNOTLOAD_ODBCLIB)); - sError.SearchAndReplaceAscii("#lib#", aEnumeration.getLibraryName()); - ErrorBox aDialog(this, WB_OK, sError); - aDialog.Execute(); - return sal_False; - } - else - { - aEnumeration.getDatasourceNames(aOdbcDatasources); - // execute the select dialog - ODatasourceSelectDialog aSelector(GetParent(), aOdbcDatasources, false); - if (_sCurr.getLength()) - aSelector.Select(_sCurr); - if ( RET_OK == aSelector.Execute() ) - _sReturn = aSelector.GetSelected(); - } - return sal_True; - } - - // ----------------------------------------------------------------------- - void OGenericAdministrationPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - ::std::vector< ISaveValueWrapper* > aControlList; - if ( _bSaveValue ) - { - fillControls(aControlList); - ::std::for_each(aControlList.begin(),aControlList.end(),TSaveValueWrapperFunctor()); - } - - if ( bReadonly ) - { - fillWindows(aControlList); - ::std::for_each(aControlList.begin(),aControlList.end(),TDisableWrapperFunctor()); - } - - ::std::for_each(aControlList.begin(),aControlList.end(),TDeleteWrapperFunctor()); - aControlList.clear(); - } - - // ----------------------------------------------------------------------- - void OGenericAdministrationPage::initializePage() - { - OSL_ENSURE(m_pItemSetHelper,"NO ItemSetHelper set!"); - if ( m_pItemSetHelper ) - Reset(*m_pItemSetHelper->getOutputSet()); - } - // ----------------------------------------------------------------------- - sal_Bool OGenericAdministrationPage::commitPage( ::svt::WizardTypes::CommitPageReason ) - { - return sal_True; - } - // ----------------------------------------------------------------------- - bool OGenericAdministrationPage::canAdvance() const - { - return true; - } - // ----------------------------------------------------------------------- - void OGenericAdministrationPage::fillBool( SfxItemSet& _rSet, CheckBox* _pCheckBox, sal_uInt16 _nID, sal_Bool& _bChangedSomething, bool _bRevertValue ) - { - if ( (_pCheckBox != NULL ) && ( _pCheckBox->GetState() != _pCheckBox->GetSavedValue() ) ) - { - sal_Bool bValue = _pCheckBox->IsChecked(); - if ( _bRevertValue ) - bValue = !bValue; - - if ( _pCheckBox->IsTriStateEnabled() ) - { - OptionalBoolItem aValue( _nID ); - if ( _pCheckBox->GetState() != STATE_DONTKNOW ) - aValue.SetValue( bValue ); - _rSet.Put( aValue ); - } - else - _rSet.Put( SfxBoolItem( _nID, bValue ) ); - - _bChangedSomething = sal_True; - } - } - // ----------------------------------------------------------------------- - void OGenericAdministrationPage::fillInt32(SfxItemSet& _rSet,NumericField* _pEdit,sal_uInt16 _nID,sal_Bool& _bChangedSomething) - { - if( (_pEdit != NULL) && (_pEdit->GetValue() != _pEdit->GetSavedValue().ToInt32()) ) - { - _rSet.Put(SfxInt32Item(_nID, static_cast<sal_Int32>(_pEdit->GetValue()))); - _bChangedSomething = sal_True; - } - } - // ----------------------------------------------------------------------- - void OGenericAdministrationPage::fillString(SfxItemSet& _rSet,Edit* _pEdit,sal_uInt16 _nID,sal_Bool& _bChangedSomething) - { - if( (_pEdit != NULL) && (_pEdit->GetText() != _pEdit->GetSavedValue()) ) - { - _rSet.Put(SfxStringItem(_nID, _pEdit->GetText())); - _bChangedSomething = sal_True; - } - } - - void OGenericAdministrationPage::SetControlFontWeight(Window* _pWindow, FontWeight _eWeight) - { - Font aFont = _pWindow->GetControlFont(); - aFont.SetWeight( _eWeight ); - _pWindow->SetControlFont( aFont ); - } - - // ----------------------------------------------------------------------- - IMPL_LINK(OGenericAdministrationPage, OnTestConnectionClickHdl, PushButton*, /*_pButton*/) - { - OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF"); - sal_Bool bSuccess = sal_False; - if ( m_pAdminDialog ) - { - m_pAdminDialog->saveDatasource(); - OGenericAdministrationPage::implInitControls(*m_pItemSetHelper->getOutputSet(), sal_True); - sal_Bool bShowMessage = sal_True; - try - { - ::std::pair< Reference<XConnection>,sal_Bool> xConnection = m_pAdminDialog->createConnection(); - bShowMessage = xConnection.second; - bSuccess = xConnection.first.is(); - ::comphelper::disposeComponent(xConnection.first); - } - catch(Exception&) - { - } - if ( bShowMessage ) - { - OSQLMessageBox::MessageType eImage = OSQLMessageBox::Info; - String aMessage,sTitle; - sTitle = String (ModuleRes(STR_CONNECTION_TEST)); - if ( bSuccess ) - { - aMessage = String(ModuleRes(STR_CONNECTION_SUCCESS)); - } - else - { - eImage = OSQLMessageBox::Error; - aMessage = String(ModuleRes(STR_CONNECTION_NO_SUCCESS)); - } - OSQLMessageBox aMsg( this, sTitle, aMessage, WB_OK, eImage ); - aMsg.Execute(); - } - if ( !bSuccess ) - m_pAdminDialog->clearPassword(); - } - return 0L; - } - - void OGenericAdministrationPage::SetHeaderText( sal_uInt16 _nFTResId, sal_uInt16 _StringResId) - { - delete(m_pFT_HeaderText); - m_pFT_HeaderText = new FixedText(this, ModuleRes(_nFTResId)); - String sHeaderText = String(ModuleRes(_StringResId)); - m_pFT_HeaderText->SetText(sHeaderText); - SetControlFontWeight(m_pFT_HeaderText); - } - - //========================================================================= - //= LayoutHelper - //========================================================================= - //------------------------------------------------------------------------- - void LayoutHelper::positionBelow( const Control& _rReference, Control& _rControl, const ControlRelation _eRelation, - const long _nIndentAppFont ) - { - Point aReference = _rReference.GetPosPixel(); - aReference.Y() += _rReference.GetSizePixel().Height(); - - const Window* pConverter = _rControl.GetParent(); - Size aOffset = pConverter->LogicToPixel( Size( _nIndentAppFont, ( _eRelation == RelatedControls ? 3 : 6 ) ), MAP_APPFONT ); - - Point aControlPos( aReference.X() + aOffset.Width(), aReference.Y() + aOffset.Height() ); - _rControl.SetPosPixel( aControlPos ); - } - - //------------------------------------------------------------------------- - void LayoutHelper::fitSizeRightAligned( PushButton& io_button ) - { - const Point aOldPos = io_button.GetPosPixel(); - const Size aOldSize = io_button.GetSizePixel(); - const Size aMinSize( io_button.CalcMinimumSize() ); - if ( aMinSize.Width() > aOldSize.Width() ) - { - io_button.SetPosSizePixel( - aOldPos.X() + aOldSize.Width() - aMinSize.Width(), - 0, - aMinSize.Width(), - 0, - WINDOW_POSSIZE_X | WINDOW_POSSIZE_WIDTH - ); - } - } - -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/adminpages.hxx b/dbaccess/source/ui/dlg/adminpages.hxx deleted file mode 100644 index 5353791d2..000000000 --- a/dbaccess/source/ui/dlg/adminpages.hxx +++ /dev/null @@ -1,293 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_ADMINPAGES_HXX_ -#define _DBAUI_ADMINPAGES_HXX_ - -#include <sfx2/tabdlg.hxx> -#include "dsntypes.hxx" -#include "commontypes.hxx" -#include <svtools/wizardmachine.hxx> -#include <vcl/field.hxx> -#include <vcl/fixed.hxx> - - -class NumericField; -class Edit; -//......................................................................... -namespace dbaui -{ -//......................................................................... - /// helper class to wrap the savevalue and disable call - class SAL_NO_VTABLE ISaveValueWrapper - { - public: - virtual bool SaveValue() = 0; - virtual bool Disable() = 0; - }; - - template < class T > class OSaveValueWrapper : public ISaveValueWrapper - { - T* m_pSaveValue; - public: - OSaveValueWrapper(T* _pSaveValue) : m_pSaveValue(_pSaveValue) - { OSL_ENSURE(m_pSaveValue,"Illegal argument!"); } - - virtual bool SaveValue() { m_pSaveValue->SaveValue(); return true;} // bool return value only for stl - virtual bool Disable() { m_pSaveValue->Disable(); return true;} // bool return value only for stl - }; - - template < class T > class ODisableWrapper : public ISaveValueWrapper - { - T* m_pSaveValue; - public: - ODisableWrapper(T* _pSaveValue) : m_pSaveValue(_pSaveValue) - { OSL_ENSURE(m_pSaveValue,"Illegal argument!"); } - - virtual bool SaveValue() { return true;} // bool return value only for stl - virtual bool Disable() { m_pSaveValue->Disable(); return true;} // bool return value only for stl - }; - - struct TSaveValueWrapperFunctor : public ::std::unary_function< ISaveValueWrapper, bool> - { - bool operator() (ISaveValueWrapper* lhs) - { - return lhs->SaveValue(); - } - }; - struct TDisableWrapperFunctor : public ::std::unary_function< ISaveValueWrapper, bool> - { - bool operator() (ISaveValueWrapper* lhs) - { - return lhs->Disable(); - } - }; - - struct TDeleteWrapperFunctor : public ::std::unary_function< ISaveValueWrapper, bool> - { - bool operator() (ISaveValueWrapper* lhs) - { - delete lhs; - return true; - } - }; - - //========================================================================= - //= OGenericAdministrationPage - //========================================================================= - class IDatabaseSettingsDialog; - class IItemSetHelper; - class OGenericAdministrationPage :public SfxTabPage - ,public ::svt::IWizardPageController - { - private: - Link m_aModifiedHandler; /// to be called if something on the page has been modified - sal_Bool m_abEnableRoadmap; - protected: - IDatabaseSettingsDialog* m_pAdminDialog; - IItemSetHelper* m_pItemSetHelper; - FixedText* m_pFT_HeaderText; - - ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > - m_xORB; - public: - OGenericAdministrationPage(Window* _pParent, const ResId& _rId, const SfxItemSet& _rAttrSet); - ~OGenericAdministrationPage(); - - /// set a handler which gets called every time something on the page has been modified - void SetModifiedHandler(const Link& _rHandler) { m_aModifiedHandler = _rHandler; } - - /** Sets the ParentDialog - @param _pAdminDialog - the ParentDialog - @param _pItemSetHelper - the itemset helper - */ - inline void SetAdminDialog(IDatabaseSettingsDialog* _pDialog,IItemSetHelper* _pItemSetHelper) - { - OSL_ENSURE(_pDialog && _pItemSetHelper,"Values are NULL!"); - m_pAdminDialog = _pDialog; - m_pItemSetHelper = _pItemSetHelper; - } - - /** Sets the ServiceFactory - @param _rxORB - The service factory. - */ - virtual void SetServiceFactory(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > _rxORB) - { - m_xORB = _rxORB; - } - - /** opens a dialog filled with all data sources available for this type and - returns the selected on. - @param _eType - The type for which the data source dialog should be opened. - @param _sReturn - <OUT/> contains the selected name. - @return - <FALSE/> if an error occurred, otherwise <TRUE/> - */ - sal_Bool getSelectedDataSource(::rtl::OUString& _sReturn,::rtl::OUString& _sCurr); - - // svt::IWizardPageController - virtual void initializePage(); - virtual sal_Bool commitPage( ::svt::WizardTypes::CommitPageReason _eReason ); - virtual bool canAdvance() const; - - void SetRoadmapStateValue( sal_Bool _bDoEnable ) { m_abEnableRoadmap = _bDoEnable; } - bool GetRoadmapStateValue() const { return m_abEnableRoadmap; } - - protected: - /// default implementation: call FillItemSet, call prepareLeave, - virtual int DeactivatePage(SfxItemSet* pSet); - using SfxTabPage::DeactivatePage; - /// default implementation: call implInitControls with the given item set and _bSaveValue = sal_False - virtual void Reset(const SfxItemSet& _rCoreAttrs); - /// default implementation: call implInitControls with the given item set and _bSaveValue = sal_True - virtual void ActivatePage(const SfxItemSet& _rSet); - - // TabPage overridables - virtual void ActivatePage(); - - protected: - void callModifiedHdl() const { if (m_aModifiedHandler.IsSet()) m_aModifiedHandler.Call((void*)this); } - - /// called from within DeactivatePage. The page is allowed to be deactivated if this method returns sal_True - virtual sal_Bool prepareLeave() { return sal_True; } - - /** called from within Reset and ActivatePage, use to initialize the controls with the items from the given set - @param _bSaveValue if set to sal_True, the implementation should call SaveValue on all relevant controls - */ - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - - /// analyze the invalid and the readonly flag which may be present in the set - void getFlags(const SfxItemSet& _rSet, sal_Bool& _rValid, sal_Bool& _rReadonly); - - /** will be called inside <method>implInitControls</method> to save the value if necessary - @param _rControlList - The list must be filled with the controls. - It is not allowed to clear the list before pusching data into it. - */ - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) = 0; - - /** will be called inside <method>implInitControls</method> to disable if necessary - @param _rControlList - The list must be filled with the controls. - It is not allowed to clear the list before pusching data into it. - */ - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) = 0; - - public: - /** fills the Boolean value into the item set when the value changed. - @param _rSet - The item set where to put the new value into. - @param _pCheckBox - The check box which is checked. - @param _nID - The id in the itemset to set whith the new value. - @param _bChangedSomething - <TRUE/> if something changed otherwise <FALSE/> - @param _bRevertValue - set to <TRUE/> if the display value should be reverted before putting it into the set - */ - static void fillBool( SfxItemSet& _rSet, CheckBox* _pCheckBox, sal_uInt16 _nID, sal_Bool& _bChangedSomething, bool _bRevertValue = false); - - /** fills the int value into the item set when the value changed. - @param _rSet - The item set where to put the new value into. - @param _pEdit - The check box which is checked. - @param _nID - The id in the itemset to set whith the new value. - @param _bChangedSomething - <TRUE/> if something changed otherwise <FALSE/> - */ - static void fillInt32(SfxItemSet& _rSet,NumericField* _pEdit,sal_uInt16 _nID,sal_Bool& _bChangedSomething); - - /** fills the String value into the item set when the value changed. - @param _rSet - The item set where to put the new value into. - @param _pEdit - The check box which is checked. - @param _nID - The id in the itemset to set whith the new value. - @param _bChangedSomething - <TRUE/> if something changed otherwise <FALSE/> - */ - static void fillString(SfxItemSet& _rSet,Edit* _pEdit,sal_uInt16 _nID,sal_Bool& _bChangedSomething); - - protected: - // used to set the right Pane header of a wizard to bold - void SetControlFontWeight(Window* _pWindow, FontWeight _eWeight = WEIGHT_BOLD); - void SetHeaderText( sal_uInt16 _nFTResId, sal_uInt16 _StringResId); - - /** This link be used for controls where the tabpage does not need to take any special action when the control - is modified. The implementation just calls callModifiedHdl. - */ - DECL_LINK(OnControlModified, Control*); - DECL_LINK(OnTestConnectionClickHdl,PushButton*); - - /// may be used in SetXXXHdl calls to controls, is a link to <method>OnControlModified</method> - virtual Link getControlModifiedLink() { return LINK(this, OGenericAdministrationPage, OnControlModified); } - }; - - //========================================================================= - //= ControlRelation - //========================================================================= - enum ControlRelation - { - RelatedControls, UnrelatedControls - }; - - //========================================================================= - //= LayoutHelper - //========================================================================= - class LayoutHelper - { - public: - static void positionBelow( - const Control& _rReference, - Control& _rControl, - const ControlRelation _eRelation, - const long _nIndentAppFont - ); - /** fits the button size to be large enough to contain the buttons text - */ - static void fitSizeRightAligned( PushButton& io_button ); - // why is CalcMinimumSize not a virtual method of ::Window? - }; - -//......................................................................... -} // namespace dbaui -//......................................................................... - -#endif // _DBAUI_ADMINPAGES_HXX_ - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/adodatalinks.cxx b/dbaccess/source/ui/dlg/adodatalinks.cxx deleted file mode 100644 index 65362200d..000000000 --- a/dbaccess/source/ui/dlg/adodatalinks.cxx +++ /dev/null @@ -1,218 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - - -#if defined(WNT) -#if defined _MSC_VER -#pragma warning(push, 1) -#pragma warning(disable: 4917) -#endif -#include "msdasc.h" // OLE DB Service Component header -#if defined _MSC_VER -#pragma warning(push, 1) -#endif -#include "stdio.h" - -#include <initguid.h> // Include only once in your application -#include <adoid.h> // needed for CLSID_CADOConnection -#include <adoint.h> // needed for ADOConnection - -#include "adodatalinks.hxx" - -#ifdef __MINGW32__ -const IID IID_IDataSourceLocator = { 0x2206CCB2, 0x19C1, 0x11D1, { 0x89, 0xE0, 0x00, 0xC0, 0x4F, 0xD7, 0xA8, 0x29 } }; -const CLSID CLSID_DataLinks = { 0x2206CDB2, 0x19C1, 0x11D1, { 0x89, 0xE0, 0x00, 0xC0, 0x4F, 0xD7, 0xA8, 0x29 } }; -#endif - - -BSTR PromptEdit(long hWnd,BSTR connstr); -BSTR PromptNew(long hWnd); - -::rtl::OUString getAdoDatalink(long hWnd,::rtl::OUString& oldLink) -{ - ::rtl::OUString dataLink; - if (oldLink.getLength()) - { - dataLink=reinterpret_cast<sal_Unicode *>(PromptEdit(hWnd,(BSTR)oldLink.getStr())); - } - else - dataLink=reinterpret_cast<sal_Unicode *>(PromptNew(hWnd)); - return dataLink; -} -BSTR PromptNew(long hWnd) -{ - BSTR connstr=NULL; - HRESULT hr; - IDataSourceLocator* dlPrompt = NULL; - ADOConnection* piTmpConnection = NULL; - BSTR _result=NULL; - - // Initialize COM - ::CoInitialize( NULL ); - - // Instantiate DataLinks object. - hr = CoCreateInstance( - CLSID_DataLinks, //clsid -- Data Links UI - NULL, //pUnkOuter - CLSCTX_INPROC_SERVER, //dwClsContext - IID_IDataSourceLocator, //riid - (void**)&dlPrompt //ppvObj - ); - if( FAILED( hr ) ) - { - piTmpConnection->Release( ); - dlPrompt->Release( ); - return connstr; - } - - dlPrompt->put_hWnd(hWnd); - if( FAILED( hr ) ) - { - piTmpConnection->Release( ); - dlPrompt->Release( ); - return connstr; - } - - // Prompt for connection information. - hr = dlPrompt->PromptNew((IDispatch **)&piTmpConnection); - - if( FAILED( hr ) || !piTmpConnection ) - { - dlPrompt->Release( ); - return connstr; - } - - hr = piTmpConnection->get_ConnectionString(&_result); - if( FAILED( hr ) ) - { - piTmpConnection->Release( ); - dlPrompt->Release( ); - return connstr; - } - - piTmpConnection->Release( ); - dlPrompt->Release( ); - CoUninitialize(); - return _result; -} - -BSTR PromptEdit(long hWnd,BSTR connstr) -{ - HRESULT hr; - IDataSourceLocator* dlPrompt = NULL; - ADOConnection* piTmpConnection = NULL; - BSTR _result=NULL; - - // Initialize COM - ::CoInitialize( NULL ); - - hr = CoCreateInstance(CLSID_CADOConnection, - NULL, - CLSCTX_INPROC_SERVER, - IID_IADOConnection, - (LPVOID *)&piTmpConnection); - if( FAILED( hr ) ) - { - piTmpConnection->Release( ); - return connstr; - } - - - hr = piTmpConnection->put_ConnectionString(connstr); - if( FAILED( hr ) ) - { - piTmpConnection->Release( ); - return connstr; - } - - // Instantiate DataLinks object. - hr = CoCreateInstance( - CLSID_DataLinks, //clsid -- Data Links UI - NULL, //pUnkOuter - CLSCTX_INPROC_SERVER, //dwClsContext - IID_IDataSourceLocator, //riid - (void**)&dlPrompt //ppvObj - ); - if( FAILED( hr ) ) - { - piTmpConnection->Release( ); - dlPrompt->Release( ); - return connstr; - } - - dlPrompt->put_hWnd(hWnd); - if( FAILED( hr ) ) - { - piTmpConnection->Release( ); - dlPrompt->Release( ); - return connstr; - } - - VARIANT_BOOL pbSuccess; - - // Prompt for connection information. - hr = dlPrompt->PromptEdit((IDispatch **)&piTmpConnection,&pbSuccess); - if( SUCCEEDED( hr ) && sal_False == pbSuccess ) //if user press cancel then sal_False == pbSuccess - { - piTmpConnection->Release( ); - dlPrompt->Release( ); - return connstr; - } - - if( FAILED( hr ) ) - { - // Prompt for new connection information. - piTmpConnection->Release( ); - piTmpConnection = NULL; - hr = dlPrompt->PromptNew((IDispatch **)&piTmpConnection); - if( FAILED( hr ) || !piTmpConnection ) - { - dlPrompt->Release( ); - return connstr; - } - } - - hr = piTmpConnection->get_ConnectionString(&_result); - if( FAILED( hr ) ) - { - piTmpConnection->Release( ); - dlPrompt->Release( ); - return connstr; - } - - piTmpConnection->Release( ); - dlPrompt->Release( ); - CoUninitialize(); - return _result; -} -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/adodatalinks.hxx b/dbaccess/source/ui/dlg/adodatalinks.hxx deleted file mode 100644 index e7c08b3e1..000000000 --- a/dbaccess/source/ui/dlg/adodatalinks.hxx +++ /dev/null @@ -1,37 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_ADO_DATALINK_HXX_ -#define _DBAUI_ADO_DATALINK_HXX_ - -#include <osl/module.h> -#include "commontypes.hxx" - -::rtl::OUString getAdoDatalink(long hWnd,::rtl::OUString& oldLink); -#endif -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/adtabdlg.cxx b/dbaccess/source/ui/dlg/adtabdlg.cxx deleted file mode 100644 index 2834abf9b..000000000 --- a/dbaccess/source/ui/dlg/adtabdlg.cxx +++ /dev/null @@ -1,532 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "adtabdlg.hxx" -#include "adtabdlg.hrc" -#include "sqlmessage.hxx" -#include <tools/debug.hxx> -#include <tools/diagnose_ex.h> -#include <svtools/localresaccess.hxx> -#include "dbaccess_helpid.hrc" -#include "dbu_resource.hrc" -#include "dbu_dlg.hrc" -#include <sfx2/sfxsids.hrc> -#include "QueryTableView.hxx" -#include "QueryDesignView.hxx" -#include "querycontroller.hxx" -#include <connectivity/dbtools.hxx> -#include "browserids.hxx" -#include <com/sun/star/sdb/XQueriesSupplier.hpp> -#include <com/sun/star/sdbcx/XViewsSupplier.hpp> -#include <com/sun/star/sdbcx/XTablesSupplier.hpp> -#include <com/sun/star/container/XNameAccess.hpp> -#include "UITools.hxx" -#include "imageprovider.hxx" - -#include <comphelper/containermultiplexer.hxx> -#include "cppuhelper/basemutex.hxx" -#include <algorithm> - -// slot ids -using namespace dbaui; -using namespace ::com::sun::star; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::container; -using namespace ::com::sun::star::sdb; -using namespace ::com::sun::star::sdbc; -using namespace ::com::sun::star::sdbcx; -using namespace dbtools; - -//============================================================================== -//= TableObjectListFacade -//============================================================================== -TableObjectListFacade::~TableObjectListFacade() -{ -} - -//============================================================================== -//= TableListFacade -//============================================================================== -class TableListFacade : public ::cppu::BaseMutex - , public TableObjectListFacade - , public ::comphelper::OContainerListener -{ - OTableTreeListBox& m_rTableList; - Reference< XConnection > m_xConnection; - ::rtl::Reference< comphelper::OContainerListenerAdapter> - m_pContainerListener; - bool m_bAllowViews; - -public: - TableListFacade( OTableTreeListBox& _rTableList, const Reference< XConnection >& _rxConnection ) - : ::comphelper::OContainerListener(m_aMutex) - ,m_rTableList( _rTableList ) - ,m_xConnection( _rxConnection ) - ,m_bAllowViews(true) - { - } - virtual ~TableListFacade(); - - -private: - virtual void updateTableObjectList( bool _bAllowViews ); - virtual String getSelectedName( String& _out_rAliasName ) const; - virtual bool isLeafSelected() const; - // OContainerListener - virtual void _elementInserted( const ::com::sun::star::container::ContainerEvent& _rEvent ) throw(::com::sun::star::uno::RuntimeException); - virtual void _elementRemoved( const ::com::sun::star::container::ContainerEvent& _rEvent ) throw(::com::sun::star::uno::RuntimeException); - virtual void _elementReplaced( const ::com::sun::star::container::ContainerEvent& _rEvent ) throw(::com::sun::star::uno::RuntimeException); -}; - -TableListFacade::~TableListFacade() -{ - if ( m_pContainerListener.is() ) - m_pContainerListener->dispose(); -} -//------------------------------------------------------------------------------ -String TableListFacade::getSelectedName( String& _out_rAliasName ) const -{ - SvLBoxEntry* pEntry = m_rTableList.FirstSelected(); - if ( !pEntry ) - return String(); - - ::rtl::OUString aCatalog, aSchema, aTableName; - SvLBoxEntry* pSchema = m_rTableList.GetParent(pEntry); - if(pSchema && pSchema != m_rTableList.getAllObjectsEntry()) - { - SvLBoxEntry* pCatalog = m_rTableList.GetParent(pSchema); - if(pCatalog && pCatalog != m_rTableList.getAllObjectsEntry()) - aCatalog = m_rTableList.GetEntryText(pCatalog); - aSchema = m_rTableList.GetEntryText(pSchema); - } - aTableName = m_rTableList.GetEntryText(pEntry); - - ::rtl::OUString aComposedName; - try - { - Reference< XDatabaseMetaData > xMeta( m_xConnection->getMetaData(), UNO_QUERY_THROW ); - if ( !aCatalog.getLength() - && aSchema.getLength() - && xMeta->supportsCatalogsInDataManipulation() - && !xMeta->supportsSchemasInDataManipulation() ) - { - aCatalog = aSchema; - aSchema = ::rtl::OUString(); - } - - aComposedName = ::dbtools::composeTableName( - xMeta, aCatalog, aSchema, aTableName, sal_False, ::dbtools::eInDataManipulation ); - } - catch ( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - - _out_rAliasName = aTableName; - return aComposedName; -} -// ----------------------------------------------------------------------------- -void TableListFacade::_elementInserted( const container::ContainerEvent& /*_rEvent*/ ) throw(::com::sun::star::uno::RuntimeException) -{ - updateTableObjectList(m_bAllowViews); -} -// ----------------------------------------------------------------------------- -void TableListFacade::_elementRemoved( const container::ContainerEvent& /*_rEvent*/ ) throw(::com::sun::star::uno::RuntimeException) -{ - updateTableObjectList(m_bAllowViews); -} -// ----------------------------------------------------------------------------- -void TableListFacade::_elementReplaced( const container::ContainerEvent& /*_rEvent*/ ) throw(::com::sun::star::uno::RuntimeException) -{ -} -//------------------------------------------------------------------------------ -void TableListFacade::updateTableObjectList( bool _bAllowViews ) -{ - m_bAllowViews = _bAllowViews; - m_rTableList.Clear(); - try - { - Reference< XTablesSupplier > xTableSupp( m_xConnection, UNO_QUERY_THROW ); - - Reference< XViewsSupplier > xViewSupp; - Reference< XNameAccess > xTables, xViews; - Sequence< ::rtl::OUString > sTables, sViews; - - xTables = xTableSupp->getTables(); - if ( xTables.is() ) - { - if ( !m_pContainerListener.is() ) - { - Reference< XContainer> xContainer(xTables,uno::UNO_QUERY); - if ( xContainer.is() ) - m_pContainerListener = new ::comphelper::OContainerListenerAdapter(this,xContainer); - } - sTables = xTables->getElementNames(); - } - - xViewSupp.set( xTableSupp, UNO_QUERY ); - if ( xViewSupp.is() ) - { - xViews = xViewSupp->getViews(); - if ( xViews.is() ) - sViews = xViews->getElementNames(); - } - - // if no views are allowed remove the views also out the table name filter - if ( !_bAllowViews ) - { - const ::rtl::OUString* pTableBegin = sTables.getConstArray(); - const ::rtl::OUString* pTableEnd = pTableBegin + sTables.getLength(); - ::std::vector< ::rtl::OUString > aTables(pTableBegin,pTableEnd); - - const ::rtl::OUString* pViewBegin = sViews.getConstArray(); - const ::rtl::OUString* pViewEnd = pViewBegin + sViews.getLength(); - ::comphelper::TStringMixEqualFunctor aEqualFunctor; - for(;pViewBegin != pViewEnd;++pViewBegin) - aTables.erase(::std::remove_if(aTables.begin(),aTables.end(),::std::bind2nd(aEqualFunctor,*pViewBegin)),aTables.end()); - ::rtl::OUString* pTables = aTables.empty() ? 0 : &aTables[0]; - sTables = Sequence< ::rtl::OUString>(pTables, aTables.size()); - sViews = Sequence< ::rtl::OUString>(); - } - - m_rTableList.UpdateTableList( m_xConnection, sTables, sViews ); - SvLBoxEntry* pEntry = m_rTableList.First(); - while( pEntry && m_rTableList.GetModel()->HasChilds( pEntry ) ) - { - m_rTableList.Expand( pEntry ); - pEntry = m_rTableList.Next( pEntry ); - } - if ( pEntry ) - m_rTableList.Select(pEntry); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } -} - -//------------------------------------------------------------------------------ -bool TableListFacade::isLeafSelected() const -{ - SvLBoxEntry* pEntry = m_rTableList.FirstSelected(); - return pEntry && !m_rTableList.GetModel()->HasChilds( pEntry ); -} - -//============================================================================== -//= QueryListFacade -//============================================================================== -class QueryListFacade : public ::cppu::BaseMutex - , public TableObjectListFacade - , public ::comphelper::OContainerListener -{ - SvTreeListBox& m_rQueryList; - Reference< XConnection > m_xConnection; - ::rtl::Reference< comphelper::OContainerListenerAdapter> - m_pContainerListener; - -public: - QueryListFacade( SvTreeListBox& _rQueryList, const Reference< XConnection >& _rxConnection ) - : ::comphelper::OContainerListener(m_aMutex) - ,m_rQueryList( _rQueryList ) - ,m_xConnection( _rxConnection ) - { - } - virtual ~QueryListFacade(); -private: - virtual void updateTableObjectList( bool _bAllowViews ); - virtual String getSelectedName( String& _out_rAliasName ) const; - virtual bool isLeafSelected() const; - // OContainerListener - virtual void _elementInserted( const ::com::sun::star::container::ContainerEvent& _rEvent ) throw(::com::sun::star::uno::RuntimeException); - virtual void _elementRemoved( const ::com::sun::star::container::ContainerEvent& _rEvent ) throw(::com::sun::star::uno::RuntimeException); - virtual void _elementReplaced( const ::com::sun::star::container::ContainerEvent& _rEvent ) throw(::com::sun::star::uno::RuntimeException); -}; -QueryListFacade::~QueryListFacade() -{ - if ( m_pContainerListener.is() ) - m_pContainerListener->dispose(); -} -// ----------------------------------------------------------------------------- -void QueryListFacade::_elementInserted( const container::ContainerEvent& _rEvent ) throw(::com::sun::star::uno::RuntimeException) -{ - ::rtl::OUString sName; - if ( _rEvent.Accessor >>= sName ) - m_rQueryList.InsertEntry( sName ); -} -// ----------------------------------------------------------------------------- -void QueryListFacade::_elementRemoved( const container::ContainerEvent& /*_rEvent*/ ) throw(::com::sun::star::uno::RuntimeException) -{ - updateTableObjectList(true); -} -// ----------------------------------------------------------------------------- -void QueryListFacade::_elementReplaced( const container::ContainerEvent& /*_rEvent*/ ) throw(::com::sun::star::uno::RuntimeException) -{ -} - -//------------------------------------------------------------------------------ -void QueryListFacade::updateTableObjectList( bool /*_bAllowViews*/ ) -{ - m_rQueryList.Clear(); - try - { - ImageProvider aImageProvider( m_xConnection ); - Image aQueryImage( aImageProvider.getDefaultImage( DatabaseObject::QUERY ) ); - - m_rQueryList.SetDefaultExpandedEntryBmp( aQueryImage ); - m_rQueryList.SetDefaultCollapsedEntryBmp( aQueryImage ); - - Reference< XQueriesSupplier > xSuppQueries( m_xConnection, UNO_QUERY_THROW ); - Reference< XNameAccess > xQueries( xSuppQueries->getQueries(), UNO_QUERY_THROW ); - if ( !m_pContainerListener.is() ) - { - Reference< XContainer> xContainer(xQueries,UNO_QUERY_THROW); - m_pContainerListener = new ::comphelper::OContainerListenerAdapter(this,xContainer); - } - Sequence< ::rtl::OUString > aQueryNames = xQueries->getElementNames(); - - const ::rtl::OUString* pQuery = aQueryNames.getConstArray(); - const ::rtl::OUString* pQueryEnd = aQueryNames.getConstArray() + aQueryNames.getLength(); - while ( pQuery != pQueryEnd ) - m_rQueryList.InsertEntry( *pQuery++ ); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } -} - -//------------------------------------------------------------------------------ -String QueryListFacade::getSelectedName( String& _out_rAliasName ) const -{ - String sSelected; - SvLBoxEntry* pEntry = m_rQueryList.FirstSelected(); - if ( pEntry ) - sSelected = _out_rAliasName = m_rQueryList.GetEntryText( pEntry ); - return sSelected; -} - -//------------------------------------------------------------------------------ -bool QueryListFacade::isLeafSelected() const -{ - SvLBoxEntry* pEntry = m_rQueryList.FirstSelected(); - return pEntry && !m_rQueryList.GetModel()->HasChilds( pEntry ); -} - -//============================================================================== -//= OAddTableDlg -//============================================================================== -//------------------------------------------------------------------------------ -OAddTableDlg::OAddTableDlg( Window* pParent, IAddTableDialogContext& _rContext ) - :ModelessDialog( pParent, ModuleRes(DLG_JOIN_TABADD) ) - ,m_aCaseTables( this, ModuleRes( RB_CASE_TABLES ) ) - ,m_aCaseQueries( this, ModuleRes( RB_CASE_QUERIES ) ) - ,m_aTableList( this, NULL, ModuleRes( LB_TABLE_OR_QUERY ), sal_False ) - ,m_aQueryList( this, ModuleRes( LB_TABLE_OR_QUERY ) ) - ,aAddButton( this, ModuleRes( PB_ADDTABLE ) ) - ,aCloseButton( this, ModuleRes( PB_CLOSE ) ) - ,aHelpButton( this, ModuleRes( PB_HELP ) ) - ,m_rContext( _rContext ) -{ - // der Close-Button hat schon einen Standard-Help-Text, den ich aber hier nicht haben moechte, also den Text ruecksetzen - // und eine neue ID verteilen - aCloseButton.SetHelpText(String()); - aCloseButton.SetHelpId(HID_JOINSH_ADDTAB_CLOSE); - - m_aTableList.SetHelpId( HID_JOINSH_ADDTAB_TABLELIST ); - m_aQueryList.SetHelpId( HID_JOINSH_ADDTAB_QUERYLIST ); - - ////////////////////////////////////////////////////////////////////// - m_aCaseTables.SetClickHdl( LINK( this, OAddTableDlg, OnTypeSelected ) ); - m_aCaseQueries.SetClickHdl( LINK( this, OAddTableDlg, OnTypeSelected ) ); - aAddButton.SetClickHdl( LINK( this, OAddTableDlg, AddClickHdl ) ); - aCloseButton.SetClickHdl( LINK( this, OAddTableDlg, CloseClickHdl ) ); - m_aTableList.SetDoubleClickHdl( LINK( this, OAddTableDlg, TableListDoubleClickHdl ) ); - m_aTableList.SetSelectHdl( LINK( this, OAddTableDlg, TableListSelectHdl ) ); - m_aQueryList.SetDoubleClickHdl( LINK( this, OAddTableDlg, TableListDoubleClickHdl ) ); - m_aQueryList.SetSelectHdl( LINK( this, OAddTableDlg, TableListSelectHdl ) ); - - ////////////////////////////////////////////////////////////////////// - m_aTableList.EnableInplaceEditing( sal_False ); - m_aTableList.SetStyle(m_aTableList.GetStyle() | WB_BORDER | WB_HASLINES |WB_HASBUTTONS | WB_HASBUTTONSATROOT | WB_HASLINESATROOT | WB_SORT | WB_HSCROLL ); - m_aTableList.EnableCheckButton( NULL ); // do not show any buttons - m_aTableList.SetSelectionMode( SINGLE_SELECTION ); - m_aTableList.notifyHiContrastChanged(); - m_aTableList.suppressEmptyFolders(); - - ////////////////////////////////////////////////////////////////////// - m_aQueryList.EnableInplaceEditing( sal_False ); - m_aQueryList.SetSelectionMode( SINGLE_SELECTION ); - - ////////////////////////////////////////////////////////////////////// - if ( !m_rContext.allowQueries() ) - { - m_aCaseTables.Hide(); - m_aCaseQueries.Hide(); - - long nPixelDiff = m_aTableList.GetPosPixel().Y() - m_aCaseTables.GetPosPixel().Y(); - - Point aListPos( m_aTableList.GetPosPixel() ); - aListPos.Y() -= nPixelDiff; - - Size aListSize( m_aTableList.GetSizePixel() ); - aListSize.Height() += nPixelDiff; - - m_aTableList.SetPosSizePixel( aListPos, aListSize ); - } - - FreeResource(); - - SetText( getDialogTitleForContext( m_rContext ) ); -} - -//------------------------------------------------------------------------------ -OAddTableDlg::~OAddTableDlg() -{ - m_rContext.onWindowClosing( this ); -} - -//------------------------------------------------------------------------------ -void OAddTableDlg::impl_switchTo( ObjectList _eList ) -{ - switch ( _eList ) - { - case Tables: - m_aTableList.Show( sal_True ); m_aCaseTables.Check( sal_True ); - m_aQueryList.Show( sal_False ); m_aCaseQueries.Check( sal_False ); - m_pCurrentList.reset( new TableListFacade( m_aTableList, m_rContext.getConnection() ) ); - m_aTableList.GrabFocus(); - break; - - case Queries: - m_aTableList.Show( sal_False ); m_aCaseTables.Check( sal_False ); - m_aQueryList.Show( sal_True ); m_aCaseQueries.Check( sal_True ); - m_pCurrentList.reset( new QueryListFacade( m_aQueryList, m_rContext.getConnection() ) ); - m_aQueryList.GrabFocus(); - break; - } - m_pCurrentList->updateTableObjectList( m_rContext.allowViews() ); -} - -//------------------------------------------------------------------------------ -void OAddTableDlg::Update() -{ - if ( !m_pCurrentList.get() ) - impl_switchTo( Tables ); - else - m_pCurrentList->updateTableObjectList( m_rContext.allowViews() ); -} - -//------------------------------------------------------------------------------ -void OAddTableDlg::impl_addTable() -{ - if ( m_pCurrentList->isLeafSelected() ) - { - String sSelectedName, sAliasName; - sSelectedName = m_pCurrentList->getSelectedName( sAliasName ); - - m_rContext.addTableWindow( sSelectedName, sAliasName ); - } -} - -//------------------------------------------------------------------------------ -IMPL_LINK( OAddTableDlg, AddClickHdl, Button*, /*pButton*/ ) -{ - TableListDoubleClickHdl(NULL); - return 0; -} - -//------------------------------------------------------------------------------ -IMPL_LINK( OAddTableDlg, TableListDoubleClickHdl, void*, /*EMPTY_ARG*/ ) -{ - if ( impl_isAddAllowed() ) - { - impl_addTable(); - if ( !impl_isAddAllowed() ) - Close(); - return 1L; // handled - } - - return 0L; // not handled -} - -//------------------------------------------------------------------------------ -IMPL_LINK( OAddTableDlg, TableListSelectHdl, void*, /*EMPTY_ARG*/ ) -{ - aAddButton.Enable( m_pCurrentList->isLeafSelected() ); - return 0; -} - -//------------------------------------------------------------------------------ -IMPL_LINK( OAddTableDlg, CloseClickHdl, Button*, /*pButton*/ ) -{ - return Close(); -} - -//------------------------------------------------------------------------------ -IMPL_LINK( OAddTableDlg, OnTypeSelected, void*, /*EMPTY_ARG*/ ) -{ - if ( m_aCaseTables.IsChecked() ) - impl_switchTo( Tables ); - else - impl_switchTo( Queries ); - return 0; -} - -//------------------------------------------------------------------------------ -sal_Bool OAddTableDlg::Close() -{ - m_rContext.onWindowClosing( this ); - return ModelessDialog::Close(); -} - -//------------------------------------------------------------------------------ -bool OAddTableDlg::impl_isAddAllowed() -{ - return m_rContext.allowAddition(); -} - -//------------------------------------------------------------------------------ -String OAddTableDlg::getDialogTitleForContext( IAddTableDialogContext& _rContext ) -{ - String sTitle; - - ::svt::OLocalResourceAccess aLocalRes( ModuleRes( DLG_JOIN_TABADD ), RSC_MODELESSDIALOG ); - if ( _rContext.allowQueries() ) - sTitle = String( ModuleRes( STR_ADD_TABLE_OR_QUERY ) ); - else - sTitle = String( ModuleRes( STR_ADD_TABLES ) ); - - return sTitle; -} - -// ----------------------------------------------------------------------------- - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/adtabdlg.hrc b/dbaccess/source/ui/dlg/adtabdlg.hrc deleted file mode 100644 index ce0a9ba4f..000000000 --- a/dbaccess/source/ui/dlg/adtabdlg.hrc +++ /dev/null @@ -1,47 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef DBAUI_ADTABDLG_HRC -#define DBAUI_ADTABDLG_HRC - -#define LB_TABLE_OR_QUERY 1 -#define LB_DATABASE 2 - -#define FT_DATABASE 1 - -#define PB_ADDTABLE 1 -#define PB_CLOSE 2 -#define PB_HELP 3 - -#define RB_CASE_TABLES 1 -#define RB_CASE_QUERIES 2 - -#define STR_ADD_TABLES 1 -#define STR_ADD_TABLE_OR_QUERY 2 - -#endif // DBAUI_ADTABDLG_HRC - - diff --git a/dbaccess/source/ui/dlg/adtabdlg.src b/dbaccess/source/ui/dlg/adtabdlg.src deleted file mode 100644 index deb914dd8..000000000 --- a/dbaccess/source/ui/dlg/adtabdlg.src +++ /dev/null @@ -1,108 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - - -#ifndef DBAUI_ADTABDLG_HRC -#include "adtabdlg.hrc" -#endif -#include "dbaccess_helpid.hrc" -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif - -ModelessDialog DLG_JOIN_TABADD -{ - OutputSize = TRUE ; - SVLook = TRUE ; - HelpID = HID_DLG_JOIN_TABADD ; - Size = MAP_APPFONT ( 178 , 147 ) ; - Moveable = TRUE ; - Closeable = TRUE ; - Hide = TRUE ; - - RadioButton RB_CASE_TABLES - { - HelpID = "dbaccess:RadioButton:DLG_JOIN_TABADD:RB_CASE_TABLES"; - Pos = MAP_APPFONT( 6, 6 ); - Size = MAP_APPFONT( 50, 8 ); - Text [ en-US ] = "Tables"; - }; - - RadioButton RB_CASE_QUERIES - { - HelpID = "dbaccess:RadioButton:DLG_JOIN_TABADD:RB_CASE_QUERIES"; - Pos = MAP_APPFONT( 62, 6 ); - Size = MAP_APPFONT( 50, 8 ); - Text [ en-US ] = "Queries"; - }; - - Control LB_TABLE_OR_QUERY - { - Border = TRUE ; - Pos = MAP_APPFONT ( 6 , 18 ) ; - Size = MAP_APPFONT ( 106 , 122 ) ; - TabStop = TRUE ; - Hide = TRUE; - Group = TRUE; - }; - - PushButton PB_ADDTABLE - { - HelpID = "dbaccess:PushButton:DLG_JOIN_TABADD:PB_ADDTABLE"; - Pos = MAP_APPFONT ( 123 , 6 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - Text [ en-US ] = "~Add" ; - TabStop = TRUE ; - DefButton = TRUE ; - }; - - CancelButton PB_CLOSE - { - Pos = MAP_APPFONT ( 123 , 22 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - HelpId = HID_JOINSH_ADDTAB_CLOSE; - Text [ en-US ] = "~Close" ; - TabStop = TRUE ; - }; - - HelpButton PB_HELP - { - Pos = MAP_APPFONT ( 123 , 43 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - - String STR_ADD_TABLES - { - Text [ en-US ] = "Add Tables"; - }; - - String STR_ADD_TABLE_OR_QUERY - { - Text [ en-US ] = "Add Table or Query" ; - }; -}; diff --git a/dbaccess/source/ui/dlg/advancedsettings.cxx b/dbaccess/source/ui/dlg/advancedsettings.cxx deleted file mode 100644 index 6fa8b0f49..000000000 --- a/dbaccess/source/ui/dlg/advancedsettings.cxx +++ /dev/null @@ -1,607 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "advancedsettings.hxx" -#include "advancedsettingsdlg.hxx" -#include "moduledbu.hxx" -#include "dsitems.hxx" -#include "DbAdminImpl.hxx" -#include "DriverSettings.hxx" -#include "optionalboolitem.hxx" -#include "dbu_resource.hrc" -#include "dbu_dlg.hrc" -#include "dbadmin.hrc" -#include "advancedsettings.hrc" - -/** === begin UNO includes === **/ -/** === end UNO includes === **/ - -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include <svl/stritem.hxx> - -#include <vcl/msgbox.hxx> - -//........................................................................ -namespace dbaui -{ -//........................................................................ - - /** === begin UNO using === **/ - using ::com::sun::star::uno::Reference; - using ::com::sun::star::lang::XMultiServiceFactory; - using ::com::sun::star::uno::Any; - using ::com::sun::star::beans::XPropertySet; - using ::com::sun::star::sdbc::XConnection; - using ::com::sun::star::sdbc::XDriver; - /** === end UNO using === **/ - - //======================================================================== - //= SpecialSettingsPage - //======================================================================== - struct BooleanSettingDesc - { - CheckBox** ppControl; // the dialog's control which displays this setting - sal_uInt16 nControlResId; // the resource ID to load the control from - sal_uInt16 nItemId; // the ID of the item (in an SfxItemSet) which corresponds to this setting - bool bInvertedDisplay; // true if and only if the checkbox is checked when the item is sal_False, and vice versa - }; - - //======================================================================== - //= SpecialSettingsPage - //======================================================================== - SpecialSettingsPage::SpecialSettingsPage( Window* pParent, const SfxItemSet& _rCoreAttrs, const DataSourceMetaData& _rDSMeta ) - :OGenericAdministrationPage( pParent, ModuleRes( PAGE_ADVANCED_SETTINGS_SPECIAL ), _rCoreAttrs ) - ,m_aTopLine( this, ModuleRes( FL_DATAHANDLING ) ) - ,m_pIsSQL92Check( NULL ) - ,m_pAppendTableAlias( NULL ) - ,m_pAsBeforeCorrelationName( NULL ) - ,m_pEnableOuterJoin( NULL ) - ,m_pIgnoreDriverPrivileges( NULL ) - ,m_pParameterSubstitution( NULL ) - ,m_pSuppressVersionColumn( NULL ) - ,m_pCatalog( NULL ) - ,m_pSchema( NULL ) - ,m_pIndexAppendix( NULL ) - ,m_pDosLineEnds( NULL ) - ,m_pCheckRequiredFields( NULL ) - ,m_pIgnoreCurrency(NULL) - ,m_pEscapeDateTime(NULL) - ,m_pPrimaryKeySupport(NULL) - ,m_pRespectDriverResultSetType(NULL) - ,m_pBooleanComparisonModeLabel( NULL ) - ,m_pBooleanComparisonMode( NULL ) - ,m_pMaxRowScanLabel( NULL ) - ,m_pMaxRowScan( NULL ) - ,m_aControlDependencies() - ,m_aBooleanSettings() - ,m_bHasBooleanComparisonMode( _rDSMeta.getFeatureSet().has( DSID_BOOLEANCOMPARISON ) ) - ,m_bHasMaxRowScan( _rDSMeta.getFeatureSet().has( DSID_MAX_ROW_SCAN ) ) - { - impl_initBooleanSettings(); - - const FeatureSet& rFeatures( _rDSMeta.getFeatureSet() ); - // create all the check boxes for the boolean settings - for ( BooleanSettingDescs::const_iterator setting = m_aBooleanSettings.begin(); - setting != m_aBooleanSettings.end(); - ++setting - ) - { - sal_uInt16 nItemId = setting->nItemId; - if ( rFeatures.has( nItemId ) ) - { - sal_uInt16 nResourceId = setting->nControlResId; - (*setting->ppControl) = new CheckBox( this, ModuleRes( nResourceId ) ); - (*setting->ppControl)->SetClickHdl( getControlModifiedLink() ); - - // check whether this must be a tristate check box - const SfxPoolItem& rItem = _rCoreAttrs.Get( nItemId ); - if ( rItem.ISA( OptionalBoolItem ) ) - (*setting->ppControl)->EnableTriState( sal_True ); - } - } - - if ( m_pAsBeforeCorrelationName && m_pAppendTableAlias ) - // make m_pAsBeforeCorrelationName depend on m_pAppendTableAlias - m_aControlDependencies.enableOnCheckMark( *m_pAppendTableAlias, *m_pAsBeforeCorrelationName ); - - // move the controls to the appropriate positions - Point aPos( m_aTopLine.GetPosPixel() ); - aPos.Move( 0, m_aTopLine.GetSizePixel().Height() ); - Size aFirstDistance( LogicToPixel( Size( INDENTED_X, RELATED_CONTROLS ), MAP_APPFONT ) ); - aPos.Move( aFirstDistance.Width(), aFirstDistance.Height() ); - - Size aUnrelatedControls( LogicToPixel( Size( RELATED_CONTROLS, RELATED_CONTROLS ), MAP_APPFONT ) ); - - for ( BooleanSettingDescs::const_iterator setting = m_aBooleanSettings.begin(); - setting != m_aBooleanSettings.end(); - ++setting - ) - { - if ( !*setting->ppControl ) - continue; - - (*setting->ppControl)->SetPosPixel( aPos ); - aPos.Move( 0, (*setting->ppControl)->GetSizePixel().Height() ); - aPos.Move( 0, aUnrelatedControls.Height() ); - } - - // create the controls for the boolean comparison mode - if ( m_bHasBooleanComparisonMode ) - { - m_pBooleanComparisonModeLabel = new FixedText( this, ModuleRes( FT_BOOLEANCOMPARISON ) ); - m_pBooleanComparisonMode = new ListBox( this, ModuleRes( LB_BOOLEANCOMPARISON ) ); - m_pBooleanComparisonMode->SetDropDownLineCount( 4 ); - m_pBooleanComparisonMode->SetSelectHdl( getControlModifiedLink() ); - - Point aLabelPos( m_pBooleanComparisonModeLabel->GetPosPixel() ); - Point aControlPos( m_pBooleanComparisonMode->GetPosPixel() ); - long nMoveUp = aControlPos.Y() - aPos.Y(); - - m_pBooleanComparisonModeLabel->SetPosPixel( Point( aLabelPos.X(), aLabelPos.Y() - nMoveUp ) ); - m_pBooleanComparisonMode->SetPosPixel( Point( aControlPos.X(), aControlPos.Y() - nMoveUp ) ); - } - // create the controls for the max row scan - if ( m_bHasMaxRowScan ) - { - m_pMaxRowScanLabel = new FixedText( this, ModuleRes( FT_MAXROWSCAN ) ); - m_pMaxRowScan = new NumericField( this, ModuleRes( NF_MAXROWSCAN ) ); - m_pMaxRowScan->SetModifyHdl(getControlModifiedLink()); - m_pMaxRowScan->SetUseThousandSep(sal_False); - - Point aLabelPos( m_pMaxRowScanLabel->GetPosPixel() ); - Point aControlPos( m_pMaxRowScan->GetPosPixel() ); - long nMoveUp = aControlPos.Y() - aPos.Y(); - - m_pMaxRowScanLabel->SetPosPixel( Point( aLabelPos.X(), aLabelPos.Y() - nMoveUp ) ); - m_pMaxRowScan->SetPosPixel( Point( aControlPos.X(), aControlPos.Y() - nMoveUp ) ); - } - - FreeResource(); - } - - // ----------------------------------------------------------------------- - SpecialSettingsPage::~SpecialSettingsPage() - { - m_aControlDependencies.clear(); - - DELETEZ( m_pIsSQL92Check ); - DELETEZ( m_pAppendTableAlias ); - DELETEZ( m_pAsBeforeCorrelationName ); - DELETEZ( m_pParameterSubstitution ); - DELETEZ( m_pIgnoreDriverPrivileges ); - DELETEZ( m_pSuppressVersionColumn ); - DELETEZ( m_pEnableOuterJoin ); - DELETEZ( m_pCatalog ); - DELETEZ( m_pSchema ); - DELETEZ( m_pIndexAppendix ); - DELETEZ( m_pDosLineEnds ); - DELETEZ( m_pCheckRequiredFields ); - DELETEZ( m_pIgnoreCurrency ); - DELETEZ( m_pEscapeDateTime ); - DELETEZ( m_pPrimaryKeySupport ); - DELETEZ( m_pRespectDriverResultSetType ); - DELETEZ( m_pBooleanComparisonModeLabel ); - DELETEZ( m_pBooleanComparisonMode ); - DELETEZ( m_pMaxRowScanLabel ); - DELETEZ( m_pMaxRowScan ); - } - - // ----------------------------------------------------------------------- - void SpecialSettingsPage::impl_initBooleanSettings() - { - OSL_PRECOND( m_aBooleanSettings.empty(), "SpecialSettingsPage::impl_initBooleanSettings: called twice!" ); - - // for easier maintainance, write the table in this form, then copy it to m_aBooleanSettings - BooleanSettingDesc aSettings[] = { - { &m_pIsSQL92Check, CB_SQL92CHECK, DSID_SQL92CHECK, false }, - { &m_pAppendTableAlias, CB_APPENDTABLEALIAS, DSID_APPEND_TABLE_ALIAS, false }, - { &m_pAsBeforeCorrelationName, CB_AS_BEFORE_CORR_NAME, DSID_AS_BEFORE_CORRNAME, false }, - { &m_pEnableOuterJoin, CB_ENABLEOUTERJOIN, DSID_ENABLEOUTERJOIN, false }, - { &m_pIgnoreDriverPrivileges, CB_IGNOREDRIVER_PRIV, DSID_IGNOREDRIVER_PRIV, false }, - { &m_pParameterSubstitution, CB_PARAMETERNAMESUBST, DSID_PARAMETERNAMESUBST, false }, - { &m_pSuppressVersionColumn, CB_SUPPRESVERSIONCL, DSID_SUPPRESSVERSIONCL, true }, - { &m_pCatalog, CB_CATALOG, DSID_CATALOG, false }, - { &m_pSchema, CB_SCHEMA, DSID_SCHEMA, false }, - { &m_pIndexAppendix, CB_IGNOREINDEXAPPENDIX, DSID_INDEXAPPENDIX, false }, - { &m_pDosLineEnds, CB_DOSLINEENDS, DSID_DOSLINEENDS, false }, - { &m_pCheckRequiredFields, CB_CHECK_REQUIRED, DSID_CHECK_REQUIRED_FIELDS, false }, - { &m_pIgnoreCurrency, CB_IGNORECURRENCY, DSID_IGNORECURRENCY, false }, - { &m_pEscapeDateTime, CB_ESCAPE_DATETIME, DSID_ESCAPE_DATETIME, false }, - { &m_pPrimaryKeySupport, CB_PRIMARY_KEY_SUPPORT, DSID_PRIMARY_KEY_SUPPORT, false }, - { &m_pRespectDriverResultSetType, CB_RESPECTRESULTSETTYPE,DSID_RESPECTRESULTSETTYPE, false }, - { NULL, 0, 0, false } - }; - - for ( const BooleanSettingDesc* pCopy = aSettings; pCopy->nItemId != 0; ++pCopy ) - { - m_aBooleanSettings.push_back( *pCopy ); - } - } - - // ----------------------------------------------------------------------- - void SpecialSettingsPage::fillWindows( ::std::vector< ISaveValueWrapper* >& _rControlList ) - { - if ( m_bHasBooleanComparisonMode ) - { - _rControlList.push_back( new ODisableWrapper< FixedText >( m_pBooleanComparisonModeLabel ) ); - } - if ( m_bHasMaxRowScan ) - { - _rControlList.push_back( new ODisableWrapper< FixedText >( m_pMaxRowScanLabel ) ); - } - } - - // ----------------------------------------------------------------------- - void SpecialSettingsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - for ( BooleanSettingDescs::const_iterator setting = m_aBooleanSettings.begin(); - setting != m_aBooleanSettings.end(); - ++setting - ) - { - if ( *setting->ppControl ) - { - _rControlList.push_back( new OSaveValueWrapper< CheckBox >( *setting->ppControl ) ); - } - } - - if ( m_bHasBooleanComparisonMode ) - _rControlList.push_back( new OSaveValueWrapper< ListBox >( m_pBooleanComparisonMode ) ); - if ( m_bHasMaxRowScan ) - _rControlList.push_back(new OSaveValueWrapper<NumericField>(m_pMaxRowScan)); - } - - // ----------------------------------------------------------------------- - void SpecialSettingsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags( _rSet, bValid, bReadonly ); - - if ( !bValid ) - { - OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue); - return; - } - - // the boolean items - for ( BooleanSettingDescs::const_iterator setting = m_aBooleanSettings.begin(); - setting != m_aBooleanSettings.end(); - ++setting - ) - { - if ( !*setting->ppControl ) - continue; - - ::boost::optional< bool > aValue; - - SFX_ITEMSET_GET( _rSet, pItem, SfxPoolItem, setting->nItemId, sal_True ); - if ( pItem->ISA( SfxBoolItem ) ) - { - aValue.reset( PTR_CAST( SfxBoolItem, pItem )->GetValue() ); - } - else if ( pItem->ISA( OptionalBoolItem ) ) - { - aValue = PTR_CAST( OptionalBoolItem, pItem )->GetFullValue(); - } - else - OSL_FAIL( "SpecialSettingsPage::implInitControls: unknown boolean item type!" ); - - if ( !aValue ) - { - (*setting->ppControl)->SetState( STATE_DONTKNOW ); - } - else - { - sal_Bool bValue = *aValue; - if ( setting->bInvertedDisplay ) - bValue = !bValue; - (*setting->ppControl)->Check( bValue ); - } - } - - // the non-boolean items - if ( m_bHasBooleanComparisonMode ) - { - SFX_ITEMSET_GET( _rSet, pBooleanComparison, SfxInt32Item, DSID_BOOLEANCOMPARISON, sal_True ); - m_pBooleanComparisonMode->SelectEntryPos( static_cast< sal_uInt16 >( pBooleanComparison->GetValue() ) ); - } - - if ( m_bHasMaxRowScan ) - { - SFX_ITEMSET_GET(_rSet, pMaxRowScan, SfxInt32Item, DSID_MAX_ROW_SCAN, sal_True); - m_pMaxRowScan->SetValue(pMaxRowScan->GetValue()); - } - - OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue); - } - - // ----------------------------------------------------------------------- - sal_Bool SpecialSettingsPage::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = sal_False; - - // the boolean items - for ( BooleanSettingDescs::const_iterator setting = m_aBooleanSettings.begin(); - setting != m_aBooleanSettings.end(); - ++setting - ) - { - if ( !*setting->ppControl ) - continue; - fillBool( _rSet, *setting->ppControl, setting->nItemId, bChangedSomething, setting->bInvertedDisplay ); - } - - // the non-boolean items - if ( m_bHasBooleanComparisonMode ) - { - if ( m_pBooleanComparisonMode->GetSelectEntryPos() != m_pBooleanComparisonMode->GetSavedValue() ) - { - _rSet.Put( SfxInt32Item( DSID_BOOLEANCOMPARISON, m_pBooleanComparisonMode->GetSelectEntryPos() ) ); - bChangedSomething = sal_True; - } - } - if ( m_bHasMaxRowScan ) - { - fillInt32(_rSet,m_pMaxRowScan,DSID_MAX_ROW_SCAN,bChangedSomething); - } - return bChangedSomething; - } - - //======================================================================== - //= GeneratedValuesPage - //======================================================================== - //------------------------------------------------------------------------ - GeneratedValuesPage::GeneratedValuesPage( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OGenericAdministrationPage(pParent, ModuleRes( PAGE_GENERATED_VALUES ), _rCoreAttrs) - ,m_aAutoFixedLine ( this, ModuleRes( FL_SEPARATORAUTO ) ) - ,m_aAutoRetrievingEnabled( this, ModuleRes( CB_RETRIEVE_AUTO ) ) - ,m_aAutoIncrementLabel ( this, ModuleRes( FT_AUTOINCREMENTVALUE ) ) - ,m_aAutoIncrement ( this, ModuleRes( ET_AUTOINCREMENTVALUE ) ) - ,m_aAutoRetrievingLabel ( this, ModuleRes( FT_RETRIEVE_AUTO ) ) - ,m_aAutoRetrieving ( this, ModuleRes( ET_RETRIEVE_AUTO ) ) - { - m_aAutoRetrievingEnabled.SetClickHdl( getControlModifiedLink() ); - m_aAutoIncrement.SetModifyHdl( getControlModifiedLink() ); - m_aAutoRetrieving.SetModifyHdl( getControlModifiedLink() ); - - m_aControlDependencies.enableOnCheckMark( m_aAutoRetrievingEnabled, - m_aAutoIncrementLabel, m_aAutoIncrement, m_aAutoRetrievingLabel, m_aAutoRetrieving ); - - FreeResource(); - } - - // ----------------------------------------------------------------------- - GeneratedValuesPage::~GeneratedValuesPage() - { - m_aControlDependencies.clear(); - } - - // ----------------------------------------------------------------------- - void GeneratedValuesPage::fillWindows( ::std::vector< ISaveValueWrapper* >& _rControlList ) - { - _rControlList.push_back( new ODisableWrapper< FixedLine >( &m_aAutoFixedLine ) ); - _rControlList.push_back( new ODisableWrapper< FixedText >( &m_aAutoIncrementLabel ) ); - _rControlList.push_back( new ODisableWrapper< FixedText >( &m_aAutoRetrievingLabel ) ); - } - - // ----------------------------------------------------------------------- - void GeneratedValuesPage::fillControls( ::std::vector< ISaveValueWrapper* >& _rControlList ) - { - _rControlList.push_back( new OSaveValueWrapper< CheckBox >( &m_aAutoRetrievingEnabled ) ); - _rControlList.push_back( new OSaveValueWrapper< Edit >( &m_aAutoIncrement ) ); - _rControlList.push_back( new OSaveValueWrapper< Edit >( &m_aAutoRetrieving ) ); - } - - // ----------------------------------------------------------------------- - void GeneratedValuesPage::implInitControls( const SfxItemSet& _rSet, sal_Bool _bSaveValue ) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - // collect the items - SFX_ITEMSET_GET(_rSet, pAutoIncrementItem, SfxStringItem, DSID_AUTOINCREMENTVALUE, sal_True); - SFX_ITEMSET_GET(_rSet, pAutoRetrieveValueItem, SfxStringItem, DSID_AUTORETRIEVEVALUE, sal_True); - SFX_ITEMSET_GET(_rSet, pAutoRetrieveEnabledItem, SfxBoolItem, DSID_AUTORETRIEVEENABLED, sal_True); - - // forward the values to the controls - if (bValid) - { - sal_Bool bEnabled = pAutoRetrieveEnabledItem->GetValue(); - m_aAutoRetrievingEnabled.Check( bEnabled ); - - m_aAutoIncrement.SetText( pAutoIncrementItem->GetValue() ); - m_aAutoIncrement.ClearModifyFlag(); - m_aAutoRetrieving.SetText( pAutoRetrieveValueItem->GetValue() ); - m_aAutoRetrieving.ClearModifyFlag(); - } - OGenericAdministrationPage::implInitControls( _rSet, _bSaveValue ); - } - - // ----------------------------------------------------------------------- - sal_Bool GeneratedValuesPage::FillItemSet(SfxItemSet& _rSet) - { - sal_Bool bChangedSomething = sal_False; - - fillString( _rSet, &m_aAutoIncrement, DSID_AUTOINCREMENTVALUE, bChangedSomething ); - fillBool( _rSet, &m_aAutoRetrievingEnabled, DSID_AUTORETRIEVEENABLED, bChangedSomething ); - fillString( _rSet, &m_aAutoRetrieving, DSID_AUTORETRIEVEVALUE, bChangedSomething ); - - return bChangedSomething; - } - - //======================================================================== - //= AdvancedSettingsDialog - //======================================================================== - //------------------------------------------------------------------------ - AdvancedSettingsDialog::AdvancedSettingsDialog( Window* _pParent, SfxItemSet* _pItems, - const Reference< XMultiServiceFactory >& _rxORB, const Any& _aDataSourceName ) - :SfxTabDialog(_pParent, ModuleRes(DLG_DATABASE_ADVANCED), _pItems) - ,m_pItemSet(_pItems) - { - m_pImpl = ::std::auto_ptr<ODbDataSourceAdministrationHelper>(new ODbDataSourceAdministrationHelper(_rxORB,_pParent,this)); - m_pImpl->setDataSourceOrName(_aDataSourceName); - Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource(); - m_pImpl->translateProperties(xDatasource, *_pItems); - SetInputSet(_pItems); - // propagate this set as our new input set and reset the example set - delete pExampleSet; - pExampleSet = new SfxItemSet(*GetInputSetImpl()); - - const ::rtl::OUString eType = m_pImpl->getDatasourceType(*_pItems); - - DataSourceMetaData aMeta( eType ); - const FeatureSet& rFeatures( aMeta.getFeatureSet() ); - - // auto-generated values? - if ( rFeatures.supportsGeneratedValues() ) - AddTabPage( PAGE_GENERATED_VALUES, String( ModuleRes( STR_GENERATED_VALUE ) ), ODriversSettings::CreateGeneratedValuesPage, NULL ); - - // any "special settings"? - if ( rFeatures.supportsAnySpecialSetting() ) - AddTabPage( PAGE_ADVANCED_SETTINGS_SPECIAL, String( ModuleRes( STR_DS_BEHAVIOUR ) ), ODriversSettings::CreateSpecialSettingsPage, NULL ); - - // remove the reset button - it's meaning is much too ambiguous in this dialog - RemoveResetButton(); - FreeResource(); - } - - // ----------------------------------------------------------------------- - AdvancedSettingsDialog::~AdvancedSettingsDialog() - { - SetInputSet(NULL); - DELETEZ(pExampleSet); - } - - // ----------------------------------------------------------------------- - bool AdvancedSettingsDialog::doesHaveAnyAdvancedSettings( const ::rtl::OUString& _sURL ) - { - DataSourceMetaData aMeta( _sURL ); - const FeatureSet& rFeatures( aMeta.getFeatureSet() ); - if ( rFeatures.supportsGeneratedValues() || rFeatures.supportsAnySpecialSetting() ) - return true; - return false; - } - - // ----------------------------------------------------------------------- - short AdvancedSettingsDialog::Execute() - { - short nRet = SfxTabDialog::Execute(); - if ( nRet == RET_OK ) - { - pExampleSet->Put(*GetOutputItemSet()); - m_pImpl->saveChanges(*pExampleSet); - } - return nRet; - } - - //------------------------------------------------------------------------- - void AdvancedSettingsDialog::PageCreated(sal_uInt16 _nId, SfxTabPage& _rPage) - { - // register ourself as modified listener - static_cast<OGenericAdministrationPage&>(_rPage).SetServiceFactory(m_pImpl->getORB()); - static_cast<OGenericAdministrationPage&>(_rPage).SetAdminDialog(this,this); - - AdjustLayout(); - Window *pWin = GetViewWindow(); - if(pWin) - pWin->Invalidate(); - - SfxTabDialog::PageCreated(_nId, _rPage); - } - - // ----------------------------------------------------------------------------- - const SfxItemSet* AdvancedSettingsDialog::getOutputSet() const - { - return pExampleSet; - } - - // ----------------------------------------------------------------------------- - SfxItemSet* AdvancedSettingsDialog::getWriteOutputSet() - { - return pExampleSet; - } - - // ----------------------------------------------------------------------------- - ::std::pair< Reference< XConnection >, sal_Bool > AdvancedSettingsDialog::createConnection() - { - return m_pImpl->createConnection(); - } - - // ----------------------------------------------------------------------------- - Reference< XMultiServiceFactory > AdvancedSettingsDialog::getORB() const - { - return m_pImpl->getORB(); - } - - // ----------------------------------------------------------------------------- - Reference< XDriver > AdvancedSettingsDialog::getDriver() - { - return m_pImpl->getDriver(); - } - - // ----------------------------------------------------------------------------- - ::rtl::OUString AdvancedSettingsDialog::getDatasourceType(const SfxItemSet& _rSet) const - { - return m_pImpl->getDatasourceType(_rSet); - } - - // ----------------------------------------------------------------------------- - void AdvancedSettingsDialog::clearPassword() - { - m_pImpl->clearPassword(); - } - - // ----------------------------------------------------------------------------- - void AdvancedSettingsDialog::setTitle(const ::rtl::OUString& _sTitle) - { - SetText(_sTitle); - } - - //------------------------------------------------------------------------- - void AdvancedSettingsDialog::enableConfirmSettings( bool _bEnable ) - { - (void)_bEnable; - } - - //------------------------------------------------------------------------- - sal_Bool AdvancedSettingsDialog::saveDatasource() - { - return PrepareLeaveCurrentPage(); - } - -//........................................................................ -} // namespace dbaui -//........................................................................ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/advancedsettings.hrc b/dbaccess/source/ui/dlg/advancedsettings.hrc deleted file mode 100644 index 389afea6a..000000000 --- a/dbaccess/source/ui/dlg/advancedsettings.hrc +++ /dev/null @@ -1,78 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_ADVANCEDSETTINGS_HRC -#define DBAUI_ADVANCEDSETTINGS_HRC - -#define ADVANCED_CHECKBOX_OPTIONS 15 -#define ADVANCED_LISTBOX_OPTIONS 1 - -#define ADVANCED_PAGE_X 200 -#define ADVANCED_PAGE_Y \ - /* top space */ START_Y + \ - /* label */ FIXEDTEXT_HEIGHT + RELATED_CONTROLS + \ - /* check boxes */ ( ADVANCED_CHECKBOX_OPTIONS * ( CHECKBOX_HEIGHT + RELATED_CONTROLS ) ) + \ - /* list boxes */ ( ADVANCED_LISTBOX_OPTIONS * ( LISTBOX_HEIGHT + RELATED_CONTROLS ) ) + \ - /* bottom space */ START_Y - - -#define STR_GENERATED_VALUE 1 -#define STR_DS_BEHAVIOUR 2 - -#define FL_SEPARATORAUTO 1 -#define FL_DATAHANDLING 2 - -#define CB_SUPPRESVERSIONCL 1 -#define CB_SQL92CHECK 2 -#define CB_RETRIEVE_AUTO 3 -#define CB_APPENDTABLEALIAS 4 -#define CB_IGNOREDRIVER_PRIV 5 -#define CB_PARAMETERNAMESUBST 6 -#define CB_ENABLEOUTERJOIN 7 -#define CB_SCHEMA 8 -#define CB_CATALOG 9 -#define CB_IGNOREINDEXAPPENDIX 10 -#define CB_DOSLINEENDS 11 -#define CB_AS_BEFORE_CORR_NAME 12 -#define CB_CHECK_REQUIRED 13 -#define CB_IGNORECURRENCY 14 -#define CB_ESCAPE_DATETIME 15 -#define CB_PRIMARY_KEY_SUPPORT 16 -#define CB_RESPECTRESULTSETTYPE 17 - -#define ET_AUTOINCREMENTVALUE 1 -#define ET_RETRIEVE_AUTO 2 - -#define FT_AUTOINCREMENTVALUE 1 -#define FT_RETRIEVE_AUTO 2 -#define FT_BOOLEANCOMPARISON 3 -#define FT_MAXROWSCAN 4 - -#define LB_BOOLEANCOMPARISON 1 -#define NF_MAXROWSCAN 1 - -#endif // DBAUI_ADVANCEDSETTINGS_HRC diff --git a/dbaccess/source/ui/dlg/advancedsettings.hxx b/dbaccess/source/ui/dlg/advancedsettings.hxx deleted file mode 100644 index e5e9cfcf9..000000000 --- a/dbaccess/source/ui/dlg/advancedsettings.hxx +++ /dev/null @@ -1,159 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBACCESS_ADVANCEDSETTINGS_HXX -#define DBACCESS_ADVANCEDSETTINGS_HXX - -#include "adminpages.hxx" -#include "dsmeta.hxx" - -/** === begin UNO includes === **/ -/** === end UNO includes === **/ - -#include <svtools/dialogcontrolling.hxx> - -#include <vcl/lstbox.hxx> -#include <vcl/field.hxx> - -#include <vector> - -//........................................................................ -namespace dbaui -{ -//........................................................................ - - struct BooleanSettingDesc; - typedef ::std::vector< BooleanSettingDesc > BooleanSettingDescs; - - //==================================================================== - //= SpecialSettingsPage - //==================================================================== - /** implements the "Special Settings" page of the advanced database settings - */ - class SpecialSettingsPage : public OGenericAdministrationPage - { - protected: - FixedLine m_aTopLine; - CheckBox* m_pIsSQL92Check; - CheckBox* m_pAppendTableAlias; - CheckBox* m_pAsBeforeCorrelationName; - CheckBox* m_pEnableOuterJoin; - CheckBox* m_pIgnoreDriverPrivileges; - CheckBox* m_pParameterSubstitution; - CheckBox* m_pSuppressVersionColumn; - CheckBox* m_pCatalog; - CheckBox* m_pSchema; - CheckBox* m_pIndexAppendix; - CheckBox* m_pDosLineEnds; - CheckBox* m_pCheckRequiredFields; - CheckBox* m_pIgnoreCurrency; - CheckBox* m_pEscapeDateTime; - CheckBox* m_pPrimaryKeySupport; - CheckBox* m_pRespectDriverResultSetType; - - FixedText* m_pBooleanComparisonModeLabel; - ListBox* m_pBooleanComparisonMode; - - FixedText* m_pMaxRowScanLabel; - NumericField* m_pMaxRowScan; - - ::svt::ControlDependencyManager - m_aControlDependencies; - - BooleanSettingDescs m_aBooleanSettings; - - bool m_bHasBooleanComparisonMode; - bool m_bHasMaxRowScan; - - public: - virtual sal_Bool FillItemSet ( SfxItemSet& _rCoreAttrs ); - - SpecialSettingsPage(Window* pParent, const SfxItemSet& _rCoreAttrs, const DataSourceMetaData& _rDSMeta ); - - protected: - virtual ~SpecialSettingsPage(); - - // OGenericAdministrationPage overridables - virtual void implInitControls (const SfxItemSet& _rSet, sal_Bool _bSaveValue ); - - // <method>OGenericAdministrationPage::fillControls</method> - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - - // <method>OGenericAdministrationPage::fillWindows</method> - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - - private: - void impl_initBooleanSettings(); - }; - - //==================================================================== - //= GeneratedValuesPage - //==================================================================== - class GeneratedValuesPage : public OGenericAdministrationPage - { - protected: - - FixedLine m_aAutoFixedLine; - CheckBox m_aAutoRetrievingEnabled; - FixedText m_aAutoIncrementLabel; - Edit m_aAutoIncrement; - FixedText m_aAutoRetrievingLabel; - Edit m_aAutoRetrieving; - - ::svt::ControlDependencyManager - m_aControlDependencies; - - public: - virtual sal_Bool FillItemSet (SfxItemSet& _rCoreAttrs); - - GeneratedValuesPage( Window* pParent, const SfxItemSet& _rCoreAttrs ); - protected: - - // nControlFlags ist eine Kombination der CBTP_xxx-Konstanten - virtual ~GeneratedValuesPage(); - - // must be overloaded by subclasses, but it isn't pure virtual - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - - // <method>OGenericAdministrationPage::fillControls</method> - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - - // <method>OGenericAdministrationPage::fillWindows</method> - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - - private: - DECL_LINK( OnCheckBoxClick, CheckBox * ); - }; - -//........................................................................ -} // namespace dbaui -//........................................................................ - -#endif // DBACCESS_ADVANCEDSETTINGS_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/advancedsettings.src b/dbaccess/source/ui/dlg/advancedsettings.src deleted file mode 100644 index 360bde979..000000000 --- a/dbaccess/source/ui/dlg/advancedsettings.src +++ /dev/null @@ -1,397 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "dbaccess_helpid.hrc" -#include "dbu_dlg.hrc" -#include "advancedsettings.hrc" - -//------------------------------------------------------------------------- - -#define AUTO_DATAHANDLING(AUTO_Y) \ - FixedLine FL_DATAHANDLING \ - { \ - Pos = MAP_APPFONT ( RELATED_CONTROLS , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X - 2*RELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; \ - Text [ en-US ] = "Options"; \ - }; - -//------------------------------------------------------------------------- - -#define AUTO_SQL92CHECK(AUTO_Y) \ - CheckBox CB_SQL92CHECK \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_SQL92CHECK; \ - Text[ en-US ] = "Use SQL92 naming constraints"; \ - }; - -//------------------------------------------------------------------------- - -#define AUTO_APPENDTABLEALIAS(AUTO_Y) \ - CheckBox CB_APPENDTABLEALIAS \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_APPENDTABLEALIAS; \ - Text[ en-US ] = "Append the table alias name on SELECT statements"; \ - }; - -//------------------------------------------------------------------------- - -#define AUTO_AS_BEFORE_CORR_NAME(AUTO_Y) \ - CheckBox CB_AS_BEFORE_CORR_NAME \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_AS_BEFORE_CORRELATION_NAME; \ - Text[ en-US ] = "Use keyword AS before table alias names"; \ - }; - -//------------------------------------------------------------------------- - -#define AUTO_ENABLEOUTERJOIN(AUTO_Y) \ - CheckBox CB_ENABLEOUTERJOIN \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_ENABLEOUTERJOIN; \ - Text [ en-US ] = "Use Outer Join syntax '{OJ }'"; \ - }; - - -//------------------------------------------------------------------------- - -#define AUTO_IGNOREDRIVER_PRIV(AUTO_Y) \ - CheckBox CB_IGNOREDRIVER_PRIV \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_IGNOREDRIVER_PRIV; \ - Text[ en-US ] = "Ignore the privileges from the database driver"; \ - }; - -//------------------------------------------------------------------------- - -#define AUTO_PARAMETERNAMESUBST(AUTO_Y) \ - CheckBox CB_PARAMETERNAMESUBST \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_PARAMETERNAMESUBST; \ - Text[ en-US ] = "Replace named parameters with '?'"; \ - }; - -//------------------------------------------------------------------------- - -#define AUTO_SUPPRESVERSIONCOLUMN(AUTO_Y) \ - CheckBox CB_SUPPRESVERSIONCL \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_SUPPRESS_VERSIONCL; \ - Text [ en-US ] = "Display version columns (when available)"; \ - }; - -//------------------------------------------------------------------------- - -#define AUTO_CATALOG(AUTO_Y) \ - CheckBox CB_CATALOG \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_CATALOG; \ - Text [ en-US ] = "Use catalog name in SELECT statements"; \ - }; - - -//------------------------------------------------------------------------- - -#define AUTO_SCHEMA(AUTO_Y) \ - CheckBox CB_SCHEMA \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_SCHEMA; \ - Text [ en-US ] = "Use schema name in SELECT statements"; \ - }; - -//------------------------------------------------------------------------- - -#define AUTO_IGNOREINDEXAPPENDIX(AUTO_Y) \ - CheckBox CB_IGNOREINDEXAPPENDIX \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_IGNOREINDEXAPPENDIX; \ - Text[ en-US ] = "Create index with ASC or DESC statement"; \ - }; - -//------------------------------------------------------------------------- - -#define AUTO_DOSLINEENDS(AUTO_Y) \ - CheckBox CB_DOSLINEENDS \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_DOSLINEENDS; \ - Text [ en-US ] = "End text lines with CR+LF"; \ - }; - -//------------------------------------------------------------------------- -#define AUTO_IGNORECURRENCY(AUTO_Y) \ - CheckBox CB_IGNORECURRENCY \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_IGNORECURRENCY; \ - Text [ en-US ] = "Ignore currency field information"; \ - }; - -//------------------------------------------------------------------------- - -#define AUTO_CHECKREQUIRED(AUTO_Y) \ - CheckBox CB_CHECK_REQUIRED \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_CHECK_REQUIRED_FIELDS; \ - Text [ en-US ] = "Form data input checks for required fields"; \ - }; - -#define AUTO_ESCAPE_DATETIME(AUTO_Y) \ - CheckBox CB_ESCAPE_DATETIME \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_ESCAPE_DATETIME; \ - Text [ en-US ] = "Use ODBC conformant date/time literals"; \ - }; - - -#define AUTO_PRIMARY_KEY_SUPPORT(AUTO_Y) \ - CheckBox CB_PRIMARY_KEY_SUPPORT \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X - 12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_PRIMARY_KEY_SUPPORT; \ - Text [ en-US ] = "Supports primary keys"; \ - }; - -#define AUTO_RESPECTRESULTSETTYPE(AUTO_Y) \ - CheckBox CB_RESPECTRESULTSETTYPE \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( ADVANCED_PAGE_X - 12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_RESPECTRESULTSETTYPE; \ - Text [ en-US ] = "Respect the result set type from the database driver"; \ - }; - - -//------------------------------------------------------------------------- - -#define WORKAROUND \ - StringList [ en-US ] = \ - { \ - < "Default" ; Default ; > ; \ - < "SQL" ; Default ; > ; \ - < "Mixed" ; Default ; > ; \ - < "MS Access" ; Default ; > ; \ - }; - - -#define AUTO_BOOLEANCOMPARISON(AUTO_Y) \ - FixedText FT_BOOLEANCOMPARISON \ - { \ - Pos = MAP_APPFONT ( START_X , AUTO_Y + ( LISTBOX_HEIGHT - CHECKBOX_HEIGHT ) / 2 ) ; \ - Size = MAP_APPFONT ( 100 , CHECKBOX_HEIGHT ); \ - Text [ en-US ] = "Comparison of Boolean values"; \ - }; \ - ListBox LB_BOOLEANCOMPARISON \ - { \ - Pos = MAP_APPFONT ( START_X + 100, AUTO_Y ) ; \ - Size = MAP_APPFONT ( 60 , LISTBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - SvLook = TRUE; \ - DropDown = TRUE; \ - Border = TRUE; \ - HelpId = HID_DSADMIN_BOOLEANCOMPARISON; \ - WORKAROUND \ - }; \ - -#define AUTO_MAXROWSCAN(AUTO_Y) \ - FixedText FT_MAXROWSCAN \ - { \ - Pos = MAP_APPFONT ( START_X , AUTO_Y + ( LISTBOX_HEIGHT - CHECKBOX_HEIGHT ) / 2 ) ; \ - Size = MAP_APPFONT ( 100 , CHECKBOX_HEIGHT ); \ - Text [ en-US ] = "Rows to scan column types"; \ - }; \ - NumericField NF_MAXROWSCAN \ - { \ - Pos = MAP_APPFONT ( START_X + 100, AUTO_Y ) ; \ - Size = MAP_APPFONT ( 60 , EDIT_HEIGHT ) ; \ - TabStop = TRUE ; \ - NoThousandSep = TRUE; \ - Border = TRUE; \ - HelpId = HID_DSADMIN_MAXROWSCAN; \ - }; \ - - -//------------------------------------------------------------------------- - -TabPage PAGE_GENERATED_VALUES -{ - HelpID = "dbaccess:TabPage:PAGE_GENERATED_VALUES"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( ADVANCED_PAGE_X , ADVANCED_PAGE_Y ) ; - Hide = TRUE; - - FixedLine FL_SEPARATORAUTO - { - Pos = MAP_APPFONT ( 4, UNRELATED_CONTROLS ) ; - Size = MAP_APPFONT ( ADVANCED_PAGE_X - 2*RELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "Settings"; - }; - - CheckBox CB_RETRIEVE_AUTO - { - Pos = MAP_APPFONT ( 6 , UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + RELATED_CONTROLS) ; - Size = MAP_APPFONT ( ADVANCED_PAGE_X - 2*UNRELATED_CONTROLS , CHECKBOX_HEIGHT ) ; - TabStop = TRUE ; - HelpId = HID_DSADMIN_AUTORETRIEVEENABLED; - Text [ en-US ] = "Re~trieve generated values"; - }; - - FixedText FT_AUTOINCREMENTVALUE - { - Pos = MAP_APPFONT ( 15 , UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS + CHECKBOX_HEIGHT ) ; - Size = MAP_APPFONT ( ADVANCED_PAGE_X - 15 - 6 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "~Auto-increment statement"; - }; - - Edit ET_AUTOINCREMENTVALUE - { - Border = TRUE ; - Pos = MAP_APPFONT ( 15 , UNRELATED_CONTROLS + 2*FIXEDTEXT_HEIGHT + CHECKBOX_HEIGHT + 3*RELATED_CONTROLS ) ; - Size = MAP_APPFONT ( ADVANCED_PAGE_X - 15 - 2*UNRELATED_CONTROLS , EDIT_HEIGHT ) ; - TabStop = TRUE ; - HelpId = HID_DSADMIN_AUTOINCREMENTVALUE; - }; - - FixedText FT_RETRIEVE_AUTO - { - Pos = MAP_APPFONT ( 15 , UNRELATED_CONTROLS + 2*FIXEDTEXT_HEIGHT + CHECKBOX_HEIGHT + 4*RELATED_CONTROLS + EDIT_HEIGHT) ; - Size = MAP_APPFONT ( ADVANCED_PAGE_X - 15 - 6 , 10 ) ; - Text [ en-US ] = "~Query of generated values"; - }; - - Edit ET_RETRIEVE_AUTO - { - Border = TRUE ; - Pos = MAP_APPFONT ( 15 , UNRELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT + CHECKBOX_HEIGHT + 5*RELATED_CONTROLS + EDIT_HEIGHT ) ; - Size = MAP_APPFONT ( ADVANCED_PAGE_X - 15 - 2*UNRELATED_CONTROLS, EDIT_HEIGHT ) ; - TabStop = TRUE ; - HelpId = HID_DSADMIN_RETRIEVE_AUTO; - }; -}; - -//------------------------------------------------------------------------- - -TabPage PAGE_ADVANCED_SETTINGS_SPECIAL -{ - HelpID = "dbaccess:TabPage:PAGE_ADVANCED_SETTINGS_SPECIAL"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( ADVANCED_PAGE_X , ADVANCED_PAGE_Y ) ; - Hide = TRUE; - AUTO_DATAHANDLING( RELATED_CONTROLS ) - AUTO_SQL92CHECK( 1*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + RELATED_CONTROLS ) - AUTO_APPENDTABLEALIAS( 2*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 1*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_AS_BEFORE_CORR_NAME( 3*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 2*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_ENABLEOUTERJOIN( 4*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 3*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_IGNOREDRIVER_PRIV( 5*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 4*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_PARAMETERNAMESUBST( 6*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 5*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_SUPPRESVERSIONCOLUMN( 7*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 6*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_CATALOG( 8*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 7*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_SCHEMA( 9*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 8*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_IGNOREINDEXAPPENDIX( 10*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 9*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_DOSLINEENDS( 11*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 10*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_CHECKREQUIRED( 12*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 11*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_IGNORECURRENCY( 13*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 12*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_ESCAPE_DATETIME( 14*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 14*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_PRIMARY_KEY_SUPPORT( 15*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 15*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_RESPECTRESULTSETTYPE( 16*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 16*CHECKBOX_HEIGHT + RELATED_CONTROLS ) - AUTO_BOOLEANCOMPARISON( 17*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 15*CHECKBOX_HEIGHT + RELATED_CONTROLS + ( LISTBOX_HEIGHT - CHECKBOX_HEIGHT ) / 2 ) - AUTO_MAXROWSCAN( 18*RELATED_CONTROLS + FIXEDTEXT_HEIGHT + 15*CHECKBOX_HEIGHT + RELATED_CONTROLS + ( LISTBOX_HEIGHT - CHECKBOX_HEIGHT ) / 2 ) -}; - -//------------------------------------------------------------------------- - -TabDialog DLG_DATABASE_ADVANCED -{ - OutputSize = TRUE ; - SVLook = TRUE ; - Moveable = TRUE ; - Closeable = TRUE ; - Hide = TRUE; - HelpId = HID_DSADMIN_ADVANCED; - - TabControl 1 - { - OutputSize = TRUE ; - HelpId = HID_DSADMIN_TABCONTROL; - }; - - String STR_GENERATED_VALUE - { - Text [ en-US ] = "Generated Values"; - }; - - String STR_DS_BEHAVIOUR - { - Text [ en-US ] = "Special Settings"; - }; - - Text [ en-US ] = "Advanced Settings" ; -}; diff --git a/dbaccess/source/ui/dlg/dbadmin.cxx b/dbaccess/source/ui/dlg/dbadmin.cxx deleted file mode 100644 index 0b4f5e6e8..000000000 --- a/dbaccess/source/ui/dlg/dbadmin.cxx +++ /dev/null @@ -1,519 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "ConnectionPage.hxx" -#include "DbAdminImpl.hxx" -#include "DriverSettings.hxx" -#include "adminpages.hxx" -#include "dbadmin.hrc" -#include "dbadmin.hxx" -#include "dbu_dlg.hrc" -#include <svl/stritem.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include "dbustrings.hrc" -#include "dsitems.hxx" -#include "dsnItem.hxx" -#include "localresaccess.hxx" -#include "optionalboolitem.hxx" -#include "propertysetitem.hxx" -#include "stringlistitem.hxx" - -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include <svl/stritem.hxx> -#include <unotools/confignode.hxx> -#include <vcl/msgbox.hxx> - -//......................................................................... -namespace dbaui -{ -//......................................................................... -using namespace com::sun::star::uno; -using namespace com::sun::star::sdbc; -using namespace com::sun::star::lang; -using namespace com::sun::star::util; -using namespace com::sun::star::beans; -using namespace com::sun::star::container; - -//========================================================================= -//= ODbAdminDialog -//========================================================================= -DBG_NAME(ODbAdminDialog) -//------------------------------------------------------------------------- -ODbAdminDialog::ODbAdminDialog(Window* _pParent - , SfxItemSet* _pItems - , const Reference< XMultiServiceFactory >& _rxORB - ) - :SfxTabDialog(_pParent, ModuleRes(DLG_DATABASE_ADMINISTRATION), _pItems) - ,m_bApplied(sal_False) - ,m_bUIEnabled( sal_True ) - ,m_nMainPageID( PAGE_CONNECTION ) -{ - DBG_CTOR(ODbAdminDialog,NULL); - - m_pImpl = ::std::auto_ptr<ODbDataSourceAdministrationHelper>(new ODbDataSourceAdministrationHelper(_rxORB,this,this)); - - // add the initial tab page - AddTabPage( m_nMainPageID, String( ModuleRes( STR_PAGETITLE_GENERAL ) ), OConnectionTabPage::Create, NULL ); - - // remove the reset button - it's meaning is much too ambiguous in this dialog - RemoveResetButton(); - // no local resources needed anymore - FreeResource(); -} - -//------------------------------------------------------------------------- -ODbAdminDialog::~ODbAdminDialog() -{ - SetInputSet(NULL); - DELETEZ(pExampleSet); - - DBG_DTOR(ODbAdminDialog,NULL); -} -//------------------------------------------------------------------------- -short ODbAdminDialog::Ok() -{ - SfxTabDialog::Ok(); - disabledUI(); - return ( AR_LEAVE_MODIFIED == implApplyChanges() ) ? RET_OK : RET_CANCEL; - // TODO : AR_ERROR is not handled correctly, we always close the dialog here -} - -//------------------------------------------------------------------------- -void ODbAdminDialog::PageCreated(sal_uInt16 _nId, SfxTabPage& _rPage) -{ - // register ourself as modified listener - static_cast<OGenericAdministrationPage&>(_rPage).SetServiceFactory(m_pImpl->getORB()); - static_cast<OGenericAdministrationPage&>(_rPage).SetAdminDialog(this,this); - - AdjustLayout(); - Window *pWin = GetViewWindow(); - if(pWin) - pWin->Invalidate(); - - SfxTabDialog::PageCreated(_nId, _rPage); -} - -// ----------------------------------------------------------------------------- -void ODbAdminDialog::addDetailPage(sal_uInt16 _nPageId, sal_uInt16 _nTextId, CreateTabPage _pCreateFunc) -{ - // open our own resource block, as the page titles are strings local to this block - LocalResourceAccess aDummy(DLG_DATABASE_ADMINISTRATION, RSC_TABDIALOG); - - AddTabPage(_nPageId, String(ModuleRes(_nTextId)), _pCreateFunc, NULL); - m_aCurrentDetailPages.push(_nPageId); -} - -//------------------------------------------------------------------------- -void ODbAdminDialog::impl_selectDataSource(const ::com::sun::star::uno::Any& _aDataSourceName) -{ - m_pImpl->setDataSourceOrName(_aDataSourceName); - Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource(); - impl_resetPages( xDatasource ); - - DbuTypeCollectionItem* pCollectionItem = PTR_CAST(DbuTypeCollectionItem, getOutputSet()->GetItem(DSID_TYPECOLLECTION)); - ::dbaccess::ODsnTypeCollection* pCollection = pCollectionItem->getCollection(); - ::dbaccess::DATASOURCE_TYPE eType = pCollection->determineType(getDatasourceType(*getOutputSet())); - - // and insert the new ones - switch ( eType ) - { - case ::dbaccess::DST_DBASE: - addDetailPage(PAGE_DBASE, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateDbase); - break; - - case ::dbaccess::DST_ADO: - addDetailPage(PAGE_ADO, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateAdo); - break; - - case ::dbaccess::DST_FLAT: - addDetailPage(PAGE_TEXT, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateText); - break; - - case ::dbaccess::DST_ODBC: - addDetailPage(PAGE_ODBC, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateODBC); - break; - - case ::dbaccess::DST_MYSQL_ODBC: - addDetailPage(PAGE_MYSQL_ODBC, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateMySQLODBC); - break; - - case ::dbaccess::DST_MYSQL_JDBC: - addDetailPage(PAGE_MYSQL_JDBC, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateMySQLJDBC); - break; - - case ::dbaccess::DST_ORACLE_JDBC: - addDetailPage(PAGE_ORACLE_JDBC, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateOracleJDBC); - break; - - case ::dbaccess::DST_ADABAS: - // for adabas we have more than one page - // CAUTION: the order of inserting pages matters. - // the major detail page should be inserted last always (thus, it becomes the first page after - // the general page) - addDetailPage(PAGE_ADABAS, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateAdabas); - break; - - case ::dbaccess::DST_LDAP: - addDetailPage(PAGE_LDAP,STR_PAGETITLE_ADVANCED,ODriversSettings::CreateLDAP); - break; - case ::dbaccess::DST_USERDEFINE1: /// first user defined driver - case ::dbaccess::DST_USERDEFINE2: - case ::dbaccess::DST_USERDEFINE3: - case ::dbaccess::DST_USERDEFINE4: - case ::dbaccess::DST_USERDEFINE5: - case ::dbaccess::DST_USERDEFINE6: - case ::dbaccess::DST_USERDEFINE7: - case ::dbaccess::DST_USERDEFINE8: - case ::dbaccess::DST_USERDEFINE9: - case ::dbaccess::DST_USERDEFINE10: - { - LocalResourceAccess aDummy(DLG_DATABASE_ADMINISTRATION, RSC_TABDIALOG); - String aTitle(ModuleRes(STR_PAGETITLE_ADVANCED)); - AddTabPage(PAGE_USERDRIVER, aTitle, ODriversSettings::CreateUser, 0, sal_False, 1); - m_aCurrentDetailPages.push(PAGE_USERDRIVER); - } - break; - default: - break; - } -} - -//------------------------------------------------------------------------- -void ODbAdminDialog::impl_resetPages(const Reference< XPropertySet >& _rxDatasource) -{ - // the selection is valid if and only if we have a datasource now - GetInputSetImpl()->Put(SfxBoolItem(DSID_INVALID_SELECTION, !_rxDatasource.is())); - // (sal_False tells the tab pages to disable and reset all their controls, which is different - // from "just set them to readonly") - - // reset the pages - - // prevent flicker - SetUpdateMode(sal_False); - - // remove all items which relate to indirect properties from the input set - // (without this, the following may happen: select an arbitrary data source where some indirect properties - // are set. Select another data source of the same type, where the indirect props are not set (yet). Then, - // the indirect property values of the first ds are shown in the second ds ...) - const ODbDataSourceAdministrationHelper::MapInt2String& rMap = m_pImpl->getIndirectProperties(); - for ( ODbDataSourceAdministrationHelper::ConstMapInt2StringIterator aIndirect = rMap.begin(); - aIndirect != rMap.end(); - ++aIndirect - ) - GetInputSetImpl()->ClearItem( (sal_uInt16)aIndirect->first ); - - // extract all relevant data from the property set of the data source - m_pImpl->translateProperties(_rxDatasource, *GetInputSetImpl()); - - // propagate this set as our new input set and reset the example set - SetInputSet(GetInputSetImpl()); - delete pExampleSet; - pExampleSet = new SfxItemSet(*GetInputSetImpl()); - - // special case: MySQL Native does not have the generic PAGE_CONNECTION page - - DbuTypeCollectionItem* pCollectionItem = PTR_CAST(DbuTypeCollectionItem, getOutputSet()->GetItem(DSID_TYPECOLLECTION)); - ::dbaccess::ODsnTypeCollection* pCollection = pCollectionItem->getCollection(); - if ( pCollection->determineType(getDatasourceType( *pExampleSet )) == ::dbaccess::DST_MYSQL_NATIVE ) - { - LocalResourceAccess aDummy(DLG_DATABASE_ADMINISTRATION, RSC_TABDIALOG); - AddTabPage( PAGE_MYSQL_NATIVE, String( ModuleRes( STR_PAGETITLE_CONNECTION ) ), ODriversSettings::CreateMySQLNATIVE, NULL ); - RemoveTabPage( PAGE_CONNECTION ); - m_nMainPageID = PAGE_MYSQL_NATIVE; - } - - ShowPage( m_nMainPageID ); - SfxTabPage* pConnectionPage = GetTabPage( m_nMainPageID ); - if ( pConnectionPage ) - pConnectionPage->Reset(*GetInputSetImpl()); - // if this is NULL, the page has not been created yet, which means we're called before the - // dialog was displayed (probably from inside the ctor) - - SetUpdateMode(sal_True); -} -// ----------------------------------------------------------------------------- -void ODbAdminDialog::setTitle(const ::rtl::OUString& _sTitle) -{ - SetText(_sTitle); -} -//------------------------------------------------------------------------- -void ODbAdminDialog::enableConfirmSettings( bool _bEnable ) -{ - (void)_bEnable; -} -//------------------------------------------------------------------------- -sal_Bool ODbAdminDialog::saveDatasource() -{ - return PrepareLeaveCurrentPage(); -} -//------------------------------------------------------------------------- -ODbAdminDialog::ApplyResult ODbAdminDialog::implApplyChanges() -{ - if (!PrepareLeaveCurrentPage()) - { // the page did not allow us to leave - return AR_KEEP; - } - - if ( !m_pImpl->saveChanges(*pExampleSet) ) - return AR_KEEP; - - if ( isUIEnabled() ) - ShowPage(GetCurPageId()); - // This does the usual ActivatePage, so the pages can save their current status. - // This way, next time they're asked what has changed since now and here, they really - // can compare with the status they have _now_ (not the one they had before this apply call). - - m_bApplied = sal_True; - - return AR_LEAVE_MODIFIED; -} -//------------------------------------------------------------------------- -void ODbAdminDialog::selectDataSource(const ::com::sun::star::uno::Any& _aDataSourceName) -{ - impl_selectDataSource(_aDataSourceName); -} - -// ----------------------------------------------------------------------------- -const SfxItemSet* ODbAdminDialog::getOutputSet() const -{ - return GetExampleSet(); -} -// ----------------------------------------------------------------------------- -SfxItemSet* ODbAdminDialog::getWriteOutputSet() -{ - return pExampleSet; -} -// ----------------------------------------------------------------------------- -::std::pair< Reference<XConnection>,sal_Bool> ODbAdminDialog::createConnection() -{ - return m_pImpl->createConnection(); -} -// ----------------------------------------------------------------------------- -Reference< XMultiServiceFactory > ODbAdminDialog::getORB() const -{ - return m_pImpl->getORB(); -} -// ----------------------------------------------------------------------------- -Reference< XDriver > ODbAdminDialog::getDriver() -{ - return m_pImpl->getDriver(); -} -// ----------------------------------------------------------------------------- -::rtl::OUString ODbAdminDialog::getDatasourceType(const SfxItemSet& _rSet) const -{ - return m_pImpl->getDatasourceType(_rSet); -} -// ----------------------------------------------------------------------------- -void ODbAdminDialog::clearPassword() -{ - m_pImpl->clearPassword(); -} -//------------------------------------------------------------------------- -SfxItemSet* ODbAdminDialog::createItemSet(SfxItemSet*& _rpSet, SfxItemPool*& _rpPool, SfxPoolItem**& _rppDefaults, ::dbaccess::ODsnTypeCollection* _pTypeCollection) -{ - // just to be sure .... - _rpSet = NULL; - _rpPool = NULL; - _rppDefaults = NULL; - - const ::rtl::OUString sFilterAll( "%", 1, RTL_TEXTENCODING_ASCII_US ); - // create and initialize the defaults - _rppDefaults = new SfxPoolItem*[DSID_LAST_ITEM_ID - DSID_FIRST_ITEM_ID + 1]; - SfxPoolItem** pCounter = _rppDefaults; // want to modify this without affecting the out param _rppDefaults - *pCounter++ = new SfxStringItem(DSID_NAME, String()); - *pCounter++ = new SfxStringItem(DSID_ORIGINALNAME, String()); - *pCounter++ = new SfxStringItem(DSID_CONNECTURL, String()); - *pCounter++ = new OStringListItem(DSID_TABLEFILTER, Sequence< ::rtl::OUString >(&sFilterAll, 1)); - *pCounter++ = new DbuTypeCollectionItem(DSID_TYPECOLLECTION, _pTypeCollection); - *pCounter++ = new SfxBoolItem(DSID_INVALID_SELECTION, sal_False); - *pCounter++ = new SfxBoolItem(DSID_READONLY, sal_False); - *pCounter++ = new SfxStringItem(DSID_USER, String()); - *pCounter++ = new SfxStringItem(DSID_PASSWORD, String()); - *pCounter++ = new SfxStringItem(DSID_ADDITIONALOPTIONS, String()); - *pCounter++ = new SfxStringItem(DSID_CHARSET, String()); - *pCounter++ = new SfxBoolItem(DSID_PASSWORDREQUIRED, sal_False); - *pCounter++ = new SfxBoolItem(DSID_SHOWDELETEDROWS, sal_False); - *pCounter++ = new SfxBoolItem(DSID_ALLOWLONGTABLENAMES, sal_False); - *pCounter++ = new SfxStringItem(DSID_JDBCDRIVERCLASS, String()); - *pCounter++ = new SfxStringItem(DSID_FIELDDELIMITER, ','); - *pCounter++ = new SfxStringItem(DSID_TEXTDELIMITER, '"'); - *pCounter++ = new SfxStringItem(DSID_DECIMALDELIMITER, '.'); - *pCounter++ = new SfxStringItem(DSID_THOUSANDSDELIMITER, String()); - *pCounter++ = new SfxStringItem(DSID_TEXTFILEEXTENSION, String::CreateFromAscii("txt")); - *pCounter++ = new SfxBoolItem(DSID_TEXTFILEHEADER, sal_True); - *pCounter++ = new SfxBoolItem(DSID_PARAMETERNAMESUBST, sal_False); - *pCounter++ = new SfxInt32Item(DSID_CONN_PORTNUMBER, 8100); - *pCounter++ = new SfxBoolItem(DSID_SUPPRESSVERSIONCL, sal_False); - *pCounter++ = new OPropertySetItem(DSID_DATASOURCE_UNO); - *pCounter++ = new SfxBoolItem(DSID_CONN_SHUTSERVICE, sal_False); - *pCounter++ = new SfxInt32Item(DSID_CONN_DATAINC, 20); - *pCounter++ = new SfxInt32Item(DSID_CONN_CACHESIZE, 20); - *pCounter++ = new SfxStringItem(DSID_CONN_CTRLUSER, String()); - *pCounter++ = new SfxStringItem(DSID_CONN_CTRLPWD, String()); - *pCounter++ = new SfxBoolItem(DSID_USECATALOG, sal_False); - *pCounter++ = new SfxStringItem(DSID_CONN_HOSTNAME, String()); - *pCounter++ = new SfxStringItem(DSID_CONN_LDAP_BASEDN, String()); - *pCounter++ = new SfxInt32Item(DSID_CONN_LDAP_PORTNUMBER, 389); - *pCounter++ = new SfxInt32Item(DSID_CONN_LDAP_ROWCOUNT, 100); - *pCounter++ = new SfxBoolItem(DSID_SQL92CHECK, sal_False); - *pCounter++ = new SfxStringItem(DSID_AUTOINCREMENTVALUE, String()); - *pCounter++ = new SfxStringItem(DSID_AUTORETRIEVEVALUE, String()); - *pCounter++ = new SfxBoolItem(DSID_AUTORETRIEVEENABLED, sal_False); - *pCounter++ = new SfxBoolItem(DSID_APPEND_TABLE_ALIAS, sal_False); - *pCounter++ = new SfxInt32Item(DSID_MYSQL_PORTNUMBER, 3306); - *pCounter++ = new SfxBoolItem(DSID_IGNOREDRIVER_PRIV, sal_True); - *pCounter++ = new SfxInt32Item(DSID_BOOLEANCOMPARISON, 0); - *pCounter++ = new SfxInt32Item(DSID_ORACLE_PORTNUMBER, 1521); - *pCounter++ = new SfxBoolItem(DSID_ENABLEOUTERJOIN, sal_True); - *pCounter++ = new SfxBoolItem(DSID_CATALOG, sal_True); - *pCounter++ = new SfxBoolItem(DSID_SCHEMA, sal_True); - *pCounter++ = new SfxBoolItem(DSID_INDEXAPPENDIX, sal_True); - *pCounter++ = new SfxBoolItem(DSID_CONN_LDAP_USESSL, sal_False); - *pCounter++ = new SfxStringItem(DSID_DOCUMENT_URL, String()); - *pCounter++ = new SfxBoolItem(DSID_DOSLINEENDS, sal_False); - *pCounter++ = new SfxStringItem(DSID_DATABASENAME, String()); - *pCounter++ = new SfxBoolItem(DSID_AS_BEFORE_CORRNAME, sal_True); - *pCounter++ = new SfxBoolItem(DSID_CHECK_REQUIRED_FIELDS, sal_True); - *pCounter++ = new SfxBoolItem(DSID_IGNORECURRENCY, sal_False); - *pCounter++ = new SfxStringItem(DSID_CONN_SOCKET, String()); - *pCounter++ = new SfxBoolItem(DSID_ESCAPE_DATETIME, sal_True); - *pCounter++ = new SfxStringItem(DSID_NAMED_PIPE, String()); - *pCounter++ = new OptionalBoolItem( DSID_PRIMARY_KEY_SUPPORT ); - *pCounter++ = new SfxInt32Item(DSID_MAX_ROW_SCAN, 100); - *pCounter++ = new SfxBoolItem( DSID_RESPECTRESULTSETTYPE,sal_False ); - - // create the pool - static SfxItemInfo const aItemInfos[DSID_LAST_ITEM_ID - DSID_FIRST_ITEM_ID + 1] = - { - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0}, - {0,0} - }; - - OSL_ENSURE(SAL_N_ELEMENTS(aItemInfos) == DSID_LAST_ITEM_ID,"Invalid Ids!"); - _rpPool = new SfxItemPool(String::CreateFromAscii("DSAItemPool"), DSID_FIRST_ITEM_ID, DSID_LAST_ITEM_ID, - aItemInfos, _rppDefaults); - _rpPool->FreezeIdRanges(); - - // and, finally, the set - _rpSet = new SfxItemSet(*_rpPool, sal_True); - - return _rpSet; -} -//------------------------------------------------------------------------- -void ODbAdminDialog::destroyItemSet(SfxItemSet*& _rpSet, SfxItemPool*& _rpPool, SfxPoolItem**& _rppDefaults) -{ - // _first_ delete the set (refering the pool) - if (_rpSet) - { - delete _rpSet; - _rpSet = NULL; - } - - // delete the pool - if (_rpPool) - { - _rpPool->ReleaseDefaults(sal_True); - // the "true" means delete the items, too - SfxItemPool::Free(_rpPool); - _rpPool = NULL; - } - - // reset the defaults ptr - _rppDefaults = NULL; - // no need to explicitly delete the defaults, this has been done by the ReleaseDefaults -} - -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/dbadmin.hrc b/dbaccess/source/ui/dlg/dbadmin.hrc deleted file mode 100644 index d49537cfd..000000000 --- a/dbaccess/source/ui/dlg/dbadmin.hrc +++ /dev/null @@ -1,111 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_DBADMIN_HRC_ -#define _DBAUI_DBADMIN_HRC_ - -//======================================================================== -// control ids - -#define FT_DATATYPE 1 -#define FT_DATASOURCETYPE_PRE 2 -#define FT_USERNAME 3 -#define FT_PASSWORD 4 -#define FT_OPTIONS 5 - // FREE -#define FT_JDBCDRIVERCLASS 7 -#define FT_SPECIAL_MESSAGE 8 -#define FT_FILTER_EXPLANATION 9 -#define FT_HOSTNAME 10 -#define FT_BASEDN 11 -#define FT_PORTNUMBER 12 -#define FT_LDAPROWCOUNT 13 -#define FT_DATASOURCETYPE_POST 14 -#define FT_GENERALHEADERTEXT 15 -#define FT_GENERALHELPTEXT 16 -#define FT_DATATYPEAPPENDIX 17 -#define FT_DATASOURCEHEADER 18 -#define FT_DOCLISTLABEL 19 - -#define LB_DATATYPE 1 - // FREE -#define LB_DOCUMENTLIST 3 - -#define ET_USERNAME 1 -#define ET_PASSWORD 2 -#define ET_OPTIONS 3 -#define ET_JDBCDRIVERCLASS 4 -#define ET_HOSTNAME 5 -#define ET_BASEDN 6 - -#define PB_INDICIES 1 -#define BTN_PASSWORD_OK 2 -#define BTN_PASSWORD_CANCEL 3 -#define BTN_PASSWORD_HELP 4 -#define PB_TESTDRIVERCLASS 5 -#define PB_OPENDOCUMENT 6 - -#define CB_PASSWORD_REQUIRED 1 -#define CB_SHOWDELETEDROWS 2 -#define CB_USESSL 3 -#define CB_USECATALOG 4 - -#define FL_SEPARATOR2 1 - -#define CTL_TABLESUBSCRIPTION 1 - -#define TLB_ACTIONS 1 - -#define NF_PORTNUMBER 1 -#define NF_LDAPROWCOUNT 2 - -#define RB_CREATEDBDATABASE 1 -#define RB_GETEXISTINGDATABASE 2 -#define RB_OPENEXISTINGDOC 3 - -//======================================================================== -// string ids (usually relative to other resources, that's why not necessarily unique) - -#define STR_PAGETITLE_GENERAL 1 -#define STR_PAGETITLE_CONNECTION 2 -#define STR_PAGETITLE_ADVANCED 3 -#define STR_NO_WILDCARDS 4 -#define STR_MYSQLENTRY 5 -#define STR_PARENTTITLE 6 -#define STR_COULDNOTLOAD_ODBCLIB 7 -#define STR_UNSUPPORTED_DATASOURCE_TYPE 8 -#define STR_MYSQL_CONFIG_NEXT_PAGE 9 -#define STR_JDBC_DEFAULT_URL 10 - -//======================================================================== -// menu item ids -#define MID_NEW_DATASOURCE 1 -#define MID_DELETE_DATASOURCE 2 -#define MID_RESTORE_DATASOURCE 3 - -#endif // _DBAUI_DBADMIN_HRC_ - diff --git a/dbaccess/source/ui/dlg/dbadmin.src b/dbaccess/source/ui/dlg/dbadmin.src deleted file mode 100644 index 53e979a0b..000000000 --- a/dbaccess/source/ui/dlg/dbadmin.src +++ /dev/null @@ -1,807 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBA_DBACCESS_HELPID_HRC_ -#include "dbaccess_helpid.hrc" -#endif -#ifndef _DBAUI_AUTOCONTROLS_HRC_ -#include "AutoControls.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif -#ifndef _DBAUI_DBADMIN_HRC_ -#include "dbadmin.hrc" -#endif -#ifndef DBACCESS_UI_BROWSER_ID_HXX -#include "browserids.hxx" -#endif -#ifndef DBAUI_ADABASPAGE_HRC -#include "AdabasPage.hrc" -#endif -#include "admincontrols.hrc" - -//------------------------------------------------------------------------- - -#define AUTO_USECATALOG(AUTO_Y) \ - CheckBox CB_USECATALOG \ - { \ - Pos = MAP_APPFONT ( 6 ,AUTO_Y) ; \ - Size = MAP_APPFONT ( PAGE_X -12 , CHECKBOX_HEIGHT ) ; \ - TabStop = TRUE ; \ - HelpId = HID_DSADMIN_USECATALOG; \ - Text[ en-US ] = "Use catalog for file-based databases"; \ - }; - -//------------------------------------------------------------------------- - -#define AUTO_FIXEDLINE_CONNSETTINGS(AUTO_Y) \ - FixedLine FL_SEPARATOR1 \ - { \ - Pos = MAP_APPFONT ( 4 , AUTO_Y ) ; \ - Size = MAP_APPFONT ( PAGE_X - 8 , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "Connection Settings"; \ - }; \ - -#define AUTO_HOST_AND_PORT(AUTO_Y) \ - FixedText FT_HOSTNAME \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y + 2 ) ; \ - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "~Host name"; \ - }; \ - Edit ET_HOSTNAME \ - { \ - TabStop = TRUE ; \ - Border = TRUE ; \ - HelpId = HID_DSADMIN_HOSTNAME; \ - Pos = MAP_APPFONT ( EDIT_X , AUTO_Y ) ; \ - Size = MAP_APPFONT ( 97 , EDIT_HEIGHT ) ; \ - }; \ - FixedText FT_PORTNUMBER \ - { \ - Pos = MAP_APPFONT ( 6 , AUTO_Y + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 2 ) ; \ - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; \ - Text[ en-US ] = "~Port number"; \ - }; \ - NumericField NF_PORTNUMBER \ - { \ - TabStop = TRUE ; \ - Border = TRUE ; \ - HelpId = HID_DSADMIN_PORTNUMBER; \ - NoThousandSep = TRUE; \ - Pos = MAP_APPFONT ( EDIT_X , AUTO_Y +UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT ) ; \ - Size = MAP_APPFONT ( 97 , EDIT_HEIGHT ) ; \ - }; -//------------------------------------------------------------------------- - -TabDialog DLG_DATABASE_ADMINISTRATION -{ - OutputSize = TRUE ; - SVLook = TRUE ; - Moveable = TRUE ; - Closeable = TRUE ; - Hide = TRUE; - HelpId = HID_DSADMIN_DIALOG; - - TabControl 1 - { - OutputSize = TRUE ; - HelpId = HID_DSADMIN_TABCONTROL; - }; - - //......................................................................... - String STR_PAGETITLE_GENERAL - { - Text [ en-US ] = "Advanced Properties" ; - }; - String STR_PAGETITLE_ADVANCED - { - Text [ en-US ] = "Additional Settings" ; - }; - String STR_PAGETITLE_CONNECTION - { - Text [ en-US ] = "Connection settings" ; - }; - - Text [ en-US ] = "Database properties" ; -}; - -// ----------------------------------------------------------------------------- - -ModalDialog DLG_DATABASE_TYPE_CHANGE -{ - OutputSize = TRUE ; - Moveable = TRUE; - Closeable = TRUE ; - Hide = TRUE; - HelpId = HID_DSADMIN_TYPE_DIALOG; - - TabControl 1 - { - OutputSize = TRUE ; - HelpId = HID_DSADMIN_TABCONTROL; - }; - Text [ en-US ] = "Database properties" ; -}; - -//------------------------------------------------------------------------- - -TabPage PAGE_GENERAL -{ - SVLook = TRUE ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE; - HelpId = HID_DSADMIN_PAGE_GENERAL; - - - FixedText FT_GENERALHEADERTEXT - { - Pos = MAP_APPFONT ( START_X , 8 ) ; - Size = MAP_APPFONT ( (WIZARD_PAGE_X - START_X) - 12 , 2 * FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "Welcome to the %PRODUCTNAME Database Wizard"; - WordBreak = TRUE; - }; - - FixedText FT_GENERALHELPTEXT - { - Pos = MAP_APPFONT (START_X , 27 ); - Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X - 6, 5* FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "Use the Database Wizard to create a new database, open an existing database file, or connect to a database stored on a server." ; - WordBreak = TRUE ; - }; - - FixedText FT_DATASOURCEHEADER - { - Pos = MAP_APPFONT ( START_X , 73 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X - 12 , FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "What do you want to do?"; - }; - - RadioButton RB_CREATEDBDATABASE - { - HelpId = HID_PAGE_DBWIZARD_GENERAL_RB_CREATEDBDATABASE ; - Pos = MAP_APPFONT (START_X + 6 , 85 ) ; - Size = MAP_APPFONT ( 205 , 10 ) ; - Group = TRUE; - Text [ en-US ] = "Create a n~ew database" ; - }; - - RadioButton RB_OPENEXISTINGDOC - { - HelpID = "dbaccess:RadioButton:PAGE_GENERAL:RB_OPENEXISTINGDOC"; - Pos = MAP_APPFONT (START_X + 6 , 97 ); - Size = MAP_APPFONT ( 206 , 8 ) ; - Text [ en-US ] = "Open an existing database ~file" ; - }; - - FixedText FT_DOCLISTLABEL - { - Pos = MAP_APPFONT( START_X + INDENTED_X + INDENT_BELOW_RADIO, 110 ); - Size = MAP_APPFONT( 120, 8 ); - Text [ en-US ] = "Recently used"; - }; - - ListBox LB_DOCUMENTLIST - { - HelpID = "dbaccess:ListBox:PAGE_GENERAL:LB_DOCUMENTLIST"; - Pos = MAP_APPFONT( START_X + INDENTED_X + INDENT_BELOW_RADIO, 121 ); - Size = MAP_APPFONT( 120, 14 ); - DropDown = TRUE; - Border = TRUE; - }; - - PushButton PB_OPENDOCUMENT - { - HelpID = "dbaccess:PushButton:PAGE_GENERAL:PB_OPENDOCUMENT"; - Pos = MAP_APPFONT( START_X + INDENTED_X + INDENT_BELOW_RADIO, 139 ); - Size = MAP_APPFONT( 50, 16 ); - OutputSize = TRUE; - TabStop = TRUE; - }; - - RadioButton RB_GETEXISTINGDATABASE - { - HelpId = HID_PAGE_DBWIZARD_GENERAL_RB_GETEXISTINGDATABASE; - Pos = MAP_APPFONT (START_X + 6 , 159 ) ; - Size = MAP_APPFONT ( 206 , 8 ) ; - Text [ en-US ] = "Connect to an e~xisting database" ; - }; - - FixedText FT_DATASOURCETYPE_PRE - { - Pos = MAP_APPFONT ( 6 , UNRELATED_CONTROLS ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X - 12 , 3*FIXEDTEXT_HEIGHT ) ; - WordBreak = TRUE; - Text [ en-US ] = "Select the type of database to which you want to establish a connection."; - }; - - FixedText FT_DATATYPE - { - Pos = MAP_APPFONT ( 6 , 2*UNRELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT + RELATED_CONTROLS) ; - Size = MAP_APPFONT ( 80 , FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "Database ~type "; - }; - - ListBox LB_DATATYPE - { - HelpId = HID_DSADMIN_DSTYPE; - Pos = MAP_APPFONT ( 90, 2*UNRELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT + RELATED_CONTROLS -2 ) ; - Size = MAP_APPFONT ( 120, 120 ) ; - Border = TRUE ; - TabStop = TRUE ; - DropDown = TRUE ; - Sort = FALSE; - }; - - FixedText FT_DATATYPEAPPENDIX - { - Pos = MAP_APPFONT ( 90, 2*UNRELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT + RELATED_CONTROLS -2 + 72) ; - Size = MAP_APPFONT ( 60, 8 ); - Text [ en-US ] = "Database"; - }; - - FixedText FT_DATASOURCETYPE_POST - { - Pos = MAP_APPFONT ( 6 , 4*UNRELATED_CONTROLS + 4*FIXEDTEXT_HEIGHT + RELATED_CONTROLS ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X - 12 , 5*FIXEDTEXT_HEIGHT ) ; - WordBreak = TRUE; - Text [ en-US ] = "On the following pages, you can make detailed settings for the connection.\n\nThe new settings you make will overwrite your existing settings."; - }; - - FixedText FT_SPECIAL_MESSAGE - { - Pos = MAP_APPFONT ( 6, 4*UNRELATED_CONTROLS + 9*FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS ); - Size = MAP_APPFONT ( WIZARD_PAGE_X - 12, 3*FIXEDTEXT_HEIGHT ); - WordBreak = TRUE; - HelpId = HID_DSADMIN_SPECIAL_MESSAGE; - }; - - String STR_MYSQLENTRY - { - Text [ en-US ] = "MySQL" ; - }; - - String STR_PARENTTITLE - { - Text [ en-US ] = "Data Source Properties: #" ; - }; - String STR_COULDNOTLOAD_ODBCLIB - { - Text [ en-US ] = "Could not load the program library #lib# or it is corrupted. The ODBC data source selection is not available."; - }; - String STR_UNSUPPORTED_DATASOURCE_TYPE - { - Text [ en-US ] = "This kind of data source is not supported on this platform.\nYou are allowed to change the settings, but you probably will not be able to connect to the database."; - }; - Text [ en-US ] = "General" ; -}; - -//......................................................................... - -TabPage PAGE_DBASE -{ - SVLook = TRUE ; - Hide = TRUE; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( PAGE_X , PAGE_Y ) ; - HelpId = HID_DSADMIN_PAGE_DBASE; - - AUTO_CHARSET(UNRELATED_CONTROLS,PAGE_X) - - FixedLine FL_SEPARATOR1 - { - Pos = MAP_APPFONT ( 4 , 2*UNRELATED_CONTROLS + RELATED_CONTROLS + 2*FIXEDTEXT_HEIGHT) ; - Size = MAP_APPFONT ( PAGE_X - 8 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Optional settings"; - }; - - CheckBox CB_SHOWDELETEDROWS - { - Pos = MAP_APPFONT ( 6 , 2*UNRELATED_CONTROLS + 2*RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT) ; - Size = MAP_APPFONT ( 200 , CHECKBOX_HEIGHT ) ; - TabStop = TRUE ; - HelpId = HID_DSADMIN_SHOWDELETED; - Text [ en-US ] = "Display deleted records as well" ; - }; - - FixedText FT_SPECIAL_MESSAGE - { - Hide = TRUE; - WordBreak = TRUE; - Pos = MAP_APPFONT ( 6 , 3*UNRELATED_CONTROLS + 2*RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT + CHECKBOX_HEIGHT) ; - Size = MAP_APPFONT ( PAGE_X - 12 , 2*FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "Note: When deleted, and thus inactive, records are displayed, you will not be able to delete records from the data source." ; - }; - - PushButton PB_INDICIES - { - Pos = MAP_APPFONT ( PAGE_X - BUTTON_WIDTH - UNRELATED_CONTROLS, PAGE_Y - BUTTON_HEIGHT - UNRELATED_CONTROLS) ; - Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ; - TabStop = TRUE ; - HelpId = HID_DSADMIN_DBASE_INDICIES; - Text [ en-US ] = "Indexes..."; - }; -}; - -//......................................................................... - -TabPage PAGE_ADO -{ - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( PAGE_X , PAGE_Y ) ; - Hide = TRUE; - HelpId = HID_DSADMIN_PAGE_ADO; - AUTO_CHARSET(UNRELATED_CONTROLS,PAGE_X) -}; - -//......................................................................... - -TabPage PAGE_ODBC -{ - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( PAGE_X , PAGE_Y ) ; - Hide = TRUE; - HelpId = HID_DSADMIN_PAGE_ODBC; - - AUTO_CHARSET(UNRELATED_CONTROLS,PAGE_X) - FixedLine FL_SEPARATOR1 - { - Pos = MAP_APPFONT ( 4 , 2*UNRELATED_CONTROLS + 2*FIXEDTEXT_HEIGHT + RELATED_CONTROLS ) ; - Size = MAP_APPFONT ( PAGE_X - 8 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Optional Settings"; - }; - - FixedText FT_OPTIONS - { - Pos = MAP_APPFONT ( 6 , 2*UNRELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "ODBC ~options" ; - }; - Edit ET_OPTIONS - { - Border = TRUE ; - Pos = MAP_APPFONT ( EDIT_X , 2*UNRELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS -1 ) ; - Size = MAP_APPFONT ( 130 , EDIT_HEIGHT ) ; - TabStop = TRUE ; - HelpId = HID_DSADMIN_ODBC_OPTIONS; - }; - - AUTO_USECATALOG( 3*UNRELATED_CONTROLS + 4*FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS ) -}; - -TabPage PAGE_ADABAS -{ - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( PAGE_X , PAGE_Y ) ; - Hide = TRUE; - HelpId = HID_DSADMIN_PAGE_ADABAS; - - FixedLine FL_SEPARATOR1 - { - Pos = MAP_APPFONT ( 4 , UNRELATED_CONTROLS ) ; - Size = MAP_APPFONT ( PAGE_X - 8 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Connection Settings"; - }; - - FixedText FT_HOSTNAME - { - Pos = MAP_APPFONT ( 6 , UNRELATED_CONTROLS + RELATED_CONTROLS + FIXEDTEXT_HEIGHT) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "~Host name"; - }; - Edit ET_HOSTNAME - { - HelpID = "dbaccess:Edit:PAGE_ADABAS:ET_HOSTNAME"; - TabStop = TRUE ; - Border = TRUE ; - - Pos = MAP_APPFONT ( EDIT_X , UNRELATED_CONTROLS + RELATED_CONTROLS + FIXEDTEXT_HEIGHT-1 ) ; - Size = MAP_APPFONT ( 105 , EDIT_HEIGHT ) ; - }; - - FixedText FT_CACHE_SIZE - { - Pos = MAP_APPFONT ( 6 , 2*UNRELATED_CONTROLS + RELATED_CONTROLS + 2*FIXEDTEXT_HEIGHT ) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Data ~buffer size (MB)"; - }; - NumericField NF_CACHE_SIZE - { - HelpID = "dbaccess:NumericField:PAGE_ADABAS:NF_CACHE_SIZE"; - Pos = MAP_APPFONT ( EDIT_X , 2*UNRELATED_CONTROLS + RELATED_CONTROLS + 2*FIXEDTEXT_HEIGHT -1 ) ; - Size = MAP_APPFONT ( 40 , EDIT_HEIGHT ) ; - Border = TRUE ; - TabStop = TRUE ; - Spin = TRUE ; - SpinSize = 1; - StrictFormat = TRUE; - }; - - FixedText FT_DATA_INCREMENT - { - Pos = MAP_APPFONT ( 6 , 3*UNRELATED_CONTROLS + RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT ) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "~Data increment (MB)"; - }; - NumericField NF_DATA_INCREMENT - { - HelpID = "dbaccess:NumericField:PAGE_ADABAS:NF_DATA_INCREMENT"; - Pos = MAP_APPFONT ( EDIT_X , 3*UNRELATED_CONTROLS + RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT -1 ) ; - Size = MAP_APPFONT ( 40 , EDIT_HEIGHT ) ; - Border = TRUE ; - TabStop = TRUE ; - Spin = TRUE ; - SpinSize = 1; - StrictFormat = TRUE; - }; - FixedLine FL_SEPARATOR2 - { - Pos = MAP_APPFONT ( 6 , 4*UNRELATED_CONTROLS + RELATED_CONTROLS + 4*FIXEDTEXT_HEIGHT ) ; - Size = MAP_APPFONT ( 248 , FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "Administration" ; - }; - FixedText FT_CTRLUSERNAME - { - Pos = MAP_APPFONT ( 6 , 4*UNRELATED_CONTROLS + 2*RELATED_CONTROLS + 5*FIXEDTEXT_HEIGHT ) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "Control ~user name" ; - }; - Edit ET_CTRLUSERNAME - { - HelpID = "dbaccess:Edit:PAGE_ADABAS:ET_CTRLUSERNAME"; - Border = TRUE ; - Pos = MAP_APPFONT ( EDIT_X , 4*UNRELATED_CONTROLS + 2*RELATED_CONTROLS + 5*FIXEDTEXT_HEIGHT-1 ) ; - Size = MAP_APPFONT ( 105 , EDIT_HEIGHT ) ; - TabStop = TRUE ; - }; - FixedText FT_CTRLPASSWORD - { - Pos = MAP_APPFONT ( 6 , 5*UNRELATED_CONTROLS + 2*RELATED_CONTROLS + 6*FIXEDTEXT_HEIGHT ) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "Control ~password" ; - }; - Edit ET_CTRLPASSWORD - { - HelpID = "dbaccess:Edit:PAGE_ADABAS:ET_CTRLPASSWORD"; - Border = TRUE ; - Pos = MAP_APPFONT ( EDIT_X , 5*UNRELATED_CONTROLS + 2*RELATED_CONTROLS + 6*FIXEDTEXT_HEIGHT-1 ) ; - Size = MAP_APPFONT ( 105 , EDIT_HEIGHT) ; - TabStop = TRUE ; - PassWord = TRUE ; - }; - - CheckBox CB_SHUTDB - { - HelpID = "dbaccess:CheckBox:PAGE_ADABAS:CB_SHUTDB"; - Pos = MAP_APPFONT ( 6 , 6*UNRELATED_CONTROLS + 2*RELATED_CONTROLS + 7*FIXEDTEXT_HEIGHT ) ; - Size = MAP_APPFONT ( 248 , CHECKBOX_HEIGHT ) ; - Text[ en-US ] = "~Shut down service when closing %PRODUCTNAME"; - }; - - PushButton PB_STAT - { - HelpID = "dbaccess:PushButton:PAGE_ADABAS:PB_STAT"; - Pos = MAP_APPFONT ( PAGE_X - BUTTON_WIDTH - UNRELATED_CONTROLS, PAGE_Y - BUTTON_HEIGHT - UNRELATED_CONTROLS ) ; - Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ; - Text[ en-US ] = "E~xtended..."; - }; - - AUTO_CHARSET( 7*UNRELATED_CONTROLS + 2*RELATED_CONTROLS + 7*FIXEDTEXT_HEIGHT + CHECKBOX_HEIGHT, PAGE_X ) -}; - -//......................................................................... -#define MYSQL_YDIST 53 -#define MYSQL_FL_Y 8 -#define MYSQL_DRIVERCLASS_Y 8 - -TabPage PAGE_MYSQL_ODBC -{ - HelpID = "dbaccess:TabPage:PAGE_MYSQL_ODBC"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( PAGE_X , PAGE_Y ) ; - Hide = TRUE; - - AUTO_CHARSET( UNRELATED_CONTROLS, PAGE_X ) -}; - -TabPage PAGE_MYSQL_JDBC -{ - HelpID = "dbaccess:TabPage:PAGE_MYSQL_JDBC"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( PAGE_X , PAGE_Y ) ; - Hide = TRUE; - - AUTO_FIXEDLINE_CONNSETTINGS( UNRELATED_CONTROLS ) - AUTO_HOST_AND_PORT( UNRELATED_CONTROLS + RELATED_CONTROLS + FIXEDTEXT_HEIGHT ) - AUTO_SOCKETCONTROLGROUP(3*UNRELATED_CONTROLS + RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT) - - FixedText FT_JDBCDRIVERCLASS - { - Pos = MAP_APPFONT ( 6, - 4*UNRELATED_CONTROLS + RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT + EDIT_HEIGHT) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "MySQL JDBC d~river class"; - }; - Edit ET_JDBCDRIVERCLASS - { - HelpID = "dbaccess:Edit:PAGE_MYSQL_JDBC:ET_JDBCDRIVERCLASS"; - Pos = MAP_APPFONT ( EDIT_X, - 4*UNRELATED_CONTROLS + RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT -1 + EDIT_HEIGHT) ; - Size = MAP_APPFONT ( 97 , EDIT_HEIGHT ) ; - TabStop = TRUE ; - Border = TRUE ; - }; - PushButton PB_TESTDRIVERCLASS - { - HelpID = "dbaccess:PushButton:PAGE_MYSQL_JDBC:PB_TESTDRIVERCLASS"; - TabStop = TRUE ; - Pos = MAP_APPFONT ( PAGE_X - BUTTON_WIDTH - UNRELATED_CONTROLS , 4*UNRELATED_CONTROLS + RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT -2 + EDIT_HEIGHT) ; - Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ; - Text [ en-US ] = "Test class" ; - }; - - AUTO_CHARSET( 5*UNRELATED_CONTROLS + RELATED_CONTROLS + 4*FIXEDTEXT_HEIGHT+ EDIT_HEIGHT, PAGE_X ) -}; - -TabPage PAGE_MYSQL_NATIVE -{ - HelpID = "dbaccess:TabPage:PAGE_MYSQL_NATIVE"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( PAGE_X , PAGE_Y ) ; - Hide = TRUE; - - AUTO_FIXEDLINE_CONNSETTINGS( UNRELATED_CONTROLS ) - - FixedLine FL_SEPARATOR2 - { - Pos = MAP_APPFONT ( 3 , 4*UNRELATED_CONTROLS + 3*RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT + 3*EDIT_HEIGHT ) ; - Size = MAP_APPFONT ( PAGE_X - 6, FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "User authentication"; - }; - FixedText FT_USERNAME - { - Pos = MAP_APPFONT ( 6 , 4*UNRELATED_CONTROLS + 4*RELATED_CONTROLS + 4*FIXEDTEXT_HEIGHT + 3*EDIT_HEIGHT ) ; - Size = MAP_APPFONT ( EDIT_X - 6 - RELATED_CONTROLS, FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "~User name" ; - }; - Edit ET_USERNAME - { - HelpID = "dbaccess:Edit:PAGE_MYSQL_NATIVE:ET_USERNAME"; - Border = TRUE ; - Pos = MAP_APPFONT ( EDIT_X, 4*UNRELATED_CONTROLS + 4*RELATED_CONTROLS + 4*FIXEDTEXT_HEIGHT + 3*EDIT_HEIGHT - 1 ) ; - Size = MAP_APPFONT ( 105 , EDIT_HEIGHT ) ; - TabStop = TRUE ; - }; - CheckBox CB_PASSWORD_REQUIRED - { - HelpID = "dbaccess:CheckBox:PAGE_MYSQL_NATIVE:CB_PASSWORD_REQUIRED"; - Pos = MAP_APPFONT ( EDIT_X, 4*UNRELATED_CONTROLS + 5*RELATED_CONTROLS + 4*FIXEDTEXT_HEIGHT + 4*EDIT_HEIGHT ) ; - Size = MAP_APPFONT ( 105, CHECKBOX_HEIGHT ) ; - Text [ en-US ] = "Password required"; - }; - - AUTO_CHARSET( 5*UNRELATED_CONTROLS + 5*RELATED_CONTROLS + 5*FIXEDTEXT_HEIGHT + 4*EDIT_HEIGHT, PAGE_X ) -}; - -TabPage PAGE_ORACLE_JDBC -{ - HelpID = "dbaccess:TabPage:PAGE_ORACLE_JDBC"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( PAGE_X , PAGE_Y ) ; - Hide = TRUE; - - AUTO_FIXEDLINE_CONNSETTINGS( UNRELATED_CONTROLS ) - AUTO_HOST_AND_PORT( UNRELATED_CONTROLS + RELATED_CONTROLS + FIXEDTEXT_HEIGHT ) - - AUTO_SOCKETCONTROLGROUP(3*UNRELATED_CONTROLS + RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT) - - FixedText FT_JDBCDRIVERCLASS - { - Pos = MAP_APPFONT ( 6, - 4*UNRELATED_CONTROLS + RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT + EDIT_HEIGHT) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Oracle JDBC d~river class"; - }; - Edit ET_JDBCDRIVERCLASS - { - HelpID = "dbaccess:Edit:PAGE_ORACLE_JDBC:ET_JDBCDRIVERCLASS"; - Pos = MAP_APPFONT ( EDIT_X, - 4*UNRELATED_CONTROLS + RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT + EDIT_HEIGHT + ( FIXEDTEXT_HEIGHT - EDIT_HEIGHT ) / 2 ) ; - Size = MAP_APPFONT ( 97 , EDIT_HEIGHT ) ; - TabStop = TRUE ; - Border = TRUE ; - }; - PushButton PB_TESTDRIVERCLASS - { - HelpID = "dbaccess:PushButton:PAGE_ORACLE_JDBC:PB_TESTDRIVERCLASS"; - TabStop = TRUE ; - Pos = MAP_APPFONT ( PAGE_X - BUTTON_WIDTH - UNRELATED_CONTROLS, - 4*UNRELATED_CONTROLS + RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT + EDIT_HEIGHT + ( FIXEDTEXT_HEIGHT - BUTTON_HEIGHT ) / 2 ) ; - Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ; - Text [ en-US ] = "Test class" ; - }; - - AUTO_CHARSET( 5*UNRELATED_CONTROLS + RELATED_CONTROLS + 4*FIXEDTEXT_HEIGHT+ EDIT_HEIGHT, PAGE_X ) -}; - -//......................................................................... - -TabPage PAGE_LDAP -{ - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( PAGE_X , PAGE_Y ) ; - Hide = TRUE; - HelpId = HID_DSADMIN_PAGE_LDAP; - - FixedLine FL_SEPARATOR1 - { - Pos = MAP_APPFONT ( 4 , UNRELATED_CONTROLS ) ; - Size = MAP_APPFONT ( PAGE_X - 8 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Connection Settings"; - }; - - FixedText FT_BASEDN - { - Pos = MAP_APPFONT ( 6 , UNRELATED_CONTROLS + RELATED_CONTROLS + FIXEDTEXT_HEIGHT) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "~Base DN"; - }; - Edit ET_BASEDN - { - TabStop = TRUE ; - Border = TRUE ; - HelpId = HID_DSADMIN_LDAP_BASEDN; - - Pos = MAP_APPFONT ( EDIT_X , UNRELATED_CONTROLS + RELATED_CONTROLS + FIXEDTEXT_HEIGHT -1 ) ; - Size = MAP_APPFONT ( 105 , EDIT_HEIGHT ) ; - }; - CheckBox CB_USESSL - { - Pos = MAP_APPFONT ( 6 , 2*UNRELATED_CONTROLS + RELATED_CONTROLS + 2*FIXEDTEXT_HEIGHT) ; - Size = MAP_APPFONT ( PAGE_X - 12 , CHECKBOX_HEIGHT ) ; - Text [ en-US ] = "Use secure connection(SSL)"; - HelpId = HID_DSADMIN_USESSL_LDAP; - }; - - FixedText FT_PORTNUMBER - { - Pos = MAP_APPFONT ( 6 , 3*UNRELATED_CONTROLS + RELATED_CONTROLS + 2*FIXEDTEXT_HEIGHT + CHECKBOX_HEIGHT) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "~Port number"; - }; - NumericField NF_PORTNUMBER - { - TabStop = TRUE ; - Border = TRUE ; - HelpId = HID_DSADMIN_LDAP_PORTNUMBER; - NoThousandSep = TRUE; - - Pos = MAP_APPFONT ( EDIT_X , 3*UNRELATED_CONTROLS + RELATED_CONTROLS + 2*FIXEDTEXT_HEIGHT-1 + CHECKBOX_HEIGHT) ; - Size = MAP_APPFONT ( 105 , EDIT_HEIGHT ) ; - }; - FixedText FT_LDAPROWCOUNT - { - Pos = MAP_APPFONT ( 6 , 4*UNRELATED_CONTROLS + RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT + CHECKBOX_HEIGHT ) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Maximum number of ~records"; - }; - NumericField NF_LDAPROWCOUNT - { - TabStop = TRUE ; - Border = TRUE ; - HelpId = HID_DSADMIN_LDAP_ROWCOUNT; - NoThousandSep = TRUE; - - Pos = MAP_APPFONT ( EDIT_X , 4*UNRELATED_CONTROLS + RELATED_CONTROLS + 3*FIXEDTEXT_HEIGHT -1 + CHECKBOX_HEIGHT) ; - Size = MAP_APPFONT ( 105 , EDIT_HEIGHT ) ; - }; -}; - - -//......................................................................... - -TabPage PAGE_TEXT -{ - SVLook = TRUE ; - Hide = TRUE; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( PAGE_X , PAGE_Y ) ; - HelpId = HID_DSADMIN_PAGE_TEXT; - - AUTO_SEPARATORCONTROLGROUP(UNRELATED_CONTROLS, PAGE_X) -}; - -//......................................................................... -TabPage PAGE_USERDRIVER -{ - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( PAGE_X , PAGE_Y ) ; - Hide = TRUE; - HelpId = HID_DSADMIN_PAGE_USERDRIVER; - - FixedText FT_HOSTNAME - { - Pos = MAP_APPFONT ( 6 , UNRELATED_CONTROLS ) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "~Hostname"; - }; - Edit ET_HOSTNAME - { - HelpID = "dbaccess:Edit:PAGE_USERDRIVER:ET_HOSTNAME"; - TabStop = TRUE ; - Border = TRUE ; - Pos = MAP_APPFONT ( EDIT_X , UNRELATED_CONTROLS -1 ) ; - Size = MAP_APPFONT ( 105 , EDIT_HEIGHT ) ; - }; - - FixedText FT_PORTNUMBER - { - Pos = MAP_APPFONT ( 6 , 2*UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "~Port number"; - }; - - NumericField NF_PORTNUMBER - { - HelpID = "dbaccess:NumericField:PAGE_USERDRIVER:NF_PORTNUMBER"; - TabStop = TRUE ; - Border = TRUE ; - NoThousandSep = TRUE; - - Pos = MAP_APPFONT ( EDIT_X , 2*UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT -1 ) ; - Size = MAP_APPFONT ( 105 , EDIT_HEIGHT ) ; - }; - - FixedText FT_OPTIONS - { - Pos = MAP_APPFONT ( 6 , 3*UNRELATED_CONTROLS + 2*FIXEDTEXT_HEIGHT ) ; - Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "~Driver settings" ; - }; - Edit ET_OPTIONS - { - HelpID = "dbaccess:Edit:PAGE_USERDRIVER:ET_OPTIONS"; - Border = TRUE ; - TabStop = TRUE ; - }; - AUTO_CHARSET( 4*UNRELATED_CONTROLS+ 3*FIXEDTEXT_HEIGHT + RELATED_CONTROLS, PAGE_X) -}; - -String STR_ERR_USE_CONNECT_TO -{ - Text [ en-US ] = "Please choose 'Connect to an existing database' to connect to an existing database instead."; -}; diff --git a/dbaccess/source/ui/dlg/dbadmin2.src b/dbaccess/source/ui/dlg/dbadmin2.src deleted file mode 100644 index c7afa2119..000000000 --- a/dbaccess/source/ui/dlg/dbadmin2.src +++ /dev/null @@ -1,154 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBA_DBACCESS_HELPID_HRC_ -#include "dbaccess_helpid.hrc" -#endif - -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif -#ifndef _DBAUI_DBADMIN_HRC_ -#include "dbadmin.hrc" -#endif -#ifndef DBACCESS_UI_BROWSER_ID_HXX -#include "browserids.hxx" -#endif -#ifndef DBAUI_TOOLBOX_HXX -#include "toolbox.hrc" -#endif -#ifndef _DBAUI_AUTOCONTROLS_HRC_ -#include "AutoControls.hrc" -#endif - -//......................................................................... - -String STR_ENTER_CONNECTION_PASSWORD -{ - Text [ en-US ] = "A password is needed to connect to the data source \"$name$\"."; -}; - -String STR_ASK_FOR_DIRECTORY_CREATION -{ - Text [ en-US ] = "The directory\n\n$path$\n\ndoes not exist. Should it be created?"; -}; - -String STR_COULD_NOT_CREATE_DIRECTORY -{ - Text [ en-US ] = "The directory $name$ could not be created."; -}; - - - - - - -#define EDIT_SIZE_X 50 -#define FT_SIZE_X 90 -#define WIN_X 220 -#define WIN_Y 72 - -ModalDialog DLG_DOMAINPASSWORD -{ - HelpID = "dbaccess:ModalDialog:DLG_DOMAINPASSWORD"; - Border = TRUE ; - Moveable = TRUE ; - OutputSize = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( WIN_X , WIN_Y ) ; - Text[ en-US ] = "Convert Database"; - - FixedLine FT_PASSWORD - { - Pos = MAP_APPFONT ( 3 , 3 ) ; - Size = MAP_APPFONT ( WIN_X - 3 - 6 - 6 - 50 , 8 ) ; - Text[ en-US ] = "Please enter the ~password for the user 'DOMAIN'."; - }; - - Edit ET_PASSWORD - { - HelpID = "dbaccess:Edit:DLG_DOMAINPASSWORD:ET_PASSWORD"; - Border = TRUE ; - Pos = MAP_APPFONT ( 12 + FT_SIZE_X , 16 ) ; - Size = MAP_APPFONT ( EDIT_SIZE_X , 12 ) ; - PassWord = TRUE ; - }; - OKButton BTN_PASSWORD_OK - { - Pos = MAP_APPFONT ( WIN_X - 56 , 6 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - DefButton = TRUE ; - }; - CancelButton BTN_PASSWORD_CANCEL - { - Pos = MAP_APPFONT ( WIN_X - 56 , 23 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - }; - HelpButton BTN_PASSWORD_HELP - { - Pos = MAP_APPFONT ( WIN_X - 56 , 43 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - }; -}; - -#define PAGE_X_T (PAGE_X -80) -#define PAGE_Y_T (PAGE_Y -50) - -TabPage PAGE_TABLESUBSCRIPTION -{ - SVLook = TRUE ; - Hide = TRUE; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( PAGE_X_T, PAGE_Y_T) ; - HelpId = HID_DSADMIN_TABLE_SUBSCRIPTION; - - Text [ en-US ] = "Tables Filter" ; - - FixedLine FL_SEPARATOR1 - { - Pos = MAP_APPFONT ( RELATED_CONTROLS , UNRELATED_CONTROLS ) ; - Size = MAP_APPFONT ( PAGE_X_T - 2* RELATED_CONTROLS, FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "Tables and table filter"; - }; - Control CTL_TABLESUBSCRIPTION - { - Pos = MAP_APPFONT ( UNRELATED_CONTROLS , UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + RELATED_CONTROLS) ; - Size = MAP_APPFONT ( PAGE_X_T - 2*UNRELATED_CONTROLS , 81 ) ; - Group = TRUE; - Border = TRUE ; - TabStop = TRUE ; - HelpId = HID_DSADMIN_TABLE_SELECTOR; - }; - FixedText FT_FILTER_EXPLANATION - { - Pos = MAP_APPFONT ( UNRELATED_CONTROLS , 2*UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + RELATED_CONTROLS + 81 ) ; - Size = MAP_APPFONT ( PAGE_X_T - 2*UNRELATED_CONTROLS , 16 ) ; - HelpId = HID_DSADMIN_FILTER_EXPLANATION; - WordBreak = TRUE; - Text [ en-US ] = "Mark the tables that should be visible for the applications."; - }; -}; diff --git a/dbaccess/source/ui/dlg/dbadminsetup.hrc b/dbaccess/source/ui/dlg/dbadminsetup.hrc deleted file mode 100644 index 282557af2..000000000 --- a/dbaccess/source/ui/dlg/dbadminsetup.hrc +++ /dev/null @@ -1,135 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_DBADMINSETUP_HRC_ -#define _DBAUI_DBADMINSETUP_HRC_ - - -#ifndef _DBA_DBACCESS_HELPID_HRC_ -#include "dbaccess_helpid.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif -#ifndef DBACCESS_UI_BROWSER_ID_HXX -#include "browserids.hxx" -#endif - - -#define STR_DBASE_HELPTEXT 28 -#define STR_MSACCESS_HELPTEXT 29 -#define STR_TEXT_HELPTEXT 30 - // FREE -#define STR_ADO_HELPTEXT 32 -#define STR_JDBC_HELPTEXT 33 -#define STR_ODBC_HELPTEXT 34 -#define STR_MYSQLJDBC_HELPTEXT 35 -#define STR_SPREADSHEET_HELPTEXT 36 - // FREE -#define STR_FINAL_HELPTEXT 38 -#define STR_ADABAS_HELPTEXT 39 -#define STR_ORACLE_HELPTEXT 40 -#define STR_DBASE_HEADERTEXT 41 -#define STR_MSACCESS_HEADERTEXT 42 -#define STR_TEXT_HEADERTEXT 43 - // FREE -#define STR_ADO_HEADERTEXT 45 -#define STR_JDBC_HEADERTEXT 46 -#define STR_ODBC_HEADERTEXT 47 -#define STR_MYSQLJDBC_HEADERTEXT 48 - // FREE -#define STR_SPREADSHEET_HEADERTEXT 50 -#define STR_FINAL_HEADERTEXT 52 -#define STR_ADABAS_HEADERTEXT 53 -#define STR_ORACLE_HEADERTEXT 54 -#define STR_GENERAL_HEADERTEXT 55 -#define STR_DBWIZARDTITLE 56 - -#define STR_DEFAULTLDAPPORTNUMBER 60 - -#define STR_ADABASNAME 61 -#define STR_ODBCDATASOURCENAME 63 -#define STR_SPREADSHEETPATH 64 -#define STR_DBLOCATIONLABEL 65 -#define STR_ADMIN_HELPTEXT 66 - -#define STR_ORACLE_DEFAULT 67 -#define STR_PAGETITLE_INTROPAGE 69 -#define STR_PAGETITLE_DBASE 70 -#define STR_PAGETITLE_TEXT 71 -#define STR_PAGETITLE_MSACCESS 72 -#define STR_PAGETITLE_LDAP 73 -#define STR_PAGETITLE_ADABAS 74 -#define STR_PAGETITLE_ADO 75 -#define STR_PAGETITLE_JDBC 76 -#define STR_PAGETITLE_ORACLE 77 -#define STR_PAGETITLE_MYSQL 78 -#define STR_PAGETITLE_ODBC 79 -#define STR_PAGETITLE_SPREADSHEET 80 -#define STR_PAGETITLE_AUTHENTIFICATION 81 -#define STR_PAGETITLE_FINAL 82 -#define STR_MYSQL_DEFAULT 83 -#define STR_ORACLE_DRIVERCLASSTEXT 84 -#define STR_MYSQL_DRIVERCLASSTEXT 85 -#define STR_LDAP_DEFAULT 86 -#define STR_PAGETITLE_MYSQL_NATIVE 87 - - -#define FT_PORTNUMBERDEFAULT 1 -#define FT_LDAP_HELPTEXT 2 -#define FT_MYSQL_HELPTEXT 3 -#define FT_MYSQL_HEADERTEXT 4 -#define FT_MYSQLCONNECTIONMODE 5 -#define FT_BROWSEURL 6 -#define FT_AUTHENTIFICATIONHELPTEXT 7 -#define FT_AUTHENTIFICATIONHEADERTEXT 8 -#define FT_LDAP_HEADERTEXT 9 -#define FT_GENERALUSERNAME 10 -#define FT_FINALHEADER 11 -#define FT_FINALTEXT 12 -#define FT_FINALHELPTEXT 13 -#define FT_ADDITIONALSETTINGS 14 -#define FT_SETUP_WIZARD_HEADER 15 -#define FT_SETUP_WIZARD_HELP 16 - -#define ET_GENERALUSERNAME 1 - -#define PB_TESTCONNECTION 1 - -#define RB_CONNECTVIAODBC 1 -#define RB_CONNECTVIAJDBC 2 -#define RB_REGISTERDATASOURCE 3 -#define RB_DONTREGISTERDATASOURCE 4 -#define RB_CONNECTVIANATIVE 5 - -#define CB_WIZ_USESSL 1 -#define CB_STARTTABLEWIZARD 2 -#define CB_OPENAFTERWARDS 3 -#define CB_SPREADSHEETPASSWORDREQUIRED 4 -#define CB_GENERALPASSWORDREQUIRED 5 - -#endif diff --git a/dbaccess/source/ui/dlg/dbadminsetup.src b/dbaccess/source/ui/dlg/dbadminsetup.src deleted file mode 100644 index f8f8dac62..000000000 --- a/dbaccess/source/ui/dlg/dbadminsetup.src +++ /dev/null @@ -1,656 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_DBADMINSETUP_HRC_ -#include "dbadminsetup.hrc" -#endif - -#ifndef _DBAUI_AUTOCONTROLS_HRC_ -#include "AutoControls.hrc" -#endif - - -#define CHECKBOX_HEIGHT 8 -#define FIXEDTEXT_HEIGHT 8 -#define RELATED_CONTROLS 4 -#define UNRELATED_CONTROLS 7 -#define EDIT_HEIGHT 12 -#define EDIT_X 101 - - -// ----------------------------------------------------------------------------- -ModalDialog DLG_DATABASE_WIZARD -{ - OutputSize = TRUE ; - Moveable = TRUE; - Closeable = TRUE ; - HelpId = HID_DLG_DATABASE_WIZARD; - Hide = TRUE; - Text[ en-US ] = "Database Wizard" ; - - TabControl 1 - { - OutputSize = TRUE ; - HelpId = HID_DSADMIN_TABCONTROL; - }; - - String STR_DBWIZARDTITLE - { - Text[ en-US ] = "Database Wizard" ; - }; - - String STR_PAGETITLE_INTROPAGE - { - Text[ en-US ] = "Select database" ; - }; - - String STR_PAGETITLE_DBASE - { - Text[ en-US ] = "Set up dBASE connection" ; - - }; - - String STR_PAGETITLE_TEXT - { - Text[ en-US ] = "Set up a connection to text files" ; - }; - - - String STR_PAGETITLE_MSACCESS - { - Text[ en-US ] = "Set up Microsoft Access connection" ; - }; - - String STR_PAGETITLE_LDAP - { - Text[ en-US ] = "Set up LDAP connection" ; - }; - - String STR_PAGETITLE_ADABAS - { - Text[ en-US ] = "Set up Adabas D connection" ; - }; - - String STR_PAGETITLE_ADO - { - Text[ en-US ] = "Set up ADO connection" ; - }; - - String STR_PAGETITLE_JDBC - { - Text[ en-US ] = "Set up JDBC connection" ; - }; - - String STR_PAGETITLE_ORACLE - { - Text[ en-US ] = "Set up Oracle database connection" ; - }; - - String STR_PAGETITLE_MYSQL - { - Text[ en-US ] = "Set up MySQL connection" ; - }; - - String STR_PAGETITLE_ODBC - { - Text[ en-US ] = "Set up ODBC connection" ; - }; - - String STR_PAGETITLE_SPREADSHEET - { - Text[ en-US ] = "Set up Spreadsheet connection" ; - }; - - String STR_PAGETITLE_AUTHENTIFICATION - { - Text[ en-US ] = "Set up user authentication" ; - }; - - String STR_PAGETITLE_MYSQL_NATIVE - { - Text [ en-US ] = "Set up MySQL server data"; - }; - - String STR_PAGETITLE_FINAL - { - Text[ en-US ] = "Save and proceed" ; - }; -}; - -String STR_DATABASEDEFAULTNAME -{ - Text[ en-US ] = "New Database" ; -}; - - -TabPage PAGE_DBWIZARD_MYSQL_INTRO -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_MYSQL_INTRO"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - FixedText FT_MYSQL_HEADERTEXT - { - Pos = MAP_APPFONT ( START_X , 8 ) ; - Size = MAP_APPFONT ( (WIZARD_PAGE_X - START_X) - 12 , 2 * FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Set up a connection to a MySQL database"; - WordBreak = TRUE; - }; - - FixedText FT_MYSQL_HELPTEXT - { - Pos = MAP_APPFONT (START_X , 27 ) ; - Size = MAP_APPFONT ( 213 , 48 ) ; - Text[ en-US ] = "You can connect to a MySQL database using either ODBC or JDBC.\nPlease contact your system administrator if you are unsure about the following settings."; - WordBreak = TRUE ; - }; - - FixedText FT_MYSQLCONNECTIONMODE - { - Pos = MAP_APPFONT (START_X , 79 ) ; - Size = MAP_APPFONT ( 209 , 8 ) ; - Text[ en-US ] = "How do you want to connect to your MySQL database?" ; - }; - - RadioButton RB_CONNECTVIAODBC - { - HelpId = HID_PAGE_DBWIZARD_MYSQL_RB_CONNECTVIAODBC ; - Pos = MAP_APPFONT (START_X + 6 , 91 ) ; - Size = MAP_APPFONT ( 205 , 9 ) ; - Text[ en-US ] = "Connect using ODBC (Open Database Connectivity)" ; - }; - - RadioButton RB_CONNECTVIAJDBC - { - HelpId = HID_PAGE_DBWIZARD_MYSQL_RB_CONNECTVIAJDBC ; - Pos = MAP_APPFONT (START_X + 6, 103 ) ; - Size = MAP_APPFONT ( 208 , 8 ) ; - Text[ en-US ] = "Connect using JDBC (Java Database Connectivity)" ; - }; - RadioButton RB_CONNECTVIANATIVE - { - HelpID = "dbaccess:RadioButton:PAGE_DBWIZARD_MYSQL_INTRO:RB_CONNECTVIANATIVE"; - Pos = MAP_APPFONT (START_X + 6 , 115 ) ; - Size = MAP_APPFONT ( 205 , 9 ) ; - Text[ en-US ] = "Connect directly" ; - Hide = TRUE ; - }; -}; - -#define AUTHENTEDIT_X (EDIT_X - 10) - -TabPage PAGE_DBWIZARD_AUTHENTIFICATION -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_AUTHENTIFICATION"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - FixedText FT_AUTHENTIFICATIONHEADERTEXT - { - Pos = MAP_APPFONT ( START_X , 8 ) ; - Size = MAP_APPFONT ( (WIZARD_PAGE_X - START_X) - 12 , 2 * FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Set up the user authentication"; - WordBreak = TRUE; - }; - - FixedText FT_AUTHENTIFICATIONHELPTEXT\ - { - Pos = MAP_APPFONT (START_X , 27 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X - 6, 3*FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Some databases require you to enter a user name." ;\ - WordBreak = TRUE ; - }; - - FixedText FT_GENERALUSERNAME - { - Pos = MAP_APPFONT (START_X , 62 ) ; - Size = MAP_APPFONT ( AUTHENTEDIT_X - START_X , FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "~User name" ; - }; - - Edit ET_GENERALUSERNAME - { - Border = TRUE ; - HelpId = HID_PAGE_DBWIZARD_AUTHENTIFICATION_ET_GENERALUSERNAME ; - Pos = MAP_APPFONT (AUTHENTEDIT_X , 60 ) ; - Size = MAP_APPFONT ( (WIZARD_PAGE_X - AUTHENTEDIT_X - 6), EDIT_HEIGHT ) ; - }; - - CheckBox CB_GENERALPASSWORDREQUIRED - { - HelpId = HID_PAGE_DBWIZARD_AUTHENTIFICATION_CB_GENERALPASSWORDREQUIRED ; - Pos = MAP_APPFONT (AUTHENTEDIT_X , 76 ); - Size = MAP_APPFONT ( 93 , CHECKBOX_HEIGHT ); - Text[ en-US ] = "Password re~quired" ; - }; - - PushButton PB_TESTCONNECTION - { - HelpId = HID_PAGE_DBWIZARD_AUTHENTIFICATION_PB_TESTCONNECTION ; - Pos = MAP_APPFONT (WIZARD_PAGE_X - BUTTON_WIDTH - UNRELATED_CONTROLS , WIZARD_PAGE_Y - 18 ) ; - Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ; - Text[ en-US ] = "~Test Connection" ; - }; -}; - - -TabPage PAGE_DBWIZARD_FINAL -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_FINAL"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - FixedText FT_FINALHEADER - { - Pos = MAP_APPFONT ( START_X , 8 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X - 6 , 2* FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Decide how to proceed after saving the database"; - WordBreak = TRUE; - }; - - FixedText FT_FINALHELPTEXT - { - Pos = MAP_APPFONT (START_X , 27 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X - 6, 2*FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Do you want the wizard to register the database in %PRODUCTNAME?" ; - WordBreak = TRUE ; - }; - - RadioButton RB_REGISTERDATASOURCE - { - HelpId = HID_PAGE_DBWIZARD_FINAL_RB_REGISTERDATASOURCE; - Pos = MAP_APPFONT (START_X + 6 , 45 ) ; - Size = MAP_APPFONT ( 205 , 9 ) ; - Group = TRUE; - Text[ en-US ] = "~Yes, register the database for me" ; - }; - - RadioButton RB_DONTREGISTERDATASOURCE - { - HelpId = HID_PAGE_DBWIZARD_FINAL_RB_DONTREGISTERDATASOURCE ; - Pos = MAP_APPFONT (START_X + 6, 57 ) ; - Size = MAP_APPFONT ( 208 , 8 ) ; - Text[ en-US ] = "N~o, do not register the database" ; - }; - - FixedText FT_ADDITIONALSETTINGS - { - Pos = MAP_APPFONT (START_X , 100 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X - 6 , 8 ) ; - Text[ en-US ] = "After the database file has been saved, what do you want to do?" ; - }; - - CheckBox CB_OPENAFTERWARDS - { - HelpId = HID_PAGE_DBWIZARD_FINAL_CB_OPENAFTERWARDS ; - Pos = MAP_APPFONT (START_X + 6, 118 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X , 8 ) ; - Text[ en-US ] = "Open the database for editing" ; - }; - - CheckBox CB_STARTTABLEWIZARD - { - HelpId = HID_PAGE_DBWIZARD_FINAL_CB_STARTTABLEWIZARD ; - Pos = MAP_APPFONT (START_X + 6, 130 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X - 12 , 8 ) ; - Text[ en-US ] = "Create tables using the table wizard" ; - }; - - - FixedText FT_FINALTEXT - { - Pos = MAP_APPFONT ( START_X , 173 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X - 6 , 2* FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Click 'Finish' to save the database."; - WordBreak = TRUE; - }; -}; - -TabPage PAGE_DBWIZARD_MYSQL_JDBC -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_MYSQL_JDBC"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - String STR_MYSQLJDBC_HEADERTEXT - { - Text[ en-US ] = "Set up connection to a MySQL database using JDBC" ; - }; - - String STR_MYSQLJDBC_HELPTEXT - { - Text[ en-US ] = "Please enter the required information to connect to a MySQL database using JDBC. Note that a JDBC driver class must be installed on your system and registered with %PRODUCTNAME.\nPlease contact your system administrator if you are unsure about the following settings."; - }; - - String STR_MYSQL_DRIVERCLASSTEXT - { - Text [ en-US ] = "MySQL JDBC d~river class:"; - }; - - - String STR_MYSQL_DEFAULT - { - Text[ en-US ] = "Default: 3306"; - }; - - AUTOHELP_JDBCCONTROLGROUP(HID_PAGE_DBWIZARD_JDBC_ET_MYSQLDBNAME,HID_PAGE_DBWIZARD_JDBC_ET_MYSQLHOSTSERVER,HID_PAGE_DBWIZARD_JDBC_ET_MYSQLPORT,HID_PAGE_DBWIZARD_JDBC_ET_MYSQLCLASS,HID_PAGE_DBWIZARD_JDBC_PB_TESTMYSQLCLASS) -}; - -TabPage PAGE_DBWIZARD_MYSQL_NATIVE -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_MYSQL_NATIVE"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0, 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - FixedText FT_SETUP_WIZARD_HEADER - { - Pos = MAP_APPFONT ( START_X , 8 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X - 12 , 2 * FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Set up connection to a MySQL database" ; - WordBreak = TRUE; - }; - - FixedText FT_SETUP_WIZARD_HELP - { - Pos = MAP_APPFONT ( START_X , INIT_Y ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X - 12 , 3 * FIXEDTEXT_HEIGHT ) ; - Text [ en-US ] = "Please enter the required information to connect to a MySQL database."; - WordBreak = TRUE; - }; -}; - - -TabPage PAGE_DBWIZARD_DBASE -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_DBASE"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - String STR_DBASE_HEADERTEXT - { - Text[ en-US ] = "Set up a connection to dBASE files" ; - }; - - String STR_DBASE_HELPTEXT - { - Text[ en-US ] = "Select the folder where the dBASE files are stored." ; - }; - - AUTO_HELP_BROWSECONTROLGROUP( 3, HID_PAGE_DBWIZARD_DBASE_ET_DBASELOCATION,HID_PAGE_DBWIZARD_DBASE_PB_DBASELOCATION) -}; - -TabPage PAGE_DBWIZARD_TEXT -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_TEXT"; - String STR_TEXT_HEADERTEXT - { - Text[ en-US ] = "Set up a connection to text files" ; - }; - - String STR_TEXT_HELPTEXT - { - Text[ en-US ] = "Select the folder where the CSV (Comma Separated Values) text files are stored. %PRODUCTNAME Base will open these files in read-only mode." ; - }; - - String STR_TEXT_PATH_OR_FILE{ - Text[ en-US ] = "Path to text files"; - }; - - AUTO_HELP_BROWSECONTROLGROUP(3, HID_PAGE_DBWIZARD_TEXT_ET_LOCATIONTEXTFILE,HID_PAGE_DBWIZARD_TEXT_PB_LOCATIONTEXTFILE) - AUTO_SEPARATORCONTROLGROUP(82, WIZARD_PAGE_X) - }; - -TabPage PAGE_DBWIZARD_MSACCESS -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_MSACCESS"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - String STR_MSACCESS_HEADERTEXT - { - Text[ en-US ] = "Set up a connection to a Microsoft Access database" ; - }; - - String STR_MSACCESS_HELPTEXT - { - Text[ en-US ] = "Please select the Microsoft Access file you want to access."; - }; - - AUTO_HELP_BROWSECONTROLGROUP(3, HID_PAGE_DBWIZARD_MSACCESS_ET_MSACCESSLOCATION, HID_PAGE_DBWIZARD_MSACCESS_PB_MSACCESSLOCATION) -}; - -TabPage PAGE_DBWIZARD_LDAP -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_LDAP"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - FixedText FT_LDAP_HEADERTEXT - { - Pos = MAP_APPFONT ( START_X , 8 ) ; - Size = MAP_APPFONT ( (WIZARD_PAGE_X - START_X) - 12 , 2 * FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Set up a connection to an LDAP directory"; - WordBreak = TRUE; - }; - - FixedText FT_LDAP_HELPTEXT - { - Pos = MAP_APPFONT (START_X , 27 ) ; - Size = MAP_APPFONT (WIZARD_PAGE_X - START_X - 6, 5 * FIXEDTEXT_HEIGHT ) ; - Text[ en-US ] = "Please enter the required information to connect to an LDAP directory.\nPlease contact your system administrator if you are unsure about the following settings." ; - WordBreak = TRUE ; - }; - AUTO_HOSTCONTROLGROUP( INIT_Y + 7 * FIXEDTEXT_HEIGHT + UNRELATED_CONTROLS, HID_PAGE_DBWIZARD_LDAP_ET_HOSTSERVER) - AUTO_BASEDNCONTROLGROUP(INIT_Y + 7 * FIXEDTEXT_HEIGHT + UNRELATED_CONTROLS + EDIT_HEIGHT + RELATED_CONTROLS, HID_PAGE_DBWIZARD_LDAP_ET_BASEDN) - AUTO_PORTCONTROLGROUP( INIT_Y + 7 * FIXEDTEXT_HEIGHT + UNRELATED_CONTROLS + 2 * EDIT_HEIGHT + 2 * RELATED_CONTROLS, HID_PAGE_DBWIZARD_LDAP_ET_PORTNUMBER) - - String STR_LDAP_DEFAULT{ - Text[ en-US ] = "Default: 389" ; - }; - - CheckBox CB_WIZ_USESSL - { - HelpId = HID_PAGE_DBWIZARD_LDAP_CB_USESSL ; - Pos = MAP_APPFONT (START_X , INIT_Y + 7 * FIXEDTEXT_HEIGHT + UNRELATED_CONTROLS + 3 * EDIT_HEIGHT + 4 * RELATED_CONTROLS ) ; - Size = MAP_APPFONT ( 212 , 8 ) ; - Text[ en-US ] = "Use ~secure connection (SSL)" ; - }; -}; - -TabPage PAGE_DBWIZARD_ADABAS -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_ADABAS"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - String STR_ADABAS_HEADERTEXT - { - Text[ en-US ] = "Set up a connection to an Adabas D database" ; - }; - - String STR_ADABAS_HELPTEXT{ - Text[ en-US ] = "Enter the name of the Adabas D database you want to connect to.\nClick 'Browse...' to select an Adabas D database that is already registered in %PRODUCTNAME." ; - }; - - AUTO_HELP_BROWSECONTROLGROUP(4, HID_PAGE_DBWIZARD_ADABAS_ET_ADABASNAME, HID_PAGE_DBWIZARD_ADABAS_PB_ADABASNAME) -}; - -TabPage PAGE_DBWIZARD_ADO -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_ADO"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - String STR_ADO_HEADERTEXT - { - Text[ en-US ] = "Set up a connection to an ADO database" ; - }; - - String STR_ADO_HELPTEXT{ - Text[ en-US ] = "Please enter the URL of the ADO data source you want to connect to.\nClick 'Browse' to configure provider-specific settings.\nPlease contact your system administrator if you are unsure about the following settings." ; - }; - - AUTO_HELP_BROWSECONTROLGROUP(5, HID_PAGE_DBWIZARD_ADO_ET_ADOURL, HID_PAGE_DBWIZARD_ADO_PB_ADOURL) -}; - - -TabPage PAGE_DBWIZARD_ODBC -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_ODBC"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - String STR_ODBC_HEADERTEXT - { - Text[ en-US ] = "Set up a connection to an ODBC database" ; - }; - - String STR_ODBC_HELPTEXT{ - Text[ en-US ] = "Enter the name of the ODBC database you want to connect to.\nClick 'Browse...' to select an ODBC database that is already registered in %PRODUCTNAME.\nPlease contact your system administrator if you are unsure about the following settings." ; - }; - - AUTO_HELP_BROWSECONTROLGROUP(6, HID_PAGE_DBWIZARD_ODBC_ET_NAMEOFODBCDATASOURCE, HID_PAGE_DBWIZARD_ODBC_PB_NAMEOFODBCDATASOURCE) -}; - -TabPage PAGE_DBWIZARD_USERDEFINED -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_USERDEFINED"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - AUTO_HELP_BROWSECONTROLGROUP(6, HID_PAGE_DBWIZARD_USERDEFINED_ET_BROWSE, HID_PAGE_DBWIZARD_USERDEFINED_BROWSE) -}; - -TabPage PAGE_DBWIZARD_JDBC -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_JDBC"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - String STR_JDBC_HEADERTEXT - { - Text[ en-US ] = "Set up a connection to a JDBC database" ; - }; - - String STR_JDBC_HELPTEXT{ - Text[ en-US ] = "Please enter the required information to connect to a JDBC database.\nPlease contact your system administrator if you are unsure about the following settings." ; - }; - - AUTO_HELP_BROWSECONTROLGROUP(4, HID_PAGE_DBWIZARD_JDBC_ET_JDBCURL, HID_PAGE_DBWIZARD_JDBC_PB_JDBCURL) - AUTO_JDBCDRIVERCLASSGROUP(119, HID_PAGE_DBWIZARD_JDBC_ET_JDBCCLASS, HID_PAGE_DBWIZARD_JDBC_PB_TESTJDBCCLASS) -}; - - - -TabPage PAGE_DBWIZARD_ORACLE -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_ORACLE"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - String STR_ORACLE_HEADERTEXT - { - Text[ en-US ] = "Set up a connection to an Oracle database"; - }; - - String STR_ORACLE_DEFAULT - { - Text[ en-US ] = "Default: 1521" ; - }; - - String STR_ORACLE_DRIVERCLASSTEXT{ - Text [ en-US ] = "Oracle JDBC ~driver class"; - }; - - String STR_ORACLE_HELPTEXT{ - Text[ en-US ] = "Please enter the required information to connect to an Oracle database.Note that a JDBC Driver Class must be installed on your system and registered with %PRODUCTNAME.\nPlease contact your system administrator if you are unsure about the following settings." ; - }; - - AUTOHELP_JDBCCONTROLGROUP(HID_PAGE_DBWIZARD_ORACLE_ET_ORACLEDBNAME,HID_PAGE_DBWIZARD_ORACLE_ET_ORACLEHOSTSERVER,HID_PAGE_DBWIZARD_ORACLE_ET_ORACLEPORT,HID_PAGE_DBWIZARD_ORACLE_ET_ORACLECLASS,HID_PAGE_DBWIZARD_ORACLE_PB_TESTORACLECLASS) -}; - - -TabPage PAGE_DBWIZARD_SPREADSHEET -{ - HelpID = "dbaccess:TabPage:PAGE_DBWIZARD_SPREADSHEET"; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( WIZARD_PAGE_X , WIZARD_PAGE_Y ) ; - Hide = TRUE ; - - String STR_SPREADSHEET_HEADERTEXT - { - Text[ en-US ] = "Set up a connection to spreadsheets"; - }; - - String STR_SPREADSHEET_HELPTEXT{ - Text[ en-US ] = "Click 'Browse...' to select a %PRODUCTNAME spreadsheet or Microsoft Excel workbook.\n%PRODUCTNAME will open this file in read-only mode." ; - }; - - AUTO_HELP_BROWSECONTROLGROUP(3, HID_PAGE_DBWIZARD_SPREADSHEET_ET_SPREADSHEETPATH,HID_PAGE_DBWIZARD_SPREADSHEET_PB_SPREADSHEETPATH ) - - String STR_SPREADSHEETPATH{ - Text[ en-US ] = "~Location and file name" ; - }; - - - CheckBox CB_SPREADSHEETPASSWORDREQUIRED - { - HelpId = HID_PAGE_DBWIZARD_SPREADSHEET_CB_SPREADSHEETPASSWORDREQUIRED ; - Pos = MAP_APPFONT (START_X + UNRELATED_CONTROLS , 83 ) ; - Size = MAP_APPFONT ( 93 , 11 ) ; - Text[ en-US ] = "~Password required" ; - }; -}; diff --git a/dbaccess/source/ui/dlg/dbfindex.cxx b/dbaccess/source/ui/dlg/dbfindex.cxx deleted file mode 100644 index 6403be25f..000000000 --- a/dbaccess/source/ui/dlg/dbfindex.cxx +++ /dev/null @@ -1,557 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "dbfindex.hxx" - -#include <tools/config.hxx> -#include <sfx2/app.hxx> -#include "moduledbu.hxx" -#include "dbu_dlg.hrc" -#include "dbfindex.hrc" -#include <osl/diagnose.h> -#include <unotools/localfilehelper.hxx> -#include <tools/urlobj.hxx> -#include <unotools/pathoptions.hxx> -#include <ucbhelper/content.hxx> -#include <svl/filenotation.hxx> -#include <rtl/strbuf.hxx> - - -//......................................................................... -namespace dbaui -{ -//......................................................................... - -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::ucb; -using namespace ::svt; - -const ByteString aGroupIdent("dBase III"); - -////////////////////////////////////////////////////////////////////////// -// Klasse ODbaseIndexDialog -DBG_NAME(ODbaseIndexDialog) -//------------------------------------------------------------------------- -ODbaseIndexDialog::ODbaseIndexDialog( Window * pParent, String aDataSrcName ) - : ModalDialog( pParent, ModuleRes(DLG_DBASE_INDEXES) ), - aPB_OK( this, ModuleRes( PB_OK ) ), - aPB_CANCEL( this, ModuleRes( PB_CANCEL ) ), - aPB_HELP( this, ModuleRes( PB_HELP ) ), - m_FT_Tables( this, ModuleRes( FT_TABLES ) ), - aCB_Tables( this, ModuleRes( CB_TABLES ) ), - m_FL_Indexes( this, ModuleRes( FL_INDEXES ) ), - m_FT_TableIndexes( this, ModuleRes( FT_TABLEINDEXES ) ), - aLB_TableIndexes( this, ModuleRes( LB_TABLEINDEXES ) ), - m_FT_AllIndexes( this, ModuleRes( FT_ALLINDEXES ) ), - aLB_FreeIndexes( this, ModuleRes( LB_FREEINDEXES ) ), - aIB_Add( this, ModuleRes( IB_ADD ) ), - aIB_Remove( this, ModuleRes( IB_REMOVE ) ), - aIB_AddAll( this, ModuleRes( IB_ADDALL ) ), - aIB_RemoveAll( this, ModuleRes( IB_REMOVEALL ) ), - m_aDSN(aDataSrcName), - m_bCaseSensitiv(sal_True) -{ - DBG_CTOR(ODbaseIndexDialog,NULL); - - aCB_Tables.SetSelectHdl( LINK(this, ODbaseIndexDialog, TableSelectHdl) ); - aIB_Add.SetClickHdl( LINK(this, ODbaseIndexDialog, AddClickHdl) ); - aIB_Remove.SetClickHdl( LINK(this, ODbaseIndexDialog, RemoveClickHdl) ); - aIB_AddAll.SetClickHdl( LINK(this, ODbaseIndexDialog, AddAllClickHdl) ); - aIB_RemoveAll.SetClickHdl( LINK(this, ODbaseIndexDialog, RemoveAllClickHdl) ); - aPB_OK.SetClickHdl( LINK(this, ODbaseIndexDialog, OKClickHdl) ); - - aLB_FreeIndexes.SetSelectHdl( LINK(this, ODbaseIndexDialog, OnListEntrySelected) ); - aLB_TableIndexes.SetSelectHdl( LINK(this, ODbaseIndexDialog, OnListEntrySelected) ); - - aCB_Tables.SetDropDownLineCount(8); - Init(); - SetCtrls(); - FreeResource(); -} - -//------------------------------------------------------------------------- -ODbaseIndexDialog::~ODbaseIndexDialog() -{ - - DBG_DTOR(ODbaseIndexDialog,NULL); -} - -//------------------------------------------------------------------------- -sal_Bool ODbaseIndexDialog::GetTable(const String& _rName, TableInfoListIterator& _rPosition) -{ - for ( _rPosition = m_aTableInfoList.begin(); - _rPosition != m_aTableInfoList.end(); - ++_rPosition - ) - { - if (m_bCaseSensitiv) - { - if (_rPosition->aTableName.Equals(_rName)) - return sal_True; - } - else - { - if (_rPosition->aTableName.EqualsIgnoreCaseAscii(_rName)) - return sal_True; - } - } - return sal_False; -} - -//------------------------------------------------------------------------- -void ODbaseIndexDialog::checkButtons() -{ - aIB_Add.Enable(0 != aLB_FreeIndexes.GetSelectEntryCount()); - aIB_AddAll.Enable(0 != aLB_FreeIndexes.GetEntryCount()); - - aIB_Remove.Enable(0 != aLB_TableIndexes.GetSelectEntryCount()); - aIB_RemoveAll.Enable(0 != aLB_TableIndexes.GetEntryCount()); -} - -//------------------------------------------------------------------------- -OTableIndex ODbaseIndexDialog::implRemoveIndex(const String& _rName, TableIndexList& _rList, ListBox& _rDisplay, sal_Bool _bMustExist) -{ - OTableIndex aReturn; - - sal_Int32 nPos = 0; - - TableIndexListIterator aSearch; - for ( aSearch = _rList.begin(); - aSearch != _rList.end(); - ++aSearch, ++nPos - ) - { - if ( m_bCaseSensitiv ? aSearch->GetIndexFileName().Equals(_rName) : aSearch->GetIndexFileName().EqualsIgnoreCaseAscii(_rName) ) - { - aReturn = *aSearch; - - _rList.erase(aSearch); - _rDisplay.RemoveEntry( _rName ); - - // adjust selection if necessary - if ((sal_uInt32)nPos == _rList.size()) - _rDisplay.SelectEntryPos((sal_uInt16)nPos-1); - else - _rDisplay.SelectEntryPos((sal_uInt16)nPos); - - break; - } - } - - (void)_bMustExist; - OSL_ENSURE(!_bMustExist || (aSearch != _rList.end()), "ODbaseIndexDialog::implRemoveIndex : did not find the index!"); - return aReturn; -} - -//------------------------------------------------------------------------- -void ODbaseIndexDialog::implInsertIndex(const OTableIndex& _rIndex, TableIndexList& _rList, ListBox& _rDisplay) -{ - _rList.push_front( _rIndex ); - _rDisplay.InsertEntry( _rIndex.GetIndexFileName() ); - _rDisplay.SelectEntryPos(0); -} - -//------------------------------------------------------------------------- -OTableIndex ODbaseIndexDialog::RemoveTableIndex( const String& _rTableName, const String& _rIndexName, sal_Bool _bMustExist ) -{ - OTableIndex aReturn; - - // does the table exist ? - TableInfoListIterator aTablePos; - if (!GetTable(_rTableName, aTablePos)) - return aReturn; - - return implRemoveIndex(_rIndexName, aTablePos->aIndexList, aLB_TableIndexes, _bMustExist); -} - -//------------------------------------------------------------------------- -void ODbaseIndexDialog::InsertTableIndex( const String& _rTableName, const OTableIndex& _rIndex) -{ - TableInfoListIterator aTablePos; - if (!GetTable(_rTableName, aTablePos)) - return; - - implInsertIndex(_rIndex, aTablePos->aIndexList, aLB_TableIndexes); -} - -//------------------------------------------------------------------------- -IMPL_LINK( ODbaseIndexDialog, OKClickHdl, PushButton*, /*pButton*/ ) -{ - // let all tables write their INF file - - for ( ConstTableInfoListIterator aLoop = m_aTableInfoList.begin(); - aLoop != m_aTableInfoList.end(); - ++aLoop - ) - aLoop->WriteInfFile(m_aDSN); - - EndDialog(); - return 0; -} - -//------------------------------------------------------------------------- -IMPL_LINK( ODbaseIndexDialog, AddClickHdl, PushButton*, /*pButton*/ ) -{ - String aSelection = aLB_FreeIndexes.GetSelectEntry(); - String aTableName = aCB_Tables.GetText(); - OTableIndex aIndex = RemoveFreeIndex( aSelection, sal_True ); - InsertTableIndex( aTableName, aIndex ); - - checkButtons(); - return 0; -} - -//------------------------------------------------------------------------- -IMPL_LINK( ODbaseIndexDialog, RemoveClickHdl, PushButton*, /*pButton*/ ) -{ - String aSelection = aLB_TableIndexes.GetSelectEntry(); - String aTableName = aCB_Tables.GetText(); - OTableIndex aIndex = RemoveTableIndex( aTableName, aSelection, sal_True ); - InsertFreeIndex( aIndex ); - - checkButtons(); - return 0; -} - -//------------------------------------------------------------------------- -IMPL_LINK( ODbaseIndexDialog, AddAllClickHdl, PushButton*, /*pButton*/ ) -{ - sal_uInt16 nCnt = aLB_FreeIndexes.GetEntryCount(); - String aTableName = aCB_Tables.GetText(); - String aEntry; - - for( sal_uInt16 nPos = 0; nPos < nCnt; ++nPos ) - InsertTableIndex( aTableName, RemoveFreeIndex( aLB_FreeIndexes.GetEntry(0), sal_True ) ); - - checkButtons(); - return 0; -} - -//------------------------------------------------------------------------- -IMPL_LINK( ODbaseIndexDialog, RemoveAllClickHdl, PushButton*, /*pButton*/ ) -{ - sal_uInt16 nCnt = aLB_TableIndexes.GetEntryCount(); - String aTableName = aCB_Tables.GetText(); - String aEntry; - - for( sal_uInt16 nPos = 0; nPos < nCnt; ++nPos ) - InsertFreeIndex( RemoveTableIndex( aTableName, aLB_TableIndexes.GetEntry(0), sal_True ) ); - - checkButtons(); - return 0; -} - -//------------------------------------------------------------------------- -IMPL_LINK( ODbaseIndexDialog, OnListEntrySelected, ListBox*, /*NOTINTERESTEDIN*/ ) -{ - checkButtons(); - return 0; -} - -//------------------------------------------------------------------------- -IMPL_LINK( ODbaseIndexDialog, TableSelectHdl, ComboBox*, pComboBox ) -{ - // search the table - TableInfoListIterator aTablePos; - if (!GetTable(pComboBox->GetText(), aTablePos)) - return 0L; - - // fill the listbox for the indexes - aLB_TableIndexes.Clear(); - for ( ConstTableIndexListIterator aLoop = aTablePos->aIndexList.begin(); - aLoop != aTablePos->aIndexList.end(); - ++aLoop - ) - aLB_TableIndexes.InsertEntry( aLoop->GetIndexFileName() ); - - if ( aTablePos->aIndexList.size() ) - aLB_TableIndexes.SelectEntryPos(0); - - checkButtons(); - return 0; -} - -//------------------------------------------------------------------------- -void ODbaseIndexDialog::Init() -{ - aPB_OK.Disable(); - m_FL_Indexes.Disable(); - m_FT_TableIndexes.Disable(); - aLB_TableIndexes.Disable(); - m_FT_AllIndexes.Disable(); - aLB_FreeIndexes.Disable(); - aIB_Add.Disable(); - aIB_Remove.Disable(); - aIB_AddAll.Disable(); - aIB_RemoveAll.Disable(); - - /////////////////////////////////////////////////////////////////////////// - // Alle Indizes werden erst einmal zur Liste der freien Indizes hinzugefuegt. - // Dann wird fuer jede Tabelle in der Inf-Datei nachgeschaut, welche Indizes sie besitzt. - // Diese Indizes werden aus der Liste der freien Indizes entfernt - // und in die Indexliste der Tabelle eingetragen - - /////////////////////////////////////////////////////////////////////////// - // if the string does not contain a path, cut the string - INetURLObject aURL; - aURL.SetSmartProtocol(INET_PROT_FILE); - { - SvtPathOptions aPathOptions; - m_aDSN = aPathOptions.SubstituteVariable(m_aDSN); - } - aURL.SetSmartURL(m_aDSN); - - - // String aFileName = aURL.PathToFileName(); - m_aDSN = aURL.GetMainURL(INetURLObject::NO_DECODE); - ::ucbhelper::Content aFile; - sal_Bool bFolder=sal_True; - try - { - aFile = ::ucbhelper::Content(m_aDSN,Reference< ::com::sun::star::ucb::XCommandEnvironment >()); - bFolder = aFile.isFolder(); - } - catch(Exception&) - { - return; - } - - /////////////////////////////////////////////////////////////////////////// - // first assume for all indexes they're free - - Sequence< ::rtl::OUString> aFolderContent( ::utl::LocalFileHelper::GetFolderContents(m_aDSN,bFolder)); - - ::rtl::OUString aIndexExt(RTL_CONSTASCII_USTRINGPARAM("ndx")); - ::rtl::OUString aTableExt(RTL_CONSTASCII_USTRINGPARAM("dbf")); - - ::std::vector< String > aUsedIndexes; - - String aExt; - const ::rtl::OUString *pBegin = aFolderContent.getConstArray(); - const ::rtl::OUString *pEnd = pBegin + aFolderContent.getLength(); - aURL.SetSmartProtocol(INET_PROT_FILE); - for(;pBegin != pEnd;++pBegin) - { - String aName; - ::utl::LocalFileHelper::ConvertURLToPhysicalName(pBegin->getStr(),aName); - aURL.SetSmartURL(aName); - aExt = aURL.getExtension(); - if(aExt == aIndexExt.getStr()) - { - m_aFreeIndexList.push_back( OTableIndex(aURL.getName()) ); - } - else if(aExt == aTableExt.getStr()) - { - m_aTableInfoList.push_back( OTableInfo(aURL.getName()) ); - OTableInfo& rTabInfo = m_aTableInfoList.back(); - - // open the INF file - aURL.setExtension(String::CreateFromAscii("inf")); - OFileNotation aTransformer(aURL.GetURLNoPass(), OFileNotation::N_URL); - Config aInfFile( aTransformer.get(OFileNotation::N_SYSTEM) ); - aInfFile.SetGroup( aGroupIdent ); - - /////////////////////////////////////////////////////////////////////////// - // fill the indexes list - ByteString aNDX; - sal_uInt16 nKeyCnt = aInfFile.GetKeyCount(); - ByteString aKeyName; - String aEntry; - - for( sal_uInt16 nKey = 0; nKey < nKeyCnt; nKey++ ) - { - // does the key point to an index file ? - aKeyName = aInfFile.GetKeyName( nKey ); - aNDX = aKeyName.Copy(0,3); - - // yes -> add to the tables index list - if (aNDX == "NDX" ) - { - aEntry = String(aInfFile.ReadKey(aKeyName), gsl_getSystemTextEncoding()); - rTabInfo.aIndexList.push_back( OTableIndex( aEntry ) ); - - // and remove it from the free index list - aUsedIndexes.push_back(aEntry); - // do this later below. We may not have encountered the index file, yet, thus we may not - // know the index as beeing free, yet - } - - } - } - } - - for ( ::std::vector< String >::const_iterator aUsedIndex = aUsedIndexes.begin(); - aUsedIndex != aUsedIndexes.end(); - ++aUsedIndex - ) - RemoveFreeIndex( *aUsedIndex, sal_False ); - - if (m_aTableInfoList.size()) - { - aPB_OK.Enable(); - m_FL_Indexes.Enable(); - m_FT_TableIndexes.Enable(); - aLB_TableIndexes.Enable(); - m_FT_AllIndexes.Enable(); - aLB_FreeIndexes.Enable(); - } - - checkButtons(); -} - -//------------------------------------------------------------------------- -void ODbaseIndexDialog::SetCtrls() -{ - // ComboBox Tabellen - for ( ConstTableInfoListIterator aLoop = m_aTableInfoList.begin(); - aLoop != m_aTableInfoList.end(); - ++aLoop - ) - aCB_Tables.InsertEntry( aLoop->aTableName ); - - // Den ersten Datensatz ins Edit stellen - if( m_aTableInfoList.size() ) - { - const OTableInfo& rTabInfo = m_aTableInfoList.front(); - aCB_Tables.SetText( rTabInfo.aTableName ); - - // ListBox der Tabellenindizes aufbauen - for ( ConstTableIndexListIterator aIndex = rTabInfo.aIndexList.begin(); - aIndex != rTabInfo.aIndexList.end(); - ++aIndex - ) - aLB_TableIndexes.InsertEntry( aIndex->GetIndexFileName() ); - - if( rTabInfo.aIndexList.size() ) - aLB_TableIndexes.SelectEntryPos( 0 ); - - } - - // ListBox freie Indizes - for ( ConstTableIndexListIterator aFree = m_aFreeIndexList.begin(); - aFree != m_aFreeIndexList.end(); - ++aFree - ) - aLB_FreeIndexes.InsertEntry( aFree->GetIndexFileName() ); - - if( m_aFreeIndexList.size() ) - aLB_FreeIndexes.SelectEntryPos( 0 ); - - - TableSelectHdl(&aCB_Tables); - checkButtons(); -} - -////////////////////////////////////////////////////////////////////////// -// Klasse OTableInfo -//------------------------------------------------------------------------- -void OTableInfo::WriteInfFile( const String& rDSN ) const -{ - // INF-Datei oeffnen - INetURLObject aURL; - aURL.SetSmartProtocol(INET_PROT_FILE); - String aDsn = rDSN; - { - SvtPathOptions aPathOptions; - aDsn = aPathOptions.SubstituteVariable(aDsn); - } - aURL.SetSmartURL(aDsn); - aURL.Append(aTableName); - aURL.setExtension(String::CreateFromAscii("inf")); - - OFileNotation aTransformer(aURL.GetURLNoPass(), OFileNotation::N_URL); - Config aInfFile( aTransformer.get(OFileNotation::N_SYSTEM) ); - aInfFile.SetGroup( aGroupIdent ); - - // Erst einmal alle Tabellenindizes loeschen - ByteString aNDX; - sal_uInt16 nKeyCnt = aInfFile.GetKeyCount(); - ByteString aEntry; - sal_uInt16 nKey = 0; - - while( nKey < nKeyCnt ) - { - // Verweist der Key auf ein Indexfile?... - ByteString aKeyName = aInfFile.GetKeyName( nKey ); - aNDX = aKeyName.Copy(0,3); - - //...wenn ja, Indexfile loeschen, nKey steht dann auf nachfolgendem Key - if( aNDX == "NDX" ) - { - aInfFile.DeleteKey(aKeyName); - nKeyCnt--; - } - else - nKey++; - - } - - // Jetzt alle gespeicherten Indizes hinzufuegen - sal_uInt16 nPos = 0; - for ( ConstTableIndexListIterator aIndex = aIndexList.begin(); - aIndex != aIndexList.end(); - ++aIndex, ++nPos - ) - { - rtl::OStringBuffer aKeyName(RTL_CONSTASCII_STRINGPARAM("NDX")); - if( nPos > 0 ) // Erster Index erhaelt keine Ziffer - aKeyName.append(static_cast<sal_Int32>(nPos)); - aInfFile.WriteKey( - aKeyName.makeStringAndClear(), - rtl::OUStringToOString(aIndex->GetIndexFileName(), - gsl_getSystemTextEncoding())); - } - - aInfFile.Flush(); - - // Falls nur noch [dbase] in INF-File steht, Datei loeschen - if(!nPos) - { - try - { - ::ucbhelper::Content aContent(aURL.GetURLNoPass(),Reference<XCommandEnvironment>()); - aContent.executeCommand( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("delete")),makeAny( sal_Bool( sal_True ) ) ); - } - catch (const Exception& e ) - { - (void)e; // make compiler happy - // simply silent this. The strange algorithm here does a lot of things even if no files at all were - // created or accessed, so it's possible that the file we're trying to delete does not even exist, - // and this is a valid condition. - } - } -} - -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/dbfindex.hrc b/dbaccess/source/ui/dlg/dbfindex.hrc deleted file mode 100644 index 988cedbe2..000000000 --- a/dbaccess/source/ui/dlg/dbfindex.hrc +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef _DBAUI_DBF_INDEXES_HRC_ -#define _DBAUI_DBF_INDEXES_HRC_ - -#define CB_TABLES 1 - -#define FT_TABLES 1 -#define FT_TABLEINDEXES 2 -#define FT_ALLINDEXES 3 - -#define FL_INDEXES 1 - -#define LB_TABLEINDEXES 1 -#define LB_FREEINDEXES 2 - -#define PB_OK 1 -#define PB_CANCEL 1 -#define PB_HELP 1 - -#define IB_ADD 1 -#define IB_REMOVE 2 -#define IB_ADDALL 3 -#define IB_REMOVEALL 4 - - -#endif //_DBAUI_DBF_INDEXES_HRC_ - diff --git a/dbaccess/source/ui/dlg/dbfindex.hxx b/dbaccess/source/ui/dlg/dbfindex.hxx deleted file mode 100644 index d65397e76..000000000 --- a/dbaccess/source/ui/dlg/dbfindex.hxx +++ /dev/null @@ -1,156 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_DBFINDEX_HXX_ -#define _DBAUI_DBFINDEX_HXX_ - -#include <vcl/dialog.hxx> -#include <vcl/button.hxx> -#include <vcl/combobox.hxx> -#include <vcl/lstbox.hxx> -#include <vcl/fixed.hxx> -#ifndef __SGI_STL_LIST -#include <list> -#endif -#include <comphelper/stl_types.hxx> - -//......................................................................... -namespace dbaui -{ -//......................................................................... - -//========================================================================= -//= OTableIndex -//========================================================================= -/// represents a single dbf index -class OTableIndex -{ -private: - String aIndexFileName; - -public: - OTableIndex() { } - OTableIndex( const OTableIndex& _rSource) : aIndexFileName(_rSource.aIndexFileName) { } - OTableIndex( const String& rFileName ) : aIndexFileName( rFileName ) { } - - void SetIndexFileName( const String& rFileName ) { aIndexFileName = rFileName; } - String GetIndexFileName() const { return aIndexFileName; } -}; - -//------------------------------------------------------------------------- -typedef ::std::list< OTableIndex > TableIndexList; -DECLARE_STL_ITERATORS(TableIndexList); - -//========================================================================= -//= OTableInfo -//========================================================================= -class ODbaseIndexDialog; -/** holds the INF file of a table -*/ -class OTableInfo -{ - friend class ODbaseIndexDialog; -private: - String aTableName; - TableIndexList aIndexList; - -public: - OTableInfo() { } - OTableInfo( const String& rName ) : aTableName(rName) { } - - void WriteInfFile( const String& rDSN ) const; -}; - -//------------------------------------------------------------------------- -typedef ::std::list< OTableInfo > TableInfoList; -DECLARE_STL_ITERATORS(TableInfoList); - -////////////////////////////////////////////////////////////////////////// -// IndexDialog -class ODbaseIndexDialog : public ModalDialog -{ -protected: - OKButton aPB_OK; - CancelButton aPB_CANCEL; - HelpButton aPB_HELP; - - FixedText m_FT_Tables; - ComboBox aCB_Tables; - - FixedLine m_FL_Indexes; - - FixedText m_FT_TableIndexes; - ListBox aLB_TableIndexes; - - FixedText m_FT_AllIndexes; - ListBox aLB_FreeIndexes; - - ImageButton aIB_Add; - ImageButton aIB_Remove; - ImageButton aIB_AddAll; - ImageButton aIB_RemoveAll; - - DECL_LINK( TableSelectHdl, ComboBox* ); - DECL_LINK( AddClickHdl, PushButton* ); - DECL_LINK( RemoveClickHdl, PushButton* ); - DECL_LINK( AddAllClickHdl, PushButton* ); - DECL_LINK( RemoveAllClickHdl, PushButton* ); - DECL_LINK( OKClickHdl, PushButton* ); - DECL_LINK( OnListEntrySelected, ListBox* ); - - String m_aDSN; - TableInfoList m_aTableInfoList; - TableIndexList m_aFreeIndexList; - sal_Bool m_bCaseSensitiv; - - void Init(); - void SetCtrls(); - sal_Bool GetTable(const String& rName, TableInfoListIterator& _rPosition); - - OTableIndex implRemoveIndex(const String& _rName, TableIndexList& _rList, ListBox& _rDisplay, sal_Bool _bMustExist); - void implInsertIndex(const OTableIndex& _rIndex, TableIndexList& _rList, ListBox& _rDisplay); - - OTableIndex RemoveFreeIndex( const String& _rName, sal_Bool _bMustExist ) { return implRemoveIndex(_rName, m_aFreeIndexList, aLB_FreeIndexes, _bMustExist); } - void InsertFreeIndex( const OTableIndex& _rIndex ) { implInsertIndex(_rIndex, m_aFreeIndexList, aLB_FreeIndexes); } - OTableIndex RemoveTableIndex( const String& _rTableName, const String& _rIndexName, sal_Bool _bMustExist ); - void InsertTableIndex( const String& _rTableName, const OTableIndex& _rIndex ); - - void checkButtons(); - -public: - ODbaseIndexDialog( Window * pParent, String aDataSrcName ); - virtual ~ODbaseIndexDialog(); -}; - -//......................................................................... -} // namespace dbaui -//......................................................................... - -#endif // _DBAUI_DBFINDEX_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/dbfindex.src b/dbaccess/source/ui/dlg/dbfindex.src deleted file mode 100644 index c6a03ff9b..000000000 --- a/dbaccess/source/ui/dlg/dbfindex.src +++ /dev/null @@ -1,197 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_DBF_INDEXES_HRC_ -#include "dbfindex.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif - -#define WIN_X 264 -#define WIN_Y 149 - -ModalDialog DLG_DBASE_INDEXES -{ - HelpID = "dbaccess:ModalDialog:DLG_DBASE_INDEXES"; - OutputSize = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( WIN_X , WIN_Y ) ; - Text [ en-US ] = "Indexes" ; - Moveable = TRUE ; - Closeable = TRUE ; - OKButton PB_OK - { - Pos = MAP_APPFONT ( 208 , 5 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - CancelButton PB_CANCEL - { - Pos = MAP_APPFONT ( 208 , 23 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - HelpButton PB_HELP - { - Pos = MAP_APPFONT ( 208 , 43 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - FixedText FT_TABLES - { - Pos = MAP_APPFONT ( 8 , 7 ) ; - Size = MAP_APPFONT ( 50 , 8 ) ; - Text [ en-US ] = "~Table"; - }; - ComboBox CB_TABLES - { - HelpID = "dbaccess:ComboBox:DLG_DBASE_INDEXES:CB_TABLES"; - Border = TRUE ; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 62 , 5 ) ; - Size = MAP_APPFONT ( 134 , 12 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - }; - FixedLine FL_INDEXES - { - Pos = MAP_APPFONT ( 6 , 22 ) ; - Size = MAP_APPFONT ( 196 , 8 ) ; - Text [ en-US ] = "Assignment" ; - }; - FixedText FT_TABLEINDEXES - { - Pos = MAP_APPFONT ( 12 , 33 ) ; - Size = MAP_APPFONT ( 83 , 8 ) ; - Text [ en-US ] = "T~able indexes"; - }; - ListBox LB_TABLEINDEXES - { - HelpID = "dbaccess:ListBox:DLG_DBASE_INDEXES:LB_TABLEINDEXES"; - Border = TRUE ; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 12 , 44 ) ; - Size = MAP_APPFONT ( 76 , 98 ) ; - TabStop = TRUE ; - }; - FixedText FT_ALLINDEXES - { - Pos = MAP_APPFONT ( 120 , 33 ) ; - Size = MAP_APPFONT ( 73 , 8 ) ; - Text [ en-US ] = "~Free indexes"; - }; - ListBox LB_FREEINDEXES - { - HelpID = "dbaccess:ListBox:DLG_DBASE_INDEXES:LB_FREEINDEXES"; - Border = TRUE ; - SVLook = TRUE ; - Pos = MAP_APPFONT ( 120 , 44 ) ; - Size = MAP_APPFONT ( 76 , 98 ) ; - TabStop = TRUE ; - }; - ImageButton IB_ADD - { - HelpID = "dbaccess:ImageButton:DLG_DBASE_INDEXES:IB_ADD"; - Pos = MAP_APPFONT ( 94 , 60 ) ; - Size = MAP_APPFONT ( 20 , 14 ) ; - TabStop = TRUE ; - ButtonImage = Image - { - ImageBitmap = Bitmap - { - File = "one_left.png" ; - }; - MaskColor = Color - { - Red = 0xFFFF ; - Green = 0x0000 ; - Blue = 0xFFFF ; - }; - }; - }; - ImageButton IB_ADDALL - { - HelpID = "dbaccess:ImageButton:DLG_DBASE_INDEXES:IB_ADDALL"; - Pos = MAP_APPFONT ( 94 , 77 ) ; - Size = MAP_APPFONT ( 20 , 14 ) ; - TabStop = TRUE ; - ButtonImage = Image - { - ImageBitmap = Bitmap - { - File = "all_left.png" ; - }; - MaskColor = Color - { - Red = 0xFFFF ; - Green = 0x0000 ; - Blue = 0xFFFF ; - }; - }; - }; - ImageButton IB_REMOVE - { - HelpID = "dbaccess:ImageButton:DLG_DBASE_INDEXES:IB_REMOVE"; - Pos = MAP_APPFONT ( 94 , 98 ) ; - Size = MAP_APPFONT ( 20 , 14 ) ; - TabStop = TRUE ; - ButtonImage = Image - { - ImageBitmap = Bitmap - { - File = "one_right.png" ; - }; - MaskColor = Color - { - Red = 0xFFFF ; - Green = 0x0000 ; - Blue = 0xFFFF ; - }; - }; - }; - ImageButton IB_REMOVEALL - { - HelpID = "dbaccess:ImageButton:DLG_DBASE_INDEXES:IB_REMOVEALL"; - Pos = MAP_APPFONT ( 94, 114 ) ; - Size = MAP_APPFONT ( 20 , 14 ) ; - TabStop = TRUE ; - ButtonImage = Image - { - ImageBitmap = Bitmap - { - File = "all_right.png" ; - }; - MaskColor = Color - { - Red = 0xFFFF ; - Green = 0x0000 ; - Blue = 0xFFFF ; - }; - }; - }; -}; diff --git a/dbaccess/source/ui/dlg/dbwiz.cxx b/dbaccess/source/ui/dlg/dbwiz.cxx deleted file mode 100644 index 71610962d..000000000 --- a/dbaccess/source/ui/dlg/dbwiz.cxx +++ /dev/null @@ -1,386 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "dbwiz.hxx" -#include "dbadmin.hrc" -#include "dbu_dlg.hrc" -#include "dsitems.hxx" -#include "dsnItem.hxx" -#include <svl/stritem.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include <vcl/msgbox.hxx> -#include "dbustrings.hrc" -#include "adminpages.hxx" -#include "generalpage.hxx" -#include "localresaccess.hxx" -#include "stringlistitem.hxx" -#include "propertysetitem.hxx" -#include <unotools/confignode.hxx> -#include "ConnectionPage.hxx" -#include "DriverSettings.hxx" -#include "DbAdminImpl.hxx" -#include "dbaccess_helpid.hrc" - -//......................................................................... -namespace dbaui -{ -//......................................................................... -using namespace svt; -using namespace com::sun::star::uno; -using namespace com::sun::star::sdbc; -using namespace com::sun::star::lang; -using namespace com::sun::star::util; -using namespace com::sun::star::beans; -using namespace com::sun::star::container; - -#define START_PAGE 0 -#define CONNECTION_PAGE 1 -#define ADDITIONAL_PAGE_DBASE 2 -#define ADDITIONAL_PAGE_FLAT 3 -#define ADDITIONAL_PAGE_LDAP 4 -#define ADDITIONAL_PAGE_ADABAS 5 -#define ADDITIONAL_PAGE_MYSQL_JDBC 6 -#define ADDITIONAL_PAGE_MYSQL_ODBC 7 -#define ADDITIONAL_PAGE_ORACLE_JDBC 8 -#define ADDITIONAL_PAGE_ADO 9 -#define ADDITIONAL_PAGE_ODBC 10 -#define ADDITIONAL_USERDEFINED 11 -#define ADDITIONAL_PAGE_MYSQL_NATIVE 12 - - -DBG_NAME(ODbTypeWizDialog) -//========================================================================= -//= ODbTypeWizDialog -//========================================================================= -//------------------------------------------------------------------------- -ODbTypeWizDialog::ODbTypeWizDialog(Window* _pParent - ,SfxItemSet* _pItems - ,const Reference< XMultiServiceFactory >& _rxORB - ,const ::com::sun::star::uno::Any& _aDataSourceName - ) - :OWizardMachine(_pParent, ModuleRes(DLG_DATABASE_TYPE_CHANGE), WZB_NEXT | WZB_PREVIOUS | WZB_FINISH | WZB_CANCEL | WZB_HELP ) - ,m_pOutSet(NULL) - ,m_bResetting(sal_False) - ,m_bApplied(sal_False) - ,m_bUIEnabled( sal_True ) -{ - DBG_CTOR(ODbTypeWizDialog,NULL); - m_pImpl = ::std::auto_ptr<ODbDataSourceAdministrationHelper>(new ODbDataSourceAdministrationHelper(_rxORB,this,this)); - m_pImpl->setDataSourceOrName(_aDataSourceName); - Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource(); - m_pOutSet = new SfxItemSet( *_pItems->GetPool(), _pItems->GetRanges() ); - - m_pImpl->translateProperties(xDatasource, *m_pOutSet); - m_eType = m_pImpl->getDatasourceType(*m_pOutSet); - - SetPageSizePixel(LogicToPixel(::Size(PAGE_X, PAGE_Y), MAP_APPFONT)); - ShowButtonFixedLine(sal_True); - defaultButton(WZB_NEXT); - enableButtons(WZB_FINISH, sal_False); - enableAutomaticNextButtonState( true ); - - m_pPrevPage->SetHelpId(HID_DBWIZ_PREVIOUS); - m_pNextPage->SetHelpId(HID_DBWIZ_NEXT); - m_pCancel->SetHelpId(HID_DBWIZ_CANCEL); - m_pFinish->SetHelpId(HID_DBWIZ_FINISH); - m_pHelp->SetUniqueId(UID_DBWIZ_HELP); - // no local resources needed anymore - - DbuTypeCollectionItem* pCollectionItem = PTR_CAST(DbuTypeCollectionItem, _pItems->GetItem(DSID_TYPECOLLECTION)); - m_pCollection = pCollectionItem->getCollection(); - - FreeResource(); - ActivatePage(); -} - -//------------------------------------------------------------------------- -ODbTypeWizDialog::~ODbTypeWizDialog() -{ - DBG_DTOR(ODbTypeWizDialog,NULL); - delete m_pOutSet; -} -//------------------------------------------------------------------------- -IMPL_LINK(ODbTypeWizDialog, OnTypeSelected, OGeneralPage*, _pTabPage) -{ - m_eType = _pTabPage->GetSelectedType(); - const bool bURLRequired = m_pCollection->isConnectionUrlRequired(m_eType); - enableButtons(WZB_NEXT,bURLRequired); - enableButtons(WZB_FINISH,!bURLRequired); - return 1L; -} -//------------------------------------------------------------------------- -WizardTypes::WizardState ODbTypeWizDialog::determineNextState( WizardState _nCurrentState ) const -{ - WizardTypes::WizardState nNextState = WZS_INVALID_STATE; - switch(_nCurrentState) - { - case START_PAGE: - switch(m_pCollection->determineType(m_eType)) - { - case ::dbaccess::DST_MOZILLA: - case ::dbaccess::DST_OUTLOOK: - case ::dbaccess::DST_OUTLOOKEXP: - case ::dbaccess::DST_EVOLUTION: - case ::dbaccess::DST_EVOLUTION_GROUPWISE: - case ::dbaccess::DST_EVOLUTION_LDAP: - case ::dbaccess::DST_KAB: - case ::dbaccess::DST_MACAB: - nNextState = WZS_INVALID_STATE; - break; - case ::dbaccess::DST_MYSQL_NATIVE: - nNextState = ADDITIONAL_PAGE_MYSQL_NATIVE; - break; - default: - nNextState = CONNECTION_PAGE; - break; - } - break; - case CONNECTION_PAGE: - switch(m_pCollection->determineType(m_eType)) - { - case ::dbaccess::DST_MOZILLA: - case ::dbaccess::DST_THUNDERBIRD: - case ::dbaccess::DST_OUTLOOK: - case ::dbaccess::DST_OUTLOOKEXP: - case ::dbaccess::DST_EVOLUTION: - case ::dbaccess::DST_EVOLUTION_GROUPWISE: - case ::dbaccess::DST_EVOLUTION_LDAP: - case ::dbaccess::DST_KAB: - case ::dbaccess::DST_MACAB: - case ::dbaccess::DST_MSACCESS: - case ::dbaccess::DST_MSACCESS_2007: - case ::dbaccess::DST_JDBC: - case ::dbaccess::DST_CALC: - nNextState = WZS_INVALID_STATE; - break; - case ::dbaccess::DST_DBASE: - nNextState = ADDITIONAL_PAGE_DBASE; - break; - case ::dbaccess::DST_FLAT: - nNextState = ADDITIONAL_PAGE_FLAT; - break; - case ::dbaccess::DST_LDAP: - nNextState = ADDITIONAL_PAGE_LDAP; - break; - case ::dbaccess::DST_ADABAS: - nNextState = ADDITIONAL_PAGE_ADABAS; - break; - case ::dbaccess::DST_MYSQL_JDBC: - nNextState = ADDITIONAL_PAGE_MYSQL_JDBC; - break; - case ::dbaccess::DST_MYSQL_ODBC: - nNextState = ADDITIONAL_PAGE_MYSQL_ODBC; - break; - case ::dbaccess::DST_ORACLE_JDBC: - nNextState = ADDITIONAL_PAGE_ORACLE_JDBC; - break; - case ::dbaccess::DST_ADO: - nNextState = ADDITIONAL_PAGE_ADO; - break; - case ::dbaccess::DST_ODBC: - nNextState = ADDITIONAL_PAGE_ODBC; - break; - default: - nNextState = WZS_INVALID_STATE; - break; - } - break; - } - - return nNextState; -} - -// ----------------------------------------------------------------------------- -const SfxItemSet* ODbTypeWizDialog::getOutputSet() const -{ - return m_pOutSet; -} -// ----------------------------------------------------------------------------- -SfxItemSet* ODbTypeWizDialog::getWriteOutputSet() -{ - return m_pOutSet; -} -// ----------------------------------------------------------------------------- -::std::pair< Reference<XConnection>,sal_Bool> ODbTypeWizDialog::createConnection() -{ - return m_pImpl->createConnection(); -} -// ----------------------------------------------------------------------------- -Reference< XMultiServiceFactory > ODbTypeWizDialog::getORB() const -{ - return m_pImpl->getORB(); -} -// ----------------------------------------------------------------------------- -Reference< XDriver > ODbTypeWizDialog::getDriver() -{ - return m_pImpl->getDriver(); -} -// ----------------------------------------------------------------------------- -::rtl::OUString ODbTypeWizDialog::getDatasourceType(const SfxItemSet& _rSet) const -{ - return m_pImpl->getDatasourceType(_rSet); -} -// ----------------------------------------------------------------------------- -void ODbTypeWizDialog::clearPassword() -{ - m_pImpl->clearPassword(); -} - -// ----------------------------------------------------------------------------- -TabPage* ODbTypeWizDialog::createPage(WizardState _nState) -{ - sal_uInt16 nStringId = STR_PAGETITLE_ADVANCED; - TabPage* pPage = NULL; - switch(_nState) - { - case START_PAGE: // start state - { - pPage = OGeneralPage::Create(this,*m_pOutSet); - OGeneralPage* pGeneralPage = static_cast< OGeneralPage* >( pPage ); - pGeneralPage->SetTypeSelectHandler( LINK( this, ODbTypeWizDialog, OnTypeSelected)); -// pGeneralPage->SetCreationModeHandler( LINK( this, ODbTypeWizDialog, TODO ) ); - nStringId = STR_PAGETITLE_GENERAL; - } - break; - case CONNECTION_PAGE: - pPage = OConnectionTabPage::Create(this,*m_pOutSet); - nStringId = STR_PAGETITLE_CONNECTION; - break; - - case ADDITIONAL_PAGE_DBASE: - pPage = ODriversSettings::CreateDbase(this,*m_pOutSet); - break; - case ADDITIONAL_PAGE_FLAT: - pPage = ODriversSettings::CreateText(this,*m_pOutSet); - break; - case ADDITIONAL_PAGE_LDAP: - pPage = ODriversSettings::CreateLDAP(this,*m_pOutSet); - break; - case ADDITIONAL_PAGE_ADABAS: - pPage = ODriversSettings::CreateAdabas(this,*m_pOutSet); - break; - case ADDITIONAL_PAGE_MYSQL_JDBC: - pPage = ODriversSettings::CreateMySQLJDBC(this,*m_pOutSet); - break; - case ADDITIONAL_PAGE_MYSQL_NATIVE: - pPage = ODriversSettings::CreateMySQLNATIVE(this,*m_pOutSet); - break; - case ADDITIONAL_PAGE_MYSQL_ODBC: - pPage = ODriversSettings::CreateMySQLODBC(this,*m_pOutSet); - break; - case ADDITIONAL_PAGE_ORACLE_JDBC: - pPage = ODriversSettings::CreateOracleJDBC(this,*m_pOutSet); - break; - case ADDITIONAL_PAGE_ADO: - pPage = ODriversSettings::CreateAdo(this,*m_pOutSet); - break; - case ADDITIONAL_PAGE_ODBC: - pPage = ODriversSettings::CreateODBC(this,*m_pOutSet); - break; - case ADDITIONAL_USERDEFINED: - pPage = ODriversSettings::CreateUser(this,*m_pOutSet); - break; - default: - OSL_FAIL("Wrong state!"); - break; - } - - // register ourself as modified listener - if ( pPage ) - { - static_cast<OGenericAdministrationPage*>(pPage)->SetServiceFactory(m_pImpl->getORB()); - static_cast<OGenericAdministrationPage*>(pPage)->SetAdminDialog(this,this); - // open our own resource block, as the page titles are strings local to this block - LocalResourceAccess aDummy(DLG_DATABASE_ADMINISTRATION, RSC_TABDIALOG); - - pPage->SetText(String(ModuleRes(nStringId))); - defaultButton( _nState == START_PAGE ? WZB_NEXT : WZB_FINISH ); - enableButtons( WZB_FINISH, _nState == START_PAGE ? sal_False : sal_True); - pPage->Show(); - } - return pPage; -} -// ----------------------------------------------------------------------------- -sal_Bool ODbTypeWizDialog::leaveState(WizardState _nState) -{ - SfxTabPage* pPage = static_cast<SfxTabPage*>(WizardDialog::GetPage(_nState)); - if ( pPage ) - pPage->FillItemSet(*m_pOutSet); - return sal_True; -} -// ----------------------------------------------------------------------------- -void ODbTypeWizDialog::setTitle(const ::rtl::OUString& _sTitle) -{ - SetText(_sTitle); -} -//------------------------------------------------------------------------- -void ODbTypeWizDialog::enableConfirmSettings( bool _bEnable ) -{ - enableButtons( WZB_FINISH, _bEnable ); - // TODO: - // this is hacky. At the moment, this method is used in only one case. - // As soon as it is to be used more wide-spread, we should find a proper concept - // for enabling both the Next and Finish buttons, depending on the current page state. - // Plus, the concept must also care for the case where those pages are embedded into - // anormal tab dialog. -} -//------------------------------------------------------------------------- -sal_Bool ODbTypeWizDialog::saveDatasource() -{ - SfxTabPage* pPage = static_cast<SfxTabPage*>(WizardDialog::GetPage(getCurrentState())); - if ( pPage ) - pPage->FillItemSet(*m_pOutSet); - - DataSourceInfoConverter aConverter(getORB()); - ::rtl::OUString sOldURL; - if ( m_pImpl->getCurrentDataSource().is() ) - m_pImpl->getCurrentDataSource()->getPropertyValue(PROPERTY_URL) >>= sOldURL; - aConverter.convert(m_pCollection,sOldURL,m_eType,m_pImpl->getCurrentDataSource()); - return sal_True; -} -// ----------------------------------------------------------------------------- -IWizardPageController* ODbTypeWizDialog::getPageController( TabPage* _pCurrentPage ) const -{ - OGenericAdministrationPage* pPage = static_cast<OGenericAdministrationPage*>(_pCurrentPage); - return pPage; -} -// ----------------------------------------------------------------------------- -sal_Bool ODbTypeWizDialog::onFinish() -{ - saveDatasource(); - return m_pImpl->saveChanges(*m_pOutSet) ? OWizardMachine::onFinish() : sal_False; -} -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/dbwizsetup.cxx b/dbaccess/source/ui/dlg/dbwizsetup.cxx deleted file mode 100644 index 7c0acb11d..000000000 --- a/dbaccess/source/ui/dlg/dbwizsetup.cxx +++ /dev/null @@ -1,1139 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "dbwizsetup.hxx" -#include "dsmeta.hxx" -#include "DBSetupConnectionPages.hxx" -#include "dbadminsetup.hrc" -#include "dbu_dlg.hrc" -#include "dsitems.hxx" -#include "dsnItem.hxx" - -#include <unotools/pathoptions.hxx> -#include <svl/stritem.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include <vcl/msgbox.hxx> -#include "dbustrings.hrc" -#include "adminpages.hxx" -#include <sfx2/docfilt.hxx> -#include <unotools/ucbhelper.hxx> -#include "generalpage.hxx" -#include "localresaccess.hxx" -#include "stringlistitem.hxx" -#include "propertysetitem.hxx" -#include <unotools/confignode.hxx> -#include "DbAdminImpl.hxx" -#include "dbaccess_helpid.hrc" -#include "ConnectionPageSetup.hxx" -#include "UITools.hxx" -#include "dbadmin.hrc" -#include "AsyncronousLink.hxx" -#include <sfx2/filedlghelper.hxx> -#include <cppuhelper/exc_hlp.hxx> - -/** === begin UNO includes === **/ -#include <com/sun/star/frame/XStorable.hpp> -#include <com/sun/star/uno/XNamingService.hpp> -#include <com/sun/star/sdbcx/XTablesSupplier.hpp> -#include <com/sun/star/sdbc/XDataSource.hpp> -#include <com/sun/star/container/XNameAccess.hpp> -#include <com/sun/star/sdb/XDocumentDataSource.hpp> -#include <com/sun/star/frame/FrameSearchFlag.hpp> -#include <com/sun/star/frame/XComponentLoader.hpp> -#include <com/sun/star/frame/XModel.hpp> -#include <com/sun/star/ucb/XSimpleFileAccess.hpp> -#include <com/sun/star/task/XJobExecutor.hpp> -#include <com/sun/star/lang/XInitialization.hpp> -#include <com/sun/star/sdb/CommandType.hpp> -#include <com/sun/star/ucb/InteractiveIOException.hpp> -#include <com/sun/star/io/IOException.hpp> -#include <com/sun/star/frame/XTerminateListener.hpp> -#include <com/sun/star/frame/XDesktop.hpp> -#include <com/sun/star/sdbc/XDriverAccess.hpp> -#include <com/sun/star/document/MacroExecMode.hpp> -#include <com/sun/star/ucb/IOErrorCode.hpp> -#include <com/sun/star/task/XInteractionHandler2.hpp> -#include <com/sun/star/ui/dialogs/TemplateDescription.hpp> - - -/** === end UNO includes === **/ - -#include <svl/filenotation.hxx> -#include <comphelper/interaction.hxx> -#include <comphelper/namedvaluecollection.hxx> -#include <comphelper/sequenceashashmap.hxx> -#include <tools/diagnose_ex.h> -#include <osl/diagnose.h> -#include <connectivity/DriversConfig.hxx> - -#include <memory> - - -//......................................................................... -namespace dbaui -{ -//......................................................................... -using namespace dbtools; -using namespace svt; -using namespace com::sun::star; -using namespace com::sun::star::uno; -using namespace com::sun::star::sdbc; -using namespace com::sun::star::sdbcx; -using namespace com::sun::star::task; -using namespace com::sun::star::lang; -using namespace com::sun::star::io; -using namespace com::sun::star::util; -using namespace com::sun::star::beans; -using namespace com::sun::star::container; -using namespace com::sun::star::frame; -using namespace com::sun::star::ucb; -using namespace ::com::sun::star::sdb; -using namespace ::com::sun::star::document; -using namespace ::comphelper; -using namespace ::cppu; - -#define START_PAGE 0 -#define CONNECTION_PAGE 1 - -OFinalDBPageSetup* pFinalPage; - -DBG_NAME(ODbTypeWizDialogSetup) -//========================================================================= -//= ODbTypeWizDialogSetup -//========================================================================= -//------------------------------------------------------------------------- -ODbTypeWizDialogSetup::ODbTypeWizDialogSetup(Window* _pParent - ,SfxItemSet* _pItems - ,const Reference< XMultiServiceFactory >& _rxORB - ,const ::com::sun::star::uno::Any& _aDataSourceName - ) - :svt::RoadmapWizard( _pParent, ModuleRes(DLG_DATABASE_WIZARD), - WZB_NEXT | WZB_PREVIOUS | WZB_FINISH | WZB_CANCEL | WZB_HELP ) - - , m_pOutSet(NULL) - , m_bResetting(sal_False) - , m_bApplied(sal_False) - , m_bUIEnabled( sal_True ) - , m_bIsConnectable( sal_False) - , m_sRM_IntroText(ModuleRes(STR_PAGETITLE_INTROPAGE)) - , m_sRM_dBaseText(ModuleRes(STR_PAGETITLE_DBASE)) - , m_sRM_TextText(ModuleRes(STR_PAGETITLE_TEXT)) - , m_sRM_MSAccessText(ModuleRes(STR_PAGETITLE_MSACCESS)) - , m_sRM_LDAPText(ModuleRes(STR_PAGETITLE_LDAP)) - , m_sRM_ADABASText(ModuleRes(STR_PAGETITLE_ADABAS)) - , m_sRM_ADOText(ModuleRes(STR_PAGETITLE_ADO)) - , m_sRM_JDBCText(ModuleRes(STR_PAGETITLE_JDBC)) - , m_sRM_MySQLNativePageTitle(ModuleRes(STR_PAGETITLE_MYSQL_NATIVE)) - , m_pGeneralPage( NULL ) - , m_pMySQLIntroPage(NULL) - , m_pCollection( NULL ) -{ - DBG_CTOR(ODbTypeWizDialogSetup,NULL); - // no local resources needed anymore - m_sRM_MySQLText = String(ModuleRes(STR_PAGETITLE_MYSQL)); - m_sRM_OracleText = String(ModuleRes(STR_PAGETITLE_ORACLE)); - m_sRM_ODBCText = String(ModuleRes(STR_PAGETITLE_ODBC)); - m_sRM_SpreadSheetText = String(ModuleRes(STR_PAGETITLE_SPREADSHEET)); - m_sRM_AuthentificationText = String(ModuleRes(STR_PAGETITLE_AUTHENTIFICATION)); - m_sRM_FinalText = String(ModuleRes(STR_PAGETITLE_FINAL)); - m_sWorkPath = SvtPathOptions().GetWorkPath(); - pFinalPage = NULL; - // extract the datasource type collection from the item set - DbuTypeCollectionItem* pCollectionItem = PTR_CAST(DbuTypeCollectionItem, _pItems->GetItem(DSID_TYPECOLLECTION)); - if (pCollectionItem) - m_pCollection = pCollectionItem->getCollection(); - - OSL_ENSURE(m_pCollection, "ODbTypeWizDialogSetup::ODbTypeWizDialogSetup : really need a DSN type collection !"); - - FreeResource(); - - m_pImpl = ::std::auto_ptr<ODbDataSourceAdministrationHelper>(new ODbDataSourceAdministrationHelper(_rxORB,this,this)); - m_pImpl->setDataSourceOrName(_aDataSourceName); - Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource(); - m_pOutSet = new SfxItemSet( *_pItems->GetPool(), _pItems->GetRanges() ); - - m_pImpl->translateProperties(xDatasource, *m_pOutSet); - - SetPageSizePixel(LogicToPixel(::Size(WIZARD_PAGE_X, WIZARD_PAGE_Y), MAP_APPFONT)); - ShowButtonFixedLine(sal_True); - defaultButton(WZB_NEXT); - enableButtons(WZB_FINISH, sal_True); - enableAutomaticNextButtonState(); - - ::dbaccess::ODsnTypeCollection::TypeIterator aIter = m_pCollection->begin(); - ::dbaccess::ODsnTypeCollection::TypeIterator aEnd = m_pCollection->end(); - for(PathId i = 1;aIter != aEnd;++aIter,++i) - { - const ::rtl::OUString sURLPrefix = aIter.getURLPrefix(); - svt::RoadmapWizardTypes::WizardPath aPath; - aPath.push_back(PAGE_DBSETUPWIZARD_INTRO); - m_pCollection->fillPageIds(sURLPrefix,aPath); - aPath.push_back(PAGE_DBSETUPWIZARD_AUTHENTIFICATION); - aPath.push_back(PAGE_DBSETUPWIZARD_FINAL); - - declareAuthDepPath(sURLPrefix,i,aPath); - } - - svt::RoadmapWizardTypes::WizardPath aPath; - aPath.push_back(PAGE_DBSETUPWIZARD_INTRO); - declarePath( static_cast<PathId>(m_pCollection->size()+1), aPath); - - m_pPrevPage->SetHelpId(HID_DBWIZ_PREVIOUS); - m_pNextPage->SetHelpId(HID_DBWIZ_NEXT); - m_pCancel->SetHelpId(HID_DBWIZ_CANCEL); - m_pFinish->SetHelpId(HID_DBWIZ_FINISH); - m_pHelp->SetUniqueId(UID_DBWIZ_HELP); - SetRoadmapInteractive( sal_True ); - ActivatePage(); -} - -void ODbTypeWizDialogSetup::declareAuthDepPath( const ::rtl::OUString& _sURL, PathId _nPathId, const svt::RoadmapWizardTypes::WizardPath& _rPaths) -{ - bool bHasAuthentication = DataSourceMetaData::getAuthentication( _sURL ) != AuthNone; - - // collect the elements of the path - WizardPath aPath; - - svt::RoadmapWizardTypes::WizardPath::const_iterator aIter = _rPaths.begin(); - svt::RoadmapWizardTypes::WizardPath::const_iterator aEnd = _rPaths.end(); - for(;aIter != aEnd;++aIter) - { - if ( bHasAuthentication || ( *aIter != PAGE_DBSETUPWIZARD_AUTHENTIFICATION ) ) - aPath.push_back( *aIter ); - } - - // call base method - ::svt::RoadmapWizard::declarePath( _nPathId, aPath ); -} - -String ODbTypeWizDialogSetup::getStateDisplayName( WizardState _nState ) const -{ - String sRoadmapItem; - switch( _nState ) - { - case PAGE_DBSETUPWIZARD_INTRO: - sRoadmapItem = m_sRM_IntroText; - break; - - case PAGE_DBSETUPWIZARD_DBASE: - sRoadmapItem = m_sRM_dBaseText; - break; - case PAGE_DBSETUPWIZARD_ADO: - sRoadmapItem = m_sRM_ADOText; - break; - case PAGE_DBSETUPWIZARD_TEXT: - sRoadmapItem = m_sRM_TextText; - break; - case PAGE_DBSETUPWIZARD_MSACCESS: - sRoadmapItem = m_sRM_MSAccessText; - break; - case PAGE_DBSETUPWIZARD_LDAP: - sRoadmapItem = m_sRM_LDAPText; - break; - case PAGE_DBSETUPWIZARD_ADABAS: - sRoadmapItem = m_sRM_ADABASText; - break; - case PAGE_DBSETUPWIZARD_JDBC: - sRoadmapItem = m_sRM_JDBCText; - break; - case PAGE_DBSETUPWIZARD_ORACLE: - sRoadmapItem = m_sRM_OracleText; - break; - case PAGE_DBSETUPWIZARD_MYSQL_INTRO: - sRoadmapItem = m_sRM_MySQLText; - break; - case PAGE_DBSETUPWIZARD_MYSQL_JDBC: - sRoadmapItem = m_sRM_JDBCText; - break; - case PAGE_DBSETUPWIZARD_MYSQL_NATIVE: - sRoadmapItem = m_sRM_MySQLNativePageTitle; - break; - case PAGE_DBSETUPWIZARD_MYSQL_ODBC: - sRoadmapItem = m_sRM_ODBCText; - break; - case PAGE_DBSETUPWIZARD_ODBC: - sRoadmapItem = m_sRM_ODBCText; - break; - case PAGE_DBSETUPWIZARD_SPREADSHEET: - sRoadmapItem = m_sRM_SpreadSheetText; - break; - case PAGE_DBSETUPWIZARD_AUTHENTIFICATION: - sRoadmapItem = m_sRM_AuthentificationText; - break; - case PAGE_DBSETUPWIZARD_USERDEFINED: - { - LocalResourceAccess aDummy(DLG_DATABASE_ADMINISTRATION, RSC_TABDIALOG); - sRoadmapItem = String(ModuleRes(STR_PAGETITLE_CONNECTION)); - } - break; - case PAGE_DBSETUPWIZARD_FINAL: - sRoadmapItem = m_sRM_FinalText; - break; - default: - break; - } - return sRoadmapItem; -} - -//------------------------------------------------------------------------- -ODbTypeWizDialogSetup::~ODbTypeWizDialogSetup() -{ - delete m_pOutSet; - DBG_DTOR(ODbTypeWizDialogSetup,NULL); -} - -//------------------------------------------------------------------------- -IMPL_LINK(ODbTypeWizDialogSetup, OnTypeSelected, OGeneralPage*, /*_pTabPage*/) -{ - activateDatabasePath(); - return 1L; -} - -void lcl_removeUnused(const ::comphelper::NamedValueCollection& _aOld,const ::comphelper::NamedValueCollection& _aNew,::comphelper::NamedValueCollection& _rDSInfo) -{ - _rDSInfo.merge(_aNew,true); - uno::Sequence< beans::NamedValue > aOldValues = _aOld.getNamedValues(); - const beans::NamedValue* pIter = aOldValues.getConstArray(); - const beans::NamedValue* pEnd = pIter + aOldValues.getLength(); - for(;pIter != pEnd;++pIter) - { - if ( !_aNew.has(pIter->Name) ) - { - _rDSInfo.remove(pIter->Name); - } - } -} -// ----------------------------------------------------------------------------- -void DataSourceInfoConverter::convert(const ::dbaccess::ODsnTypeCollection* _pCollection,const ::rtl::OUString& _sOldURLPrefix,const ::rtl::OUString& _sNewURLPrefix,const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _xDatasource) -{ - if ( _pCollection->getPrefix(_sOldURLPrefix) == _pCollection->getPrefix(_sNewURLPrefix) ) - return ; - uno::Sequence< beans::PropertyValue> aInfo; - _xDatasource->getPropertyValue(PROPERTY_INFO) >>= aInfo; - ::comphelper::NamedValueCollection aDS(aInfo); - - ::connectivity::DriversConfig aDriverConfig(m_xFactory); - - const ::comphelper::NamedValueCollection& aOldProperties = aDriverConfig.getProperties(_sOldURLPrefix); - const ::comphelper::NamedValueCollection& aNewProperties = aDriverConfig.getProperties(_sNewURLPrefix); - lcl_removeUnused(aOldProperties,aNewProperties,aDS); - - aDS >>= aInfo; - _xDatasource->setPropertyValue(PROPERTY_INFO,uno::makeAny(aInfo)); -} -//------------------------------------------------------------------------- -void ODbTypeWizDialogSetup::activateDatabasePath() -{ - switch ( m_pGeneralPage->GetDatabaseCreationMode() ) - { - case OGeneralPage::eCreateNew: - { - sal_Int32 nCreateNewDBIndex = m_pCollection->getIndexOf( m_pCollection->getEmbeddedDatabase() ); - if ( nCreateNewDBIndex == -1 ) - nCreateNewDBIndex = m_pCollection->getIndexOf( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:dbase:")) ); - OSL_ENSURE( nCreateNewDBIndex != -1, "ODbTypeWizDialogSetup::activateDatabasePath: the GeneralPage should have prevented this!" ); - activatePath( static_cast< PathId >( nCreateNewDBIndex + 1 ), sal_True ); - - enableState(PAGE_DBSETUPWIZARD_FINAL, sal_True ); - enableButtons( WZB_FINISH, sal_True); - } - break; - case OGeneralPage::eConnectExternal: - { - ::rtl::OUString sOld = m_sURL; - DataSourceInfoConverter aConverter(getORB()); - m_sURL = m_pGeneralPage->GetSelectedType(); - aConverter.convert(m_pCollection,sOld,m_sURL,m_pImpl->getCurrentDataSource()); - ::dbaccess::DATASOURCE_TYPE eType = VerifyDataSourceType(m_pCollection->determineType(m_sURL)); - if (eType == ::dbaccess::DST_UNKNOWN) - eType = m_pCollection->determineType(m_sOldURL); - - activatePath( static_cast<PathId>(m_pCollection->getIndexOf(m_sURL) + 1), sal_True); - updateTypeDependentStates(); - } - break; - case OGeneralPage::eOpenExisting: - { - activatePath( static_cast<PathId>(m_pCollection->size() + 1), sal_True ); - enableButtons( WZB_FINISH, m_pGeneralPage->GetSelectedDocument().sURL.Len() != 0 ); - } - break; - default: - OSL_FAIL( "ODbTypeWizDialogSetup::activateDatabasePath: unknown creation mode!" ); - } - - enableButtons( WZB_NEXT, m_pGeneralPage->GetDatabaseCreationMode() != OGeneralPage::eOpenExisting ); - // TODO: this should go into the base class. Point is, we activate a path whose *last* - // step is also the current one. The base class should automatically disable - // the Next button in such a case. However, not for this patch ... -} - -//------------------------------------------------------------------------- -void ODbTypeWizDialogSetup::updateTypeDependentStates() -{ - sal_Bool bDoEnable = sal_False; - sal_Bool bIsConnectionRequired = IsConnectionUrlRequired(); - if (!bIsConnectionRequired) - { - bDoEnable = sal_True; - } - else if ( m_sURL == m_sOldURL ) - { - bDoEnable = m_bIsConnectable; - } - enableState(PAGE_DBSETUPWIZARD_AUTHENTIFICATION, bDoEnable); - enableState(PAGE_DBSETUPWIZARD_FINAL, bDoEnable ); - enableButtons( WZB_FINISH, bDoEnable); -} - - -//------------------------------------------------------------------------- -sal_Bool ODbTypeWizDialogSetup::IsConnectionUrlRequired() -{ - return m_pCollection->isConnectionUrlRequired(m_sURL); -} - -//------------------------------------------------------------------------- -void ODbTypeWizDialogSetup::resetPages(const Reference< XPropertySet >& _rxDatasource) -{ - // remove all items which relate to indirect properties from the input set - // (without this, the following may happen: select an arbitrary data source where some indirect properties - // are set. Select another data source of the same type, where the indirect props are not set (yet). Then, - // the indirect property values of the first ds are shown in the second ds ...) - const ODbDataSourceAdministrationHelper::MapInt2String& rMap = m_pImpl->getIndirectProperties(); - for ( ODbDataSourceAdministrationHelper::ConstMapInt2StringIterator aIndirect = rMap.begin(); - aIndirect != rMap.end(); - ++aIndirect - ) - getWriteOutputSet()->ClearItem( (sal_uInt16)aIndirect->first ); - - // extract all relevant data from the property set of the data source - m_pImpl->translateProperties(_rxDatasource, *getWriteOutputSet()); -} -// ----------------------------------------------------------------------------- -const SfxItemSet* ODbTypeWizDialogSetup::getOutputSet() const -{ - return m_pOutSet; -} -// ----------------------------------------------------------------------------- -SfxItemSet* ODbTypeWizDialogSetup::getWriteOutputSet() -{ - return m_pOutSet; -} -// ----------------------------------------------------------------------------- -::std::pair< Reference<XConnection>,sal_Bool> ODbTypeWizDialogSetup::createConnection() -{ - return m_pImpl->createConnection(); -} -// ----------------------------------------------------------------------------- -Reference< XMultiServiceFactory > ODbTypeWizDialogSetup::getORB() const -{ - return m_pImpl->getORB(); -} -// ----------------------------------------------------------------------------- -Reference< XDriver > ODbTypeWizDialogSetup::getDriver() -{ - return m_pImpl->getDriver(); -} - - -::dbaccess::DATASOURCE_TYPE ODbTypeWizDialogSetup::VerifyDataSourceType(const ::dbaccess::DATASOURCE_TYPE _DatabaseType) const -{ - ::dbaccess::DATASOURCE_TYPE LocDatabaseType = _DatabaseType; - if ((LocDatabaseType == ::dbaccess::DST_MYSQL_JDBC) || (LocDatabaseType == ::dbaccess::DST_MYSQL_ODBC) || (LocDatabaseType == ::dbaccess::DST_MYSQL_NATIVE)) - { - if (m_pMySQLIntroPage != NULL) - { - switch( m_pMySQLIntroPage->getMySQLMode() ) - { - case OMySQLIntroPageSetup::VIA_JDBC: - return ::dbaccess::DST_MYSQL_JDBC; - case OMySQLIntroPageSetup::VIA_NATIVE: - return ::dbaccess::DST_MYSQL_NATIVE; - case OMySQLIntroPageSetup::VIA_ODBC: - return ::dbaccess::DST_MYSQL_ODBC; - } - } - } - return LocDatabaseType; -} - - - -// ----------------------------------------------------------------------------- -::rtl::OUString ODbTypeWizDialogSetup::getDatasourceType(const SfxItemSet& _rSet) const -{ - ::rtl::OUString sRet = m_pImpl->getDatasourceType(_rSet); - if (m_pMySQLIntroPage != NULL && m_pMySQLIntroPage->IsVisible() ) - { - switch( m_pMySQLIntroPage->getMySQLMode() ) - { - case OMySQLIntroPageSetup::VIA_JDBC: - sRet = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:mysql:jdbc:")); - break; - case OMySQLIntroPageSetup::VIA_NATIVE: - sRet = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:mysql:mysqlc:")); - break; - case OMySQLIntroPageSetup::VIA_ODBC: - sRet = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:mysql:odbc:")); - break; - } - } - return sRet; -} - -// ----------------------------------------------------------------------------- -void ODbTypeWizDialogSetup::clearPassword() -{ - m_pImpl->clearPassword(); -} - -// ----------------------------------------------------------------------------- -TabPage* ODbTypeWizDialogSetup::createPage(WizardState _nState) -{ - SfxTabPage* pFirstPage; - OGenericAdministrationPage* pPage = NULL; - switch(_nState) - { - case PAGE_DBSETUPWIZARD_INTRO: - pFirstPage = OGeneralPage::Create(this,*m_pOutSet, sal_True); - pPage = static_cast<OGenericAdministrationPage*> (pFirstPage); - m_pGeneralPage = static_cast<OGeneralPage*>(pFirstPage); - m_pGeneralPage->SetTypeSelectHandler(LINK(this, ODbTypeWizDialogSetup, OnTypeSelected)); - m_pGeneralPage->SetCreationModeHandler(LINK( this, ODbTypeWizDialogSetup, OnChangeCreationMode ) ); - m_pGeneralPage->SetDocumentSelectionHandler(LINK( this, ODbTypeWizDialogSetup, OnRecentDocumentSelected ) ); - m_pGeneralPage->SetChooseDocumentHandler(LINK( this, ODbTypeWizDialogSetup, OnSingleDocumentChosen ) ); - break; - - case PAGE_DBSETUPWIZARD_DBASE: - pPage = OConnectionTabPageSetup::CreateDbaseTabPage(this,*m_pOutSet); - break; - - case PAGE_DBSETUPWIZARD_ADO: - pPage = OConnectionTabPageSetup::CreateADOTabPage( this, *m_pOutSet); - break; - - case PAGE_DBSETUPWIZARD_TEXT: - pPage = OTextConnectionPageSetup::CreateTextTabPage(this,*m_pOutSet); - break; - - case PAGE_DBSETUPWIZARD_ODBC: - pPage = OConnectionTabPageSetup::CreateODBCTabPage( this, *m_pOutSet); - break; - - case PAGE_DBSETUPWIZARD_JDBC: - pPage = OJDBCConnectionPageSetup::CreateJDBCTabPage( this, *m_pOutSet); - break; - - case PAGE_DBSETUPWIZARD_MYSQL_ODBC: - m_pOutSet->Put(SfxStringItem(DSID_CONNECTURL, m_pCollection->getPrefix(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:mysql:odbc:"))))); - pPage = OConnectionTabPageSetup::CreateODBCTabPage( this, *m_pOutSet); - break; - - case PAGE_DBSETUPWIZARD_MYSQL_JDBC: - m_pOutSet->Put(SfxStringItem(DSID_CONNECTURL, m_pCollection->getPrefix(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:mysql:jdbc:"))))); - pPage = OGeneralSpecialJDBCConnectionPageSetup::CreateMySQLJDBCTabPage( this, *m_pOutSet); - break; - case PAGE_DBSETUPWIZARD_MYSQL_NATIVE: - m_pOutSet->Put(SfxStringItem(DSID_CONNECTURL, m_pCollection->getPrefix(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:mysql:mysqlc:"))))); - pPage = MySQLNativeSetupPage::Create( this, *m_pOutSet); - break; - - case PAGE_DBSETUPWIZARD_ORACLE: - pPage = OGeneralSpecialJDBCConnectionPageSetup::CreateOracleJDBCTabPage( this, *m_pOutSet); - break; - - case PAGE_DBSETUPWIZARD_ADABAS: - pPage = OConnectionTabPageSetup::CreateAdabasTabPage( this, *m_pOutSet); - break; - - case PAGE_DBSETUPWIZARD_LDAP : - pPage = OLDAPConnectionPageSetup::CreateLDAPTabPage(this,*m_pOutSet); - break; - - case PAGE_DBSETUPWIZARD_SPREADSHEET: /// first user defined driver - pPage = OSpreadSheetConnectionPageSetup::CreateSpreadSheetTabPage(this,*m_pOutSet); - break; - - case PAGE_DBSETUPWIZARD_MSACCESS: - pPage = OConnectionTabPageSetup::CreateMSAccessTabPage(this,*m_pOutSet); - break; - case PAGE_DBSETUPWIZARD_MYSQL_INTRO: - m_pMySQLIntroPage = OMySQLIntroPageSetup::CreateMySQLIntroTabPage(this,*m_pOutSet); - m_pMySQLIntroPage->SetClickHdl(LINK( this, ODbTypeWizDialogSetup, ImplClickHdl ) ); - pPage = m_pMySQLIntroPage; - break; - - case PAGE_DBSETUPWIZARD_AUTHENTIFICATION: - pPage = OAuthentificationPageSetup::CreateAuthentificationTabPage(this,*m_pOutSet); - break; - - case PAGE_DBSETUPWIZARD_USERDEFINED: - pPage = OConnectionTabPageSetup::CreateUserDefinedTabPage(this,*m_pOutSet); - break; - - case PAGE_DBSETUPWIZARD_FINAL: - pPage = OFinalDBPageSetup::CreateFinalDBTabPageSetup(this,*m_pOutSet); - pFinalPage = static_cast<OFinalDBPageSetup*> (pPage); - break; - } - - if ((_nState != PAGE_DBSETUPWIZARD_INTRO) && (_nState != PAGE_DBSETUPWIZARD_AUTHENTIFICATION)) - { - pPage->SetModifiedHandler(LINK( this, ODbTypeWizDialogSetup, ImplModifiedHdl ) ); - } - - if ( pPage ) - { - pPage->SetServiceFactory(m_pImpl->getORB()); - pPage->SetAdminDialog(this, this); - - defaultButton( _nState == PAGE_DBSETUPWIZARD_FINAL ? WZB_FINISH : WZB_NEXT ); - enableButtons( WZB_FINISH, _nState == PAGE_DBSETUPWIZARD_FINAL ); - enableButtons( WZB_NEXT, _nState == PAGE_DBSETUPWIZARD_FINAL ? sal_False : sal_True); - pPage->Show(); - } - return pPage; -} - - -IMPL_LINK(ODbTypeWizDialogSetup, ImplModifiedHdl, OGenericAdministrationPage*, _pConnectionPageSetup) -{ - m_bIsConnectable = _pConnectionPageSetup->GetRoadmapStateValue( ); - enableState(PAGE_DBSETUPWIZARD_FINAL, m_bIsConnectable); - enableState(PAGE_DBSETUPWIZARD_AUTHENTIFICATION, m_bIsConnectable); - if (getCurrentState() == PAGE_DBSETUPWIZARD_FINAL) - enableButtons( WZB_FINISH, sal_True); - else - enableButtons( WZB_FINISH, m_bIsConnectable); - enableButtons( WZB_NEXT, m_bIsConnectable && (getCurrentState() != PAGE_DBSETUPWIZARD_FINAL)); - return sal_True; -} - - -// ----------------------------------------------------------------------------- -IMPL_LINK(ODbTypeWizDialogSetup, ImplClickHdl, OMySQLIntroPageSetup*, _pMySQLIntroPageSetup) -{ - ::rtl::OUString sURLPrefix; - switch( _pMySQLIntroPageSetup->getMySQLMode() ) - { - case OMySQLIntroPageSetup::VIA_ODBC: - sURLPrefix = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:mysql:odbc:")); - break; - case OMySQLIntroPageSetup::VIA_JDBC: - sURLPrefix = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:mysql:jdbc:")); - break; - case OMySQLIntroPageSetup::VIA_NATIVE: - sURLPrefix = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:mysql:mysqlc:")); - break; - } - activatePath( static_cast<PathId>(m_pCollection->getIndexOf(sURLPrefix) + 1), sal_True); - return sal_True; -} - -// ----------------------------------------------------------------------------- -IMPL_LINK(ODbTypeWizDialogSetup, OnChangeCreationMode, OGeneralPage*, /*_pGeneralPage*/) -{ - activateDatabasePath(); - return sal_True; -} - -// ----------------------------------------------------------------------------- -IMPL_LINK(ODbTypeWizDialogSetup, OnRecentDocumentSelected, OGeneralPage*, /*_pGeneralPage*/) -{ - enableButtons( WZB_FINISH, m_pGeneralPage->GetSelectedDocument().sURL.Len() != 0 ); - return 0L; -} - -// ----------------------------------------------------------------------------- -IMPL_LINK(ODbTypeWizDialogSetup, OnSingleDocumentChosen, OGeneralPage*, /*_pGeneralPage*/) -{ - if ( prepareLeaveCurrentState( eFinish ) ) - onFinish(); - return 0L; -} - -// ----------------------------------------------------------------------------- -void ODbTypeWizDialogSetup::enterState(WizardState _nState) -{ - m_sURL = m_pImpl->getDatasourceType(*m_pOutSet); - RoadmapWizard::enterState(_nState); - switch(_nState) - { - case PAGE_DBSETUPWIZARD_INTRO: - m_sOldURL = m_sURL; - break; - case PAGE_DBSETUPWIZARD_FINAL: - enableButtons( WZB_FINISH, sal_True); - if ( pFinalPage ) - pFinalPage->enableTableWizardCheckBox(m_pCollection->supportsTableCreation(m_sURL)); - break; - } -} - -//------------------------------------------------------------------------- -sal_Bool ODbTypeWizDialogSetup::saveDatasource() -{ - SfxTabPage* pPage = static_cast<SfxTabPage*>(WizardDialog::GetPage(getCurrentState())); - if ( pPage ) - pPage->FillItemSet(*m_pOutSet); - return sal_True; -} - - -// ----------------------------------------------------------------------------- -sal_Bool ODbTypeWizDialogSetup::leaveState(WizardState _nState) -{ - if (_nState == PAGE_DBSETUPWIZARD_MYSQL_INTRO) - return sal_True; - if ( _nState == PAGE_DBSETUPWIZARD_INTRO && m_sURL != m_sOldURL ) - { - resetPages(m_pImpl->getCurrentDataSource()); - } - SfxTabPage* pPage = static_cast<SfxTabPage*>(WizardDialog::GetPage(_nState)); - return pPage && pPage->DeactivatePage(m_pOutSet) != 0; -} - -// ----------------------------------------------------------------------------- -void ODbTypeWizDialogSetup::setTitle(const ::rtl::OUString& /*_sTitle*/) -{ - OSL_FAIL( "ODbTypeWizDialogSetup::setTitle: not implemented!" ); - // why? -} - -//------------------------------------------------------------------------- -void ODbTypeWizDialogSetup::enableConfirmSettings( bool _bEnable ) -{ - (void)_bEnable; -} - -//------------------------------------------------------------------------- -namespace -{ - bool lcl_handle( const Reference< XInteractionHandler2 >& _rxHandler, const Any& _rRequest ) - { - OInteractionRequest* pRequest = new OInteractionRequest( _rRequest ); - Reference < XInteractionRequest > xRequest( pRequest ); - OInteractionAbort* pAbort = new OInteractionAbort; - pRequest->addContinuation( pAbort ); - - return _rxHandler->handleInteractionRequest( xRequest ); - } -} - -//------------------------------------------------------------------------- -sal_Bool ODbTypeWizDialogSetup::SaveDatabaseDocument() -{ - Reference< XInteractionHandler2 > xHandler( getORB()->createInstance( SERVICE_TASK_INTERACTION_HANDLER ), UNO_QUERY ); - try - { - if (callSaveAsDialog() == sal_True) - { - m_pImpl->saveChanges(*m_pOutSet); - Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource(); - Reference< XModel > xModel( getDataSourceOrModel( xDatasource ), UNO_QUERY_THROW ); - Reference< XStorable > xStore( xModel, UNO_QUERY_THROW ); - - if ( m_pGeneralPage->GetDatabaseCreationMode() == OGeneralPage::eCreateNew ) - CreateDatabase(); - - ::comphelper::NamedValueCollection aArgs( xModel->getArgs() ); - aArgs.put( "Overwrite", sal_Bool( sal_True ) ); - aArgs.put( "InteractionHandler", xHandler ); - aArgs.put( "MacroExecutionMode", MacroExecMode::USE_CONFIG ); - - ::rtl::OUString sPath = m_pImpl->getDocumentUrl( *m_pOutSet ); - xStore->storeAsURL( sPath, aArgs.getPropertyValues() ); - - if ( !pFinalPage || pFinalPage->IsDatabaseDocumentToBeRegistered() ) - RegisterDataSourceByLocation( sPath ); - - return sal_True; - } - } - catch ( const Exception& e ) - { - Any aError = ::cppu::getCaughtException(); - if ( xHandler.is() ) - { - if ( !lcl_handle( xHandler, aError ) ) - { - InteractiveIOException aRequest; - aRequest.Classification = InteractionClassification_ERROR; - if ( aError.isExtractableTo( ::cppu::UnoType< IOException >::get() ) ) - // assume savint the document faile - aRequest.Code = IOErrorCode_CANT_WRITE; - else - aRequest.Code = IOErrorCode_GENERAL; - aRequest.Message = e.Message; - aRequest.Context = e.Context; - lcl_handle( xHandler, makeAny( aRequest ) ); - } - } - } - return sal_False; -} - // ------------------------------------------------------------------------ - sal_Bool ODbTypeWizDialogSetup::IsDatabaseDocumentToBeOpened() const - { - if ( m_pGeneralPage->GetDatabaseCreationMode() == OGeneralPage::eOpenExisting ) - return sal_True; - - if ( pFinalPage != NULL ) - return pFinalPage->IsDatabaseDocumentToBeOpened(); - - return sal_True; - } - - // ------------------------------------------------------------------------ - sal_Bool ODbTypeWizDialogSetup::IsTableWizardToBeStarted() const - { - if ( m_pGeneralPage->GetDatabaseCreationMode() == OGeneralPage::eOpenExisting ) - return sal_False; - - if ( pFinalPage != NULL ) - return pFinalPage->IsTableWizardToBeStarted(); - - return sal_False; - } - - //------------------------------------------------------------------------- - ::rtl::OUString ODbTypeWizDialogSetup::getDefaultDatabaseType() const - { - ::rtl::OUString sEmbeddedURL = m_pCollection->getEmbeddedDatabase(); - ::connectivity::DriversConfig aDriverConfig(getORB()); - try - { - if ( !aDriverConfig.getDriverFactoryName(sEmbeddedURL).getLength() || !m_pImpl->getDriver(sEmbeddedURL).is() ) - sEmbeddedURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:dbase:")); - } - catch(const Exception&) - { - sEmbeddedURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:dbase:")); - } - - return sEmbeddedURL; - } - - //------------------------------------------------------------------------- - void ODbTypeWizDialogSetup::CreateDatabase() - { - ::rtl::OUString sUrl; - ::rtl::OUString eType = getDefaultDatabaseType(); - if ( m_pCollection->isEmbeddedDatabase(eType) ) - { - sUrl = eType; - Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource(); - OSL_ENSURE(xDatasource.is(),"DataSource is null!"); - if ( xDatasource.is() ) - xDatasource->setPropertyValue( PROPERTY_INFO, makeAny( m_pCollection->getDefaultDBSettings( eType ) ) ); - m_pImpl->translateProperties(xDatasource,*m_pOutSet); - } - else if ( m_pCollection->isFileSystemBased(eType) ) - { - Reference< XSimpleFileAccess > xSimpleFileAccess(getORB()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess"))), UNO_QUERY); - INetURLObject aDBPathURL(m_sWorkPath); - aDBPathURL.Append(m_aDocURL.getBase()); - createUniqueFolderName(&aDBPathURL); - ::rtl::OUString sPrefix = eType; - sUrl = aDBPathURL.GetMainURL( INetURLObject::NO_DECODE); - xSimpleFileAccess->createFolder(sUrl); - sUrl = sPrefix.concat(sUrl); - } - m_pOutSet->Put(SfxStringItem(DSID_CONNECTURL, sUrl)); - m_pImpl->saveChanges(*m_pOutSet); - } - - //------------------------------------------------------------------------- - void ODbTypeWizDialogSetup::RegisterDataSourceByLocation(const ::rtl::OUString& _sPath) - { - Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource(); - Reference< XNamingService > xDatabaseContext(getORB()->createInstance(SERVICE_SDB_DATABASECONTEXT), UNO_QUERY); - Reference< XNameAccess > xNameAccessDatabaseContext(xDatabaseContext, UNO_QUERY); - INetURLObject aURL( _sPath ); - ::rtl::OUString sFilename = aURL.getBase( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET ); - ::rtl::OUString sDatabaseName = ::dbtools::createUniqueName(xNameAccessDatabaseContext, sFilename,sal_False); - xDatabaseContext->registerObject(sDatabaseName, xDatasource); - } - - - //------------------------------------------------------------------------- - sal_Bool ODbTypeWizDialogSetup::callSaveAsDialog() - { - sal_Bool bRet = sal_False; - WinBits nBits(WB_STDMODAL|WB_SAVEAS); - ::sfx2::FileDialogHelper aFileDlg( com::sun::star::ui::dialogs::TemplateDescription::FILESAVE_AUTOEXTENSION, static_cast<sal_uInt32>(nBits), this); - const SfxFilter* pFilter = getStandardDatabaseFilter(); - if ( pFilter ) - { - INetURLObject aWorkURL( m_sWorkPath ); - aFileDlg.SetDisplayFolder( aWorkURL.GetMainURL( INetURLObject::NO_DECODE )); - - ::rtl::OUString sDefaultName = String( ModuleRes( STR_DATABASEDEFAULTNAME ) ); - ::rtl::OUString sExtension = pFilter->GetDefaultExtension(); - sDefaultName += sExtension.replaceAt( 0, 1, ::rtl::OUString() ); - aWorkURL.Append( sDefaultName ); - sDefaultName = createUniqueFileName( aWorkURL ); - aFileDlg.SetFileName( sDefaultName ); - - aFileDlg.AddFilter(pFilter->GetUIName(),pFilter->GetDefaultExtension()); - aFileDlg.SetCurrentFilter(pFilter->GetUIName()); - } - if ( aFileDlg.Execute() == ERRCODE_NONE ) - { - m_aDocURL = INetURLObject(aFileDlg.GetPath()); - - if( m_aDocURL.GetProtocol() != INET_PROT_NOT_VALID ) - { - ::rtl::OUString sFileName = m_aDocURL.GetMainURL( INetURLObject::NO_DECODE ); - if ( ::utl::UCBContentHelper::IsDocument(sFileName) ) - ::utl::UCBContentHelper::Kill(sFileName); - m_pOutSet->Put(SfxStringItem(DSID_DOCUMENT_URL, sFileName)); - bRet = sal_True; - } - } - return bRet; - } - - //------------------------------------------------------------------------- - void ODbTypeWizDialogSetup::createUniqueFolderName(INetURLObject* pURL) - { - Reference< XSimpleFileAccess > xSimpleFileAccess(getORB()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess"))), UNO_QUERY); - :: rtl::OUString sLastSegmentName = pURL->getName(); - sal_Bool bFolderExists = sal_True; - sal_Int32 i = 1; - while (bFolderExists == sal_True) - { - bFolderExists = xSimpleFileAccess->isFolder(pURL->GetMainURL( INetURLObject::NO_DECODE )); - if (bFolderExists == sal_True) - { - i++; - pURL->setName(sLastSegmentName.concat(::rtl::OUString::valueOf(i))); - } - } - } - - //------------------------------------------------------------------------- - String ODbTypeWizDialogSetup::createUniqueFileName(const INetURLObject& _rURL) - { - Reference< XSimpleFileAccess > xSimpleFileAccess(getORB()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess"))), UNO_QUERY); - :: rtl::OUString sFilename = _rURL.getName(); - ::rtl::OUString BaseName = _rURL.getBase(); - ::rtl::OUString sExtension = _rURL.getExtension(); - - sal_Bool bElementExists = sal_True; - - INetURLObject aExistenceCheck( _rURL ); - for ( sal_Int32 i = 1; bElementExists; ) - { - bElementExists = xSimpleFileAccess->exists( aExistenceCheck.GetMainURL( INetURLObject::NO_DECODE ) ); - if ( bElementExists ) - { - aExistenceCheck.setBase( BaseName.concat( ::rtl::OUString::valueOf( i ) ) ); - ++i; - } - } - return aExistenceCheck.getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET ); - } - // ----------------------------------------------------------------------------- - IWizardPageController* ODbTypeWizDialogSetup::getPageController( TabPage* _pCurrentPage ) const - { - OGenericAdministrationPage* pPage = static_cast<OGenericAdministrationPage*>(_pCurrentPage); - return pPage; - } - - // ----------------------------------------------------------------------------- - namespace - { - // ............................................................................. - typedef ::cppu::WeakImplHelper1 < XTerminateListener - > AsyncLoader_Base; - class AsyncLoader : public AsyncLoader_Base - { - private: - Reference< XComponentLoader > m_xFrameLoader; - Reference< XDesktop > m_xDesktop; - Reference< XInteractionHandler > m_xInteractionHandler; - ::rtl::OUString m_sURL; - OAsyncronousLink m_aAsyncCaller; - - public: - AsyncLoader( const Reference< XMultiServiceFactory >& _rxORB, const ::rtl::OUString& _rURL ); - - void doLoadAsync(); - - // XTerminateListener - virtual void SAL_CALL queryTermination( const EventObject& Event ) throw (TerminationVetoException, RuntimeException); - virtual void SAL_CALL notifyTermination( const EventObject& Event ) throw (RuntimeException); - // XEventListener - virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException); - - private: - DECL_LINK( OnOpenDocument, void* ); - }; - - // ............................................................................. - AsyncLoader::AsyncLoader( const Reference< XMultiServiceFactory >& _rxORB, const ::rtl::OUString& _rURL ) - :m_sURL( _rURL ) - ,m_aAsyncCaller( LINK( this, AsyncLoader, OnOpenDocument ) ) - { - try - { - m_xDesktop.set( _rxORB->createInstance( SERVICE_FRAME_DESKTOP ), UNO_QUERY_THROW ); - m_xFrameLoader.set( m_xDesktop, UNO_QUERY_THROW ); - m_xInteractionHandler.set( - _rxORB->createInstance( - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.task.InteractionHandler" ) ) - ), - UNO_QUERY_THROW ); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - } - - // ............................................................................. - void AsyncLoader::doLoadAsync() - { - OSL_ENSURE( !m_aAsyncCaller.IsRunning(), "AsyncLoader:doLoadAsync: already running!" ); - - acquire(); - try - { - if ( m_xDesktop.is() ) - m_xDesktop->addTerminateListener( this ); - } - catch( const Exception& ) { DBG_UNHANDLED_EXCEPTION(); } - - m_aAsyncCaller.Call( NULL ); - } - - // ............................................................................. - IMPL_LINK( AsyncLoader, OnOpenDocument, void*, /*_pEmptyArg*/ ) - { - try - { - if ( m_xFrameLoader.is() ) - { - ::comphelper::NamedValueCollection aLoadArgs; - aLoadArgs.put( "InteractionHandler", m_xInteractionHandler ); - aLoadArgs.put( "MacroExecutionMode", MacroExecMode::USE_CONFIG ); - - Sequence< PropertyValue > aLoadArgPV; - aLoadArgs >>= aLoadArgPV; - - m_xFrameLoader->loadComponentFromURL( m_sURL, - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_default" ) ), - FrameSearchFlag::ALL, - aLoadArgPV - ); - } - } - catch( const Exception& ) - { - // do not assert. - // Such an exception happens for instance of the to-be-loaded document does not exist anymore. - } - - try - { - if ( m_xDesktop.is() ) - m_xDesktop->removeTerminateListener( this ); - } - catch( const Exception& ) { DBG_UNHANDLED_EXCEPTION(); } - - release(); - return 0L; - } - - // ............................................................................. - void SAL_CALL AsyncLoader::queryTermination( const EventObject& /*Event*/ ) throw (TerminationVetoException, RuntimeException) - { - throw TerminationVetoException(); - } - - // ............................................................................. - void SAL_CALL AsyncLoader::notifyTermination( const EventObject& /*Event*/ ) throw (RuntimeException) - { - } - // ............................................................................. - void SAL_CALL AsyncLoader::disposing( const EventObject& /*Source*/ ) throw (RuntimeException) - { - } - } - - // ----------------------------------------------------------------------------- - sal_Bool ODbTypeWizDialogSetup::onFinish() - { - if ( m_pGeneralPage->GetDatabaseCreationMode() == OGeneralPage::eOpenExisting ) - { - // we're not going to re-use the XModel we have - since the document the user - // wants us to load could be a non-database document. Instead, we asynchronously - // open the selected document. Thus, the wizard's return value is RET_CANCEL, - // which means to not continue loading the database document - if ( !OWizardMachine::Finnish( RET_CANCEL ) ) - return sal_False; - - Reference< XComponentLoader > xFrameLoader; - try - { - AsyncLoader* pAsyncLoader = new AsyncLoader( getORB(), m_pGeneralPage->GetSelectedDocument().sURL ); - ::rtl::Reference< AsyncLoader > xKeepAlive( pAsyncLoader ); - pAsyncLoader->doLoadAsync(); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - - return sal_True; - } - - if (getCurrentState() != PAGE_DBSETUPWIZARD_FINAL) - { - skipUntil(PAGE_DBSETUPWIZARD_FINAL); - } - if (getCurrentState() == PAGE_DBSETUPWIZARD_FINAL) - return SaveDatabaseDocument() ? OWizardMachine::onFinish() : sal_False; - else - { - enableButtons( WZB_FINISH, sal_False ); - return sal_False; - } - } - -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/detailpages.cxx b/dbaccess/source/ui/dlg/detailpages.cxx deleted file mode 100644 index 7d7d24c79..000000000 --- a/dbaccess/source/ui/dlg/detailpages.cxx +++ /dev/null @@ -1,1128 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "detailpages.hxx" -#include "sqlmessage.hxx" -#include "dsmeta.hxx" -#include "advancedsettings.hxx" -#include "DbAdminImpl.hxx" -#include "dsitems.hxx" -#include "dbfindex.hxx" -#include "localresaccess.hxx" -#include "dsnItem.hxx" - -#include "dbaccess_helpid.hrc" -#include "dbu_dlg.hrc" -#include "dbadmin.hrc" - -#include <svl/itemset.hxx> -#include <svl/stritem.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> -#include <vcl/msgbox.hxx> -#include <vcl/mnemonic.hxx> -#include <svl/cjkoptions.hxx> -#include <jvmaccess/virtualmachine.hxx> -#include "AdabasPage.hrc" -#include "AdabasStat.hxx" -#include <connectivity/CommonTools.hxx> -#include "DriverSettings.hxx" -#include "dbadmin.hxx" -#include <comphelper/types.hxx> -#include "AutoControls.hrc" - -//......................................................................... -namespace dbaui -{ -//......................................................................... - - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::sdbc; - using namespace ::com::sun::star::beans; - using namespace ::com::sun::star::lang; - using namespace ::com::sun::star::container; - using namespace ::dbtools; - - //======================================================================== - //= OCommonBehaviourTabPage - //======================================================================== - DBG_NAME(OCommonBehaviourTabPage) - //------------------------------------------------------------------------ - OCommonBehaviourTabPage::OCommonBehaviourTabPage(Window* pParent, sal_uInt16 nResId, const SfxItemSet& _rCoreAttrs, - sal_uInt32 nControlFlags,bool _bFreeResource) - - :OGenericAdministrationPage(pParent, ModuleRes(nResId), _rCoreAttrs) - ,m_pOptionsLabel(NULL) - ,m_pOptions(NULL) - ,m_pDataConvertFixedLine(NULL) - ,m_pCharsetLabel(NULL) - ,m_pCharset(NULL) - ,m_pAutoFixedLine(NULL) - ,m_pAutoRetrievingEnabled(NULL) - ,m_pAutoIncrementLabel(NULL) - ,m_pAutoIncrement(NULL) - ,m_pAutoRetrievingLabel(NULL) - ,m_pAutoRetrieving(NULL) - ,m_nControlFlags(nControlFlags) - { - DBG_CTOR(OCommonBehaviourTabPage,NULL); - - if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS) - { - m_pOptionsLabel = new FixedText(this, ModuleRes(FT_OPTIONS)); - m_pOptions = new Edit(this, ModuleRes(ET_OPTIONS)); - m_pOptions->SetModifyHdl(getControlModifiedLink()); - } - - if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET) - { - m_pDataConvertFixedLine = new FixedLine(this, ModuleRes(FL_DATACONVERT)); - m_pCharsetLabel = new FixedText(this, ModuleRes(FT_CHARSET)); - m_pCharset = new CharSetListBox(this, ModuleRes(LB_CHARSET)); - m_pCharset->SetSelectHdl(getControlModifiedLink()); - } - - Window* pWindows[] = { m_pAutoRetrievingEnabled, m_pAutoFixedLine, - m_pAutoIncrementLabel, m_pAutoIncrement, - m_pAutoRetrievingLabel, m_pAutoRetrieving }; - - sal_Int32 nCount = SAL_N_ELEMENTS(pWindows); - for (sal_Int32 i=1; i < nCount; ++i) - { - if ( pWindows[i] ) - { - Window* pPrev = pWindows[i-1]; - for (sal_Int32 j = i-1; pPrev == NULL && j >= 0 ; --j) - { - pPrev = pWindows[j]; - } - if ( pPrev ) - pWindows[i]->SetZOrder(pPrev, WINDOW_ZORDER_BEHIND); - } - } - - if ( _bFreeResource ) - FreeResource(); - } - - // ----------------------------------------------------------------------- - OCommonBehaviourTabPage::~OCommonBehaviourTabPage() - { - DELETEZ(m_pOptionsLabel); - DELETEZ(m_pOptions); - - DELETEZ(m_pDataConvertFixedLine); - DELETEZ(m_pCharsetLabel); - DELETEZ(m_pCharset); - - DELETEZ(m_pAutoFixedLine); - DELETEZ(m_pAutoIncrementLabel); - DELETEZ(m_pAutoIncrement); - - DELETEZ(m_pAutoRetrievingEnabled); - DELETEZ(m_pAutoRetrievingLabel); - DELETEZ(m_pAutoRetrieving); - - DBG_DTOR(OCommonBehaviourTabPage,NULL); - } - - // ----------------------------------------------------------------------- - void OCommonBehaviourTabPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS) - { - _rControlList.push_back(new ODisableWrapper<FixedText>(m_pOptionsLabel)); - } - - if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET) - { - _rControlList.push_back(new ODisableWrapper<FixedLine>(m_pDataConvertFixedLine)); - _rControlList.push_back(new ODisableWrapper<FixedText>(m_pCharsetLabel)); - } - } - // ----------------------------------------------------------------------- - void OCommonBehaviourTabPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS) - _rControlList.push_back(new OSaveValueWrapper<Edit>(m_pOptions)); - - if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET) - _rControlList.push_back(new OSaveValueWrapper<ListBox>(m_pCharset)); - } - - // ----------------------------------------------------------------------- - void OCommonBehaviourTabPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - // collect the items - SFX_ITEMSET_GET(_rSet, pOptionsItem, SfxStringItem, DSID_ADDITIONALOPTIONS, sal_True); - SFX_ITEMSET_GET(_rSet, pCharsetItem, SfxStringItem, DSID_CHARSET, sal_True); - - // forward the values to the controls - if (bValid) - { - if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS) - { - m_pOptions->SetText(pOptionsItem->GetValue()); - m_pOptions->ClearModifyFlag(); - } - - if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET) - { - m_pCharset->SelectEntryByIanaName( pCharsetItem->GetValue() ); - } - } - OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue); - } - // ----------------------------------------------------------------------- - sal_Bool OCommonBehaviourTabPage::FillItemSet(SfxItemSet& _rSet) - { - sal_Bool bChangedSomething = sal_False; - - if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS) - { - fillString(_rSet,m_pOptions,DSID_ADDITIONALOPTIONS,bChangedSomething); - } - - if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET) - { - if ( m_pCharset->StoreSelectedCharSet( _rSet, DSID_CHARSET ) ) - bChangedSomething = sal_True; - } - - return bChangedSomething; - } - - //======================================================================== - //= ODbaseDetailsPage - //======================================================================== - DBG_NAME(ODbaseDetailsPage) - //------------------------------------------------------------------------ - ODbaseDetailsPage::ODbaseDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OCommonBehaviourTabPage(pParent, PAGE_DBASE, _rCoreAttrs, CBTP_USE_CHARSET ,false) - ,m_aShowDeleted (this, ModuleRes(CB_SHOWDELETEDROWS)) - ,m_aFL_1 (this, ModuleRes( FL_SEPARATOR1) ) - ,m_aFT_Message (this, ModuleRes( FT_SPECIAL_MESSAGE) ) - ,m_aIndexes (this, ModuleRes(PB_INDICIES)) - { - DBG_CTOR(ODbaseDetailsPage,NULL); - - m_aIndexes.SetClickHdl(LINK(this, ODbaseDetailsPage, OnButtonClicked)); - m_aShowDeleted.SetClickHdl(LINK(this, ODbaseDetailsPage, OnButtonClicked)); - - // correct the z-order which is mixed-up because the base class constructed some controls before we did - m_pCharset->SetZOrder(&m_aShowDeleted, WINDOW_ZORDER_BEFOR); - - FreeResource(); - } - - // ----------------------------------------------------------------------- - ODbaseDetailsPage::~ODbaseDetailsPage() - { - - DBG_DTOR(ODbaseDetailsPage,NULL); - } - - // ----------------------------------------------------------------------- - SfxTabPage* ODriversSettings::CreateDbase( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new ODbaseDetailsPage( pParent, _rAttrSet ) ); - } - - // ----------------------------------------------------------------------- - void ODbaseDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillControls(_rControlList); - _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aShowDeleted)); - } - // ----------------------------------------------------------------------- - void ODbaseDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillWindows(_rControlList); - _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL_1)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFT_Message)); - _rControlList.push_back(new ODisableWrapper<PushButton>(&m_aIndexes)); - } - // ----------------------------------------------------------------------- - void ODbaseDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - // get the DSN string (needed for the index dialog) - SFX_ITEMSET_GET(_rSet, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True); - SFX_ITEMSET_GET(_rSet, pTypesItem, DbuTypeCollectionItem, DSID_TYPECOLLECTION, sal_True); - ::dbaccess::ODsnTypeCollection* pTypeCollection = pTypesItem ? pTypesItem->getCollection() : NULL; - if (pTypeCollection && pUrlItem && pUrlItem->GetValue().Len()) - m_sDsn = pTypeCollection->cutPrefix(pUrlItem->GetValue()); - - // get the other relevant items - SFX_ITEMSET_GET(_rSet, pDeletedItem, SfxBoolItem, DSID_SHOWDELETEDROWS, sal_True); - - if ( bValid ) - { - m_aShowDeleted.Check( pDeletedItem->GetValue() ); - m_aFT_Message.Show(m_aShowDeleted.IsChecked()); - } - - OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue); - } - - // ----------------------------------------------------------------------- - sal_Bool ODbaseDetailsPage::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet); - - fillBool(_rSet,&m_aShowDeleted,DSID_SHOWDELETEDROWS,bChangedSomething); - return bChangedSomething; - } - - //------------------------------------------------------------------------ - IMPL_LINK( ODbaseDetailsPage, OnButtonClicked, Button*, pButton ) - { - if (&m_aIndexes == pButton) - { - ODbaseIndexDialog aIndexDialog(this, m_sDsn); - aIndexDialog.Execute(); - } - else - { - m_aFT_Message.Show(m_aShowDeleted.IsChecked()); - // it was one of the checkboxes -> we count as modified from now on - callModifiedHdl(); - } - - return 0; - } - - //======================================================================== - //= OAdoDetailsPage - //======================================================================== - DBG_NAME(OAdoDetailsPage) - // ----------------------------------------------------------------------- - OAdoDetailsPage::OAdoDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OCommonBehaviourTabPage(pParent, PAGE_ADO, _rCoreAttrs, CBTP_USE_CHARSET ) - { - DBG_CTOR(OAdoDetailsPage,NULL); - - } - - // ----------------------------------------------------------------------- - OAdoDetailsPage::~OAdoDetailsPage() - { - - DBG_DTOR(OAdoDetailsPage,NULL); - } - // ----------------------------------------------------------------------- - SfxTabPage* ODriversSettings::CreateAdo( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OAdoDetailsPage( pParent, _rAttrSet ) ); - } - - // ----------------------------------------------------------------------- - //======================================================================== - //= OOdbcDetailsPage - //======================================================================== - OOdbcDetailsPage::OOdbcDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OCommonBehaviourTabPage(pParent, PAGE_ODBC, _rCoreAttrs, CBTP_USE_CHARSET | CBTP_USE_OPTIONS,false) - ,m_aFL_1 (this, ModuleRes(FL_SEPARATOR1)) - ,m_aUseCatalog (this, ModuleRes(CB_USECATALOG)) - { - m_aUseCatalog.SetToggleHdl(getControlModifiedLink()); - FreeResource(); - - Window* pWindows[] = { m_pCharsetLabel, m_pCharset - ,m_pOptionsLabel,m_pOptions,&m_aUseCatalog - }; - - sal_Int32 nCount = SAL_N_ELEMENTS(pWindows); - for (sal_Int32 i=1; i < nCount; ++i) - pWindows[i]->SetZOrder(pWindows[i-1], WINDOW_ZORDER_BEHIND); - } - - // ----------------------------------------------------------------------- - SfxTabPage* ODriversSettings::CreateODBC( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OOdbcDetailsPage( pParent, _rAttrSet ) ); - } - - // ----------------------------------------------------------------------- - sal_Bool OOdbcDetailsPage::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet); - fillBool(_rSet,&m_aUseCatalog,DSID_USECATALOG,bChangedSomething); - return bChangedSomething; - } - // ----------------------------------------------------------------------- - void OOdbcDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillControls(_rControlList); - _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aUseCatalog)); - } - // ----------------------------------------------------------------------- - void OOdbcDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillWindows(_rControlList); - _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL_1)); - } - // ----------------------------------------------------------------------- - void OOdbcDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - SFX_ITEMSET_GET(_rSet, pUseCatalogItem, SfxBoolItem, DSID_USECATALOG, sal_True); - - if ( bValid ) - m_aUseCatalog.Check(pUseCatalogItem->GetValue()); - - OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue); - } - //======================================================================== - //= OOdbcDetailsPage - //======================================================================== - OUserDriverDetailsPage::OUserDriverDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OCommonBehaviourTabPage(pParent, PAGE_USERDRIVER, _rCoreAttrs, - CBTP_USE_CHARSET | CBTP_USE_OPTIONS ,false) - ,m_aFTHostname (this, ModuleRes(FT_HOSTNAME)) - ,m_aEDHostname (this, ModuleRes(ET_HOSTNAME)) - ,m_aPortNumber (this, ModuleRes(FT_PORTNUMBER)) - ,m_aNFPortNumber (this, ModuleRes(NF_PORTNUMBER)) - ,m_aUseCatalog (this, ModuleRes(CB_USECATALOG)) - { - m_aUseCatalog.SetToggleHdl(getControlModifiedLink()); - FreeResource(); - } - - // ----------------------------------------------------------------------- - SfxTabPage* ODriversSettings::CreateUser( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OUserDriverDetailsPage( pParent, _rAttrSet ) ); - } - - // ----------------------------------------------------------------------- - sal_Bool OUserDriverDetailsPage::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet); - - fillInt32(_rSet,&m_aNFPortNumber,DSID_CONN_PORTNUMBER,bChangedSomething); - fillString(_rSet,&m_aEDHostname,DSID_CONN_HOSTNAME,bChangedSomething); - fillBool(_rSet,&m_aUseCatalog,DSID_USECATALOG,bChangedSomething); - - return bChangedSomething; - } - // ----------------------------------------------------------------------- - void OUserDriverDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillControls(_rControlList); - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aEDHostname)); - _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aUseCatalog)); - _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_aNFPortNumber)); - } - // ----------------------------------------------------------------------- - void OUserDriverDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillWindows(_rControlList); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTHostname)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aPortNumber)); - } - // ----------------------------------------------------------------------- - void OUserDriverDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - SFX_ITEMSET_GET(_rSet, pUseCatalogItem, SfxBoolItem, DSID_USECATALOG, sal_True); - SFX_ITEMSET_GET(_rSet, pHostName, SfxStringItem, DSID_CONN_HOSTNAME, sal_True); - SFX_ITEMSET_GET(_rSet, pPortNumber, SfxInt32Item, DSID_CONN_PORTNUMBER, sal_True); - - if ( bValid ) - { - m_aEDHostname.SetText(pHostName->GetValue()); - m_aEDHostname.ClearModifyFlag(); - - m_aNFPortNumber.SetValue(pPortNumber->GetValue()); - m_aNFPortNumber.ClearModifyFlag(); - - m_aUseCatalog.Check(pUseCatalogItem->GetValue()); - } - - OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue); - } - //======================================================================== - //= OMySQLODBCDetailsPage - //======================================================================== - OMySQLODBCDetailsPage::OMySQLODBCDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OCommonBehaviourTabPage(pParent, PAGE_MYSQL_ODBC, _rCoreAttrs, CBTP_USE_CHARSET ) - { - } - - // ----------------------------------------------------------------------- - SfxTabPage* ODriversSettings::CreateMySQLODBC( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OMySQLODBCDetailsPage( pParent, _rAttrSet ) ); - } - - //======================================================================== - //= OMySQLJDBCDetailsPage - //======================================================================== - OGeneralSpecialJDBCDetailsPage::OGeneralSpecialJDBCDetailsPage( Window* pParent,sal_uInt16 _nResId, const SfxItemSet& _rCoreAttrs ,sal_uInt16 _nPortId) - :OCommonBehaviourTabPage(pParent, _nResId, _rCoreAttrs, CBTP_USE_CHARSET ,false) - ,m_aFL_1 (this, ModuleRes( FL_SEPARATOR1) ) - ,m_aFTHostname (this, ModuleRes(FT_HOSTNAME)) - ,m_aEDHostname (this, ModuleRes(ET_HOSTNAME)) - ,m_aPortNumber (this, ModuleRes(FT_PORTNUMBER)) - ,m_aNFPortNumber (this, ModuleRes(NF_PORTNUMBER)) - ,m_aFTSocket (this, ModuleRes(FT_SOCKET)) - ,m_aEDSocket (this, ModuleRes(ET_SOCKET)) - ,m_aFTDriverClass (this, ModuleRes(FT_JDBCDRIVERCLASS)) - ,m_aEDDriverClass (this, ModuleRes(ET_JDBCDRIVERCLASS)) - ,m_aTestJavaDriver (this, ModuleRes(PB_TESTDRIVERCLASS)) - ,m_nPortId(_nPortId) - ,m_bUseClass(true) - { - SFX_ITEMSET_GET(_rCoreAttrs, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True); - SFX_ITEMSET_GET(_rCoreAttrs, pTypesItem, DbuTypeCollectionItem, DSID_TYPECOLLECTION, sal_True); - ::dbaccess::ODsnTypeCollection* pTypeCollection = pTypesItem ? pTypesItem->getCollection() : NULL; - if (pTypeCollection && pUrlItem && pUrlItem->GetValue().Len() ) - { - m_sDefaultJdbcDriverName = pTypeCollection->getJavaDriverClass(pUrlItem->GetValue()); - } - if ( m_sDefaultJdbcDriverName.Len() ) - { - m_aEDDriverClass.SetModifyHdl(getControlModifiedLink()); - m_aEDDriverClass.SetModifyHdl(LINK(this, OGeneralSpecialJDBCDetailsPage, OnEditModified)); - m_aTestJavaDriver.SetClickHdl(LINK(this,OGeneralSpecialJDBCDetailsPage,OnTestJavaClickHdl)); - } - else - { - m_bUseClass = false; - m_aFTDriverClass.Show(sal_False); - m_aEDDriverClass.Show(sal_False); - m_aTestJavaDriver.Show(sal_False); - } - - m_aFTSocket.Show(PAGE_MYSQL_JDBC == _nResId && !m_bUseClass); - m_aEDSocket.Show(PAGE_MYSQL_JDBC == _nResId && !m_bUseClass); - - m_aEDHostname.SetModifyHdl(getControlModifiedLink()); - m_aNFPortNumber.SetModifyHdl(getControlModifiedLink()); - m_aEDSocket.SetModifyHdl(getControlModifiedLink()); - - Window* pWindows[] = { &m_aFTHostname,&m_aEDHostname, - &m_aPortNumber,&m_aNFPortNumber,&m_aFTSocket,&m_aEDSocket, - &m_aFTDriverClass, &m_aEDDriverClass,&m_aTestJavaDriver, - m_pCharsetLabel, m_pCharset}; - - sal_Int32 nCount = SAL_N_ELEMENTS(pWindows); - for (sal_Int32 i=1; i < nCount; ++i) - pWindows[i]->SetZOrder(pWindows[i-1], WINDOW_ZORDER_BEHIND); - - FreeResource(); - } - - // ----------------------------------------------------------------------- - void OGeneralSpecialJDBCDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillControls(_rControlList); - if ( m_bUseClass ) - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aEDDriverClass)); - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aEDHostname)); - _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_aNFPortNumber)); - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aEDSocket)); - } - // ----------------------------------------------------------------------- - void OGeneralSpecialJDBCDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillWindows(_rControlList); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTHostname)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aPortNumber)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTSocket)); - if ( m_bUseClass ) - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTDriverClass)); - _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL_1)); - } - - // ----------------------------------------------------------------------- - sal_Bool OGeneralSpecialJDBCDetailsPage::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet); - if ( m_bUseClass ) - fillString(_rSet,&m_aEDDriverClass,DSID_JDBCDRIVERCLASS,bChangedSomething); - fillString(_rSet,&m_aEDHostname,DSID_CONN_HOSTNAME,bChangedSomething); - fillString(_rSet,&m_aEDSocket,DSID_CONN_SOCKET,bChangedSomething); - fillInt32(_rSet,&m_aNFPortNumber,m_nPortId,bChangedSomething ); - - return bChangedSomething; - } - // ----------------------------------------------------------------------- - void OGeneralSpecialJDBCDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - SFX_ITEMSET_GET(_rSet, pDrvItem, SfxStringItem, DSID_JDBCDRIVERCLASS, sal_True); - SFX_ITEMSET_GET(_rSet, pHostName, SfxStringItem, DSID_CONN_HOSTNAME, sal_True); - SFX_ITEMSET_GET(_rSet, pPortNumber, SfxInt32Item, m_nPortId, sal_True); - SFX_ITEMSET_GET(_rSet, pSocket, SfxStringItem, DSID_CONN_SOCKET, sal_True); - - if ( bValid ) - { - if ( m_bUseClass ) - { - m_aEDDriverClass.SetText(pDrvItem->GetValue()); - m_aEDDriverClass.ClearModifyFlag(); - } - - m_aEDHostname.SetText(pHostName->GetValue()); - m_aEDHostname.ClearModifyFlag(); - - m_aNFPortNumber.SetValue(pPortNumber->GetValue()); - m_aNFPortNumber.ClearModifyFlag(); - - m_aEDSocket.SetText(pSocket->GetValue()); - m_aEDSocket.ClearModifyFlag(); - } - - OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue); - - // to get the correcxt value when saveValue was called by base class - if ( m_bUseClass && !m_aEDDriverClass.GetText().Len() ) - { - m_aEDDriverClass.SetText(m_sDefaultJdbcDriverName); - m_aEDDriverClass.SetModifyFlag(); - } - } - // ----------------------------------------------------------------------- - IMPL_LINK(OGeneralSpecialJDBCDetailsPage, OnTestJavaClickHdl, PushButton*, /*_pButton*/) - { - OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF"); - OSL_ENSURE(m_bUseClass,"Who called me?"); - - sal_Bool bSuccess = sal_False; - try - { - if ( m_aEDDriverClass.GetText().Len() ) - { -// TODO chage jvmaccess - ::rtl::Reference< jvmaccess::VirtualMachine > xJVM = ::connectivity::getJavaVM(m_pAdminDialog->getORB()); - bSuccess = ::connectivity::existsJavaClassByName(xJVM,m_aEDDriverClass.GetText()); - } - } - catch(Exception&) - { - } - - sal_uInt16 nMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS; - OSQLMessageBox aMsg( this, String( ModuleRes( nMessage ) ), String() ); - aMsg.Execute(); - return 0L; - } - // ----------------------------------------------------------------------- - IMPL_LINK(OGeneralSpecialJDBCDetailsPage, OnEditModified, Edit*, _pEdit) - { - if ( m_bUseClass && _pEdit == &m_aEDDriverClass ) - m_aTestJavaDriver.Enable( m_aEDDriverClass.GetText().Len() != 0 ); - - // tell the listener we were modified - callModifiedHdl(); - return 0L; - } - - //======================================================================== - //= MySQLNativePage - //======================================================================== - MySQLNativePage::MySQLNativePage( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OCommonBehaviourTabPage(pParent, PAGE_MYSQL_NATIVE, _rCoreAttrs, CBTP_USE_CHARSET, false ) - ,m_aSeparator1 ( this, ModuleRes( FL_SEPARATOR1) ) - ,m_aMySQLSettings ( *this, getControlModifiedLink() ) - ,m_aSeparator2 ( this, ModuleRes(FL_SEPARATOR2)) - ,m_aUserNameLabel ( this, ModuleRes(FT_USERNAME)) - ,m_aUserName ( this, ModuleRes(ET_USERNAME)) - ,m_aPasswordRequired ( this, ModuleRes(CB_PASSWORD_REQUIRED)) - { - m_aUserName.SetModifyHdl(getControlModifiedLink()); - - Window* pWindows[] = { &m_aMySQLSettings, &m_aSeparator2, &m_aUserNameLabel, &m_aUserName, - &m_aPasswordRequired, m_pCharsetLabel, m_pCharset}; - sal_Int32 nCount = SAL_N_ELEMENTS(pWindows); - for (sal_Int32 i=1; i < nCount; ++i) - pWindows[i]->SetZOrder(pWindows[i-1], WINDOW_ZORDER_BEHIND); - - LayoutHelper::positionBelow( m_aSeparator1, m_aMySQLSettings, RelatedControls, 3 ); - m_aMySQLSettings.Show(); - - FreeResource(); - } - - // ----------------------------------------------------------------------- - void MySQLNativePage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillControls( _rControlList ); - m_aMySQLSettings.fillControls( _rControlList ); - - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aUserName)); - _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aPasswordRequired)); - } - // ----------------------------------------------------------------------- - void MySQLNativePage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillWindows( _rControlList ); - m_aMySQLSettings.fillWindows( _rControlList); - - _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aSeparator1)); - _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aSeparator2)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aUserNameLabel)); - } - - // ----------------------------------------------------------------------- - sal_Bool MySQLNativePage::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet( _rSet ); - - bChangedSomething |= m_aMySQLSettings.FillItemSet( _rSet ); - - if ( m_aUserName.GetText() != m_aUserName.GetSavedValue() ) - { - _rSet.Put( SfxStringItem( DSID_USER, m_aUserName.GetText() ) ); - _rSet.Put( SfxStringItem( DSID_PASSWORD, String())); - bChangedSomething = sal_True; - } - fillBool(_rSet,&m_aPasswordRequired,DSID_PASSWORDREQUIRED,bChangedSomething); - - return bChangedSomething; - } - // ----------------------------------------------------------------------- - void MySQLNativePage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - m_aMySQLSettings.implInitControls( _rSet ); - - SFX_ITEMSET_GET(_rSet, pUidItem, SfxStringItem, DSID_USER, sal_True); - SFX_ITEMSET_GET(_rSet, pAllowEmptyPwd, SfxBoolItem, DSID_PASSWORDREQUIRED, sal_True); - - if ( bValid ) - { - m_aUserName.SetText(pUidItem->GetValue()); - m_aUserName.ClearModifyFlag(); - m_aPasswordRequired.Check(pAllowEmptyPwd->GetValue()); - } - - OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue); - } - - // ----------------------------------------------------------------------- - SfxTabPage* ODriversSettings::CreateMySQLJDBC( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OGeneralSpecialJDBCDetailsPage( pParent,PAGE_MYSQL_JDBC, _rAttrSet,DSID_MYSQL_PORTNUMBER ) ); - } - // ----------------------------------------------------------------------- - SfxTabPage* ODriversSettings::CreateMySQLNATIVE( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new MySQLNativePage( pParent, _rAttrSet ) ); - } - - // ----------------------------------------------------------------------- - SfxTabPage* ODriversSettings::CreateOracleJDBC( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OGeneralSpecialJDBCDetailsPage( pParent,PAGE_ORACLE_JDBC, _rAttrSet,DSID_ORACLE_PORTNUMBER) ); - } - - - //======================================================================== - //= OAdabasDetailsPage - //======================================================================== - OAdabasDetailsPage::OAdabasDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OCommonBehaviourTabPage(pParent, PAGE_ADABAS, _rCoreAttrs, CBTP_USE_CHARSET ,false) - ,m_aFTHostname (this, ModuleRes(FT_HOSTNAME)) - ,m_aEDHostname (this, ModuleRes(ET_HOSTNAME)) - ,m_aFL_1 (this, ModuleRes( FL_SEPARATOR1) ) - ,m_FT_CACHE_SIZE( this, ModuleRes( FT_CACHE_SIZE ) ) - ,m_NF_CACHE_SIZE( this, ModuleRes( NF_CACHE_SIZE ) ) - ,m_FT_DATA_INCREMENT( this, ModuleRes( FT_DATA_INCREMENT ) ) - ,m_NF_DATA_INCREMENT( this, ModuleRes( NF_DATA_INCREMENT ) ) - ,m_aFL_2( this, ModuleRes( FL_SEPARATOR2 ) ) - ,m_FT_CTRLUSERNAME( this, ModuleRes( FT_CTRLUSERNAME ) ) - ,m_ET_CTRLUSERNAME( this, ModuleRes( ET_CTRLUSERNAME ) ) - ,m_FT_CTRLPASSWORD( this, ModuleRes( FT_CTRLPASSWORD ) ) - ,m_ET_CTRLPASSWORD( this, ModuleRes( ET_CTRLPASSWORD ) ) - ,m_CB_SHUTDB( this, ModuleRes( CB_SHUTDB ) ) - ,m_PB_STAT( this, ModuleRes( PB_STAT ) ) - { - m_aEDHostname.SetModifyHdl(getControlModifiedLink()); - - FreeResource(); - - m_PB_STAT.SetClickHdl( LINK(this,OAdabasDetailsPage,PBClickHdl)); - - m_CB_SHUTDB.SetClickHdl( LINK(this,OAdabasDetailsPage,AttributesChangedHdl)); - m_NF_CACHE_SIZE.SetModifyHdl( LINK(this,OAdabasDetailsPage,AttributesChangedHdl)); - m_NF_DATA_INCREMENT.SetModifyHdl( LINK(this,OAdabasDetailsPage,AttributesChangedHdl)); - m_ET_CTRLUSERNAME.SetModifyHdl( LINK(this,OAdabasDetailsPage,AttributesChangedHdl)); - m_ET_CTRLPASSWORD.SetModifyHdl( LINK(this,OAdabasDetailsPage,AttributesChangedHdl)); - - m_ET_CTRLUSERNAME.SetLoseFocusHdl( LINK(this,OAdabasDetailsPage,LoseFocusHdl)); - m_ET_CTRLPASSWORD.SetLoseFocusHdl( LINK(this,OAdabasDetailsPage,LoseFocusHdl)); - - m_NF_DATA_INCREMENT.SetMin(20); - m_NF_DATA_INCREMENT.SetMax(LONG_MAX); - m_NF_DATA_INCREMENT.SetValue(20); - m_NF_DATA_INCREMENT.SetDecimalDigits(0); - - m_NF_CACHE_SIZE.SetMin(4); - m_NF_CACHE_SIZE.SetMax(LONG_MAX); - m_NF_CACHE_SIZE.SetValue(4); - m_NF_CACHE_SIZE.SetDecimalDigits(0); - - Window* pWindows[] = { &m_aFTHostname,&m_aEDHostname - ,&m_FT_CACHE_SIZE,&m_NF_CACHE_SIZE - ,&m_FT_DATA_INCREMENT,&m_NF_DATA_INCREMENT - ,&m_FT_CTRLUSERNAME,&m_ET_CTRLUSERNAME - ,&m_FT_CTRLPASSWORD,&m_ET_CTRLPASSWORD - ,&m_CB_SHUTDB - ,m_pCharsetLabel, m_pCharset,&m_PB_STAT}; - - sal_Int32 nCount = SAL_N_ELEMENTS(pWindows); - for (sal_Int32 i=1; i < nCount; ++i) - pWindows[i]->SetZOrder(pWindows[i-1], WINDOW_ZORDER_BEHIND); - } - - // ----------------------------------------------------------------------- - SfxTabPage* ODriversSettings::CreateAdabas( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OAdabasDetailsPage( pParent, _rAttrSet ) ); - } - - // ----------------------------------------------------------------------- - void OAdabasDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillControls(_rControlList); - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aEDHostname)); - _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_NF_CACHE_SIZE)); - _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_NF_DATA_INCREMENT)); - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_ET_CTRLUSERNAME)); - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_ET_CTRLPASSWORD)); - _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_CB_SHUTDB)); - } - // ----------------------------------------------------------------------- - void OAdabasDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillWindows(_rControlList); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTHostname)); - _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL_1)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_FT_CACHE_SIZE)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_FT_DATA_INCREMENT)); - _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL_2)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_FT_CTRLUSERNAME)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_FT_CTRLPASSWORD)); - _rControlList.push_back(new ODisableWrapper<PushButton>(&m_PB_STAT)); - } - // ----------------------------------------------------------------------- - void OAdabasDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // first check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - SFX_ITEMSET_GET(_rSet, pHostName, SfxStringItem, DSID_CONN_HOSTNAME, sal_True); - SFX_ITEMSET_GET(_rSet, pCtrlUserItem, SfxStringItem, DSID_CONN_CTRLUSER, sal_True); - SFX_ITEMSET_GET(_rSet, pCtrlPwdItem, SfxStringItem, DSID_CONN_CTRLPWD, sal_True); - SFX_ITEMSET_GET(_rSet, pShutItem, SfxBoolItem, DSID_CONN_SHUTSERVICE, sal_True); - SFX_ITEMSET_GET(_rSet, pIncItem, SfxInt32Item, DSID_CONN_DATAINC, sal_True); - SFX_ITEMSET_GET(_rSet, pCacheItem, SfxInt32Item, DSID_CONN_CACHESIZE, sal_True); - if ( bValid ) - { - m_aEDHostname.SetText(pHostName->GetValue()); - m_aEDHostname.ClearModifyFlag(); - m_CB_SHUTDB.Check( pShutItem->GetValue() ); - m_NF_DATA_INCREMENT.SetValue( pIncItem->GetValue() ); - m_NF_CACHE_SIZE.SetValue( pCacheItem->GetValue() ); - m_ET_CTRLUSERNAME.SetText(pCtrlUserItem->GetValue()); - m_ET_CTRLPASSWORD.SetText(pCtrlPwdItem->GetValue()); - m_CB_SHUTDB.Enable(m_ET_CTRLUSERNAME.GetText().Len() && m_ET_CTRLPASSWORD.GetText().Len()); - } - - OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue); - } - // ----------------------------------------------------------------------- - sal_Bool OAdabasDetailsPage::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet); - - fillString(_rSet,&m_aEDHostname,DSID_CONN_HOSTNAME,bChangedSomething); - fillBool(_rSet,&m_CB_SHUTDB,DSID_CONN_SHUTSERVICE,bChangedSomething); - fillInt32(_rSet,&m_NF_DATA_INCREMENT,DSID_CONN_DATAINC,bChangedSomething ); - fillInt32(_rSet,&m_NF_CACHE_SIZE,DSID_CONN_CACHESIZE,bChangedSomething ); - fillString(_rSet,&m_ET_CTRLUSERNAME,DSID_CONN_CTRLUSER,bChangedSomething ); - fillString(_rSet,&m_ET_CTRLPASSWORD,DSID_CONN_CTRLPWD,bChangedSomething ); - - return bChangedSomething; - } - //------------------------------------------------------------------------ - IMPL_LINK( OAdabasDetailsPage, AttributesChangedHdl, void *, EMPTYARG ) - { - m_CB_SHUTDB.Enable(m_ET_CTRLUSERNAME.GetText().Len() && m_ET_CTRLPASSWORD.GetText().Len()); - bAttrsChanged = sal_True; - callModifiedHdl(); - return 0; - } - //------------------------------------------------------------------------ - IMPL_LINK( OAdabasDetailsPage, LoseFocusHdl, Edit *, /*pEdit*/ ) - { - m_CB_SHUTDB.Enable(m_ET_CTRLUSERNAME.GetText().Len() && m_ET_CTRLPASSWORD.GetText().Len()); - return 0; - } - //------------------------------------------------------------------------ - IMPL_LINK( OAdabasDetailsPage, PBClickHdl, Button *, /*pButton*/ ) - { - OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF"); - if ( m_pAdminDialog ) - { - m_pAdminDialog->saveDatasource(); - try - { - Reference< XConnection > xConnection = m_pAdminDialog->createConnection().first; - if ( xConnection.is() ) - { - OAdabasStatistics aDlg(this,m_sUser,xConnection,m_pAdminDialog->getORB()); - aDlg.Execute(); - ::comphelper::disposeComponent(xConnection); - } - } - catch(Exception&) - { - } - } - - return 0; - } - - - //======================================================================== - //= OLDAPDetailsPage - //======================================================================== - OLDAPDetailsPage::OLDAPDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OCommonBehaviourTabPage(pParent, PAGE_LDAP, _rCoreAttrs,0,false) - ,m_aFL_1 (this, ModuleRes( FL_SEPARATOR1) ) - ,m_aBaseDN (this, ModuleRes(FT_BASEDN)) - ,m_aETBaseDN (this, ModuleRes(ET_BASEDN)) - ,m_aCBUseSSL (this, ModuleRes(CB_USESSL)) - ,m_aPortNumber (this, ModuleRes(FT_PORTNUMBER)) - ,m_aNFPortNumber (this, ModuleRes(NF_PORTNUMBER)) - ,m_aFTRowCount (this, ModuleRes(FT_LDAPROWCOUNT)) - ,m_aNFRowCount (this, ModuleRes(NF_LDAPROWCOUNT)) - { - m_aETBaseDN.SetModifyHdl(getControlModifiedLink()); - m_aCBUseSSL.SetToggleHdl(getControlModifiedLink()); - m_aNFPortNumber.SetModifyHdl(getControlModifiedLink()); - m_aNFRowCount.SetModifyHdl(getControlModifiedLink()); - - m_aNFRowCount.SetUseThousandSep(sal_False); - m_iNormalPort = 389; - m_iSSLPort = 636; - m_aCBUseSSL.SetClickHdl(LINK(this, OLDAPDetailsPage,OnCheckBoxClick)); - FreeResource(); - } - - // ----------------------------------------------------------------------- - SfxTabPage* ODriversSettings::CreateLDAP( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OLDAPDetailsPage( pParent, _rAttrSet ) ); - } - - // ----------------------------------------------------------------------- - sal_Bool OLDAPDetailsPage::FillItemSet( SfxItemSet& _rSet ) - { - sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet); - - fillString(_rSet,&m_aETBaseDN,DSID_CONN_LDAP_BASEDN,bChangedSomething); - fillInt32(_rSet,&m_aNFPortNumber,DSID_CONN_LDAP_PORTNUMBER,bChangedSomething); - fillInt32(_rSet,&m_aNFRowCount,DSID_CONN_LDAP_ROWCOUNT,bChangedSomething); - fillBool(_rSet,&m_aCBUseSSL,DSID_CONN_LDAP_USESSL,bChangedSomething); - return bChangedSomething; - } - //------------------------------------------------------------------------ - IMPL_LINK( OLDAPDetailsPage, OnCheckBoxClick, CheckBox*, pCheckBox ) - { - callModifiedHdl(); - if ( pCheckBox == &m_aCBUseSSL) - { - if ( m_aCBUseSSL.IsChecked() ) - { - m_iNormalPort = static_cast<sal_Int32>(m_aNFPortNumber.GetValue()); - m_aNFPortNumber.SetValue(m_iSSLPort); - } - else - { - m_iSSLPort = static_cast<sal_Int32>(m_aNFPortNumber.GetValue()); - m_aNFPortNumber.SetValue(m_iNormalPort); - } - } - return 0; - } - - // ----------------------------------------------------------------------- - void OLDAPDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillControls(_rControlList); - _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aETBaseDN)); - _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aCBUseSSL)); - _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_aNFPortNumber)); - _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_aNFRowCount)); - } - // ----------------------------------------------------------------------- - void OLDAPDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillWindows(_rControlList); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aBaseDN)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aPortNumber)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTRowCount)); - _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL_1)); - } - // ----------------------------------------------------------------------- - void OLDAPDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - - SFX_ITEMSET_GET(_rSet, pBaseDN, SfxStringItem, DSID_CONN_LDAP_BASEDN, sal_True); - SFX_ITEMSET_GET(_rSet, pUseSSL, SfxBoolItem, DSID_CONN_LDAP_USESSL, sal_True); - SFX_ITEMSET_GET(_rSet, pPortNumber, SfxInt32Item, DSID_CONN_LDAP_PORTNUMBER, sal_True); - SFX_ITEMSET_GET(_rSet, pRowCount, SfxInt32Item, DSID_CONN_LDAP_ROWCOUNT, sal_True); - - if ( bValid ) - { - m_aETBaseDN.SetText(pBaseDN->GetValue()); - m_aNFPortNumber.SetValue(pPortNumber->GetValue()); - m_aNFRowCount.SetValue(pRowCount->GetValue()); - m_aCBUseSSL.Check(pUseSSL->GetValue()); - } - - OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue); - } - - - //======================================================================== - //= OTextDetailsPage - //======================================================================== - DBG_NAME(OTextDetailsPage) - //------------------------------------------------------------------------ - OTextDetailsPage::OTextDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ) - :OCommonBehaviourTabPage(pParent, PAGE_TEXT, _rCoreAttrs, 0, false ) - { - DBG_CTOR(OTextDetailsPage,NULL); - - m_pTextConnectionHelper = new OTextConnectionHelper( this, TC_EXTENSION | TC_HEADER | TC_SEPARATORS | TC_CHARSET ); - FreeResource(); - } - - // ----------------------------------------------------------------------- - OTextDetailsPage::~OTextDetailsPage() - { - DELETEZ(m_pTextConnectionHelper); - - DBG_DTOR(OTextDetailsPage,NULL); - } - - // ----------------------------------------------------------------------- - SfxTabPage* ODriversSettings::CreateText( Window* pParent, const SfxItemSet& _rAttrSet ) - { - return ( new OTextDetailsPage( pParent, _rAttrSet ) ); - } - // ----------------------------------------------------------------------- - void OTextDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillControls(_rControlList); - m_pTextConnectionHelper->fillControls(_rControlList); - - } - // ----------------------------------------------------------------------- - void OTextDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - OCommonBehaviourTabPage::fillWindows(_rControlList); - m_pTextConnectionHelper->fillWindows(_rControlList); - - } - // ----------------------------------------------------------------------- - void OTextDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // first check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - m_pTextConnectionHelper->implInitControls(_rSet, bValid); - OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue); - } - - // ----------------------------------------------------------------------- - sal_Bool OTextDetailsPage::FillItemSet( SfxItemSet& rSet ) - { - sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(rSet); - bChangedSomething = m_pTextConnectionHelper->FillItemSet(rSet, bChangedSomething); - return bChangedSomething; - } - - // ----------------------------------------------------------------------- - sal_Bool OTextDetailsPage::prepareLeave() - { - return m_pTextConnectionHelper->prepareLeave(); - } - - //------------------------------------------------------------------------ - SfxTabPage* ODriversSettings::CreateGeneratedValuesPage( Window* _pParent, const SfxItemSet& _rAttrSet ) - { - return new GeneratedValuesPage( _pParent, _rAttrSet ); - } - - //------------------------------------------------------------------------ - SfxTabPage* ODriversSettings::CreateSpecialSettingsPage( Window* _pParent, const SfxItemSet& _rAttrSet ) - { - ::rtl::OUString eType = ODbDataSourceAdministrationHelper::getDatasourceType( _rAttrSet ); - DataSourceMetaData aMetaData( eType ); - return new SpecialSettingsPage( _pParent, _rAttrSet, aMetaData ); - } -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/detailpages.hxx b/dbaccess/source/ui/dlg/detailpages.hxx deleted file mode 100644 index a6615445d..000000000 --- a/dbaccess/source/ui/dlg/detailpages.hxx +++ /dev/null @@ -1,373 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_DETAILPAGES_HXX_ -#define _DBAUI_DETAILPAGES_HXX_ - -#include "adminpages.hxx" -#include "charsets.hxx" -#include "charsetlistbox.hxx" -#include <vcl/field.hxx> -#include <vcl/fixed.hxx> -#include <vcl/lstbox.hxx> -#include <vcl/edit.hxx> -#include <vcl/button.hxx> -#include "TextConnectionHelper.hxx" -#include "admincontrols.hxx" - -#include <svtools/dialogcontrolling.hxx> - - -//......................................................................... -namespace dbaui -{ -//......................................................................... - //========================================================================= - //= OCommonBehaviourTabPage - //========================================================================= - #define CBTP_NONE 0x00000000 - #define CBTP_USE_CHARSET 0x00000002 - #define CBTP_USE_OPTIONS 0x00000004 - - /** eases the implementation of tab pages handling user/password and/or character - set and/or generic options input - <BR> - The controls to be used habe to be defined within the resource, as usual, but - this class does all the handling necessary. - */ - class OCommonBehaviourTabPage : public OGenericAdministrationPage - { - protected: - - FixedText* m_pOptionsLabel; - Edit* m_pOptions; - - FixedLine* m_pDataConvertFixedLine; - FixedText* m_pCharsetLabel; - CharSetListBox* m_pCharset; - - FixedLine* m_pAutoFixedLine; - CheckBox* m_pAutoRetrievingEnabled; - FixedText* m_pAutoIncrementLabel; - Edit* m_pAutoIncrement; - FixedText* m_pAutoRetrievingLabel; - Edit* m_pAutoRetrieving; - - sal_uInt32 m_nControlFlags; - - public: - virtual sal_Bool FillItemSet (SfxItemSet& _rCoreAttrs); - - OCommonBehaviourTabPage(Window* pParent, sal_uInt16 nResId, const SfxItemSet& _rCoreAttrs, sal_uInt32 nControlFlags,bool _bFreeResource = true); - protected: - - // nControlFlags ist eine Kombination der CBTP_xxx-Konstanten - virtual ~OCommonBehaviourTabPage(); - - // must be overloaded by subclasses, but it isn't pure virtual - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - - // <method>OGenericAdministrationPage::fillControls</method> - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - - // <method>OGenericAdministrationPage::fillWindows</method> - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - }; - - //======================================================================== - //= ODbaseDetailsPage - //======================================================================== - class ODbaseDetailsPage : public OCommonBehaviourTabPage - { - public: - virtual sal_Bool FillItemSet ( SfxItemSet& _rCoreAttrs ); - - ODbaseDetailsPage(Window* pParent, const SfxItemSet& _rCoreAttrs); - private: - // please add new controls also to <method>fillControls</method> or <method>fillWindows</method> - CheckBox m_aShowDeleted; - FixedLine m_aFL_1; - FixedText m_aFT_Message; - PushButton m_aIndexes; - - String m_sDsn; - - protected: - - virtual ~ODbaseDetailsPage(); - - protected: - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - - private: - DECL_LINK( OnButtonClicked, Button * ); - }; - - //======================================================================== - //= OAdoDetailsPage - //======================================================================== - class OAdoDetailsPage : public OCommonBehaviourTabPage - { - protected: - virtual ~OAdoDetailsPage(); - public: - - OAdoDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ); - }; - - //======================================================================== - //= OOdbcDetailsPage - //======================================================================== - class OOdbcDetailsPage : public OCommonBehaviourTabPage - { - public: - virtual sal_Bool FillItemSet ( SfxItemSet& _rCoreAttrs ); - - OOdbcDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ); - protected: - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - private: - FixedLine m_aFL_1; - CheckBox m_aUseCatalog; - }; - - - //======================================================================== - //= OUserDriverDetailsPage - //======================================================================== - class OUserDriverDetailsPage : public OCommonBehaviourTabPage - { - public: - virtual sal_Bool FillItemSet ( SfxItemSet& _rCoreAttrs ); - - OUserDriverDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ); - protected: - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - private: - FixedText m_aFTHostname; - Edit m_aEDHostname; - FixedText m_aPortNumber; - NumericField m_aNFPortNumber; - CheckBox m_aUseCatalog; - }; - - //======================================================================== - //= OMySQLODBCDetailsPage - //======================================================================== - class OMySQLODBCDetailsPage : public OCommonBehaviourTabPage - { - public: - OMySQLODBCDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ); - }; - - //======================================================================== - //= OGeneralSpecialJDBCDetailsPage - //======================================================================== - class OGeneralSpecialJDBCDetailsPage : public OCommonBehaviourTabPage - { - public: - OGeneralSpecialJDBCDetailsPage( Window* pParent - , sal_uInt16 _nResId - , const SfxItemSet& _rCoreAttrs - , sal_uInt16 _nPortId - ); - - protected: - - - virtual sal_Bool FillItemSet( SfxItemSet& _rCoreAttrs ); - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - - DECL_LINK(OnTestJavaClickHdl,PushButton*); - DECL_LINK(OnEditModified,Edit*); - - FixedLine m_aFL_1; - FixedText m_aFTHostname; - Edit m_aEDHostname; - FixedText m_aPortNumber; - NumericField m_aNFPortNumber; - FixedText m_aFTSocket; - Edit m_aEDSocket; - - FixedText m_aFTDriverClass; - Edit m_aEDDriverClass; - PushButton m_aTestJavaDriver; - - String m_sDefaultJdbcDriverName; - sal_uInt16 m_nPortId; - bool m_bUseClass; - }; - - //======================================================================== - //= MySQLNativePage - //======================================================================== - class MySQLNativePage : public OCommonBehaviourTabPage - { - public: - MySQLNativePage( Window* pParent, - const SfxItemSet& _rCoreAttrs ); - - private: - FixedLine m_aSeparator1; - MySQLNativeSettings m_aMySQLSettings; - - FixedLine m_aSeparator2; - FixedText m_aUserNameLabel; - Edit m_aUserName; - CheckBox m_aPasswordRequired; - - protected: - virtual sal_Bool FillItemSet( SfxItemSet& _rCoreAttrs ); - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - }; - - //======================================================================== - //= OAdabasDetailsPage - //======================================================================== - class OAdabasDetailsPage : public OCommonBehaviourTabPage - { - public: - virtual sal_Bool FillItemSet (SfxItemSet& _rCoreAttrs); - - OAdabasDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ); - protected: - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - - private: - FixedText m_aFTHostname; - Edit m_aEDHostname; - FixedLine m_aFL_1; - FixedText m_FT_CACHE_SIZE; - NumericField m_NF_CACHE_SIZE; - - FixedText m_FT_DATA_INCREMENT; - NumericField m_NF_DATA_INCREMENT; - - FixedLine m_aFL_2; - FixedText m_FT_CTRLUSERNAME; - Edit m_ET_CTRLUSERNAME; - FixedText m_FT_CTRLPASSWORD; - Edit m_ET_CTRLPASSWORD; - - CheckBox m_CB_SHUTDB; - PushButton m_PB_STAT; - String m_sUser; - sal_Bool bAttrsChanged; - - DECL_LINK( AttributesChangedHdl, void * ); - DECL_LINK( UserSettingsHdl, void * ); - DECL_LINK( LoseFocusHdl, Edit * ); - DECL_LINK( PBClickHdl, Button *); - }; - - //======================================================================== - //= OOdbcDetailsPage - //======================================================================== - class OLDAPDetailsPage : public OCommonBehaviourTabPage - { - public: - virtual sal_Bool FillItemSet ( SfxItemSet& _rCoreAttrs ); - - OLDAPDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ); - protected: - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - private: - FixedLine m_aFL_1; - FixedText m_aBaseDN; - Edit m_aETBaseDN; - CheckBox m_aCBUseSSL; - FixedText m_aPortNumber; - NumericField m_aNFPortNumber; - FixedText m_aFTRowCount; - NumericField m_aNFRowCount; - - sal_Int32 m_iSSLPort; - sal_Int32 m_iNormalPort; - DECL_LINK( OnCheckBoxClick, CheckBox * ); - }; - - //======================================================================== - //= OMozillaDetailsPage Detail page for Mozilla and Thunderbird addressbook - //======================================================================== - class OMozillaDetailsPage : public OCommonBehaviourTabPage - { - protected: - virtual ~OMozillaDetailsPage(); - public: - - OMozillaDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ); - }; - - //======================================================================== - //= OTextDetailsPage - //======================================================================== - class OTextDetailsPage : public OCommonBehaviourTabPage - { - public: - virtual sal_Bool FillItemSet ( SfxItemSet& _rCoreAttrs ); - - OTextDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs ); - OTextConnectionHelper* m_pTextConnectionHelper; - - private: - - String m_aFieldSeparatorList; - String m_aTextSeparatorList; - String m_aTextNone; - protected: - virtual ~OTextDetailsPage(); - virtual sal_Bool prepareLeave(); - - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - - private: - }; - -//......................................................................... -} // namespace dbaui -//......................................................................... - -#endif // _DBAUI_DETAILPAGES_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/directsql.cxx b/dbaccess/source/ui/dlg/directsql.cxx deleted file mode 100644 index ada2b435e..000000000 --- a/dbaccess/source/ui/dlg/directsql.cxx +++ /dev/null @@ -1,351 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "directsql.hxx" -#include "directsql.hrc" -#include "dbu_dlg.hrc" -#include <vcl/msgbox.hxx> -#include <comphelper/types.hxx> -#include <vcl/msgbox.hxx> -#include <vcl/svapp.hxx> -#include <osl/mutex.hxx> -#include <tools/diagnose_ex.h> - -//........................................................................ -namespace dbaui -{ -//........................................................................ - - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::sdbc; - using namespace ::com::sun::star::lang; - - //==================================================================== - //= LargeEntryListBox - //==================================================================== - class LargeEntryListBox : public ListBox - { - public: - LargeEntryListBox( Window* _pParent, const ResId& _rId ); - - protected: - virtual void UserDraw( const UserDrawEvent& rUDEvt ); - }; - - //-------------------------------------------------------------------- - LargeEntryListBox::LargeEntryListBox( Window* _pParent, const ResId& _rId ) - :ListBox(_pParent, _rId ) - { - EnableUserDraw(sal_True); - } - - //-------------------------------------------------------------------- - void LargeEntryListBox::UserDraw( const UserDrawEvent& _rUDEvt ) - { - if (LISTBOX_ENTRY_NOTFOUND == _rUDEvt.GetItemId()) - ListBox::UserDraw( _rUDEvt ); - else - _rUDEvt.GetDevice()->DrawText( _rUDEvt.GetRect(), GetEntry( _rUDEvt.GetItemId() ), TEXT_DRAW_LEFT | TEXT_DRAW_VCENTER | TEXT_DRAW_ENDELLIPSIS); - } - - //==================================================================== - //= DirectSQLDialog - //==================================================================== -DBG_NAME(DirectSQLDialog) -//-------------------------------------------------------------------- - DirectSQLDialog::DirectSQLDialog( Window* _pParent, const Reference< XConnection >& _rxConn ) - :ModalDialog(_pParent, ModuleRes(DLG_DIRECTSQL)) - ,m_aFrame (this, ModuleRes(FL_SQL)) - ,m_aSQLLabel (this, ModuleRes(FT_SQL)) - ,m_aSQL (this, ModuleRes(ME_SQL)) - ,m_aExecute (this, ModuleRes(PB_EXECUTE)) - ,m_aHistoryLabel (this, ModuleRes(FT_HISTORY)) - ,m_pSQLHistory(new LargeEntryListBox(this, ModuleRes(LB_HISTORY))) - ,m_aStatusFrame (this, ModuleRes(FL_STATUS)) - ,m_aStatus (this, ModuleRes(ME_STATUS)) - ,m_aButtonSeparator (this, ModuleRes(FL_BUTTONS)) - ,m_aHelp (this, ModuleRes(PB_HELP)) - ,m_aClose (this, ModuleRes(PB_CLOSE)) - ,m_nHistoryLimit(20) - ,m_nStatusCount(1) - ,m_xConnection(_rxConn) - { - DBG_CTOR(DirectSQLDialog,NULL); - - FreeResource(); - - m_aSQL.GrabFocus(); - - m_aExecute.SetClickHdl(LINK(this, DirectSQLDialog, OnExecute)); - m_aClose.SetClickHdl(LINK(this, DirectSQLDialog, OnClose)); - m_pSQLHistory->SetSelectHdl(LINK(this, DirectSQLDialog, OnListEntrySelected)); - m_pSQLHistory->SetDropDownLineCount(10); - - // add a dispose listener to the connection - Reference< XComponent > xConnComp(m_xConnection, UNO_QUERY); - OSL_ENSURE(xConnComp.is(), "DirectSQLDialog::DirectSQLDialog: invalid connection!"); - if (xConnComp.is()) - startComponentListening(xConnComp); - - m_aSQL.SetModifyHdl(LINK(this, DirectSQLDialog, OnStatementModified)); - OnStatementModified(&m_aSQL); - } - - //-------------------------------------------------------------------- - DirectSQLDialog::~DirectSQLDialog() - { - { - ::osl::MutexGuard aGuard(m_aMutex); - stopAllComponentListening(); - } - delete m_pSQLHistory; - - DBG_DTOR(DirectSQLDialog,NULL); - } - - //-------------------------------------------------------------------- - void DirectSQLDialog::_disposing( const EventObject& _rSource ) - { - SolarMutexGuard aSolarGuard; - ::osl::MutexGuard aGuard(m_aMutex); - - OSL_ENSURE(Reference< XConnection >(_rSource.Source, UNO_QUERY).get() == m_xConnection.get(), - "DirectSQLDialog::_disposing: where does this come from?"); - (void)_rSource; - - { - String sMessage(ModuleRes(STR_DIRECTSQL_CONNECTIONLOST)); - ErrorBox aError(this, WB_OK, sMessage); - aError.Execute(); - } - - PostUserEvent(LINK(this, DirectSQLDialog, OnClose)); - } - - //-------------------------------------------------------------------- - sal_Int32 DirectSQLDialog::getHistorySize() const - { - CHECK_INVARIANTS("DirectSQLDialog::getHistorySize"); - return m_aStatementHistory.size(); - } - - //-------------------------------------------------------------------- - void DirectSQLDialog::implEnsureHistoryLimit() - { - CHECK_INVARIANTS("DirectSQLDialog::implEnsureHistoryLimit"); - - if (getHistorySize() <= m_nHistoryLimit) - // nothing to do - return; - - sal_Int32 nRemoveEntries = getHistorySize() - m_nHistoryLimit; - while (nRemoveEntries--) - { - m_aStatementHistory.pop_front(); - m_aNormalizedHistory.pop_front(); - m_pSQLHistory->RemoveEntry((sal_uInt16)0); - } - } - - //-------------------------------------------------------------------- - void DirectSQLDialog::implAddToStatementHistory(const String& _rStatement) - { - CHECK_INVARIANTS("DirectSQLDialog::implAddToStatementHistory"); - - // add the statement to the history - m_aStatementHistory.push_back(_rStatement); - - // normalize the statement, and remember the normalized form, too - String sNormalized(_rStatement); - sNormalized.SearchAndReplaceAll((sal_Unicode)'\n', ' '); - m_aNormalizedHistory.push_back(sNormalized); - - // add the normalized version to the list box - m_pSQLHistory->InsertEntry(sNormalized); - - // ensure that we don't exceed the history limit - implEnsureHistoryLimit(); - } - -#ifdef DBG_UTIL - //-------------------------------------------------------------------- - const sal_Char* DirectSQLDialog::impl_CheckInvariants() const - { - if (m_aStatementHistory.size() != m_aNormalizedHistory.size()) - return "statement history is inconsistent!"; - - if (!m_pSQLHistory) - return "invalid listbox!"; - - if (m_aStatementHistory.size() != m_pSQLHistory->GetEntryCount()) - return "invalid listbox entry count!"; - - if (!m_xConnection.is()) - return "have no connection!"; - - return NULL; - } -#endif - - //-------------------------------------------------------------------- - void DirectSQLDialog::implExecuteStatement(const String& _rStatement) - { - CHECK_INVARIANTS("DirectSQLDialog::implExecuteStatement"); - - ::osl::MutexGuard aGuard(m_aMutex); - - String sStatus; - try - { - // create a statement - Reference< XStatement > xStatement = m_xConnection->createStatement(); - OSL_ENSURE(xStatement.is(), "DirectSQLDialog::implExecuteStatement: no statement returned by the connection!"); - - // execute it - if (xStatement.is()) - xStatement->execute(_rStatement); - - // successfull - sStatus = String(ModuleRes(STR_COMMAND_EXECUTED_SUCCESSFULLY)); - - // dispose the statement - ::comphelper::disposeComponent(xStatement); - } - catch(const SQLException& e) - { - sStatus = e.Message; - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - - // add the status text - addStatusText(sStatus); - } - - //-------------------------------------------------------------------- - void DirectSQLDialog::addStatusText(const String& _rMessage) - { - String sAppendMessage = String::CreateFromInt32(m_nStatusCount++); - sAppendMessage += String::CreateFromAscii(": "); - sAppendMessage += _rMessage; - sAppendMessage += String::CreateFromAscii("\n\n"); - - String sCompleteMessage = m_aStatus.GetText(); - sCompleteMessage += sAppendMessage; - m_aStatus.SetText(sCompleteMessage); - - m_aStatus.SetSelection(Selection(sCompleteMessage.Len(), sCompleteMessage.Len())); - } - - //-------------------------------------------------------------------- - void DirectSQLDialog::executeCurrent() - { - CHECK_INVARIANTS("DirectSQLDialog::executeCurrent"); - - String sStatement = m_aSQL.GetText(); - - // execute - implExecuteStatement(sStatement); - - // add the statement to the history - implAddToStatementHistory(sStatement); - - m_aSQL.SetSelection(Selection()); - m_aSQL.GrabFocus(); - } - - //-------------------------------------------------------------------- - void DirectSQLDialog::switchToHistory(sal_Int32 _nHistoryPos, sal_Bool _bUpdateListBox) - { - CHECK_INVARIANTS("DirectSQLDialog::switchToHistory"); - - if ((_nHistoryPos >= 0) && (_nHistoryPos < getHistorySize())) - { - // set the text in the statement editor - String sStatement = m_aStatementHistory[_nHistoryPos]; - m_aSQL.SetText(sStatement); - OnStatementModified(&m_aSQL); - - if (_bUpdateListBox) - { - // selecte the normalized statement in the list box - m_pSQLHistory->SelectEntryPos((sal_uInt16)_nHistoryPos); - OSL_ENSURE(m_pSQLHistory->GetSelectEntry() == m_aNormalizedHistory[_nHistoryPos], - "DirectSQLDialog::switchToHistory: inconsistent listbox entries!"); - } - - m_aSQL.GrabFocus(); - m_aSQL.SetSelection(Selection(sStatement.Len(), sStatement.Len())); - } - else - OSL_FAIL("DirectSQLDialog::switchToHistory: invalid position!"); - } - - //-------------------------------------------------------------------- - IMPL_LINK( DirectSQLDialog, OnStatementModified, void*, /*NOTINTERESTEDIN*/ ) - { - m_aExecute.Enable(0 != m_aSQL.GetText().Len()); - return 0L; - } - - //-------------------------------------------------------------------- - IMPL_LINK( DirectSQLDialog, OnClose, void*, /*NOTINTERESTEDIN*/ ) - { - EndDialog( RET_OK ); - return 0L; - } - - //-------------------------------------------------------------------- - IMPL_LINK( DirectSQLDialog, OnExecute, void*, /*NOTINTERESTEDIN*/ ) - { - executeCurrent(); - return 0L; - } - - //-------------------------------------------------------------------- - IMPL_LINK( DirectSQLDialog, OnListEntrySelected, void*, /*NOTINTERESTEDIN*/ ) - { - if (!m_pSQLHistory->IsTravelSelect()) - { - const sal_uInt16 nSelected = m_pSQLHistory->GetSelectEntryPos(); - if (LISTBOX_ENTRY_NOTFOUND != nSelected) - switchToHistory(nSelected, sal_False); - } - return 0L; - } - -//........................................................................ -} // namespace dbaui -//........................................................................ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/directsql.hrc b/dbaccess/source/ui/dlg/directsql.hrc deleted file mode 100644 index ee09db68e..000000000 --- a/dbaccess/source/ui/dlg/directsql.hrc +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBACCESS_UI_DIRECTSQL_HRC_ -#define _DBACCESS_UI_DIRECTSQL_HRC_ - -#define FL_SQL 1 -#define FT_SQL 2 -#define ME_SQL 3 -#define PB_EXECUTE 4 -#define FT_HISTORY 5 -#define LB_HISTORY 6 -#define FL_STATUS 7 -#define ME_STATUS 8 -#define FL_BUTTONS 9 -#define PB_HELP 10 -#define PB_CLOSE 11 - -#endif // _DBACCESS_UI_DIRECTSQL_HRC_ diff --git a/dbaccess/source/ui/dlg/directsql.src b/dbaccess/source/ui/dlg/directsql.src deleted file mode 100644 index c5beb0a0c..000000000 --- a/dbaccess/source/ui/dlg/directsql.src +++ /dev/null @@ -1,139 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBACCESS_UI_DIRECTSQL_HRC_ -#include "directsql.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif - -#define BUTTON_SIZE_X 50 -#define BUTTON_SIZE_Y 14 - -#define WINDOW_SIZE_X 200 -#define WINDOW_SIZE_Y 210 + BUTTON_SIZE_Y + BUTTON_SIZE_Y - -ModalDialog DLG_DIRECTSQL -{ - HelpID = "dbaccess:ModalDialog:DLG_DIRECTSQL"; - OutputSize = TRUE ; - Moveable = TRUE ; - Closeable = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( WINDOW_SIZE_X , WINDOW_SIZE_Y ) ; - - FixedLine FL_SQL - { - Pos = MAP_APPFONT( 4, 3 ); - Size = MAP_APPFONT( WINDOW_SIZE_X - 8, 8 ); - Text [ en-US ] = "SQL command"; - }; - FixedText FT_SQL - { - Pos = MAP_APPFONT( 7, 15 ); - Size = MAP_APPFONT( WINDOW_SIZE_X - 14, 8 ); - Text [ en-US ] = "Command to execute"; - }; - MultiLineEdit ME_SQL - { - HelpID = "dbaccess:MultiLineEdit:DLG_DIRECTSQL:ME_SQL"; - Pos = MAP_APPFONT( 7, 26 ); - Size = MAP_APPFONT( WINDOW_SIZE_X - 14, 80 ); - SVLook = TRUE; - Border = TRUE; - TabStop = TRUE; - IgnoreTab = TRUE; - }; - PushButton PB_EXECUTE - { - HelpID = "dbaccess:PushButton:DLG_DIRECTSQL:PB_EXECUTE"; - Pos = MAP_APPFONT( WINDOW_SIZE_X - BUTTON_SIZE_X - 7, 109 ); - Size = MAP_APPFONT( BUTTON_SIZE_X, BUTTON_SIZE_Y ); - Text [ en-US ] = "Execute"; - DefButton = TRUE; - }; - FixedText FT_HISTORY - { - Pos = MAP_APPFONT( 7, 110 + BUTTON_SIZE_Y + 3 ); - Size = MAP_APPFONT( WINDOW_SIZE_X - 14, 8 ); - Text [ en-US ] = "Previous commands"; - }; - ListBox LB_HISTORY - { - HelpID = "dbaccess:ListBox:DLG_DIRECTSQL:LB_HISTORY"; - Pos = MAP_APPFONT( 7, 121 + BUTTON_SIZE_Y + 3 ); - Size = MAP_APPFONT( WINDOW_SIZE_X - 14, 14 ); - SvLook = TRUE; - DropDown = TRUE; - Border = TRUE; - }; - FixedLine FL_STATUS - { - Pos = MAP_APPFONT( 4, 138 + BUTTON_SIZE_Y + 4 ); - Size = MAP_APPFONT( WINDOW_SIZE_X - 8, 8 ); - Text [ en-US ] = "Status"; - }; - MultiLineEdit ME_STATUS - { - HelpID = "dbaccess:MultiLineEdit:DLG_DIRECTSQL:ME_STATUS"; - Pos = MAP_APPFONT( 7, 153 + BUTTON_SIZE_Y ); - Size = MAP_APPFONT( WINDOW_SIZE_X - 14, 41 ); - Border = TRUE; - ReadOnly = TRUE; - VScroll = TRUE; - }; - FixedLine FL_BUTTONS - { - Pos = MAP_APPFONT( 4, 193 + BUTTON_SIZE_Y + 4 ); - Size = MAP_APPFONT( WINDOW_SIZE_X - 8, 8 ); - }; - HelpButton PB_HELP - { - Pos = MAP_APPFONT( WINDOW_SIZE_X - 7 - BUTTON_SIZE_X - 3 - BUTTON_SIZE_X, 207 + BUTTON_SIZE_Y ); - Size = MAP_APPFONT( BUTTON_SIZE_X, BUTTON_SIZE_Y ); - }; - PushButton PB_CLOSE - { - HelpID = "dbaccess:PushButton:DLG_DIRECTSQL:PB_CLOSE"; - Pos = MAP_APPFONT( WINDOW_SIZE_X - 7 - BUTTON_SIZE_X, 207 + BUTTON_SIZE_Y ); - Size = MAP_APPFONT( BUTTON_SIZE_X, BUTTON_SIZE_Y ); - Text [ en-US ] = "Close"; - }; - - Text [ en-US ] = "Execute SQL Statement" ; -}; - -String STR_COMMAND_EXECUTED_SUCCESSFULLY -{ - Text [ en-US ] = "Command successfully executed." ; -}; - -String STR_DIRECTSQL_CONNECTIONLOST -{ - Text [ en-US ] = "The connection to the database has been lost. This dialog will be closed."; -}; diff --git a/dbaccess/source/ui/dlg/dlgattr.cxx b/dbaccess/source/ui/dlg/dlgattr.cxx deleted file mode 100644 index a95b4ef3e..000000000 --- a/dbaccess/source/ui/dlg/dlgattr.cxx +++ /dev/null @@ -1,112 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - - -#include "dlgattr.hxx" - -#include <sfx2/tabdlg.hxx> - -#include <svx/numinf.hxx> - -#include <svx/numinf.hxx> - -#include <svx/dialogs.hrc> -#include "dbu_dlg.hrc" -#include <svl/itemset.hxx> -#define _ZFORLIST_DECLARE_TABLE -#include <svl/zforlist.hxx> -#include <svx/svxids.hrc> -#include <svx/flagsdef.hxx> -#include <svl/intitem.hxx> -#include "moduledbu.hxx" -using namespace dbaui; - -DBG_NAME(SbaSbAttrDlg) -//================================================================== -SbaSbAttrDlg::SbaSbAttrDlg(Window* pParent, const SfxItemSet* pCellAttrs, SvNumberFormatter* pFormatter, sal_uInt16 nFlags, sal_Bool bRow) - : SfxTabDialog(pParent, ModuleRes( DLG_ATTR ), pCellAttrs ) - ,aTitle(ModuleRes(ST_ROW)) -{ - DBG_CTOR(SbaSbAttrDlg,NULL); - - pNumberInfoItem = new SvxNumberInfoItem( pFormatter, 0 ); - - if (bRow) - SetText(aTitle); - if( nFlags & TP_ATTR_CHAR ) - { - OSL_FAIL( "found flag TP_ATTR_CHAR" ); - } - if( nFlags & TP_ATTR_NUMBER ) - AddTabPage( RID_SVXPAGE_NUMBERFORMAT,String(ModuleRes(TP_ATTR_NUMBER)) ); - if( nFlags & TP_ATTR_ALIGN ) - AddTabPage( RID_SVXPAGE_ALIGNMENT,String(ModuleRes(TP_ATTR_ALIGN)) ); - FreeResource(); -} - -// ----------------------------------------------------------------------- -SbaSbAttrDlg::~SbaSbAttrDlg() -{ - delete pNumberInfoItem; - - DBG_DTOR(SbaSbAttrDlg,NULL); -} - -// ----------------------------------------------------------------------- -void SbaSbAttrDlg::PageCreated( sal_uInt16 nPageId, SfxTabPage& rTabPage ) -{ - SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool())); - switch ( nPageId ) - { - case RID_SVXPAGE_NUMBERFORMAT: - { - aSet.Put (SvxNumberInfoItem( pNumberInfoItem->GetNumberFormatter(), (const sal_uInt16)SID_ATTR_NUMBERFORMAT_INFO)); - rTabPage.PageCreated(aSet); - } - break; - - case RID_SVXPAGE_CHAR_STD: - { - } - break; - - case RID_SVXPAGE_ALIGNMENT: - { - } - break; - - default: - break; - } -} - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/dlgattr.src b/dbaccess/source/ui/dlg/dlgattr.src deleted file mode 100644 index 4ed8c1c56..000000000 --- a/dbaccess/source/ui/dlg/dlgattr.src +++ /dev/null @@ -1,91 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef _SVX_DIALOGS_HRC -#include <svx/dialogs.hrc> -#endif -#ifndef _DBA_DBACCESS_HELPID_HRC_ -#include "dbaccess_helpid.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif -#ifndef DBAUI_SBATTRDLG_HRC -#include "dlgattr.hrc" -#endif - - //================================================ - // Der Attributdialog: -TabDialog DLG_ATTR -{ - Moveable = TRUE ; - Closeable = TRUE ; - OutputSize = TRUE ; - SVLook = TRUE ; - Text [ en-US ] = "Field Format" ; - TabControl 1 - { - OutputSize = TRUE ; - }; - OKButton 1 - { - Size = MAP_APPFONT ( 40 , 12 ) ; - TabStop = TRUE ; - DefButton = TRUE; - }; - CancelButton 1 - { - Size = MAP_APPFONT ( 40 , 12 ) ; - TabStop = TRUE ; - }; - HelpButton 1 - { - Size = MAP_APPFONT ( 40 , 12 ) ; - TabStop = TRUE ; - }; - PushButton 1 - { - TabStop = TRUE ; - Size = MAP_APPFONT ( 40 , 12 ) ; - Text [ en-US ] = "Bac~k" ; - }; - String TP_ATTR_CHAR - { - Text [ en-US ] = "Font" ; - }; - String TP_ATTR_NUMBER - { - Text [ en-US ] = "Format" ; - }; - String TP_ATTR_ALIGN - { - Text [ en-US ] = "Alignment" ; - }; - String ST_ROW - { - Text [ en-US ] = "Table Format" ; - }; -}; diff --git a/dbaccess/source/ui/dlg/dlgsave.cxx b/dbaccess/source/ui/dlg/dlgsave.cxx deleted file mode 100644 index 146028fb0..000000000 --- a/dbaccess/source/ui/dlg/dlgsave.cxx +++ /dev/null @@ -1,448 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "dlgsave.hxx" -#include "dlgsave.hrc" -#include <vcl/msgbox.hxx> -#include "dbu_dlg.hrc" -#include <com/sun/star/sdb/CommandType.hpp> -#include <com/sun/star/sdbc/XRow.hpp> -#include "sqlmessage.hxx" -#include <connectivity/dbtools.hxx> -#include "UITools.hxx" -#include "dbaccess_helpid.hrc" -#include "SqlNameEdit.hxx" -#include <vcl/button.hxx> -#include <vcl/fixed.hxx> -#include <vcl/edit.hxx> -#include <com/sun/star/container/XNameAccess.hpp> -#include <com/sun/star/container/XHierarchicalNameAccess.hpp> -#include <com/sun/star/sdbc/XDatabaseMetaData.hpp> -#include "moduledbu.hxx" -#include "objectnamecheck.hxx" -#include <tools/diagnose_ex.h> - - -using namespace dbaui; -using namespace dbtools; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::container; -using namespace ::com::sun::star::sdb; -using namespace ::com::sun::star::sdbc; -namespace dbaui -{ -class OSaveAsDlgImpl -{ -public: - FixedText m_aDescription; - FixedText m_aCatalogLbl; - OSQLNameComboBox m_aCatalog; - FixedText m_aSchemaLbl; - OSQLNameComboBox m_aSchema; - FixedText m_aLabel; - OSQLNameEdit m_aTitle; - OKButton m_aPB_OK; - CancelButton m_aPB_CANCEL; - HelpButton m_aPB_HELP; - String m_aQryLabel; - String m_sTblLabel; - rtl::OUString m_sCatalog; - rtl::OUString m_sSchema; - String m_aName; - const IObjectNameCheck& - m_rObjectNameCheck; - String m_sParentURL; - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData> m_xMetaData; - sal_Int32 m_nType; - sal_Int32 m_nFlags; - - OSaveAsDlgImpl( Window * pParent,const sal_Int32& _rType, - const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection, - const String& rDefault, - const IObjectNameCheck& _rObjectNameCheck, - sal_Int32 _nFlags); - OSaveAsDlgImpl( Window * pParent, - const String& rDefault, - const IObjectNameCheck& _rObjectNameCheck, - sal_Int32 _nFlags); -}; -// ----------------------------------------------------------------------------- -} // dbaui -// ----------------------------------------------------------------------------- -OSaveAsDlgImpl::OSaveAsDlgImpl( Window * _pParent, - const sal_Int32& _rType, - const Reference< XConnection>& _xConnection, - const String& rDefault, - const IObjectNameCheck& _rObjectNameCheck, - sal_Int32 _nFlags) - :m_aDescription(_pParent, ModuleRes (FT_DESCRIPTION)) - ,m_aCatalogLbl(_pParent, ModuleRes (FT_CATALOG)) - ,m_aCatalog(_pParent, ModuleRes (ET_CATALOG), ::rtl::OUString()) - ,m_aSchemaLbl(_pParent, ModuleRes (FT_SCHEMA)) - ,m_aSchema(_pParent, ModuleRes (ET_SCHEMA), ::rtl::OUString()) - ,m_aLabel(_pParent, ModuleRes (FT_TITLE)) - ,m_aTitle(_pParent, ModuleRes (ET_TITLE), ::rtl::OUString()) - ,m_aPB_OK(_pParent, ModuleRes( PB_OK ) ) - ,m_aPB_CANCEL(_pParent, ModuleRes( PB_CANCEL )) - ,m_aPB_HELP(_pParent, ModuleRes( PB_HELP)) - ,m_aQryLabel(ModuleRes(STR_QRY_LABEL)) - ,m_sTblLabel(ModuleRes(STR_TBL_LABEL)) - ,m_aName(rDefault) - ,m_rObjectNameCheck( _rObjectNameCheck ) - ,m_nType(_rType) - ,m_nFlags(_nFlags) -{ - if ( _xConnection.is() ) - m_xMetaData = _xConnection->getMetaData(); - - if ( m_xMetaData.is() ) - { - ::rtl::OUString sExtraNameChars( m_xMetaData->getExtraNameCharacters() ); - m_aCatalog.setAllowedChars( sExtraNameChars ); - m_aSchema.setAllowedChars( sExtraNameChars ); - m_aTitle.setAllowedChars( sExtraNameChars ); - } - - m_aCatalog.SetDropDownLineCount( 10 ); - m_aSchema.SetDropDownLineCount( 10 ); -} -// ----------------------------------------------------------------------------- -OSaveAsDlgImpl::OSaveAsDlgImpl( Window * _pParent, - const String& rDefault, - const IObjectNameCheck& _rObjectNameCheck, - sal_Int32 _nFlags) - :m_aDescription(_pParent, ModuleRes (FT_DESCRIPTION)) - ,m_aCatalogLbl(_pParent, ModuleRes (FT_CATALOG)) - ,m_aCatalog(_pParent, ModuleRes (ET_CATALOG)) - ,m_aSchemaLbl(_pParent, ModuleRes (FT_SCHEMA)) - ,m_aSchema(_pParent, ModuleRes (ET_SCHEMA)) - ,m_aLabel(_pParent, ModuleRes (FT_TITLE)) - ,m_aTitle(_pParent, ModuleRes (ET_TITLE)) - ,m_aPB_OK(_pParent, ModuleRes( PB_OK ) ) - ,m_aPB_CANCEL(_pParent, ModuleRes( PB_CANCEL )) - ,m_aPB_HELP(_pParent, ModuleRes( PB_HELP)) - ,m_aQryLabel(ModuleRes(STR_QRY_LABEL)) - ,m_sTblLabel(ModuleRes(STR_TBL_LABEL)) - ,m_aName(rDefault) - ,m_rObjectNameCheck( _rObjectNameCheck ) - ,m_nType(CommandType::COMMAND) - ,m_nFlags(_nFlags) -{ - m_aCatalog.SetDropDownLineCount( 10 ); - m_aSchema.SetDropDownLineCount( 10 ); -} - -// ----------------------------------------------------------------------------- -using namespace ::com::sun::star::lang; - -//================================================================== -namespace -{ - typedef Reference< XResultSet > (SAL_CALL XDatabaseMetaData::*FGetMetaStrings)(); - - void lcl_fillComboList( ComboBox& _rList, const Reference< XConnection >& _rxConnection, - FGetMetaStrings _GetAll, const ::rtl::OUString& _rCurrent ) - { - try - { - Reference< XDatabaseMetaData > xMetaData( _rxConnection->getMetaData(), UNO_QUERY_THROW ); - - Reference< XResultSet > xRes = (xMetaData.get()->*_GetAll)(); - Reference< XRow > xRow( xRes, UNO_QUERY_THROW ); - ::rtl::OUString sValue; - while ( xRes->next() ) - { - sValue = xRow->getString( 1 ); - if ( !xRow->wasNull() ) - _rList.InsertEntry( sValue ); - } - - sal_uInt16 nPos = _rList.GetEntryPos( String( _rCurrent ) ); - if ( nPos != COMBOBOX_ENTRY_NOTFOUND ) - _rList.SelectEntryPos( nPos ); - else - _rList.SelectEntryPos( 0 ); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - } -} - -//================================================================== -OSaveAsDlg::OSaveAsDlg( Window * pParent, - const sal_Int32& _rType, - const Reference< XMultiServiceFactory >& _rxORB, - const Reference< XConnection>& _xConnection, - const String& rDefault, - const IObjectNameCheck& _rObjectNameCheck, - sal_Int32 _nFlags) - :ModalDialog( pParent, ModuleRes(DLG_SAVE_AS)) - ,m_xORB( _rxORB ) -{ - m_pImpl = new OSaveAsDlgImpl(this,_rType,_xConnection,rDefault,_rObjectNameCheck,_nFlags); - - switch (_rType) - { - case CommandType::QUERY: - implInitOnlyTitle(m_pImpl->m_aQryLabel); - break; - - case CommandType::TABLE: - OSL_ENSURE( m_pImpl->m_xMetaData.is(), "OSaveAsDlg::OSaveAsDlg: no meta data for entering table names: this will crash!" ); - { - m_pImpl->m_aLabel.SetText(m_pImpl->m_sTblLabel); - Point aPos(m_pImpl->m_aPB_OK.GetPosPixel()); - if(m_pImpl->m_xMetaData.is() && !m_pImpl->m_xMetaData->supportsCatalogsInTableDefinitions()) - { - m_pImpl->m_aCatalogLbl.Hide(); - m_pImpl->m_aCatalog.Hide(); - - aPos = m_pImpl->m_aLabel.GetPosPixel(); - - m_pImpl->m_aLabel.SetPosPixel(m_pImpl->m_aSchemaLbl.GetPosPixel()); - m_pImpl->m_aTitle.SetPosPixel(m_pImpl->m_aSchema.GetPosPixel()); - - m_pImpl->m_aSchemaLbl.SetPosPixel(m_pImpl->m_aCatalogLbl.GetPosPixel()); - m_pImpl->m_aSchema.SetPosPixel(m_pImpl->m_aCatalog.GetPosPixel()); - } - else - { - // now fill the catalogs - lcl_fillComboList( m_pImpl->m_aCatalog, _xConnection, - &XDatabaseMetaData::getCatalogs, _xConnection->getCatalog() ); - } - - if ( !m_pImpl->m_xMetaData->supportsSchemasInTableDefinitions()) - { - m_pImpl->m_aSchemaLbl.Hide(); - m_pImpl->m_aSchema.Hide(); - - aPos = m_pImpl->m_aLabel.GetPosPixel(); - - m_pImpl->m_aLabel.SetPosPixel(m_pImpl->m_aSchemaLbl.GetPosPixel()); - m_pImpl->m_aTitle.SetPosPixel(m_pImpl->m_aSchema.GetPosPixel()); - } - else - { - lcl_fillComboList( m_pImpl->m_aSchema, _xConnection, - &XDatabaseMetaData::getSchemas, m_pImpl->m_xMetaData->getUserName() ); - } - - OSL_ENSURE(m_pImpl->m_xMetaData.is(),"The metadata can not be null!"); - if(m_pImpl->m_aName.Search('.') != STRING_NOTFOUND) - { - ::rtl::OUString sCatalog,sSchema,sTable; - ::dbtools::qualifiedNameComponents(m_pImpl->m_xMetaData, - m_pImpl->m_aName, - sCatalog, - sSchema, - sTable, - ::dbtools::eInDataManipulation); - - sal_uInt16 nPos = m_pImpl->m_aCatalog.GetEntryPos(String(sCatalog)); - if ( nPos != COMBOBOX_ENTRY_NOTFOUND ) - m_pImpl->m_aCatalog.SelectEntryPos(nPos); - - if ( sSchema.getLength() ) - { - nPos = m_pImpl->m_aSchema.GetEntryPos(String(sSchema)); - if ( nPos != COMBOBOX_ENTRY_NOTFOUND ) - m_pImpl->m_aSchema.SelectEntryPos(nPos); - } - m_pImpl->m_aTitle.SetText(sTable); - } - else - m_pImpl->m_aTitle.SetText(m_pImpl->m_aName); - m_pImpl->m_aTitle.SetSelection( Selection( SELECTION_MIN, SELECTION_MAX ) ); - - m_pImpl->m_aPB_OK.SetPosPixel(Point(m_pImpl->m_aPB_OK.GetPosPixel().X(),aPos.Y())); - m_pImpl->m_aPB_CANCEL.SetPosPixel(Point(m_pImpl->m_aPB_CANCEL.GetPosPixel().X(),aPos.Y())); - m_pImpl->m_aPB_HELP.SetPosPixel(Point(m_pImpl->m_aPB_HELP.GetPosPixel().X(),aPos.Y())); - - sal_uInt16 nLength = m_pImpl->m_xMetaData.is() ? static_cast<sal_uInt16>(m_pImpl->m_xMetaData->getMaxTableNameLength()) : 0; - nLength = nLength ? nLength : EDIT_NOLIMIT; - - m_pImpl->m_aTitle.SetMaxTextLen(nLength); - m_pImpl->m_aSchema.SetMaxTextLen(nLength); - m_pImpl->m_aCatalog.SetMaxTextLen(nLength); - - sal_Bool bCheck = _xConnection.is() && isSQL92CheckEnabled(_xConnection); - m_pImpl->m_aTitle.setCheck(bCheck); // enable non valid sql chars as well - m_pImpl->m_aSchema.setCheck(bCheck); // enable non valid sql chars as well - m_pImpl->m_aCatalog.setCheck(bCheck); // enable non valid sql chars as well - - Size aSize = GetSizePixel(); - aSize.Height() = - aPos.Y() + m_pImpl->m_aPB_OK.GetSizePixel().Height() + m_pImpl->m_aTitle.GetSizePixel().Height() / 2; - SetSizePixel(aSize); - } - break; - - default: - OSL_FAIL( "OSaveAsDlg::OSaveAsDlg: Type not supported yet!" ); - } - - implInit(); -} -// ----------------------------------------------------------------------------- -OSaveAsDlg::OSaveAsDlg( Window * pParent, - const Reference< XMultiServiceFactory >& _rxORB, - const String& rDefault, - const String& _sLabel, - const IObjectNameCheck& _rObjectNameCheck, - sal_Int32 _nFlags) - :ModalDialog( pParent, ModuleRes(DLG_SAVE_AS)) - ,m_xORB( _rxORB ) -{ - m_pImpl = new OSaveAsDlgImpl(this,rDefault,_rObjectNameCheck,_nFlags); - implInitOnlyTitle(_sLabel); - implInit(); -} -// ----------------------------------------------------------------------------- -OSaveAsDlg::~OSaveAsDlg() -{ - DELETEZ(m_pImpl); -} -// ----------------------------------------------------------------------------- -IMPL_LINK(OSaveAsDlg, ButtonClickHdl, Button *, pButton) -{ - if (pButton == &m_pImpl->m_aPB_OK) - { - m_pImpl->m_aName = m_pImpl->m_aTitle.GetText(); - - ::rtl::OUString sNameToCheck( m_pImpl->m_aName ); - - if ( m_pImpl->m_nType == CommandType::TABLE ) - { - sNameToCheck = ::dbtools::composeTableName( - m_pImpl->m_xMetaData, - getCatalog(), - getSchema(), - sNameToCheck, - sal_False, // no quoting - ::dbtools::eInDataManipulation - ); - } - - SQLExceptionInfo aNameError; - if ( m_pImpl->m_rObjectNameCheck.isNameValid( sNameToCheck, aNameError ) ) - EndDialog( RET_OK ); - - showError( aNameError, this, m_xORB ); - m_pImpl->m_aTitle.GrabFocus(); - } - return 0; -} -// ----------------------------------------------------------------------------- - -IMPL_LINK(OSaveAsDlg, EditModifyHdl, Edit *, pEdit ) -{ - if (pEdit == &m_pImpl->m_aTitle) - m_pImpl->m_aPB_OK.Enable(0 != m_pImpl->m_aTitle.GetText().Len()); - return 0; -} -// ----------------------------------------------------------------------------- -void OSaveAsDlg::implInitOnlyTitle(const String& _rLabel) -{ - m_pImpl->m_aLabel.SetText(_rLabel); - m_pImpl->m_aCatalogLbl.Hide(); - m_pImpl->m_aCatalog.Hide(); - m_pImpl->m_aSchemaLbl.Hide(); - m_pImpl->m_aSchema.Hide(); - - Point aPos(m_pImpl->m_aSchemaLbl.GetPosPixel()); - m_pImpl->m_aLabel.SetPosPixel(m_pImpl->m_aCatalogLbl.GetPosPixel()); - m_pImpl->m_aTitle.SetPosPixel(m_pImpl->m_aCatalog.GetPosPixel()); - - m_pImpl->m_aPB_OK.SetPosPixel(Point(m_pImpl->m_aPB_OK.GetPosPixel().X(),aPos.Y())); - m_pImpl->m_aPB_CANCEL.SetPosPixel(Point(m_pImpl->m_aPB_CANCEL.GetPosPixel().X(),aPos.Y())); - m_pImpl->m_aPB_HELP.SetPosPixel(Point(m_pImpl->m_aPB_HELP.GetPosPixel().X(),aPos.Y())); - - sal_Int32 nNewHeight = - aPos.Y() + m_pImpl->m_aPB_OK.GetSizePixel().Height() + m_pImpl->m_aTitle.GetSizePixel().Height() / 2; - - SetSizePixel(Size(GetSizePixel().Width(), nNewHeight)); - - m_pImpl->m_aTitle.SetText(m_pImpl->m_aName); - m_pImpl->m_aTitle.setCheck(sal_False); // enable non valid sql chars as well -} -// ----------------------------------------------------------------------------- -void OSaveAsDlg::implInit() -{ - if ( 0 == ( m_pImpl->m_nFlags & SAD_ADDITIONAL_DESCRIPTION ) ) - { - // hide the description window - m_pImpl->m_aDescription.Hide(); - - // the number of pixels we have to move the other controls - sal_Int32 nMoveUp = m_pImpl->m_aCatalog.GetPosPixel().Y() - m_pImpl->m_aDescription.GetPosPixel().Y(); - - // loop to all controls and move them ... - for ( Window* pChildControl = GetWindow( WINDOW_FIRSTCHILD ); - pChildControl; - pChildControl= pChildControl->GetWindow( WINDOW_NEXT ) - ) - { - if ( &m_pImpl->m_aDescription != pChildControl ) - { - Point aPos = pChildControl->GetPosPixel(); - aPos.Y() -= nMoveUp; - pChildControl->SetPosPixel(aPos); - } - } - - // change our own size accordingly - Size aSize = GetSizePixel(); - aSize.Height() -= nMoveUp; - SetSizePixel(aSize); - } - - if ( SAD_TITLE_PASTE_AS == ( m_pImpl->m_nFlags & SAD_TITLE_PASTE_AS ) ) - SetText( String( ModuleRes( STR_TITLE_PASTE_AS ) ) ); - else if ( SAD_TITLE_RENAME == ( m_pImpl->m_nFlags & SAD_TITLE_RENAME ) ) - { - SetText( String( ModuleRes( STR_TITLE_RENAME ) ) ); - m_pImpl->m_aTitle.SetHelpId(HID_DLG_RENAME); - } - - m_pImpl->m_aPB_OK.SetClickHdl(LINK(this,OSaveAsDlg,ButtonClickHdl)); - m_pImpl->m_aTitle.SetModifyHdl(LINK(this,OSaveAsDlg,EditModifyHdl)); - m_pImpl->m_aTitle.GrabFocus(); - FreeResource(); -} -// ----------------------------------------------------------------------------- -String OSaveAsDlg::getName() const { return m_pImpl->m_aName; } -String OSaveAsDlg::getCatalog() const { return m_pImpl->m_aCatalog.IsVisible() ? m_pImpl->m_aCatalog.GetText() : String(); } -String OSaveAsDlg::getSchema() const { return m_pImpl->m_aSchema.IsVisible() ? m_pImpl->m_aSchema.GetText() : String(); } - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/dlgsave.hrc b/dbaccess/source/ui/dlg/dlgsave.hrc deleted file mode 100644 index 7778745d9..000000000 --- a/dbaccess/source/ui/dlg/dlgsave.hrc +++ /dev/null @@ -1,53 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_DLGSAVE_HRC -#define DBAUI_DLGSAVE_HRC - -// defines ------------------------------------------------------------------ - -#define PB_OK 1 -#define PB_CANCEL 1 -#define PB_HELP 1 - -#define ET_CATALOG 1 -#define ET_SCHEMA 2 -#define ET_TITLE 3 - -#define FT_DESCRIPTION 1 -#define FT_CATALOG 2 -#define FT_SCHEMA 3 -#define FT_TITLE 4 - -#define STR_TBL_LABEL 1 -#define STR_VW_LABEL 2 -#define STR_QRY_LABEL 3 -#define STR_TITLE_RENAME 4 -#define STR_TITLE_PASTE_AS 6 - -#endif // DBAUI_DLGSAVE_HRC - diff --git a/dbaccess/source/ui/dlg/dlgsave.src b/dbaccess/source/ui/dlg/dlgsave.src deleted file mode 100644 index 6276093df..000000000 --- a/dbaccess/source/ui/dlg/dlgsave.src +++ /dev/null @@ -1,143 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_DLGSAVE_HRC -#include "dlgsave.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif -#ifndef _DBA_DBACCESS_HELPID_HRC_ -#include "dbaccess_helpid.hrc" -#endif - -ModalDialog DLG_SAVE_AS -{ - OutputSize = TRUE ; - SVLook = TRUE ; - HelpId = HID_DLG_SAVE_AS ; - Size = MAP_APPFONT ( 174 , 75 ) ; - Moveable = TRUE ; - Closeable = TRUE ; - Text [ en-US ] = "Save As" ; - - FixedText FT_DESCRIPTION - { - Pos = MAP_APPFONT ( 6 , 6 ) ; - Size = MAP_APPFONT ( 174 - 12 , 16 ) ; - WordBreak=TRUE; - Text [ en-US ] = "Please enter a name for the object to be created:"; - }; - - FixedText FT_CATALOG - { - Pos = MAP_APPFONT ( 6 , 26 ) ; - Size = MAP_APPFONT ( 70 , 10 ) ; - Text [ en-US ] = "~Catalog"; - }; - ComboBox ET_CATALOG - { - HelpID = "dbaccess:ComboBox:DLG_SAVE_AS:ET_CATALOG"; - Border = TRUE ; - Pos = MAP_APPFONT ( 77 , 25 ) ; - Size = MAP_APPFONT ( 89 , 12 ) ; - SVLook = TRUE ; - TabStop = TRUE ; - DropDown = TRUE ; - AutoHScroll = TRUE ; - }; - FixedText FT_SCHEMA - { - Pos = MAP_APPFONT ( 6 , 43 ) ; - Size = MAP_APPFONT ( 70 , 10 ) ; - Text [ en-US ] = "~Schema"; - }; - ComboBox ET_SCHEMA - { - HelpID = "dbaccess:ComboBox:DLG_SAVE_AS:ET_SCHEMA"; - Border = TRUE ; - Pos = MAP_APPFONT ( 77 , 42 ) ; - Size = MAP_APPFONT ( 89 , 12 ) ; - SVLook = TRUE ; - TabStop = TRUE ; - DropDown = TRUE ; - AutoHScroll = TRUE ; - }; - FixedText FT_TITLE - { - Pos = MAP_APPFONT ( 6 , 60 ) ; - Size = MAP_APPFONT ( 70 , 10 ) ; - }; - Edit ET_TITLE - { - HelpID = "dbaccess:Edit:DLG_SAVE_AS:ET_TITLE"; - Border = TRUE ; - Pos = MAP_APPFONT ( 77 , 59 ) ; - Size = MAP_APPFONT ( 89 , 12 ) ; - TabStop = TRUE ; - }; - OKButton PB_OK - { - Pos = MAP_APPFONT ( 6 , 77 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - }; - CancelButton PB_CANCEL - { - Pos = MAP_APPFONT ( 62 , 77 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - HelpButton PB_HELP - { - Pos = MAP_APPFONT ( 118 , 77 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - // String Resourcen ------------------------------------------------------------------ - String STR_TBL_LABEL - { - Text [ en-US ] = "~Table Name" ; - }; - String STR_VW_LABEL - { - Text [ en-US ] = "~Name of table view" ; - }; - String STR_QRY_LABEL - { - Text [ en-US ] = "~Query name" ; - }; - String STR_TITLE_RENAME - { - Text [ en-US ] = "Rename to"; - }; - String STR_TITLE_PASTE_AS - { - Text [ en-US ] = "Insert as"; - }; -}; diff --git a/dbaccess/source/ui/dlg/dlgsize.cxx b/dbaccess/source/ui/dlg/dlgsize.cxx deleted file mode 100644 index f70bdac69..000000000 --- a/dbaccess/source/ui/dlg/dlgsize.cxx +++ /dev/null @@ -1,124 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" -#include "dlgsize.hrc" -#include "dlgsize.hxx" -#include "dbu_dlg.hrc" -#include "moduledbu.hxx" - -//......................................................................... -namespace dbaui -{ -//......................................................................... - - -#define DEF_ROW_HEIGHT 45 -#define DEF_COL_WIDTH 227 - -DBG_NAME(DlgSize) -//================================================================== -DlgSize::DlgSize( Window* pParent, sal_Int32 nVal, sal_Bool bRow, sal_Int32 _nAlternativeStandard ) - :ModalDialog( pParent, ModuleRes(bRow ? DLG_ROWHEIGHT : DLG_COLWIDTH)) - ,m_nPrevValue(nVal) - ,m_nStandard(bRow ? DEF_ROW_HEIGHT : DEF_COL_WIDTH) - ,aFT_VALUE(this, ModuleRes( FT_VALUE)) - ,aMF_VALUE(this, ModuleRes( MF_VALUE)) - ,aCB_STANDARD(this, ModuleRes(CB_STANDARD)) - ,aPB_OK(this, ModuleRes(PB_OK)) - ,aPB_CANCEL(this, ModuleRes(PB_CANCEL)) - ,aPB_HELP(this, ModuleRes(PB_HELP)) -{ - DBG_CTOR(DlgSize,NULL); - - if ( _nAlternativeStandard > 0 ) - m_nStandard = _nAlternativeStandard; - aCB_STANDARD.SetClickHdl(LINK(this,DlgSize,CbClickHdl)); - - aMF_VALUE.EnableEmptyFieldValue(sal_True); - sal_Bool bDefault = -1 == nVal; - aCB_STANDARD.Check(bDefault); - if (bDefault) - { - SetValue(m_nStandard); - m_nPrevValue = m_nStandard; - } - LINK(this,DlgSize,CbClickHdl).Call(&aCB_STANDARD); - - FreeResource(); -} - -//------------------------------------------------------------------------------ -DlgSize::~DlgSize() -{ - - DBG_DTOR(DlgSize,NULL); -} - -//------------------------------------------------------------------------------ -void DlgSize::SetValue( sal_Int32 nVal ) -{ - aMF_VALUE.SetValue(nVal, FUNIT_CM ); -} - -//------------------------------------------------------------------------------ -sal_Int32 DlgSize::GetValue() -{ - if (aCB_STANDARD.IsChecked()) - return -1; - return (sal_Int32)aMF_VALUE.GetValue( FUNIT_CM ); -} - -//------------------------------------------------------------------------------ -IMPL_LINK( DlgSize, CbClickHdl, Button *, pButton ) -{ - - if( pButton == &aCB_STANDARD ) - { - aMF_VALUE.Enable(!aCB_STANDARD.IsChecked()); - if (aCB_STANDARD.IsChecked()) - { - m_nPrevValue = static_cast<sal_Int32>(aMF_VALUE.GetValue(FUNIT_CM)); - // don't use getValue as this will use aCB_STANDARD.to determine if we're standard - aMF_VALUE.SetEmptyFieldValue(); - } - else - { - SetValue( m_nPrevValue ); - } - } - return 0; -} -// ----------------------------------------------------------------------------- -//......................................................................... -} // namespace dbaui -//......................................................................... - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/dlgsize.hrc b/dbaccess/source/ui/dlg/dlgsize.hrc deleted file mode 100644 index 2a83edf70..000000000 --- a/dbaccess/source/ui/dlg/dlgsize.hrc +++ /dev/null @@ -1,39 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_DLGSIZE_HRC -#define DBAUI_DLGSIZE_HRC - -#define FT_VALUE 1 -#define MF_VALUE 1 -#define CB_STANDARD 2 -#define PB_OK 1 -#define PB_CANCEL 1 -#define PB_HELP 1 - -#endif //DBAUI_DLGSIZE_HRC - diff --git a/dbaccess/source/ui/dlg/dlgsize.src b/dbaccess/source/ui/dlg/dlgsize.src deleted file mode 100644 index 556c53974..000000000 --- a/dbaccess/source/ui/dlg/dlgsize.src +++ /dev/null @@ -1,151 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_DLGSIZE_HRC -#include "dlgsize.hrc" -#endif -#ifndef _DBA_DBACCESS_HELPID_HRC_ -#include "dbaccess_helpid.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif - -ModalDialog DLG_ROWHEIGHT -{ - OutputSize = TRUE ; - SVLook = TRUE ; - HelpId = HID_DLG_ROWHEIGHT ; - Size = MAP_APPFONT ( 159 , 59 ) ; - Moveable = TRUE ; - Closeable = TRUE ; - FixedText FT_VALUE - { - Pos = MAP_APPFONT ( 6 , 8 ) ; - Size = MAP_APPFONT ( 23 , 10 ) ; - Text [ en-US ] = "~Height" ; - }; - MetricField MF_VALUE - { - HelpID = "dbaccess:MetricField:DLG_ROWHEIGHT:MF_VALUE"; - Border = TRUE ; - Pos = MAP_APPFONT ( 36 , 6 ) ; - Size = MAP_APPFONT ( 63 , 12 ) ; - TabStop = TRUE ; - Spin = TRUE ; - Minimum = 10 ; - Maximum = 1600 ; - DecimalDigits = 2 ; - Unit = FUNIT_CM ; - Repeat = TRUE ; - }; - CheckBox CB_STANDARD - { - HelpID = "dbaccess:CheckBox:DLG_ROWHEIGHT:CB_STANDARD"; - Pos = MAP_APPFONT ( 36 , 25 ) ; - Size = MAP_APPFONT ( 62 , 12 ) ; - TabStop = TRUE ; - Text [ en-US ] = "~Automatic"; - }; - OKButton PB_OK - { - Pos = MAP_APPFONT ( 105 , 6 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - }; - CancelButton PB_CANCEL - { - Pos = MAP_APPFONT ( 105 , 23 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - HelpButton PB_HELP - { - Pos = MAP_APPFONT ( 105 , 42 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - Text [ en-US ] = "Row Height" ; -}; -ModalDialog DLG_COLWIDTH -{ - OutputSize = TRUE ; - SVLook = TRUE ; - HelpId = HID_DLG_COLWIDTH ; - Size = MAP_APPFONT ( 159 , 59 ) ; - Moveable = TRUE ; - Closeable = TRUE ; - FixedText FT_VALUE - { - Pos = MAP_APPFONT ( 6 , 8 ) ; - Size = MAP_APPFONT ( 23 , 10 ) ; - Text [ en-US ] = "~Width" ; - }; - MetricField MF_VALUE - { - HelpID = "dbaccess:MetricField:DLG_COLWIDTH:MF_VALUE"; - Border = TRUE ; - Pos = MAP_APPFONT ( 36 , 6 ) ; - Size = MAP_APPFONT ( 63 , 12 ) ; - TabStop = TRUE ; - Spin = TRUE ; - Minimum = 10 ; - Maximum = 20000 ; - DecimalDigits = 2 ; - Unit = FUNIT_CM ; - Repeat = TRUE ; - }; - CheckBox CB_STANDARD - { - HelpID = "dbaccess:CheckBox:DLG_COLWIDTH:CB_STANDARD"; - Pos = MAP_APPFONT ( 36 , 25 ) ; - Size = MAP_APPFONT ( 62 , 12 ) ; - TabStop = TRUE ; - Text [ en-US ] = "~Automatic"; - }; - OKButton PB_OK - { - Pos = MAP_APPFONT ( 105 , 6 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - }; - CancelButton PB_CANCEL - { - Pos = MAP_APPFONT ( 105 , 23 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - HelpButton PB_HELP - { - Pos = MAP_APPFONT ( 105 , 42 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - Text [ en-US ] = "Column Width" ; -}; diff --git a/dbaccess/source/ui/dlg/dsnItem.hxx b/dbaccess/source/ui/dlg/dsnItem.hxx deleted file mode 100644 index eb9aa07d7..000000000 --- a/dbaccess/source/ui/dlg/dsnItem.hxx +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_DSNITEM_HXX_ -#define _DBAUI_DSNITEM_HXX_ - -#include <svl/poolitem.hxx> - -//......................................................................... -namespace dbaccess -{ -//......................................................................... - class ODsnTypeCollection; -//......................................................................... -} -//......................................................................... -//......................................................................... -namespace dbaui -{ -//......................................................................... - //========================================================================= - //= DbuTypeCollectionItem - //========================================================================= - /** allows an ODsnTypeCollection to be transported in an SfxItemSet - */ - class DbuTypeCollectionItem : public SfxPoolItem - { - ::dbaccess::ODsnTypeCollection* m_pCollection; - - public: - TYPEINFO(); - DbuTypeCollectionItem(sal_Int16 nWhich = 0, ::dbaccess::ODsnTypeCollection* _pCollection = NULL); - DbuTypeCollectionItem(const DbuTypeCollectionItem& _rSource); - - virtual int operator==(const SfxPoolItem& _rItem) const; - virtual SfxPoolItem* Clone(SfxItemPool* _pPool = NULL) const; - - ::dbaccess::ODsnTypeCollection* getCollection() const { return m_pCollection; } - }; -//......................................................................... -} // namespace dbaui -//......................................................................... - -#endif // _DBAUI_DSNITEM_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/dsselect.cxx b/dbaccess/source/ui/dlg/dsselect.cxx deleted file mode 100644 index d8967b058..000000000 --- a/dbaccess/source/ui/dlg/dsselect.cxx +++ /dev/null @@ -1,279 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "dsselect.hxx" -#include "dsselect.hrc" -#include "dbu_dlg.hrc" -#include <vcl/msgbox.hxx> -#include "localresaccess.hxx" -#include <tools/rcid.h> -#include <sal/macros.h> - -#include <com/sun/star/sdbcx/XCreateCatalog.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/beans/XPropertySetInfo.hpp> -#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp> -#include <com/sun/star/awt/XWindow.hpp> -#include "dbustrings.hrc" -#include <toolkit/helper/vclunohelper.hxx> -#include <comphelper/extract.hxx> -#include <comphelper/types.hxx> -#include <comphelper/processfactory.hxx> -#include "dsitems.hxx" -#include <svl/stritem.hxx> -#include <svl/intitem.hxx> -#include <svl/eitem.hxx> -#include <svl/itemset.hxx> - -//......................................................................... -namespace dbaui -{ -//......................................................................... -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::beans; -using namespace ::com::sun::star::sdbc; -using namespace ::com::sun::star::sdbcx; -using namespace ::com::sun::star::ui::dialogs; -using namespace ::comphelper; -//================================================================== -ODatasourceSelectDialog::ODatasourceSelectDialog(Window* _pParent, const StringBag& _rDatasources, bool _bAdabas,SfxItemSet* _pOutputSet) - :ModalDialog(_pParent, ModuleRes(DLG_DATASOURCE_SELECTION)) - ,m_aDescription (this, ModuleRes(FT_DESCRIPTION)) - ,m_aDatasource (this, ModuleRes(LB_DATASOURCE)) - ,m_aOk (this, ModuleRes(PB_OK)) - ,m_aCancel (this, ModuleRes(PB_CANCEL)) - ,m_aHelp (this, ModuleRes(PB_HELP)) -#ifdef HAVE_ODBC_ADMINISTRATION - ,m_aManageDatasources (this, ModuleRes(PB_MANAGE)) -#endif - ,m_aCreateAdabasDB (this, ModuleRes(PB_CREATE)) - ,m_pOutputSet(_pOutputSet) -{ - if ( _bAdabas ) - { // set a new title (indicating that we're browsing local data sources only) - SetText(ModuleRes(STR_LOCAL_DATASOURCES)); - m_aDescription.SetText(ModuleRes(STR_DESCRIPTION2)); - - m_aCreateAdabasDB.Show(); - m_aCreateAdabasDB.SetClickHdl(LINK(this,ODatasourceSelectDialog,CreateDBClickHdl)); - - // resize the dialog a little bit, 'cause Adabas data source names are usually somewhat shorter - // than ODBC ones are - - // shrink the listbox - Size aOldSize = m_aDatasource.GetSizePixel(); - Size aNewSize(3 * aOldSize.Width() / 4, aOldSize.Height()); - m_aDatasource.SetSizePixel(aNewSize); - - sal_Int32 nLostPixels = aOldSize.Width() - aNewSize.Width(); - - // shrink the fixed text - aOldSize = m_aDescription.GetSizePixel(); - m_aDescription.SetSizePixel(Size(aOldSize.Width() - nLostPixels, aOldSize.Height())); - - // move the buttons - PushButton* pButtons[] = { &m_aOk, &m_aCancel, &m_aHelp ,&m_aCreateAdabasDB}; - for (size_t i=0; i < SAL_N_ELEMENTS(pButtons); ++i) - { - Point aOldPos = pButtons[i]->GetPosPixel(); - pButtons[i]->SetPosPixel(Point(aOldPos.X() - nLostPixels, aOldPos.Y())); - } - - // resize the dialog itself - aOldSize = GetSizePixel(); - SetSizePixel(Size(aOldSize.Width() - nLostPixels, aOldSize.Height())); - } - - fillListBox(_rDatasources); -#ifdef HAVE_ODBC_ADMINISTRATION - // allow ODBC datasource managenment - if ( !_bAdabas ) - { - m_aManageDatasources.Show(); - m_aManageDatasources.Enable(); - m_aManageDatasources.SetClickHdl(LINK(this,ODatasourceSelectDialog,ManageClickHdl)); - } -#endif - m_aDatasource.SetDoubleClickHdl(LINK(this,ODatasourceSelectDialog,ListDblClickHdl)); - FreeResource(); -} - -// ----------------------------------------------------------------------- -ODatasourceSelectDialog::~ODatasourceSelectDialog() -{ -} - -// ----------------------------------------------------------------------- -IMPL_LINK( ODatasourceSelectDialog, ListDblClickHdl, ListBox *, pListBox ) -{ - if (pListBox->GetSelectEntryCount()) - EndDialog(RET_OK); - return 0; -} -// ----------------------------------------------------------------------- -IMPL_LINK( ODatasourceSelectDialog, CreateDBClickHdl, PushButton*, /*pButton*/ ) -{ - try - { - OSL_ENSURE(m_pOutputSet,"No itemset given!"); - Reference< ::com::sun::star::lang::XMultiServiceFactory > xORB = ::comphelper::getProcessServiceFactory(); - Reference<XCreateCatalog> xCatalog(xORB->createInstance(SERVICE_EXTENDED_ADABAS_DRIVER),UNO_QUERY); - if ( xCatalog.is() && m_pOutputSet ) - { - Sequence< Any > aArgs(2); - aArgs[0] <<= PropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CreateCatalog")), 0, makeAny(xCatalog), PropertyState_DIRECT_VALUE); - aArgs[1] <<= PropertyValue(PROPERTY_PARENTWINDOW, 0, makeAny(VCLUnoHelper::GetInterface(this)), PropertyState_DIRECT_VALUE); - - Reference< XExecutableDialog > xDialog( - xORB->createInstanceWithArguments(SERVICE_SDB_ADABASCREATIONDIALOG, aArgs), UNO_QUERY); - if (!xDialog.is()) - { - // ShowServiceNotAvailableError(this, String(SERVICE_SDB_ADABASCREATIONDIALOG), sal_True); - return 0L; - } - - if ( xDialog->execute() == RET_OK ) - { - Reference<XPropertySet> xProp(xDialog,UNO_QUERY); - if(xProp.is()) - { - Reference<XPropertySetInfo> xPropInfo(xProp->getPropertySetInfo()); - if(xPropInfo->hasPropertyByName(PROPERTY_DATABASENAME)) - { - String sDatabaseName; - sDatabaseName = String(::comphelper::getString(xProp->getPropertyValue(PROPERTY_DATABASENAME))); - m_aDatasource.SelectEntryPos(m_aDatasource.InsertEntry( sDatabaseName )); - - } - if ( xPropInfo->hasPropertyByName(PROPERTY_CONTROLUSER) ) - m_pOutputSet->Put(SfxStringItem(DSID_CONN_CTRLUSER, ::comphelper::getString(xProp->getPropertyValue(PROPERTY_CONTROLUSER)))); - if ( xPropInfo->hasPropertyByName(PROPERTY_CONTROLPASSWORD) ) - m_pOutputSet->Put(SfxStringItem(DSID_CONN_CTRLPWD, ::comphelper::getString(xProp->getPropertyValue(PROPERTY_CONTROLPASSWORD)))); - if ( xPropInfo->hasPropertyByName(PROPERTY_USER) ) - m_pOutputSet->Put(SfxStringItem(DSID_USER, ::comphelper::getString(xProp->getPropertyValue(PROPERTY_USER)))); - if ( xPropInfo->hasPropertyByName(PROPERTY_PASSWORD) ) - { - m_pOutputSet->Put(SfxStringItem(DSID_PASSWORD, ::comphelper::getString(xProp->getPropertyValue(PROPERTY_PASSWORD)))); - m_pOutputSet->Put(SfxBoolItem(DSID_PASSWORDREQUIRED, sal_True)); - } - if ( xPropInfo->hasPropertyByName(PROPERTY_CACHESIZE) ) - m_pOutputSet->Put(SfxInt32Item(DSID_CONN_CACHESIZE, ::comphelper::getINT32(xProp->getPropertyValue(PROPERTY_CACHESIZE)))); - } - } - } - } - catch(Exception&) - { - } - return 0L; -} - -// ----------------------------------------------------------------------- -sal_Bool ODatasourceSelectDialog::Close() -{ -#ifdef HAVE_ODBC_ADMINISTRATION - if ( m_pODBCManagement.get() && m_pODBCManagement->isRunning() ) - return sal_False; -#endif - - return ModalDialog::Close(); -} - -// ----------------------------------------------------------------------- -#ifdef HAVE_ODBC_ADMINISTRATION -IMPL_LINK( ODatasourceSelectDialog, ManageClickHdl, PushButton*, EMPTYARG ) -{ - if ( !m_pODBCManagement.get() ) - m_pODBCManagement.reset( new OOdbcManagement( LINK( this, ODatasourceSelectDialog, ManageProcessFinished ) ) ); - - if ( !m_pODBCManagement->manageDataSources_async() ) - { - // TODO: error message - m_aDatasource.GrabFocus(); - m_aManageDatasources.Disable(); - return 1L; - } - - m_aDatasource.Disable(); - m_aOk.Disable(); - m_aCancel.Disable(); - m_aManageDatasources.Disable(); - - OSL_POSTCOND( m_pODBCManagement->isRunning(), "ODatasourceSelectDialog::ManageClickHdl: success, but not running - you were *fast*!" ); - return 0L; -} - -IMPL_LINK( ODatasourceSelectDialog, ManageProcessFinished, void*, /**/ ) -{ - StringBag aOdbcDatasources; - OOdbcEnumeration aEnumeration; - aEnumeration.getDatasourceNames( aOdbcDatasources ); - fillListBox( aOdbcDatasources ); - - m_aDatasource.Enable(); - m_aOk.Enable(); - m_aCancel.Enable(); - m_aManageDatasources.Enable(); - - return 0L; -} - -#endif -// ----------------------------------------------------------------------------- -void ODatasourceSelectDialog::fillListBox(const StringBag& _rDatasources) -{ - ::rtl::OUString sSelected; - if (m_aDatasource.GetEntryCount()) - sSelected = m_aDatasource.GetSelectEntry(); - m_aDatasource.Clear(); - // fill the list - for ( ConstStringBagIterator aDS = _rDatasources.begin(); - aDS != _rDatasources.end(); - ++aDS - ) - { - m_aDatasource.InsertEntry( *aDS ); - } - - if (m_aDatasource.GetEntryCount()) - { - if (sSelected.getLength()) - m_aDatasource.SelectEntry(sSelected); - else // select the first entry - m_aDatasource.SelectEntryPos(0); - } -} - -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/dsselect.hrc b/dbaccess/source/ui/dlg/dsselect.hrc deleted file mode 100644 index 47aed265e..000000000 --- a/dbaccess/source/ui/dlg/dsselect.hrc +++ /dev/null @@ -1,41 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_DSSELECT_HRC_ -#define _DBAUI_DSSELECT_HRC_ - -#define LB_DATASOURCE 1 -#define PB_OK 2 -#define PB_CANCEL 3 -#define PB_HELP 4 -#define PB_MANAGE 5 -#define FT_DESCRIPTION 6 -#define STR_LOCAL_DATASOURCES 7 -#define PB_CREATE 9 -#define STR_DESCRIPTION2 10 - -#endif // _DBAUI_DSSELECT_HRC_ diff --git a/dbaccess/source/ui/dlg/dsselect.hxx b/dbaccess/source/ui/dlg/dsselect.hxx deleted file mode 100644 index face8a6c8..000000000 --- a/dbaccess/source/ui/dlg/dsselect.hxx +++ /dev/null @@ -1,97 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_DSSELECT_HXX_ -#define _DBAUI_DSSELECT_HXX_ - -#include "dsntypes.hxx" -#include "odbcconfig.hxx" -#include "commontypes.hxx" - -#include <vcl/dialog.hxx> -#include <vcl/lstbox.hxx> -#include <vcl/button.hxx> -#include <vcl/group.hxx> -#include <vcl/fixed.hxx> -#include <rtl/ustring.hxx> - -#include <memory> - -class SfxItemSet; -//......................................................................... -namespace dbaui -{ -//......................................................................... - -//========================================================================= -//= ODatasourceSelector -//========================================================================= -class ODatasourceSelectDialog : public ModalDialog -{ -protected: - FixedText m_aDescription; - ListBox m_aDatasource; - OKButton m_aOk; - CancelButton m_aCancel; - HelpButton m_aHelp; -#ifdef HAVE_ODBC_ADMINISTRATION - PushButton m_aManageDatasources; -#endif - PushButton m_aCreateAdabasDB; - SfxItemSet* m_pOutputSet; -#ifdef HAVE_ODBC_ADMINISTRATION - ::std::auto_ptr< OOdbcManagement > - m_pODBCManagement; -#endif - -public: - ODatasourceSelectDialog( Window* _pParent, const StringBag& _rDatasources, bool _bAdabas,SfxItemSet* _pOutputSet = NULL ); - ~ODatasourceSelectDialog(); - - inline String GetSelected() const { return m_aDatasource.GetSelectEntry();} - void Select( const String& _rEntry ) { m_aDatasource.SelectEntry(_rEntry); } - - virtual sal_Bool Close(); - -protected: - DECL_LINK( ListDblClickHdl, ListBox * ); -#ifdef HAVE_ODBC_ADMINISTRATION - DECL_LINK( ManageClickHdl, PushButton * ); - DECL_LINK( ManageProcessFinished, void* ); -#endif - DECL_LINK( CreateDBClickHdl, PushButton * ); - void fillListBox(const StringBag& _rDatasources); -}; - -//......................................................................... -} // namespace dbaui -//......................................................................... - -#endif // _DBAUI_DSSELECT_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/dsselect.src b/dbaccess/source/ui/dlg/dsselect.src deleted file mode 100644 index d6a885555..000000000 --- a/dbaccess/source/ui/dlg/dsselect.src +++ /dev/null @@ -1,109 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_DSSELECT_HRC_ -#include "dsselect.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif - - -ModalDialog DLG_DATASOURCE_SELECTION -{ - HelpID = "dbaccess:ModalDialog:DLG_DATASOURCE_SELECTION"; - OutputSize = TRUE ; - Moveable = TRUE ; - Closeable = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( 218 , 118 ) ; - Text [ en-US ] = "Data Source" ; - - FixedText FT_DESCRIPTION - { - Pos = MAP_APPFONT ( 6 , 6 ) ; - Size = MAP_APPFONT ( 154 , 10 ) ; - Text [ en-US ] = "Choose a data source:"; - }; - ListBox LB_DATASOURCE - { - HelpID = "dbaccess:ListBox:DLG_DATASOURCE_SELECTION:LB_DATASOURCE"; - Border = TRUE ; - Pos = MAP_APPFONT ( 6 , 19 ) ; - Size = MAP_APPFONT ( 154 , 94 ) ; - TabStop = TRUE ; - HScroll = TRUE ; - Sort = TRUE ; - }; - - OKButton PB_OK - { - Pos = MAP_APPFONT ( 166 , 6 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - }; - CancelButton PB_CANCEL - { - Pos = MAP_APPFONT ( 166 , 23 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - HelpButton PB_HELP - { - Pos = MAP_APPFONT ( 166 , 43 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - PushButton PB_MANAGE - { - HelpID = "dbaccess:PushButton:DLG_DATASOURCE_SELECTION:PB_MANAGE"; - Pos = MAP_APPFONT ( 166 , 99 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - Disable = TRUE ; - Hide = TRUE ; - Text [ en-US ] = "Organize..." ; - }; - PushButton PB_CREATE - { - HelpID = "dbaccess:PushButton:DLG_DATASOURCE_SELECTION:PB_CREATE"; - Pos = MAP_APPFONT ( 166 , 99 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - Hide = TRUE ; - Text [ en-US ] = "Create..." ; - }; - String STR_LOCAL_DATASOURCES - { - Text [ en-US ] = "Local Databases" ; - }; - String STR_DESCRIPTION2 - { - Text [ en-US ] = "Choose a database"; - }; -}; diff --git a/dbaccess/source/ui/dlg/finteraction.cxx b/dbaccess/source/ui/dlg/finteraction.cxx deleted file mode 100644 index 6ce3ec174..000000000 --- a/dbaccess/source/ui/dlg/finteraction.cxx +++ /dev/null @@ -1,85 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "finteraction.hxx" -#include <tools/debug.hxx> -#include <osl/diagnose.h> -#include <com/sun/star/ucb/InteractiveIOException.hpp> - -//........................................................................ -namespace dbaui -{ -//........................................................................ - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::task; - using namespace ::com::sun::star::ucb; - - //==================================================================== - //= OFilePickerInteractionHandler - //==================================================================== - DBG_NAME( OFilePickerInteractionHandler ) - //-------------------------------------------------------------------- - OFilePickerInteractionHandler::OFilePickerInteractionHandler( const Reference< XInteractionHandler >& _rxMaster ) - :m_xMaster( _rxMaster ) - ,m_bDoesNotExist(sal_False) - { - DBG_CTOR( OFilePickerInteractionHandler, NULL ); - OSL_ENSURE( m_xMaster.is(), "OFilePickerInteractionHandler::OFilePickerInteractionHandler: invalid master handler!" ); - } - - //-------------------------------------------------------------------- - OFilePickerInteractionHandler::~OFilePickerInteractionHandler( ) - { - DBG_DTOR( OFilePickerInteractionHandler, NULL ); - } - - //-------------------------------------------------------------------- - void SAL_CALL OFilePickerInteractionHandler::handle( const Reference< XInteractionRequest >& _rxRequest ) throw (RuntimeException) - { - InteractiveIOException aIoException; - if ( _rxRequest->getRequest() >>= aIoException ) - { - if ( IOErrorCode_NOT_EXISTING == aIoException.Code ) - { - m_bDoesNotExist = sal_True; - return; - } - } - - if ( m_xMaster.is() ) - m_xMaster->handle( _rxRequest ); - } - -//........................................................................ -} // namespace svt -//........................................................................ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/finteraction.hxx b/dbaccess/source/ui/dlg/finteraction.hxx deleted file mode 100644 index 4015f2fdc..000000000 --- a/dbaccess/source/ui/dlg/finteraction.hxx +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_FILEPICKER_INTERACTION_HXX -#define DBAUI_FILEPICKER_INTERACTION_HXX - -#include <cppuhelper/implbase1.hxx> -#include <com/sun/star/task/XInteractionHandler.hpp> - -//........................................................................ -namespace dbaui -{ -//........................................................................ - - //==================================================================== - //= OFilePickerInteractionHandler - //==================================================================== - typedef ::cppu::WeakImplHelper1 < ::com::sun::star::task::XInteractionHandler - > OFilePickerInteractionHandler_Base; - - /** a InteractionHandler implementation which extends another handler with some customizability - */ - class OFilePickerInteractionHandler : public OFilePickerInteractionHandler_Base - { - protected: - ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler > - m_xMaster; // our master handler - sal_Bool m_bDoesNotExist; - - public: - OFilePickerInteractionHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& _rxMaster ); - - inline sal_Bool isDoesNotExist( ) const { return m_bDoesNotExist; } - - protected: - // XInteractionHandler - virtual void SAL_CALL handle( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionRequest >& _rxRequest ) throw (::com::sun::star::uno::RuntimeException); - - virtual ~OFilePickerInteractionHandler(); - }; - -//........................................................................ -} // namespace dbaui -//........................................................................ - -#endif // DBAUI_FILEPICKER_INTERACTION_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/generalpage.cxx b/dbaccess/source/ui/dlg/generalpage.cxx deleted file mode 100644 index 626019e9d..000000000 --- a/dbaccess/source/ui/dlg/generalpage.cxx +++ /dev/null @@ -1,638 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "dsnItem.hxx" -#include "generalpage.hxx" -#include <connectivity/dbexception.hxx> -#include "dbu_dlg.hrc" -#include "dbadmin.hrc" -#include "dsitems.hxx" -#include "dbustrings.hrc" -#include "dbadmin.hxx" -#include <sfx2/filedlghelper.hxx> -#include <sfx2/docfilt.hxx> -#include <vcl/stdtext.hxx> -#include "localresaccess.hxx" -#include <vcl/msgbox.hxx> -#include <svl/stritem.hxx> -#include <vcl/waitobj.hxx> -#include <com/sun/star/sdbc/XDriverAccess.hpp> -#include <com/sun/star/beans/PropertyValue.hpp> -#include <com/sun/star/uno/Sequence.hxx> -#include <com/sun/star/container/XNameAccess.hpp> -#include "DriverSettings.hxx" -#include "UITools.hxx" -#include <comphelper/processfactory.hxx> -#include <unotools/confignode.hxx> -#include <osl/diagnose.h> - -//......................................................................... -namespace dbaui -{ -//......................................................................... - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::sdbc; - using namespace ::com::sun::star::beans; - using namespace ::com::sun::star::container; - - //========================================================================= - //= OGeneralPage - //========================================================================= - //------------------------------------------------------------------------- - OGeneralPage::OGeneralPage(Window* pParent, const SfxItemSet& _rItems, sal_Bool _bDBWizardMode) - :OGenericAdministrationPage(pParent, ModuleRes(PAGE_GENERAL), _rItems) - ,m_aFTHeaderText (this, ModuleRes(FT_GENERALHEADERTEXT)) - ,m_aFTHelpText (this, ModuleRes(FT_GENERALHELPTEXT)) - ,m_aFT_DatasourceTypeHeader (this, ModuleRes(FT_DATASOURCEHEADER)) - ,m_aRB_CreateDatabase (this, ModuleRes(RB_CREATEDBDATABASE)) - ,m_aRB_OpenDocument (this, ModuleRes(RB_OPENEXISTINGDOC)) - ,m_aRB_GetExistingDatabase (this, ModuleRes(RB_GETEXISTINGDATABASE)) - ,m_aFT_DocListLabel (this, ModuleRes(FT_DOCLISTLABEL)) - ,m_pLB_DocumentList ( new OpenDocumentListBox( this, "com.sun.star.sdb.OfficeDatabaseDocument", ModuleRes( LB_DOCUMENTLIST ) ) ) - ,m_aPB_OpenDocument (this, "com.sun.star.sdb.OfficeDatabaseDocument", ModuleRes(PB_OPENDOCUMENT)) - ,m_aTypePreLabel (this, ModuleRes(FT_DATASOURCETYPE_PRE)) - ,m_aDatasourceTypeLabel (this, ModuleRes(FT_DATATYPE)) - ,m_pDatasourceType ( new ListBox(this, ModuleRes(LB_DATATYPE))) - ,m_aFTDataSourceAppendix (this, ModuleRes(FT_DATATYPEAPPENDIX)) - ,m_aTypePostLabel (this, ModuleRes(FT_DATASOURCETYPE_POST)) - ,m_aSpecialMessage (this, ModuleRes(FT_SPECIAL_MESSAGE)) - ,m_DBWizardMode (_bDBWizardMode) - ,m_sMySQLEntry (ModuleRes(STR_MYSQLENTRY)) - ,m_eOriginalCreationMode (eCreateNew) - ,m_pCollection (NULL) - ,m_eNotSupportedKnownType ( ::dbaccess::DST_UNKNOWN) - ,m_eLastMessage (smNone) - ,m_bDisplayingInvalid (sal_False) - ,m_bUserGrabFocus (sal_True) - ,m_bInitTypeList (true) - { - // fill the listbox with the UI descriptions for the possible types - // and remember the respective DSN prefixes - FreeResource(); - // extract the datasource type collection from the item set - DbuTypeCollectionItem* pCollectionItem = PTR_CAST(DbuTypeCollectionItem, _rItems.GetItem(DSID_TYPECOLLECTION)); - if (pCollectionItem) - m_pCollection = pCollectionItem->getCollection(); - OSL_ENSURE(m_pCollection, "OGeneralPage::OGeneralPage : really need a DSN type collection !"); - - // If no driver for embedded DBs is installed, and no dBase driver, then hide the "Create new database" option - sal_Int32 nCreateNewDBIndex = m_pCollection->getIndexOf( m_pCollection->getEmbeddedDatabase() ); - if ( nCreateNewDBIndex == -1 ) - nCreateNewDBIndex = m_pCollection->getIndexOf( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:dbase:")) ); - bool bHideCreateNew = ( nCreateNewDBIndex == -1 ); - - // also, if our application policies tell us to hide the option, do it - ::utl::OConfigurationTreeRoot aConfig( ::utl::OConfigurationTreeRoot::createWithServiceFactory( - ::comphelper::getProcessServiceFactory(), - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/org.openoffice.Office.DataAccess/Policies/Features/Base" ) ) - ) ); - sal_Bool bAllowCreateLocalDatabase( sal_True ); - OSL_VERIFY( aConfig.getNodeValue( "CreateLocalDatabase" ) >>= bAllowCreateLocalDatabase ); - if ( !bAllowCreateLocalDatabase ) - bHideCreateNew = true; - - if ( bHideCreateNew ) - { - m_aRB_CreateDatabase.Hide(); - Window* pWindowsToMove[] = { - &m_aRB_OpenDocument, &m_aRB_GetExistingDatabase, &m_aFT_DocListLabel, m_pLB_DocumentList.get(), - &m_aPB_OpenDocument, &m_aDatasourceTypeLabel, m_pDatasourceType.get(), &m_aFTDataSourceAppendix, - &m_aTypePostLabel - }; - const long nOffset = m_aRB_OpenDocument.GetPosPixel().Y() - m_aRB_CreateDatabase.GetPosPixel().Y(); - for ( size_t i=0; i < SAL_N_ELEMENTS( pWindowsToMove ); ++i ) - { - Point aPos( pWindowsToMove[i]->GetPosPixel() ); - aPos.Y() -= nOffset; - pWindowsToMove[i]->SetPosPixel( aPos ); - } - } - - if ( bHideCreateNew ) - m_aRB_GetExistingDatabase.Check(); - else - m_aRB_CreateDatabase.Check(); - - // do some knittings - m_pDatasourceType->SetSelectHdl(LINK(this, OGeneralPage, OnDatasourceTypeSelected)); - m_aRB_CreateDatabase.SetClickHdl(LINK(this, OGeneralPage, OnSetupModeSelected)); - m_aRB_GetExistingDatabase.SetClickHdl(LINK(this, OGeneralPage, OnSetupModeSelected)); - m_aRB_OpenDocument.SetClickHdl(LINK(this, OGeneralPage, OnSetupModeSelected)); - m_pLB_DocumentList->SetSelectHdl( LINK( this, OGeneralPage, OnDocumentSelected ) ); - m_aPB_OpenDocument.SetClickHdl( LINK( this, OGeneralPage, OnOpenDocument ) ); - } - - //------------------------------------------------------------------------- - OGeneralPage::~OGeneralPage() - { - m_pDatasourceType.reset( NULL ); - m_pLB_DocumentList.reset( NULL ); - } - - //------------------------------------------------------------------------- - namespace - { - struct DisplayedType - { - ::rtl::OUString eType; - String sDisplayName; - - DisplayedType( const ::rtl::OUString& _eType, const String& _rDisplayName ) : eType( _eType ), sDisplayName( _rDisplayName ) { } - }; - typedef ::std::vector< DisplayedType > DisplayedTypes; - - struct DisplayedTypeLess : ::std::binary_function< DisplayedType, DisplayedType, bool > - { - bool operator() ( const DisplayedType& _rLHS, const DisplayedType& _rRHS ) - { - return _rLHS.eType < _rRHS.eType; - } - }; - } - - //------------------------------------------------------------------------- - void OGeneralPage::initializeTypeList() - { - if ( m_bInitTypeList ) - { - m_bInitTypeList = false; - m_pDatasourceType->Clear(); - - if ( m_pCollection ) - { - DisplayedTypes aDisplayedTypes; - - ::dbaccess::ODsnTypeCollection::TypeIterator aEnd = m_pCollection->end(); - for ( ::dbaccess::ODsnTypeCollection::TypeIterator aTypeLoop = m_pCollection->begin(); - aTypeLoop != aEnd; - ++aTypeLoop - ) - { - const ::rtl::OUString sURLPrefix = aTypeLoop.getURLPrefix(); - if ( sURLPrefix.getLength() ) - { - String sDisplayName = aTypeLoop.getDisplayName(); - if ( m_pDatasourceType->GetEntryPos( sDisplayName ) == LISTBOX_ENTRY_NOTFOUND - && approveDataSourceType( sURLPrefix, sDisplayName ) ) - { - aDisplayedTypes.push_back( DisplayedTypes::value_type( sURLPrefix, sDisplayName ) ); - } - } - } - ::std::sort( aDisplayedTypes.begin(), aDisplayedTypes.end(), DisplayedTypeLess() ); - DisplayedTypes::const_iterator aDisplayEnd = aDisplayedTypes.end(); - for ( DisplayedTypes::const_iterator loop = aDisplayedTypes.begin(); - loop != aDisplayEnd; - ++loop - ) - insertDatasourceTypeEntryData( loop->eType, loop->sDisplayName ); - } - } - } - - - - //------------------------------------------------------------------------- - void OGeneralPage::setParentTitle(const ::rtl::OUString& _sURLPrefix) - { - if (!m_DBWizardMode) - { - const String sName = m_pCollection->getTypeDisplayName(_sURLPrefix); - if ( m_pAdminDialog ) - { - LocalResourceAccess aStringResAccess( PAGE_GENERAL, RSC_TABPAGE ); - String sMessage = String(ModuleRes(STR_PARENTTITLE)); - sMessage.SearchAndReplaceAscii("#",sName); - m_pAdminDialog->setTitle(sMessage); - } - } - } - - //------------------------------------------------------------------------- - OGeneralPage::CreationMode OGeneralPage::GetDatabaseCreationMode() const - { - if ( m_aRB_CreateDatabase.IsChecked() ) - return eCreateNew; - if ( m_aRB_GetExistingDatabase.IsChecked() ) - return eConnectExternal; - return eOpenExisting; - } - - //------------------------------------------------------------------------- - void OGeneralPage::GetFocus() - { - OGenericAdministrationPage::GetFocus(); - if ( m_pLB_DocumentList.get() && m_pLB_DocumentList->IsEnabled() ) - m_pLB_DocumentList->GrabFocus(); - else if (m_pDatasourceType.get() && m_pDatasourceType->IsEnabled()) - m_pDatasourceType->GrabFocus(); - } - - //------------------------------------------------------------------------- - void OGeneralPage::switchMessage(const ::rtl::OUString& _sURLPrefix) - { - SPECIAL_MESSAGE eMessage = smNone; - if ( !_sURLPrefix.getLength()/*_eType == m_eNotSupportedKnownType*/ ) - { - eMessage = smUnsupportedType; - } - - - if ( eMessage != m_eLastMessage ) - { - sal_uInt16 nResId = 0; - if ( smUnsupportedType == eMessage ) - nResId = STR_UNSUPPORTED_DATASOURCE_TYPE; - String sMessage; - if ( nResId ) - { - LocalResourceAccess aStringResAccess( PAGE_GENERAL, RSC_TABPAGE ); - sMessage = String(ModuleRes(nResId)); - } - m_aSpecialMessage.SetText(sMessage); - - m_eLastMessage = eMessage; - } - } - - //------------------------------------------------------------------------- - void OGeneralPage::onTypeSelected(const ::rtl::OUString& _sURLPrefix) - { - // the the new URL text as indicated by the selection history - implSetCurrentType( _sURLPrefix ); - - switchMessage(_sURLPrefix); - - if ( m_aTypeSelectHandler.IsSet() ) - m_aTypeSelectHandler.Call(this); - } - - //------------------------------------------------------------------------- - void OGeneralPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - initializeTypeList(); - - // first check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - if (m_DBWizardMode) - { - m_aTypePreLabel.Hide(); - m_aTypePostLabel.Hide(); - m_aSpecialMessage.Hide(); - SetControlFontWeight(&m_aFTHeaderText); - SetText(String()); - - LayoutHelper::positionBelow( m_aRB_GetExistingDatabase, *m_pDatasourceType, RelatedControls, INDENT_BELOW_RADIO ); - - if ( !bValid || bReadonly ) - { - m_aDatasourceTypeLabel.Enable( false ); - m_pDatasourceType->Enable( false ); - m_aFTDataSourceAppendix.Enable( false ); - m_aPB_OpenDocument.Enable( false ); - m_aFT_DocListLabel.Enable( false ); - m_pLB_DocumentList->Enable( false ); - } - else - { - m_aControlDependencies.enableOnRadioCheck( m_aRB_GetExistingDatabase, m_aDatasourceTypeLabel, *m_pDatasourceType, m_aFTDataSourceAppendix ); - m_aControlDependencies.enableOnRadioCheck( m_aRB_OpenDocument, m_aPB_OpenDocument, m_aFT_DocListLabel, *m_pLB_DocumentList ); - } - - m_pLB_DocumentList->SetDropDownLineCount( 20 ); - if ( m_pLB_DocumentList->GetEntryCount() ) - m_pLB_DocumentList->SelectEntryPos( 0 ); - - m_aDatasourceTypeLabel.Hide(); - m_aFTDataSourceAppendix.Hide(); - - m_eOriginalCreationMode = GetDatabaseCreationMode(); - } - else - { - m_aFT_DatasourceTypeHeader.Hide(); - m_aRB_CreateDatabase.Hide(); - m_aRB_GetExistingDatabase.Hide(); - m_aRB_OpenDocument.Hide(); - m_aPB_OpenDocument.Hide(); - m_aFT_DocListLabel.Hide(); - m_pLB_DocumentList->Hide(); - m_aFTHeaderText.Hide(); - m_aFTHelpText.Hide(); - m_aTypePreLabel.Enable(bValid); - m_aTypePostLabel.Enable(bValid); - m_aDatasourceTypeLabel.Enable(bValid); - m_pDatasourceType->Enable(bValid); - } - // if the selection is invalid, disable evrything - String sName,sConnectURL; - m_bDisplayingInvalid = !bValid; - if ( bValid ) - { - // collect some items and some values - SFX_ITEMSET_GET(_rSet, pNameItem, SfxStringItem, DSID_NAME, sal_True); - SFX_ITEMSET_GET(_rSet, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True); - OSL_ENSURE(pUrlItem, "OGeneralPage::implInitControls : missing the type attribute !"); - OSL_ENSURE(pNameItem, "OGeneralPage::implInitControls : missing the type attribute !"); - sName = pNameItem->GetValue(); - sConnectURL = pUrlItem->GetValue(); - } - - ::rtl::OUString eOldSelection = m_eCurrentSelection; - m_eNotSupportedKnownType = ::dbaccess::DST_UNKNOWN; - implSetCurrentType( ::rtl::OUString() ); - - // compare the DSN prefix with the registered ones - String sDisplayName; - - if (m_pCollection && bValid) - { - implSetCurrentType( m_pCollection->getPrefix(sConnectURL) ); - sDisplayName = m_pCollection->getTypeDisplayName(m_eCurrentSelection); - } - - // select the correct datasource type - if ( approveDataSourceType( m_eCurrentSelection, sDisplayName ) - && ( LISTBOX_ENTRY_NOTFOUND == m_pDatasourceType->GetEntryPos( sDisplayName ) ) - ) - { // this indicates it's really a type which is known in general, but not supported on the current platform - // show a message saying so - // eSpecialMessage = smUnsupportedType; - insertDatasourceTypeEntryData(m_eCurrentSelection, sDisplayName); - // remember this type so we can show the special message again if the user selects this - // type again (without changing the data source) - m_eNotSupportedKnownType = m_pCollection->determineType(m_eCurrentSelection); - } - - if (m_aRB_CreateDatabase.IsChecked() && m_DBWizardMode) - sDisplayName = m_pCollection->getTypeDisplayName( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("jdbc:"))); - m_pDatasourceType->SelectEntry(sDisplayName); - - // notify our listener that our type selection has changed (if so) - if ( eOldSelection != m_eCurrentSelection ) - { - setParentTitle(m_eCurrentSelection); - onTypeSelected(m_eCurrentSelection); - } - - // a special message for the current page state - switchMessage(m_eCurrentSelection); - - OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue); - } - - - // For the databaseWizard we only have one entry for the MySQL Database, - // because we have a seperate tabpage to retrieve the respective datasource type - // ( ::dbaccess::DST_MYSQL_ODBC || ::dbaccess::DST_MYSQL_JDBC). Therefore we use ::dbaccess::DST_MYSQL_JDBC as a temporary - // representative for all MySQl databases) - // Also, embedded databases (embedded HSQL, at the moment), are not to appear in the list of - // databases to connect to. - bool OGeneralPage::approveDataSourceType( const ::rtl::OUString& _sURLPrefix, String& _inout_rDisplayName ) - { - const ::dbaccess::DATASOURCE_TYPE eType = m_pCollection->determineType(_sURLPrefix); - - if ( m_DBWizardMode ) - { - switch ( eType ) - { - case ::dbaccess::DST_MYSQL_JDBC: - _inout_rDisplayName = m_sMySQLEntry; - break; - case ::dbaccess::DST_MYSQL_ODBC: - case ::dbaccess::DST_MYSQL_NATIVE: - // don't display those, the decision whether the user connects via JDBC/ODBC/C-OOo is made on another - // page - _inout_rDisplayName = String(); - break; - default: - break; - } - } - - if ( eType == ::dbaccess::DST_MYSQL_NATIVE_DIRECT ) - { - // do not display the Connector/OOo driver itself, it is always wrapped via the MySQL-Driver, if - // this driver is installed - if ( m_pCollection->hasDriver( "sdbc:mysql:mysqlc:" ) ) - _inout_rDisplayName = String(); - } - - if ( eType == ::dbaccess::DST_EMBEDDED_HSQLDB ) - _inout_rDisplayName = String(); - - return _inout_rDisplayName.Len() > 0; - } - - - // ----------------------------------------------------------------------- - void OGeneralPage::insertDatasourceTypeEntryData(const ::rtl::OUString& _sType, String sDisplayName) - { - // insert a (temporary) entry - sal_uInt16 nPos = m_pDatasourceType->InsertEntry(sDisplayName); - if ( nPos >= m_aURLPrefixes.size() ) - m_aURLPrefixes.resize(nPos+1); - m_aURLPrefixes[nPos] = _sType; - } - - // ----------------------------------------------------------------------- - void OGeneralPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aTypePreLabel)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aDatasourceTypeLabel)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aTypePostLabel)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aSpecialMessage)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTDataSourceAppendix)); - } - // ----------------------------------------------------------------------- - void OGeneralPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new OSaveValueWrapper<ListBox>(m_pDatasourceType.get())); - } - - //------------------------------------------------------------------------- - SfxTabPage* OGeneralPage::Create(Window* _pParent, const SfxItemSet& _rAttrSet, sal_Bool _bWizardMode) - { - return ( new OGeneralPage( _pParent, _rAttrSet, _bWizardMode ) ); - } - - //------------------------------------------------------------------------- - void OGeneralPage::implSetCurrentType( const ::rtl::OUString& _eType ) - { - if ( _eType == m_eCurrentSelection ) - return; - - m_eCurrentSelection = _eType; - } - - //------------------------------------------------------------------------- - void OGeneralPage::Reset(const SfxItemSet& _rCoreAttrs) - { - // reset all locale data - implSetCurrentType( ::rtl::OUString() ); - // this ensures that our type selection link will be called, even if the new is is the same as the - // current one - OGenericAdministrationPage::Reset(_rCoreAttrs); - } - - //------------------------------------------------------------------------- - sal_Bool OGeneralPage::FillItemSet(SfxItemSet& _rCoreAttrs) - { - sal_Bool bChangedSomething = sal_False; - - bool bCommitTypeSelection = true; - if ( m_DBWizardMode ) - { - if ( m_aRB_CreateDatabase.IsChecked() ) - { - _rCoreAttrs.Put(SfxStringItem(DSID_CONNECTURL, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:dbase:")))); - bChangedSomething = sal_True; - bCommitTypeSelection = false; - } - else if ( m_aRB_OpenDocument.IsChecked() ) - { - if ( m_aRB_OpenDocument.GetSavedValue() != m_aRB_OpenDocument.IsChecked() ) - bChangedSomething = sal_True; - - // TODO - bCommitTypeSelection = false; - } - } - - if ( bCommitTypeSelection ) - { - sal_uInt16 nEntry = m_pDatasourceType->GetSelectEntryPos(); - ::rtl::OUString sURLPrefix = m_aURLPrefixes[nEntry]; - if (m_DBWizardMode) - { - if ( ( m_pDatasourceType->GetSavedValue() != nEntry ) - || ( GetDatabaseCreationMode() != m_eOriginalCreationMode ) - ) - { - _rCoreAttrs.Put(SfxStringItem(DSID_CONNECTURL,sURLPrefix )); - bChangedSomething = sal_True; - } - else - implSetCurrentType(sURLPrefix); - } - else - { - if ( m_pDatasourceType->GetSavedValue() != nEntry) - { - _rCoreAttrs.Put(SfxStringItem(DSID_CONNECTURL, sURLPrefix)); - bChangedSomething = sal_True; - } - } - } - return bChangedSomething; - } - - //------------------------------------------------------------------------- - IMPL_LINK(OGeneralPage, OnDatasourceTypeSelected, ListBox*, _pBox) - { - // get the type from the entry data - sal_Int16 nSelected = _pBox->GetSelectEntryPos(); - const ::rtl::OUString sURLPrefix = m_aURLPrefixes[nSelected]; - - setParentTitle(sURLPrefix); - // let the impl method do all the stuff - onTypeSelected(sURLPrefix); - // tell the listener we were modified - callModifiedHdl(); - // outta here - return 0L; - } - - //------------------------------------------------------------------------- - OGeneralPage::DocumentDescriptor OGeneralPage::GetSelectedDocument() const - { - DocumentDescriptor aDocument; - if ( m_aBrowsedDocument.sURL.Len() ) - aDocument = m_aBrowsedDocument; - else - { - aDocument.sURL = m_pLB_DocumentList->GetSelectedDocumentURL(); - aDocument.sFilter = m_pLB_DocumentList->GetSelectedDocumentFilter(); - } - return aDocument; - } - - //------------------------------------------------------------------------- - IMPL_LINK(OGeneralPage, OnSetupModeSelected, RadioButton*, /*_pBox*/) - { - if ( m_aCreationModeHandler.IsSet() ) - m_aCreationModeHandler.Call(this); - return 1L; - } - - //------------------------------------------------------------------------- - IMPL_LINK(OGeneralPage, OnDocumentSelected, ListBox*, /*_pBox*/) - { - m_aDocumentSelectionHandler.Call( this ); - return 0L; - } - - //------------------------------------------------------------------------- - IMPL_LINK(OGeneralPage, OnOpenDocument, PushButton*, /*_pBox*/) - { - ::sfx2::FileDialogHelper aFileDlg( WB_OPEN, ::String::CreateFromAscii("sdatabase") ); - const SfxFilter* pFilter = getStandardDatabaseFilter(); - if ( pFilter ) - { - aFileDlg.SetCurrentFilter(pFilter->GetUIName()); - } - if ( aFileDlg.Execute() == ERRCODE_NONE ) - { - String sPath = aFileDlg.GetPath(); - if ( aFileDlg.GetCurrentFilter() != pFilter->GetUIName() || !pFilter->GetWildcard().Matches(sPath) ) - { - String sMessage(ModuleRes(STR_ERR_USE_CONNECT_TO)); - InfoBox aError(this, sMessage); - aError.Execute(); - m_aRB_GetExistingDatabase.Check(); - OnSetupModeSelected(&m_aRB_GetExistingDatabase); - return 0L; - } - m_aBrowsedDocument.sURL = sPath; - m_aBrowsedDocument.sFilter = String(); - m_aChooseDocumentHandler.Call( this ); - return 1L; - } - - return 0L; - } - -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/generalpage.hxx b/dbaccess/source/ui/dlg/generalpage.hxx deleted file mode 100644 index 21b1f6837..000000000 --- a/dbaccess/source/ui/dlg/generalpage.hxx +++ /dev/null @@ -1,170 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_GENERALPAGE_HXX_ -#define _DBAUI_GENERALPAGE_HXX_ - -#include "adminpages.hxx" -#include "opendoccontrols.hxx" -#include <vcl/fixed.hxx> -#include <vcl/lstbox.hxx> -#include <vcl/edit.hxx> -#include <svtools/dialogcontrolling.hxx> -#include <memory> - -//......................................................................... -namespace dbaui -{ -//......................................................................... - class IDatabaseSettingsDialog; - //========================================================================= - //= OGeneralPage - //========================================================================= - class OGeneralPage : public OGenericAdministrationPage - { - OGeneralPage(Window* pParent, const SfxItemSet& _rItems, sal_Bool _bDBWizardMode = sal_False); - ~OGeneralPage(); - - public: - enum CreationMode - { - eCreateNew, - eConnectExternal, - eOpenExisting - }; - - struct DocumentDescriptor - { - String sURL; - String sFilter; - }; - - private: - // dialog controls - FixedText m_aFTHeaderText; - FixedText m_aFTHelpText; - FixedText m_aFT_DatasourceTypeHeader; - RadioButton m_aRB_CreateDatabase; - RadioButton m_aRB_OpenDocument; - RadioButton m_aRB_GetExistingDatabase; - FixedText m_aFT_DocListLabel; - ::std::auto_ptr< OpenDocumentListBox > - m_pLB_DocumentList; - OpenDocumentButton m_aPB_OpenDocument; - FixedText m_aTypePreLabel; - FixedText m_aDatasourceTypeLabel; - ::std::auto_ptr< ListBox > - m_pDatasourceType; - FixedText m_aFTDataSourceAppendix; - FixedText m_aTypePostLabel; - FixedText m_aSpecialMessage; - sal_Bool m_DBWizardMode; - String m_sMySQLEntry; - CreationMode m_eOriginalCreationMode; - DocumentDescriptor m_aBrowsedDocument; - - ::svt::ControlDependencyManager - m_aControlDependencies; - ::std::vector< ::rtl::OUString> m_aURLPrefixes; - - - ::dbaccess::ODsnTypeCollection* - m_pCollection; /// the DSN type collection instance - ::rtl::OUString m_eCurrentSelection; /// currently selected type - ::dbaccess::DATASOURCE_TYPE m_eNotSupportedKnownType; /// if a data source of an unsupported, but known type is encountered .... - - enum SPECIAL_MESSAGE - { - smNone, - smUnsupportedType - }; - SPECIAL_MESSAGE m_eLastMessage; - - Link m_aTypeSelectHandler; /// to be called if a new type is selected - Link m_aCreationModeHandler; /// to be called if a new type is selected - Link m_aDocumentSelectionHandler; /// to be called when a document in the RecentDoc list is selected - Link m_aChooseDocumentHandler; /// to be called when a recent document has been definately chosen - sal_Bool m_bDisplayingInvalid : 1; // the currently displayed data source is deleted - sal_Bool m_bUserGrabFocus : 1; - bool m_bInitTypeList : 1; - bool approveDataSourceType( const ::rtl::OUString& _sURLPrefix, String& _inout_rDisplayName ); - void insertDatasourceTypeEntryData(const ::rtl::OUString& _sType, String sDisplayName); - - public: - static SfxTabPage* Create(Window* pParent, const SfxItemSet& _rAttrSet, sal_Bool _bDBWizardMode = sal_False); - - /// set a handler which gets called every time the user selects a new type - void SetTypeSelectHandler(const Link& _rHandler) { m_aTypeSelectHandler = _rHandler; } - void SetCreationModeHandler(const Link& _rHandler) { m_aCreationModeHandler = _rHandler; } - void SetDocumentSelectionHandler( const Link& _rHandler) { m_aDocumentSelectionHandler = _rHandler; } - void SetChooseDocumentHandler( const Link& _rHandler) { m_aChooseDocumentHandler = _rHandler; } - CreationMode GetDatabaseCreationMode() const; - - DocumentDescriptor GetSelectedDocument() const; - - /// get the currently selected datasource type - ::rtl::OUString GetSelectedType() const { return m_eCurrentSelection; } - - protected: - // SfxTabPage overridables - virtual sal_Bool FillItemSet(SfxItemSet& _rCoreAttrs); - virtual void Reset(const SfxItemSet& _rCoreAttrs); - - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - - virtual void GetFocus(); - - // <method>OGenericAdministrationPage::fillControls</method> - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - // <method>OGenericAdministrationPage::fillWindows</method> - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - - protected: - - void onTypeSelected(const ::rtl::OUString& _sURLPrefix); - void initializeTypeList(); - - void implSetCurrentType( const ::rtl::OUString& _eType ); - - void switchMessage(const ::rtl::OUString& _sURLPrefix); - - /// sets the the title of the parent dialog - void setParentTitle(const ::rtl::OUString& _sURLPrefix); - - DECL_LINK(OnDatasourceTypeSelected, ListBox*); - DECL_LINK(OnSetupModeSelected, RadioButton*); - DECL_LINK(OnDocumentSelected, ListBox*); - DECL_LINK(OnOpenDocument, PushButton*); - }; - -//......................................................................... -} // namespace dbaui -//......................................................................... -#endif // _DBAUI_GENERALPAGE_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/indexdialog.cxx b/dbaccess/source/ui/dlg/indexdialog.cxx deleted file mode 100644 index 550a667b7..000000000 --- a/dbaccess/source/ui/dlg/indexdialog.cxx +++ /dev/null @@ -1,925 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "indexdialog.hxx" -#include "dbu_dlg.hrc" -#include "dbaccess_helpid.hrc" -#include "indexdialog.hrc" -#include "indexfieldscontrol.hxx" -#include "indexcollection.hxx" -#include <vcl/msgbox.hxx> -#include <com/sun/star/sdb/SQLContext.hpp> -#include "UITools.hxx" -#include <svtools/imgdef.hxx> -#include "browserids.hxx" -#include <connectivity/dbtools.hxx> -#include <osl/diagnose.h> -//...................................................................... -namespace dbaui -{ -//...................................................................... - - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::container; - using namespace ::com::sun::star::sdbc; - using namespace ::com::sun::star::sdb; - using namespace ::com::sun::star::lang; - using namespace ::dbtools; - - //================================================================== - //= helper - //================================================================== - //------------------------------------------------------------------ - sal_Bool operator ==(const OIndexField& _rLHS, const OIndexField& _rRHS) - { - return (_rLHS.sFieldName == _rRHS.sFieldName) - && (_rLHS.bSortAscending == _rRHS.bSortAscending); - } - - //------------------------------------------------------------------ - sal_Bool operator !=(const OIndexField& _rLHS, const OIndexField& _rRHS) - { - return !(_rLHS == _rRHS); - } - - //------------------------------------------------------------------ - sal_Bool operator ==(const IndexFields& _rLHS, const IndexFields& _rRHS) - { - if (_rLHS.size() != _rRHS.size()) - return sal_False; - - ConstIndexFieldsIterator aLeft = _rLHS.begin(); - ConstIndexFieldsIterator aLeftEnd = _rLHS.end(); - ConstIndexFieldsIterator aRight = _rRHS.begin(); - for (; aLeft != aLeftEnd; ++aLeft, ++aRight) - { - if (*aLeft != *aRight) - return sal_False; - } - - return sal_True; - } - - //------------------------------------------------------------------ - sal_Bool operator !=(const IndexFields& _rLHS, const IndexFields& _rRHS) - { - return !(_rLHS == _rRHS); - } - - //================================================================== - //= DbaIndexList - //================================================================== - //------------------------------------------------------------------ - DbaIndexList::DbaIndexList(Window* _pParent, const ResId& _rId) - :SvTreeListBox(_pParent, _rId) - ,m_bSuspendSelectHdl(sal_False) - { - } - - extern sal_Bool isCharOk(sal_Unicode _cChar,sal_Bool _bFirstChar,sal_Bool _bUpperCase,const ::rtl::OUString& _sAllowedChars); - //------------------------------------------------------------------ - sal_Bool DbaIndexList::EditedEntry( SvLBoxEntry* _pEntry, const String& _rNewText ) - { - // first check if this is valid SQL92 name - if ( isSQL92CheckEnabled(m_xConnection) ) - { - Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData(); - if ( xMeta.is() ) - { - ::rtl::OUString sNewName(_rNewText); - ::rtl::OUString sAlias = ::dbtools::convertName2SQLName(sNewName,xMeta->getExtraNameCharacters()); - if ( ( xMeta->supportsMixedCaseQuotedIdentifiers() ) - ? - sAlias != sNewName - : - !sNewName.equalsIgnoreAsciiCase(sAlias)) - return sal_False; - } - } - - if (!SvTreeListBox::EditedEntry(_pEntry, _rNewText)) - return sal_False; - - String sOldText = GetEntryText(_pEntry); - SvTreeListBox::SetEntryText(_pEntry, _rNewText); - - sal_Bool bValid = sal_True; - if (m_aEndEditHdl.IsSet()) - bValid = (0 != m_aEndEditHdl.Call(_pEntry)); - - if (bValid) - return sal_True; - - SvTreeListBox::SetEntryText(_pEntry, sOldText); - - return sal_False; - } - - //------------------------------------------------------------------ - void DbaIndexList::enableSelectHandler() - { - OSL_ENSURE(m_bSuspendSelectHdl, "DbaIndexList::enableSelectHandler: invalid call (this is not cumulative)!"); - m_bSuspendSelectHdl = sal_False; - } - - //------------------------------------------------------------------ - void DbaIndexList::disableSelectHandler() - { - OSL_ENSURE(!m_bSuspendSelectHdl, "DbaIndexList::enableSelectHandler: invalid call (this is not cumulative)!"); - m_bSuspendSelectHdl = sal_True; - } - - //------------------------------------------------------------------ - void DbaIndexList::SelectNoHandlerCall( SvLBoxEntry* _pEntry ) - { - disableSelectHandler(); - Select(_pEntry, sal_True); - enableSelectHandler(); - } - - //------------------------------------------------------------------ - sal_Bool DbaIndexList::Select( SvLBoxEntry* pEntry, sal_Bool _bSelect ) - { - sal_Bool bReturn = SvTreeListBox::Select(pEntry, _bSelect); - - if (m_aSelectHdl.IsSet() && !m_bSuspendSelectHdl && _bSelect) - m_aSelectHdl.Call(this); - - return bReturn; - } - - //================================================================== - //= DbaIndexDialog - //================================================================== -DBG_NAME(DbaIndexDialog) -//------------------------------------------------------------------ - DbaIndexDialog::DbaIndexDialog( Window* _pParent, const Sequence< ::rtl::OUString >& _rFieldNames, - const Reference< XNameAccess >& _rxIndexes, - const Reference< XConnection >& _rxConnection, - const Reference< XMultiServiceFactory >& _rxORB,sal_Int32 _nMaxColumnsInIndex) - :ModalDialog( _pParent, ModuleRes(DLG_INDEXDESIGN)) - ,m_xConnection(_rxConnection) - ,m_aGeometrySettings(E_DIALOG, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("dbaccess.tabledesign.indexdialog"))) - ,m_aActions (this, ModuleRes(TLB_ACTIONS)) - ,m_aIndexes (this, ModuleRes(CTR_INDEXLIST)) - ,m_aIndexDetails (this, ModuleRes(FL_INDEXDETAILS)) - ,m_aDescriptionLabel (this, ModuleRes(FT_DESC_LABEL)) - ,m_aDescription (this, ModuleRes(FT_DESCRIPTION)) - ,m_aUnique (this, ModuleRes(CB_UNIQUE)) - ,m_aFieldsLabel (this, ModuleRes(FT_FIELDS)) - ,m_pFields(new IndexFieldsControl (this, ModuleRes(CTR_FIELDS),_nMaxColumnsInIndex,::dbtools::getBooleanDataSourceSetting( m_xConnection, "AddIndexAppendix" ))) - ,m_aClose (this, ModuleRes(PB_CLOSE)) - ,m_aHelp (this, ModuleRes(HB_HELP)) - ,m_pIndexes(NULL) - ,m_pPreviousSelection(NULL) - ,m_bEditAgain(sal_False) - ,m_xORB(_rxORB) - { - DBG_CTOR(DbaIndexDialog,NULL); - - FreeResource(); - - m_aActions.SetSelectHdl(LINK(this, DbaIndexDialog, OnIndexAction)); - - m_aIndexes.SetSelectHdl(LINK(this, DbaIndexDialog, OnIndexSelected)); - m_aIndexes.SetEndEditHdl(LINK(this, DbaIndexDialog, OnEntryEdited)); - m_aIndexes.SetSelectionMode(SINGLE_SELECTION); - m_aIndexes.SetHighlightRange(); - m_aIndexes.setConnection(m_xConnection); - - m_pFields->Init(_rFieldNames); - - setToolBox(&m_aActions); - - m_pIndexes = new OIndexCollection(); - try - { - m_pIndexes->attach(_rxIndexes); - } - catch(SQLException& e) - { - ::dbaui::showError(SQLExceptionInfo(e),_pParent,_rxORB); - } - catch(Exception&) - { - OSL_FAIL("DbaIndexDialog::DbaIndexDialog: could not retrieve basic information from the UNO collection!"); - } - - fillIndexList(); - - m_aUnique.SetClickHdl(LINK(this, DbaIndexDialog, OnModified)); - m_pFields->SetModifyHdl(LINK(this, DbaIndexDialog, OnModified)); - - m_aClose.SetClickHdl(LINK(this, DbaIndexDialog, OnCloseDialog)); - - // if all of the indexes have an empty description, we're not interested in displaying it - Indexes::const_iterator aCheck; - - for ( aCheck = m_pIndexes->begin(); - aCheck != m_pIndexes->end(); - ++aCheck - ) - { - if (aCheck->sDescription.getLength()) - break; - } - - if (aCheck == m_pIndexes->end()) - { - sal_Int32 nMoveUp = m_aUnique.GetPosPixel().Y() - m_aDescriptionLabel.GetPosPixel().Y(); - - // hide the controls which are necessary for the description - m_aDescription.Hide(); - m_aDescriptionLabel.Hide(); - - // move other controls up - Point aPos = m_aUnique.GetPosPixel(); - aPos.Y() -= nMoveUp; - m_aUnique.SetPosPixel(aPos); - - aPos = m_aFieldsLabel.GetPosPixel(); - aPos.Y() -= nMoveUp; - m_aFieldsLabel.SetPosPixel(aPos); - - aPos = m_pFields->GetPosPixel(); - aPos.Y() -= nMoveUp; - m_pFields->SetPosPixel(aPos); - - // and enlarge the fields list - Size aSize = m_pFields->GetSizePixel(); - aSize.Height() += nMoveUp; - m_pFields->SetSizePixel(aSize); - } - } - - //------------------------------------------------------------------ - void DbaIndexDialog::updateToolbox() - { - m_aActions.EnableItem(ID_INDEX_NEW, !m_aIndexes.IsEditingActive()); - - SvLBoxEntry* pSelected = m_aIndexes.FirstSelected(); - sal_Bool bSelectedAnything = NULL != pSelected; - - - if (pSelected) - { - // is the current entry modified? - Indexes::const_iterator aSelectedPos = m_pIndexes->begin() + reinterpret_cast<sal_IntPtr>(pSelected->GetUserData()); - m_aActions.EnableItem(ID_INDEX_SAVE, aSelectedPos->isModified() || aSelectedPos->isNew()); - m_aActions.EnableItem(ID_INDEX_RESET, aSelectedPos->isModified() || aSelectedPos->isNew()); - bSelectedAnything = bSelectedAnything && !aSelectedPos->bPrimaryKey; - } - else - { - m_aActions.EnableItem(ID_INDEX_SAVE, sal_False); - m_aActions.EnableItem(ID_INDEX_RESET, sal_False); - } - m_aActions.EnableItem(ID_INDEX_DROP, bSelectedAnything); - m_aActions.EnableItem(ID_INDEX_RENAME, bSelectedAnything); - } - - //------------------------------------------------------------------ - void DbaIndexDialog::fillIndexList() - { - Image aPKeyIcon(ModuleRes( IMG_PKEYICON )); - // fill the list with the index names - m_aIndexes.Clear(); - Indexes::iterator aIndexLoop = m_pIndexes->begin(); - Indexes::iterator aEnd = m_pIndexes->end(); - for (; aIndexLoop != aEnd; ++aIndexLoop) - { - SvLBoxEntry* pNewEntry = NULL; - if (aIndexLoop->bPrimaryKey) - pNewEntry = m_aIndexes.InsertEntry(aIndexLoop->sName, aPKeyIcon, aPKeyIcon); - else - pNewEntry = m_aIndexes.InsertEntry(aIndexLoop->sName); - - pNewEntry->SetUserData(reinterpret_cast< void* >(sal_Int32(aIndexLoop - m_pIndexes->begin()))); - } - - OnIndexSelected(&m_aIndexes); - } - - //------------------------------------------------------------------ - DbaIndexDialog::~DbaIndexDialog( ) - { - setToolBox(NULL); - delete m_pIndexes; - delete m_pFields; - - DBG_DTOR(DbaIndexDialog,NULL); - } - - //------------------------------------------------------------------ - sal_Bool DbaIndexDialog::implCommit(SvLBoxEntry* _pEntry) - { - OSL_ENSURE(_pEntry, "DbaIndexDialog::implCommit: invalid entry!"); - - Indexes::iterator aCommitPos = m_pIndexes->begin() + reinterpret_cast<sal_IntPtr>(_pEntry->GetUserData()); - - // if it's not a new index, remove it - // (we can't modify indexes, only drop'n'insert) - if (!aCommitPos->isNew()) - if (!implDropIndex(_pEntry, sal_False)) - return sal_False; - - // create the new index - SQLExceptionInfo aExceptionInfo; - try - { - m_pIndexes->commitNewIndex(aCommitPos); - } - catch(SQLContext& e) { aExceptionInfo = SQLExceptionInfo(e); } - catch(SQLWarning& e) { aExceptionInfo = SQLExceptionInfo(e); } - catch(SQLException& e) { aExceptionInfo = SQLExceptionInfo(e); } - - // reflect the new selection in the toolbox - updateToolbox(); - - if (aExceptionInfo.isValid()) - showError(aExceptionInfo, this, m_xORB); - else - { - m_aUnique.SaveValue(); - m_pFields->SaveValue(); - } - - return !aExceptionInfo.isValid(); - } - - //------------------------------------------------------------------ - void DbaIndexDialog::OnNewIndex() - { - // commit the current entry, if necessary - if (!implCommitPreviouslySelected()) - return; - - // get a new unique name for the new index - String sNewIndexName; - const String sNewIndexNameBase(ModuleRes(STR_LOGICAL_INDEX_NAME)); - sal_Int32 i; - - for ( i = 1; i < 0x7FFFFFFF; ++i ) - { - sNewIndexName = sNewIndexNameBase; - sNewIndexName += String::CreateFromInt32(i); - if (m_pIndexes->end() == m_pIndexes->find(sNewIndexName)) - break; - } - if ((i>0x7FFFFFFF) || (i<0)) - { - OSL_FAIL("DbaIndexDialog::OnNewIndex: no free index name found!"); - // can't do anything ... of course we try another base, but this could end with the same result ... - return; - } - - SvLBoxEntry* pNewEntry = m_aIndexes.InsertEntry(sNewIndexName); - m_pIndexes->insert(sNewIndexName); - - // update the user data on the entries in the list box: - // they're iterators of the index collection, and thus they have changed when removing the index - for (SvLBoxEntry* pAdjust = m_aIndexes.First(); pAdjust; pAdjust = m_aIndexes.Next(pAdjust)) - { - Indexes::iterator aAfterInsertPos = m_pIndexes->find(m_aIndexes.GetEntryText(pAdjust)); - OSL_ENSURE(aAfterInsertPos != m_pIndexes->end(), "DbaIndexDialog::OnNewIndex: problems with on of the entries!"); - pAdjust->SetUserData(reinterpret_cast< void* >(sal_Int32(aAfterInsertPos - m_pIndexes->begin()))); - } - - // select the entry and start in-place editing - m_aIndexes.SelectNoHandlerCall(pNewEntry); - OnIndexSelected(&m_aIndexes); - m_aIndexes.EditEntry(pNewEntry); - updateToolbox(); - } - - //------------------------------------------------------------------ - void DbaIndexDialog::OnDropIndex(sal_Bool _bConfirm) - { - // the selected index - SvLBoxEntry* pSelected = m_aIndexes.FirstSelected(); - OSL_ENSURE(pSelected, "DbaIndexDialog::OnDropIndex: invalid call!"); - if (pSelected) - { - // let the user confirm the drop - if (_bConfirm) - { - String sConfirm(ModuleRes(STR_CONFIRM_DROP_INDEX)); - sConfirm.SearchAndReplaceAscii("$name$", m_aIndexes.GetEntryText(pSelected)); - QueryBox aConfirm(this, WB_YES_NO, sConfirm); - if (RET_YES != aConfirm.Execute()) - return; - } - - // do the drop - implDropIndex(pSelected, sal_True); - - // reflect the new selection in the toolbox - updateToolbox(); - } - } - - //------------------------------------------------------------------ - sal_Bool DbaIndexDialog::implDropIndex(SvLBoxEntry* _pEntry, sal_Bool _bRemoveFromCollection) - { - // do the drop - Indexes::iterator aDropPos = m_pIndexes->begin() + reinterpret_cast<sal_IntPtr>(_pEntry->GetUserData()); - OSL_ENSURE(aDropPos != m_pIndexes->end(), "DbaIndexDialog::OnDropIndex: did not find the index in my collection!"); - - SQLExceptionInfo aExceptionInfo; - sal_Bool bSuccess = sal_False; - try - { - if (_bRemoveFromCollection) - bSuccess = m_pIndexes->drop(aDropPos); - else - bSuccess = m_pIndexes->dropNoRemove(aDropPos); - } - catch(SQLContext& e) { aExceptionInfo = SQLExceptionInfo(e); } - catch(SQLWarning& e) { aExceptionInfo = SQLExceptionInfo(e); } - catch(SQLException& e) { aExceptionInfo = SQLExceptionInfo(e); } - - if (aExceptionInfo.isValid()) - showError(aExceptionInfo, this, m_xORB); - else if (bSuccess && _bRemoveFromCollection) - { - SvLBoxTreeList* pModel = m_aIndexes.GetModel(); - - m_aIndexes.disableSelectHandler(); - pModel->Remove(_pEntry); - m_aIndexes.enableSelectHandler(); - - // update the user data on the entries in the list box: - // they're iterators of the index collection, and thus they have changed when removing the index - for (SvLBoxEntry* pAdjust = m_aIndexes.First(); pAdjust; pAdjust = m_aIndexes.Next(pAdjust)) - { - Indexes::iterator aAfterDropPos = m_pIndexes->find(m_aIndexes.GetEntryText(pAdjust)); - OSL_ENSURE(aAfterDropPos != m_pIndexes->end(), "DbaIndexDialog::OnDropIndex: problems with on of the remaining entries!"); - pAdjust->SetUserData(reinterpret_cast< void* >(sal_Int32(aAfterDropPos - m_pIndexes->begin()))); - } - - // if the remvoved entry was the selected on ... - if (m_pPreviousSelection == _pEntry) - m_pPreviousSelection = NULL; - - // the Remove automatically selected another entry (if possible), but we disabled the calling of the handler - // to prevent that we missed something ... call the handler directly - OnIndexSelected(&m_aIndexes); - } - - return !aExceptionInfo.isValid(); - } - - //------------------------------------------------------------------ - void DbaIndexDialog::OnRenameIndex() - { - // the selected index - SvLBoxEntry* pSelected = m_aIndexes.FirstSelected(); - OSL_ENSURE(pSelected, "DbaIndexDialog::OnRenameIndex: invalid call!"); - - // save the changes made 'til here - // Upon leaving the edit mode, the control will be re-initialized with the - // settings from the current entry - implSaveModified(sal_False); - - m_aIndexes.EditEntry(pSelected); - updateToolbox(); - } - - //------------------------------------------------------------------ - void DbaIndexDialog::OnSaveIndex() - { - // the selected index -#if OSL_DEBUG_LEVEL > 0 - SvLBoxEntry* pSelected = m_aIndexes.FirstSelected(); - OSL_ENSURE( pSelected, "DbaIndexDialog::OnSaveIndex: invalid call!" ); -#endif - - implCommitPreviouslySelected(); - updateToolbox(); - } - - //------------------------------------------------------------------ - void DbaIndexDialog::OnResetIndex() - { - // the selected index - SvLBoxEntry* pSelected = m_aIndexes.FirstSelected(); - OSL_ENSURE(pSelected, "DbaIndexDialog::OnResetIndex: invalid call!"); - - Indexes::iterator aResetPos = m_pIndexes->begin() + reinterpret_cast<sal_IntPtr>(pSelected->GetUserData()); - - if (aResetPos->isNew()) - { - OnDropIndex(sal_False); - return; - } - - SQLExceptionInfo aExceptionInfo; - try - { - m_pIndexes->resetIndex(aResetPos); - } - catch(SQLContext& e) { aExceptionInfo = SQLExceptionInfo(e); } - catch(SQLWarning& e) { aExceptionInfo = SQLExceptionInfo(e); } - catch(SQLException& e) { aExceptionInfo = SQLExceptionInfo(e); } - - if (aExceptionInfo.isValid()) - showError(aExceptionInfo, this, m_xORB); - else - m_aIndexes.SetEntryText(pSelected, aResetPos->sName); - - updateControls(pSelected); - updateToolbox(); - } - - //------------------------------------------------------------------ - IMPL_LINK( DbaIndexDialog, OnIndexAction, ToolBox*, /*NOTINTERESTEDIN*/ ) - { - sal_uInt16 nClicked = m_aActions.GetCurItemId(); - switch (nClicked) - { - case ID_INDEX_NEW: - OnNewIndex(); - break; - case ID_INDEX_DROP: - OnDropIndex(); - break; - case ID_INDEX_RENAME: - OnRenameIndex(); - break; - case ID_INDEX_SAVE: - OnSaveIndex(); - break; - case ID_INDEX_RESET: - OnResetIndex(); - break; - } - return 0L; - } - - //------------------------------------------------------------------ - IMPL_LINK( DbaIndexDialog, OnCloseDialog, void*, /*NOTINTERESTEDIN*/ ) - { - if (m_aIndexes.IsEditingActive()) - { - OSL_ENSURE(!m_bEditAgain, "DbaIndexDialog::OnCloseDialog: somebody was faster than hell!"); - // this means somebody entered a new name, which was invalid, which cause us to posted us an event, - // and before the event arrived the user clicked onto "close". VERY fast, this user .... - m_aIndexes.EndEditing(sal_False); - if (m_bEditAgain) - // could not commit the new name (started a new - asynchronous - edit trial) - return 1L; - } - - // the currently selected entry - const SvLBoxEntry* pSelected = m_aIndexes.FirstSelected(); - OSL_ENSURE(pSelected == m_pPreviousSelection, "DbaIndexDialog::OnCloseDialog: inconsistence!"); - - sal_Int32 nResponse = RET_NO; - if (pSelected) - { - // the descriptor - Indexes::const_iterator aSelected = m_pIndexes->begin() + reinterpret_cast<sal_IntPtr>(pSelected->GetUserData()); - - if (aSelected->isModified() || aSelected->isNew()) - { - QueryBox aQuestion(this, ModuleRes(QUERY_SAVE_CURRENT_INDEX)); - nResponse = aQuestion.Execute(); - } - } - - switch (nResponse) - { - case RET_YES: - if (!implCommitPreviouslySelected()) - return 1L; - break; - case RET_NO: - break; - default: - return 1L; - } - - EndDialog(RET_OK); - - return 0L; - } - - //------------------------------------------------------------------ - IMPL_LINK( DbaIndexDialog, OnEditIndexAgain, SvLBoxEntry*, _pEntry ) - { - m_bEditAgain = sal_False; - m_aIndexes.EditEntry(_pEntry); - return 0L; - } - - //------------------------------------------------------------------ - IMPL_LINK( DbaIndexDialog, OnEntryEdited, SvLBoxEntry*, _pEntry ) - { - Indexes::iterator aPosition = m_pIndexes->begin() + reinterpret_cast<sal_IntPtr>(_pEntry->GetUserData()); - - OSL_ENSURE(aPosition >= m_pIndexes->begin() && aPosition < m_pIndexes->end(), - "DbaIndexDialog::OnEntryEdited: invalid entry!"); - - String sNewName = m_aIndexes.GetEntryText(_pEntry); - - Indexes::const_iterator aSameName = m_pIndexes->find(sNewName); - if ((aSameName != aPosition) && (m_pIndexes->end() != aSameName)) - { - String sError(ModuleRes(STR_INDEX_NAME_ALREADY_USED)); - sError.SearchAndReplaceAscii("$name$", sNewName); - ErrorBox aError(this, WB_OK, sError); - aError.Execute(); - - updateToolbox(); - m_bEditAgain = sal_True; - PostUserEvent(LINK(this, DbaIndexDialog, OnEditIndexAgain), _pEntry); - return 0L; - } - - aPosition->sName = sNewName; - - // rename can be done by a drop/insert combination only - if (aPosition->isNew()) - { - updateToolbox(); - // no commitment needed here .... - return 1L; - } - - if (aPosition->sName != aPosition->getOriginalName()) - { - aPosition->setModified(sal_True); - updateToolbox(); - } - - return 1L; - } - - //------------------------------------------------------------------ - sal_Bool DbaIndexDialog::implSaveModified(sal_Bool _bPlausibility) - { - if (m_pPreviousSelection) - { - // try to commit the previously selected index - if (m_pFields->IsModified() && !m_pFields->SaveModified()) - return sal_False; - - Indexes::iterator aPreviouslySelected = m_pIndexes->begin() + reinterpret_cast<sal_IntPtr>(m_pPreviousSelection->GetUserData()); - - // the unique flag - aPreviouslySelected->bUnique = m_aUnique.IsChecked(); - if (m_aUnique.GetSavedValue() != m_aUnique.GetState()) - aPreviouslySelected->setModified(sal_True); - - // the fields - m_pFields->commitTo(aPreviouslySelected->aFields); - if (m_pFields->GetSavedValue() != aPreviouslySelected->aFields) - aPreviouslySelected->setModified(sal_True); - - // plausibility checks - if (_bPlausibility && !implCheckPlausibility(aPreviouslySelected)) - return sal_False; - } - - return sal_True; - } - - //------------------------------------------------------------------ - sal_Bool DbaIndexDialog::implCheckPlausibility(const ConstIndexesIterator& _rPos) - { - // need at least one field - if (0 == _rPos->aFields.size()) - { - ErrorBox aError(this, ModuleRes(ERR_NEED_INDEX_FIELDS)); - aError.Execute(); - m_pFields->GrabFocus(); - return sal_False; - } - - // no double fields - DECLARE_STL_STDKEY_SET( String, StringBag ); - StringBag aExistentFields; - for ( ConstIndexFieldsIterator aFieldCheck = _rPos->aFields.begin(); - aFieldCheck != _rPos->aFields.end(); - ++aFieldCheck - ) - { - if (aExistentFields.end() != aExistentFields.find(aFieldCheck->sFieldName)) - { - // a column is specified twice ... won't work anyway, so prevent this here and now - String sMessage(ModuleRes(STR_INDEXDESIGN_DOUBLE_COLUMN_NAME)); - sMessage.SearchAndReplaceAscii("$name$", aFieldCheck->sFieldName); - ErrorBox aError(this, WB_OK, sMessage); - aError.Execute(); - m_pFields->GrabFocus(); - return sal_False; - } - aExistentFields.insert(aFieldCheck->sFieldName); - } - - return sal_True; - } - - //------------------------------------------------------------------ - sal_Bool DbaIndexDialog::implCommitPreviouslySelected() - { - if (m_pPreviousSelection) - { - Indexes::iterator aPreviouslySelected = m_pIndexes->begin() + reinterpret_cast<sal_IntPtr>(m_pPreviousSelection->GetUserData()); - - if (!implSaveModified()) - return sal_False; - - // commit the index (if necessary) - if (aPreviouslySelected->isModified() && !implCommit(m_pPreviousSelection)) - return sal_False; - } - - return sal_True; - } - - //------------------------------------------------------------------ - IMPL_LINK( DbaIndexDialog, OnModified, void*, /*NOTINTERESTEDIN*/ ) - { - OSL_ENSURE(m_pPreviousSelection, "DbaIndexDialog, OnModified: invalid call!"); - Indexes::iterator aPosition = m_pIndexes->begin() + reinterpret_cast<sal_IntPtr>(m_pPreviousSelection->GetUserData()); - - aPosition->setModified(sal_True); - updateToolbox(); - - return 1L; - } - - //------------------------------------------------------------------ - void DbaIndexDialog::updateControls(const SvLBoxEntry* _pEntry) - { - if (_pEntry) - { - // the descriptor of the selected index - Indexes::const_iterator aSelectedIndex = m_pIndexes->begin() + reinterpret_cast<sal_IntPtr>(_pEntry->GetUserData()); - - // fill the controls - m_aUnique.Check(aSelectedIndex->bUnique); - m_aUnique.Enable(!aSelectedIndex->bPrimaryKey); - m_aUnique.SaveValue(); - - m_pFields->initializeFrom(aSelectedIndex->aFields); - m_pFields->Enable(!aSelectedIndex->bPrimaryKey); - m_pFields->SaveValue(); - - m_aDescription.SetText(aSelectedIndex->sDescription); - m_aDescription.Enable(!aSelectedIndex->bPrimaryKey); - - m_aDescriptionLabel.Enable(!aSelectedIndex->bPrimaryKey); - } - else - { - m_aUnique.Check(sal_False); - m_pFields->initializeFrom(IndexFields()); - m_aDescription.SetText(String()); - } - } - - //------------------------------------------------------------------ - IMPL_LINK( DbaIndexDialog, OnIndexSelected, DbaIndexList*, /*NOTINTERESTEDIN*/ ) - { - m_aIndexes.EndSelection(); - - if (m_aIndexes.IsEditingActive()) - m_aIndexes.EndEditing(sal_False); - - // commit the old data - if (m_aIndexes.FirstSelected() != m_pPreviousSelection) - { // (this call may happen in case somebody ended an in-place edit with 'return', so we need to check this before committing) - if (!implCommitPreviouslySelected()) - { - m_aIndexes.SelectNoHandlerCall(m_pPreviousSelection); - return 1L; - } - } - - sal_Bool bHaveSelection = (NULL != m_aIndexes.FirstSelected()); - - // disable/enable the detail controls - m_aIndexDetails.Enable(bHaveSelection); - m_aUnique.Enable(bHaveSelection); - m_aDescriptionLabel.Enable(bHaveSelection); - m_aFieldsLabel.Enable(bHaveSelection); - m_pFields->Enable(bHaveSelection); - - SvLBoxEntry* pNewSelection = m_aIndexes.FirstSelected(); - updateControls(pNewSelection); - if (bHaveSelection) - m_aIndexes.GrabFocus(); - - m_pPreviousSelection = pNewSelection; - - updateToolbox(); - return 0L; - } - // ----------------------------------------------------------------------------- - void DbaIndexDialog::StateChanged( StateChangedType nType ) - { - ModalDialog::StateChanged( nType ); - - if ( nType == STATE_CHANGE_CONTROLBACKGROUND ) - { - // Check if we need to get new images for normal/high contrast mode - checkImageList(); - } - else if ( nType == STATE_CHANGE_TEXT ) - { - // The physical toolbar changed its outlook and shows another logical toolbar! - // We have to set the correct high contrast mode on the new tbx manager. - // pMgr->SetHiContrast( IsHiContrastMode() ); - checkImageList(); - } - } - // ----------------------------------------------------------------------------- - void DbaIndexDialog::DataChanged( const DataChangedEvent& rDCEvt ) - { - ModalDialog::DataChanged( rDCEvt ); - - if ((( rDCEvt.GetType() == DATACHANGED_SETTINGS ) || - ( rDCEvt.GetType() == DATACHANGED_DISPLAY )) && - ( rDCEvt.GetFlags() & SETTINGS_STYLE )) - { - // Check if we need to get new images for normal/high contrast mode - checkImageList(); - } - } - //------------------------------------------------------------------ - ImageList DbaIndexDialog::getImageList(sal_Int16 _eBitmapSet) const - { - sal_Int16 nN = IMG_INDEX_DLG_SC; - if ( _eBitmapSet == SFX_SYMBOLS_SIZE_LARGE ) - { - nN = IMG_INDEX_DLG_LC; - } - return ImageList( nN ); - } - //------------------------------------------------------------------ - void DbaIndexDialog::resizeControls(const Size& _rDiff) - { - // we use large images so we must change them - if ( _rDiff.Width() || _rDiff.Height() ) - { - Size aDlgSize = GetSizePixel(); - // adjust size of dlg - SetSizePixel(Size(aDlgSize.Width() + _rDiff.Width(), - aDlgSize.Height() + _rDiff.Height()) - ); - Size aIndexSize = m_aIndexes.GetSizePixel(); - m_aIndexes.SetPosSizePixel(m_aIndexes.GetPosPixel() + Point(0,_rDiff.Height()), - Size(aIndexSize.Width() + _rDiff.Width(), - aIndexSize.Height())); - - //now move the rest to the left side - Point aMove(_rDiff.Width(),_rDiff.Height()); - m_aIndexDetails.SetPosPixel(m_aIndexDetails.GetPosPixel() + aMove); - m_aDescriptionLabel.SetPosPixel(m_aDescriptionLabel.GetPosPixel() + aMove); - m_aDescription.SetPosPixel(m_aDescription.GetPosPixel() + aMove); - m_aUnique.SetPosPixel(m_aUnique.GetPosPixel() + aMove); - m_aFieldsLabel.SetPosPixel(m_aFieldsLabel.GetPosPixel() + aMove); - OSL_ENSURE(m_pFields,"NO valid fields!"); - m_pFields->SetPosPixel(m_pFields->GetPosPixel() + aMove); - m_aClose.SetPosPixel(m_aClose.GetPosPixel() + aMove); - m_aHelp.SetPosPixel(m_aHelp.GetPosPixel() + aMove); - - Invalidate(); - } - } - -//...................................................................... -} // namespace dbaui -//...................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/indexdialog.hrc b/dbaccess/source/ui/dlg/indexdialog.hrc deleted file mode 100644 index 003bcf6a0..000000000 --- a/dbaccess/source/ui/dlg/indexdialog.hrc +++ /dev/null @@ -1,49 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_INDEXDIALOG_HRC_ -#define _DBAUI_INDEXDIALOG_HRC_ - - -#define CTR_INDEXLIST 1 -#define CTR_FIELDS 2 - -#define FL_INDEXDETAILS 1 - -#define CB_UNIQUE 1 - -#define FT_FIELDS 1 -#define FT_DESC_LABEL 2 -#define FT_DESCRIPTION 3 - -#define TLB_ACTIONS 1 - -#define PB_CLOSE 1 - -#define HB_HELP 1 - -#endif // _DBAUI_INDEXDIALOG_HRC_ diff --git a/dbaccess/source/ui/dlg/indexdialog.src b/dbaccess/source/ui/dlg/indexdialog.src deleted file mode 100644 index d77706f5e..000000000 --- a/dbaccess/source/ui/dlg/indexdialog.src +++ /dev/null @@ -1,235 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif -#ifndef _DBAUI_INDEXDIALOG_HRC_ -#include "indexdialog.hrc" -#endif -#ifndef DBACCESS_UI_BROWSER_ID_HXX -#include "browserids.hxx" -#endif -#ifndef _DBA_DBACCESS_HELPID_HRC_ -#include "dbaccess_helpid.hrc" -#endif - -#define DIALOG_SIZE_X 220 -#define DIALOG_SIZE_Y 140 -#define BUTTON_SIZE_X 50 -#define BUTTON_SIZE_Y 14 - -#define LIST_WIDTH 70 - -ModalDialog DLG_INDEXDESIGN -{ - HelpID = "dbaccess:ModalDialog:DLG_INDEXDESIGN"; - OutputSize = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( DIALOG_SIZE_X , DIALOG_SIZE_Y ) ; - Text [ en-US ] = "Indexes" ; - Moveable = TRUE ; - Closeable = TRUE ; - - ToolBox TLB_ACTIONS - { - Pos = MAP_APPFONT ( 6 , 6 ) ; - ButtonType = BUTTON_SYMBOL; - Align = BOXALIGN_TOP; - HelpId = HID_INDEX_DIALOG_ACTION_TB; - Customize = FALSE; - ItemImageList = IMG_INDEX_DLG_SC ; - - ItemList = - { - ToolBoxItem - { - Identifier = ID_INDEX_NEW; - HelpId = HID_DLGIDX_NEWINDEX; - Command = ".index:createNew"; - Text [ en-US ] = "New Index" ; - }; - ToolBoxItem - { - Identifier = ID_INDEX_DROP; - HelpId = HID_DLGIDX_DROPINDEX; - Command = ".index:dropCurrent"; - Text [ en-US ] = "Delete Current Index" ; - }; - ToolBoxItem - { - Identifier = ID_INDEX_RENAME; - HelpId = HID_DLGIDX_RENAMEINDEX; - Command = ".index:renameCurrent"; - Text [ en-US ] = "Rename Current Index" ; - }; - ToolBoxItem - { - Identifier = ID_INDEX_SAVE; - HelpId = HID_DLGIDX_SAVEINDEX; - Command = ".index:saveCurrent"; - Text [ en-US ] = "Save Current Index" ; - }; - ToolBoxItem - { - Identifier = ID_INDEX_RESET; - HelpId = HID_DLGIDX_RESETINDEX; - Command = ".index:resetCurrent"; - Text [ en-US ] = "Reset Current Index" ; - }; - }; - }; - Control CTR_INDEXLIST - { - Pos = MAP_APPFONT ( 6 , 23 ) ; - Size = MAP_APPFONT ( LIST_WIDTH , DIALOG_SIZE_Y - (BUTTON_SIZE_Y + 4) - 29 ) ; - SVLook = TRUE; - Border = TRUE; - - HelpId = HID_DLGIDX_INDEXLIST; - TabStop = TRUE ; - }; - FixedLine FL_INDEXDETAILS - { - Pos = MAP_APPFONT ( LIST_WIDTH + 16 - 3, 9 ) ; - Size = MAP_APPFONT ( DIALOG_SIZE_X - LIST_WIDTH - 22, 8 ) ; - Text [ en-US ] = "Index details"; - }; - FixedText FT_DESC_LABEL - { - Pos = MAP_APPFONT ( LIST_WIDTH + 16, 23 ) ; - Size = MAP_APPFONT ( 50, 8 ) ; - Text [ en-US ] = "Index identifier:"; - }; - FixedText FT_DESCRIPTION - { - Pos = MAP_APPFONT ( LIST_WIDTH + 69, 23 ) ; - Size = MAP_APPFONT ( DIALOG_SIZE_X - LIST_WIDTH - 75, 8 ) ; - }; - CheckBox CB_UNIQUE - { - HelpID = "dbaccess:CheckBox:DLG_INDEXDESIGN:CB_UNIQUE"; - Pos = MAP_APPFONT ( LIST_WIDTH + 16, 34 ) ; - Size = MAP_APPFONT ( DIALOG_SIZE_X - LIST_WIDTH - 22, 8 ) ; - SVLook = TRUE; - Text [ en-US ] = "~Unique"; - }; - FixedText FT_FIELDS - { - Pos = MAP_APPFONT ( LIST_WIDTH + 16, 48 ) ; - Size = MAP_APPFONT ( DIALOG_SIZE_X - LIST_WIDTH - 22, 8 ) ; - SVLook = TRUE; - Text [ en-US ] = "Fields"; - }; - Control CTR_FIELDS - { - Pos = MAP_APPFONT ( LIST_WIDTH + 16, 59 ) ; - Size = MAP_APPFONT ( DIALOG_SIZE_X - LIST_WIDTH - 22, DIALOG_SIZE_Y - (BUTTON_SIZE_Y + 4) - 65 ) ; - SVLook = TRUE; - Border = TRUE; - TabStop = TRUE ; - }; - PushButton PB_CLOSE - { - HelpID = "dbaccess:PushButton:DLG_INDEXDESIGN:PB_CLOSE"; - Pos = MAP_APPFONT ( DIALOG_SIZE_X - BUTTON_SIZE_X - 6 - BUTTON_SIZE_X - 6, DIALOG_SIZE_Y - BUTTON_SIZE_Y - 6 ) ; - Size = MAP_APPFONT ( BUTTON_SIZE_X, BUTTON_SIZE_Y ); - SVLook = TRUE; - DefButton = TRUE; - Text [ en-US ] = "~Close"; - }; - HelpButton HB_HELP - { - Pos = MAP_APPFONT ( DIALOG_SIZE_X - BUTTON_SIZE_X - 6, DIALOG_SIZE_Y - BUTTON_SIZE_Y - 6 ) ; - Size = MAP_APPFONT ( BUTTON_SIZE_X, BUTTON_SIZE_Y ); - }; -}; - -String STR_TAB_INDEX_SORTORDER -{ - Text [ en-US ] = "Sort order" ; -}; - -String STR_TAB_INDEX_FIELD -{ - Text [ en-US ] = "Index field" ; -}; - -String STR_ORDER_ASCENDING -{ - Text [ en-US ] = "Ascending" ; -}; - -String STR_ORDER_DESCENDING -{ - Text [ en-US ] = "Descending" ; -}; - -String STR_CONFIRM_DROP_INDEX -{ - Text [ en-US ] = "Do you really want to delete the index '$name$'?"; -}; - -String STR_LOGICAL_INDEX_NAME -{ - Text [ en-US ] = "index"; -}; - -Image IMG_PKEYICON -{ - ImageBitmap = Bitmap { File = "pkey.png"; }; - MaskColor = Color { Red = 0xFFFF; Green = 0x0; Blue = 0xFFFF; }; -}; - -ErrorBox ERR_NEED_INDEX_FIELDS -{ - Title [ en-US ] = "Save Index"; - - Message [ en-US ] = "The index must contain at least one field."; - - Buttons = WB_OK; -}; - -QueryBox QUERY_SAVE_CURRENT_INDEX -{ - Title [ en-US ] = "Exit Index Design"; - - Message [ en-US ] = "Do you want to save the changes made to the current index?"; - - Buttons = WB_YES_NO_CANCEL; - DefButton = WB_DEF_YES; -}; - -String STR_INDEX_NAME_ALREADY_USED -{ - Text [ en-US ] = "There is already another index named \"$name$\"."; -}; - -String STR_INDEXDESIGN_DOUBLE_COLUMN_NAME -{ - Text [ en-US ] = "In an index definition, no table column may occur more than once. However, you have entered column \"$name$\" twice."; -}; diff --git a/dbaccess/source/ui/dlg/indexfieldscontrol.cxx b/dbaccess/source/ui/dlg/indexfieldscontrol.cxx deleted file mode 100644 index 96f9cd224..000000000 --- a/dbaccess/source/ui/dlg/indexfieldscontrol.cxx +++ /dev/null @@ -1,509 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "indexfieldscontrol.hxx" -#include "dbu_dlg.hrc" -#include <osl/diagnose.h> -#include "dbaccess_helpid.hrc" - -//...................................................................... -namespace dbaui -{ -//...................................................................... - -#define BROWSER_STANDARD_FLAGS BROWSER_COLUMNSELECTION | BROWSER_HLINESFULL | BROWSER_VLINESFULL | \ - BROWSER_HIDECURSOR | BROWSER_HIDESELECT | BROWSER_AUTO_HSCROLL | BROWSER_AUTO_VSCROLL - -#define COLUMN_ID_FIELDNAME 1 -#define COLUMN_ID_ORDER 2 - - using namespace ::com::sun::star::uno; - using namespace ::svt; - - //================================================================== - //= DbaMouseDownListBoxController - //================================================================== - class DbaMouseDownListBoxController : public ListBoxCellController - { - protected: - Link m_aOriginalModifyHdl; - Link m_aAdditionalModifyHdl; - - public: - DbaMouseDownListBoxController(ListBoxControl* _pParent) - :ListBoxCellController(_pParent) - { - } - - void SetAdditionalModifyHdl(const Link& _rHdl); - - protected: - virtual sal_Bool WantMouseEvent() const { return sal_True; } - virtual void SetModifyHdl(const Link& _rHdl); - - private: - void implCheckLinks(); - DECL_LINK( OnMultiplexModify, void* ); - }; - - //------------------------------------------------------------------ - void DbaMouseDownListBoxController::SetAdditionalModifyHdl(const Link& _rHdl) - { - m_aAdditionalModifyHdl = _rHdl; - implCheckLinks(); - } - - //------------------------------------------------------------------ - void DbaMouseDownListBoxController::SetModifyHdl(const Link& _rHdl) - { - m_aOriginalModifyHdl = _rHdl; - implCheckLinks(); - } - - //------------------------------------------------------------------ - IMPL_LINK( DbaMouseDownListBoxController, OnMultiplexModify, void*, _pArg ) - { - if (m_aAdditionalModifyHdl.IsSet()) - m_aAdditionalModifyHdl.Call(_pArg); - if (m_aOriginalModifyHdl.IsSet()) - m_aOriginalModifyHdl.Call(_pArg); - return 0L; - } - - //------------------------------------------------------------------ - void DbaMouseDownListBoxController::implCheckLinks() - { - if (m_aAdditionalModifyHdl.IsSet() || m_aOriginalModifyHdl.IsSet()) - ListBoxCellController::SetModifyHdl(LINK(this, DbaMouseDownListBoxController, OnMultiplexModify)); - else - ListBoxCellController::SetModifyHdl(Link()); - } - - //================================================================== - //= IndexFieldsControl - //================================================================== -DBG_NAME(IndexFieldsControl) -//------------------------------------------------------------------ - IndexFieldsControl::IndexFieldsControl( Window* _pParent, const ResId& _rId ,sal_Int32 _nMaxColumnsInIndex,sal_Bool _bAddIndexAppendix) - :EditBrowseBox(_pParent, _rId, EBBF_SMART_TAB_TRAVEL | EBBF_ACTIVATE_ON_BUTTONDOWN, BROWSER_STANDARD_FLAGS) - ,m_aSeekRow(m_aFields.end()) - ,m_pSortingCell(NULL) - ,m_pFieldNameCell(NULL) - ,m_nMaxColumnsInIndex(_nMaxColumnsInIndex) - ,m_bAddIndexAppendix(_bAddIndexAppendix) - { - DBG_CTOR(IndexFieldsControl,NULL); - - SetUniqueId( UID_DLGINDEX_INDEXDETAILS_BACK ); - GetDataWindow().SetUniqueId( UID_DLGINDEX_INDEXDETAILS_MAIN ); - } - - //------------------------------------------------------------------ - IndexFieldsControl::~IndexFieldsControl() - { - delete m_pSortingCell; - delete m_pFieldNameCell; - - DBG_DTOR(IndexFieldsControl,NULL); - } - - //------------------------------------------------------------------ - sal_Bool IndexFieldsControl::SeekRow(long nRow) - { - if (!EditBrowseBox::SeekRow(nRow)) - return sal_False; - - if (nRow < 0) - { - m_aSeekRow = m_aFields.end(); - } - else - { - m_aSeekRow = m_aFields.begin() + nRow; - OSL_ENSURE(m_aSeekRow <= m_aFields.end(), "IndexFieldsControl::SeekRow: invalid row!"); - } - - return sal_True; - } - - //------------------------------------------------------------------ - void IndexFieldsControl::PaintCell( OutputDevice& _rDev, const Rectangle& _rRect, sal_uInt16 _nColumnId ) const - { - Point aPos(_rRect.TopLeft()); - aPos.X() += 1; - - String aText = GetRowCellText(m_aSeekRow,_nColumnId); - Size TxtSize(GetDataWindow().GetTextWidth(aText), GetDataWindow().GetTextHeight()); - - // clipping - if (aPos.X() < _rRect.Right() || aPos.X() + TxtSize.Width() > _rRect.Right() || - aPos.Y() < _rRect.Top() || aPos.Y() + TxtSize.Height() > _rRect.Bottom()) - _rDev.SetClipRegion( _rRect ); - - // allow for a disabled control ... - sal_Bool bEnabled = IsEnabled(); - Color aOriginalColor = _rDev.GetTextColor(); - if (!bEnabled) - _rDev.SetTextColor(GetSettings().GetStyleSettings().GetDisableColor()); - - // draw the text - _rDev.DrawText(aPos, aText); - - // reset the color (if necessary) - if (!bEnabled) - _rDev.SetTextColor(aOriginalColor); - - if (_rDev.IsClipRegion()) - _rDev.SetClipRegion(); - } - - //------------------------------------------------------------------ - void IndexFieldsControl::initializeFrom(const IndexFields& _rFields) - { - // copy the field descriptions - m_aFields = _rFields; - m_aSeekRow = m_aFields.end(); - - SetUpdateMode(sal_False); - // remove all rows - RowRemoved(1, GetRowCount()); - // insert rows for the the fields - RowInserted(GetRowCount(), m_aFields.size(), sal_False); - // insert an additional row for a new field for that index - RowInserted(GetRowCount(), 1, sal_False); - SetUpdateMode(sal_True); - - GoToRowColumnId(0, COLUMN_ID_FIELDNAME); - } - - //------------------------------------------------------------------ - void IndexFieldsControl::commitTo(IndexFields& _rFields) - { - // do not just copy the array, we may have empty field names (which should not be copied) - _rFields.resize(m_aFields.size()); - ConstIndexFieldsIterator aSource = m_aFields.begin(); - ConstIndexFieldsIterator aSourceEnd = m_aFields.end(); - IndexFieldsIterator aDest = _rFields.begin(); - for (; aSource < aSourceEnd; ++aSource) - if (0 != aSource->sFieldName.Len()) - { - *aDest = *aSource; - ++aDest; - } - - _rFields.resize(aDest - _rFields.begin()); - } - - //------------------------------------------------------------------ - sal_uInt32 IndexFieldsControl::GetTotalCellWidth(long _nRow, sal_uInt16 _nColId) - { - if (COLUMN_ID_ORDER == _nColId) - { - sal_Int32 nWidthAsc = GetTextWidth(m_sAscendingText) + GetSettings().GetStyleSettings().GetScrollBarSize(); - sal_Int32 nWidthDesc = GetTextWidth(m_sDescendingText) + GetSettings().GetStyleSettings().GetScrollBarSize(); - // maximum plus some additional space - return (nWidthAsc > nWidthDesc ? nWidthAsc : nWidthDesc) + GetTextWidth('0') * 2; - } - return EditBrowseBox::GetTotalCellWidth(_nRow, _nColId); - } - - //------------------------------------------------------------------ - void IndexFieldsControl::Init(const Sequence< ::rtl::OUString >& _rAvailableFields) - { - RemoveColumns(); - - // for the width: both columns together should be somewhat smaller than the whole window (without the scrollbar) - sal_Int32 nFieldNameWidth = GetSizePixel().Width(); - - if ( m_bAddIndexAppendix ) - { - m_sAscendingText = String(ModuleRes(STR_ORDER_ASCENDING)); - m_sDescendingText = String(ModuleRes(STR_ORDER_DESCENDING)); - - // the "sort order" column - String sColumnName = String(ModuleRes(STR_TAB_INDEX_SORTORDER)); - // the width of the order column is the maximum widths of the texts used - // (the title of the column) - sal_Int32 nSortOrderColumnWidth = GetTextWidth(sColumnName); - // ("ascending" + scrollbar width) - sal_Int32 nOther = GetTextWidth(m_sAscendingText) + GetSettings().GetStyleSettings().GetScrollBarSize(); - nSortOrderColumnWidth = nSortOrderColumnWidth > nOther ? nSortOrderColumnWidth : nOther; - // ("descending" + scrollbar width) - nOther = GetTextWidth(m_sDescendingText) + GetSettings().GetStyleSettings().GetScrollBarSize(); - nSortOrderColumnWidth = nSortOrderColumnWidth > nOther ? nSortOrderColumnWidth : nOther; - // (plus some additional space) - nSortOrderColumnWidth += GetTextWidth('0') * 2; - InsertDataColumn(COLUMN_ID_ORDER, sColumnName, nSortOrderColumnWidth, HIB_STDSTYLE, 1); - - m_pSortingCell = new ListBoxControl(&GetDataWindow()); - m_pSortingCell->InsertEntry(m_sAscendingText); - m_pSortingCell->InsertEntry(m_sDescendingText); - m_pSortingCell->SetHelpId( HID_DLGINDEX_INDEXDETAILS_SORTORDER ); - - nFieldNameWidth -= nSortOrderColumnWidth; - } - StyleSettings aSystemStyle = Application::GetSettings().GetStyleSettings(); - nFieldNameWidth -= aSystemStyle.GetScrollBarSize(); - nFieldNameWidth -= 8; - // the "field name" column - String sColumnName = String(ModuleRes(STR_TAB_INDEX_FIELD)); - InsertDataColumn(COLUMN_ID_FIELDNAME, sColumnName, nFieldNameWidth, HIB_STDSTYLE, 0); - - // create the cell controllers - // for the field name cell - m_pFieldNameCell = new ListBoxControl(&GetDataWindow()); - m_pFieldNameCell->InsertEntry(String()); - m_pFieldNameCell->SetHelpId( HID_DLGINDEX_INDEXDETAILS_FIELD ); - const ::rtl::OUString* pFields = _rAvailableFields.getConstArray(); - const ::rtl::OUString* pFieldsEnd = pFields + _rAvailableFields.getLength(); - for (;pFields < pFieldsEnd; ++pFields) - m_pFieldNameCell->InsertEntry(*pFields); - } - - //------------------------------------------------------------------ - CellController* IndexFieldsControl::GetController(long _nRow, sal_uInt16 _nColumnId) - { - if (!IsEnabled()) - return NULL; - - ConstIndexFieldsIterator aRow; - sal_Bool bNewField = !implGetFieldDesc(_nRow, aRow); - - DbaMouseDownListBoxController* pReturn = NULL; - switch (_nColumnId) - { - case COLUMN_ID_ORDER: - if (!bNewField && m_pSortingCell && 0 != aRow->sFieldName.Len()) - pReturn = new DbaMouseDownListBoxController(m_pSortingCell); - break; - - case COLUMN_ID_FIELDNAME: - pReturn = new DbaMouseDownListBoxController(m_pFieldNameCell); - break; - - default: - OSL_FAIL("IndexFieldsControl::GetController: invalid column id!"); - } - - if (pReturn) - pReturn->SetAdditionalModifyHdl(LINK(this, IndexFieldsControl, OnListEntrySelected)); - - return pReturn; - } - - //------------------------------------------------------------------ - sal_Bool IndexFieldsControl::implGetFieldDesc(long _nRow, ConstIndexFieldsIterator& _rPos) - { - _rPos = m_aFields.end(); - if ((_nRow < 0) || (_nRow >= (sal_Int32)m_aFields.size())) - return sal_False; - _rPos = m_aFields.begin() + _nRow; - return sal_True; - } - - //------------------------------------------------------------------ - sal_Bool IndexFieldsControl::IsModified() const - { - return EditBrowseBox::IsModified(); - } - - //------------------------------------------------------------------ - sal_Bool IndexFieldsControl::SaveModified() - { - if (!IsModified()) - return sal_True; - - switch (GetCurColumnId()) - { - case COLUMN_ID_FIELDNAME: - { - String sFieldSelected = m_pFieldNameCell->GetSelectEntry(); - sal_Bool bEmptySelected = 0 == sFieldSelected.Len(); - if (isNewField()) - { - if (!bEmptySelected) - { - // add a new field to the collection - OIndexField aNewField; - aNewField.sFieldName = sFieldSelected; - m_aFields.push_back(aNewField); - RowInserted(GetRowCount(), 1, sal_True); - } - } - else - { - sal_Int32 nRow = GetCurRow(); - OSL_ENSURE(nRow < (sal_Int32)m_aFields.size(), "IndexFieldsControl::SaveModified: invalid current row!"); - if (nRow >= 0) // may be -1 in case the control was empty - { - // remove the field from the selection - IndexFieldsIterator aPos = m_aFields.begin() + nRow; - - if (bEmptySelected) - { - aPos->sFieldName = String(); - - // invalidate the row to force repaint - Invalidate(GetRowRectPixel(nRow)); - return sal_True; - } - - if (sFieldSelected == aPos->sFieldName) - // nothing changed - return sal_True; - - aPos->sFieldName = sFieldSelected; - } - } - - Invalidate(GetRowRectPixel(GetCurRow())); - } - break; - case COLUMN_ID_ORDER: - { - OSL_ENSURE(!isNewField(), "IndexFieldsControl::SaveModified: why the hell ...!!!"); - // selected entry - sal_uInt16 nPos = m_pSortingCell->GetSelectEntryPos(); - OSL_ENSURE(LISTBOX_ENTRY_NOTFOUND != nPos, "IndexFieldsControl::SaveModified: how did you get this selection??"); - // adjust the sort flag in the index field description - OIndexField& rCurrentField = m_aFields[GetCurRow()]; - rCurrentField.bSortAscending = (0 == nPos); - - } - break; - default: - OSL_FAIL("IndexFieldsControl::SaveModified: invalid column id!"); - } - return sal_True; - } - - //------------------------------------------------------------------ - void IndexFieldsControl::InitController(CellControllerRef& /*_rController*/, long _nRow, sal_uInt16 _nColumnId) - { - ConstIndexFieldsIterator aFieldDescription; - sal_Bool bNewField = !implGetFieldDesc(_nRow, aFieldDescription); - - switch (_nColumnId) - { - case COLUMN_ID_FIELDNAME: - m_pFieldNameCell->SelectEntry(bNewField ? String() : aFieldDescription->sFieldName); - m_pFieldNameCell->SaveValue(); - break; - - case COLUMN_ID_ORDER: - m_pSortingCell->SelectEntry(aFieldDescription->bSortAscending ? m_sAscendingText : m_sDescendingText); - m_pSortingCell->SaveValue(); - break; - - default: - OSL_FAIL("IndexFieldsControl::InitController: invalid column id!"); - } - } - - //------------------------------------------------------------------ - IMPL_LINK( IndexFieldsControl, OnListEntrySelected, ListBox*, _pBox ) - { - if (!_pBox->IsTravelSelect() && m_aModifyHdl.IsSet()) - m_aModifyHdl.Call(this); - - if (_pBox == m_pFieldNameCell) - { // a field has been selected - if (GetCurRow() >= GetRowCount() - 2) - { // and we're in one of the last two rows - String sSelectedEntry = m_pFieldNameCell->GetSelectEntry(); - sal_Int32 nCurrentRow = GetCurRow(); - sal_Int32 rowCount = GetRowCount(); - - OSL_ENSURE(((sal_Int32)(m_aFields.size() + 1)) == rowCount, "IndexFieldsControl::OnListEntrySelected: inconsistence!"); - - if (sSelectedEntry.Len() && (nCurrentRow == rowCount - 1) /*&& (!m_nMaxColumnsInIndex || rowCount < m_nMaxColumnsInIndex )*/ ) - { // in the last row, an non-empty string has been selected - // -> insert a new row - m_aFields.push_back(OIndexField()); - RowInserted(GetRowCount(), 1); - Invalidate(GetRowRectPixel(nCurrentRow)); - } - else if (!sSelectedEntry.Len() && (nCurrentRow == rowCount - 2)) - { // in the (last-1)th row, an empty entry has been selected - // -> remove the last row - m_aFields.erase(m_aFields.end() - 1); - RowRemoved(GetRowCount() - 1, 1); - Invalidate(GetRowRectPixel(nCurrentRow)); - } - } - - SaveModified(); - } - return 0L; - } - //------------------------------------------------------------------ - String IndexFieldsControl::GetCellText(long _nRow,sal_uInt16 nColId) const - { - ConstIndexFieldsIterator aRow = m_aFields.end(); - if ( _nRow >= 0 ) - { - aRow = m_aFields.begin() + _nRow; - OSL_ENSURE(aRow <= m_aFields.end(), "IndexFieldsControl::SeekRow: invalid row!"); - } - return GetRowCellText(aRow,nColId); - } - //------------------------------------------------------------------ - String IndexFieldsControl::GetRowCellText(const ConstIndexFieldsIterator& _rRow,sal_uInt16 nColId) const - { - if (_rRow < m_aFields.end()) - { - switch (nColId) - { - case COLUMN_ID_FIELDNAME: - return _rRow->sFieldName; - case COLUMN_ID_ORDER: - if (0 == _rRow->sFieldName.Len()) - return String(); - else - return _rRow->bSortAscending ? m_sAscendingText : m_sDescendingText; - default: - OSL_FAIL("IndexFieldsControl::GetCurrentRowCellText: invalid column id!"); - } - } - return String(); - } - //------------------------------------------------------------------ - sal_Bool IndexFieldsControl::IsTabAllowed(sal_Bool /*bForward*/) const - { - return sal_False; - } - //------------------------------------------------------------------ - -//...................................................................... -} // namespace dbaui -//...................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/odbcconfig.cxx b/dbaccess/source/ui/dlg/odbcconfig.cxx deleted file mode 100644 index a4579a76e..000000000 --- a/dbaccess/source/ui/dlg/odbcconfig.cxx +++ /dev/null @@ -1,382 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "odbcconfig.hxx" - -#ifdef SYSTEM_ODBC_HEADERS -#include <sqltypes.h> -#else -#include <odbc/sqltypes.h> -#endif - -#include <rtl/bootstrap.hxx> -#include <rtl/ustring.hxx> -#include <rtl/ustrbuf.hxx> -#include <osl/diagnose.h> -#include <osl/process.h> -#include <osl/thread.hxx> -#include <tools/debug.hxx> -#include <vcl/svapp.hxx> - -#ifdef HAVE_ODBC_SUPPORT - -#if defined WNT -#define ODBC_LIBRARY "ODBC32.DLL" -#define ODBC_UI_LIBRARY "ODBCCP32.DLL" -#endif -#ifdef UNX -#ifdef MACOSX -#define ODBC_LIBRARY "libiodbc.dylib" -#define ODBC_UI_LIBRARY "libiodbcinst.dylib" -#else -#define ODBC_LIBRARY_1 "libodbc.so.1" -#define ODBC_UI_LIBRARY_1 "libodbcinst.so.1" -#define ODBC_LIBRARY "libodbc.so" -#define ODBC_UI_LIBRARY "libodbcinst.so" -#endif -#endif - -// just to go with calling convention of windows -// so don't touch this -#if defined(WNT) -#define SQL_API __stdcall -// At least under some circumstances, the below #include <odbc/sqlext.h> re- -// defines SQL_API to an empty string, leading to a compiler warning on MSC; to -// not break the current behavior, this is worked around by locally disabling -// that warning: -#if defined _MSC_VER -#pragma warning(push) -#pragma warning(disable: 4005) -#endif -#endif // defined(WNT) - -#ifdef SYSTEM_ODBC_HEADERS -#include <sqlext.h> -#else -#include <odbc/sqlext.h> -#endif - -#if defined(WNT) -#if defined _MSC_VER -#pragma warning(pop) -#endif -#undef SQL_API -#define SQL_API __stdcall -#endif // defined(WNT) -// from here on you can do what you want to - -#else - -#define ODBC_LIBRARY "" -#define ODBC_UI_LIBRARY "" - -#endif // HAVE_ODBC_SUPPORT - -//......................................................................... -namespace dbaui -{ -//......................................................................... - - -#ifdef HAVE_ODBC_SUPPORT -typedef SQLRETURN (SQL_API* TSQLManageDataSource) (SQLHWND hwndParent); -typedef SQLRETURN (SQL_API* TSQLAllocHandle) (SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE* OutputHandlePtr); -typedef SQLRETURN (SQL_API* TSQLFreeHandle) (SQLSMALLINT HandleType, SQLHANDLE Handle); -typedef SQLRETURN (SQL_API* TSQLSetEnvAttr) (SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER ValuePtr, SQLINTEGER StringLength); -typedef SQLRETURN (SQL_API* TSQLDataSources) (SQLHENV EnvironmentHandle, SQLUSMALLINT Direction, SQLCHAR* ServerName, - SQLSMALLINT BufferLength1, SQLSMALLINT* NameLength1Ptr, SQLCHAR* Description, SQLSMALLINT BufferLength2, SQLSMALLINT* NameLength2Ptr); - -#define NSQLManageDataSource(a) (*(TSQLManageDataSource)(m_pSQLManageDataSource))(a) -#define NSQLAllocHandle(a,b,c) (*(TSQLAllocHandle)(m_pAllocHandle))(a,b,c) -#define NSQLFreeHandle(a,b) (*(TSQLFreeHandle)(m_pFreeHandle))(a,b) -#define NSQLSetEnvAttr(a,b,c,d) (*(TSQLSetEnvAttr)(m_pSetEnvAttr))(a,b,c,d) -#define NSQLDataSources(a,b,c,d,e,f,g,h) (*(TSQLDataSources)(m_pDataSources))(a,b,c,d,e,f,g,h) -#endif - -//========================================================================= -//= OOdbcLibWrapper -//========================================================================= -DBG_NAME(OOdbcLibWrapper) -//------------------------------------------------------------------------- -#ifdef HAVE_ODBC_SUPPORT -OOdbcLibWrapper::OOdbcLibWrapper() - :m_pOdbcLib(NULL) -{ - DBG_CTOR(OOdbcLibWrapper,NULL); - -} -#endif - -//------------------------------------------------------------------------- -sal_Bool OOdbcLibWrapper::load(const sal_Char* _pLibPath) -{ - m_sLibPath = ::rtl::OUString::createFromAscii(_pLibPath); -#ifdef HAVE_ODBC_SUPPORT - // load the module - m_pOdbcLib = osl_loadModule(m_sLibPath.pData, SAL_LOADMODULE_NOW); - return (NULL != m_pOdbcLib); -#endif -} - -//------------------------------------------------------------------------- -void OOdbcLibWrapper::unload() -{ -#ifdef HAVE_ODBC_SUPPORT - if (isLoaded()) - { - osl_unloadModule(m_pOdbcLib); - m_pOdbcLib = NULL; - } -#endif -} - -//------------------------------------------------------------------------- -oslGenericFunction OOdbcLibWrapper::loadSymbol(const sal_Char* _pFunctionName) -{ - return osl_getFunctionSymbol(m_pOdbcLib, ::rtl::OUString::createFromAscii(_pFunctionName).pData); -} - -//------------------------------------------------------------------------- -OOdbcLibWrapper::~OOdbcLibWrapper() -{ - unload(); - - DBG_DTOR(OOdbcLibWrapper,NULL); -} - -//========================================================================= -//= OOdbcEnumeration -//========================================================================= -struct OdbcTypesImpl -{ -#ifdef HAVE_ODBC_SUPPORT - SQLHANDLE hEnvironment; - OdbcTypesImpl() : hEnvironment(0) { } -#else - void* pDummy; -#endif -}; -DBG_NAME(OOdbcEnumeration) -//------------------------------------------------------------------------- -OOdbcEnumeration::OOdbcEnumeration() -#ifdef HAVE_ODBC_SUPPORT - :m_pAllocHandle(NULL) - ,m_pSetEnvAttr(NULL) - ,m_pDataSources(NULL) - ,m_pImpl(new OdbcTypesImpl) -#endif -{ - DBG_CTOR(OOdbcEnumeration,NULL); - - sal_Bool bLoaded = load(ODBC_LIBRARY); -#ifdef ODBC_LIBRARY_1 - if ( !bLoaded ) - bLoaded = load(ODBC_LIBRARY_1); -#endif - - if ( bLoaded ) - { -#ifdef HAVE_ODBC_SUPPORT - // load the generic functions - m_pAllocHandle = loadSymbol("SQLAllocHandle"); - m_pFreeHandle = loadSymbol("SQLFreeHandle"); - m_pSetEnvAttr = loadSymbol("SQLSetEnvAttr"); - m_pDataSources = loadSymbol("SQLDataSources"); - - // all or nothing - if (!m_pAllocHandle || !m_pSetEnvAttr || !m_pDataSources || !m_pFreeHandle) - { - unload(); - m_pAllocHandle = m_pFreeHandle = m_pSetEnvAttr = m_pDataSources = NULL; - } -#endif - } -} - -//------------------------------------------------------------------------- -OOdbcEnumeration::~OOdbcEnumeration() -{ - freeEnv(); - delete m_pImpl; - - DBG_DTOR(OOdbcEnumeration,NULL); -} - -//------------------------------------------------------------------------- -sal_Bool OOdbcEnumeration::allocEnv() -{ - OSL_ENSURE(isLoaded(), "OOdbcEnumeration::allocEnv: not loaded!"); - if (!isLoaded()) - return sal_False; - -#ifdef HAVE_ODBC_SUPPORT - if (m_pImpl->hEnvironment) - // nothing to do - return sal_True; - SQLRETURN nResult = NSQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &m_pImpl->hEnvironment); - if (SQL_SUCCESS != nResult) - // can't do anything without environment - return sal_False; - - NSQLSetEnvAttr(m_pImpl->hEnvironment, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER); - return sal_True; -#else - return sal_False; -#endif -} - -//------------------------------------------------------------------------- -void OOdbcEnumeration::freeEnv() -{ -#ifdef HAVE_ODBC_SUPPORT - if (m_pImpl->hEnvironment) - NSQLFreeHandle(SQL_HANDLE_ENV, m_pImpl->hEnvironment); - m_pImpl->hEnvironment = 0; -#endif -} - -//------------------------------------------------------------------------- -void OOdbcEnumeration::getDatasourceNames(StringBag& _rNames) -{ - OSL_ENSURE(isLoaded(), "OOdbcEnumeration::getDatasourceNames: not loaded!"); - if (!isLoaded()) - return; - - if (!allocEnv()) - { - OSL_FAIL("OOdbcEnumeration::getDatasourceNames: could not allocate an ODBC environment!"); - return; - } - -#ifdef HAVE_ODBC_SUPPORT - // now that we have an environment collect the data source names - UCHAR szDSN[SQL_MAX_DSN_LENGTH+1]; - SWORD pcbDSN; - UCHAR szDescription[1024+1]; - SWORD pcbDescription; - SQLRETURN nResult = SQL_SUCCESS; - rtl_TextEncoding nTextEncoding = osl_getThreadTextEncoding(); - - for ( nResult = NSQLDataSources(m_pImpl->hEnvironment, SQL_FETCH_FIRST, szDSN, sizeof(szDSN), &pcbDSN, szDescription, sizeof(szDescription)-1, &pcbDescription); - ; - nResult = NSQLDataSources(m_pImpl->hEnvironment, SQL_FETCH_NEXT, szDSN, sizeof(szDSN), &pcbDSN, szDescription, sizeof(szDescription)-1, &pcbDescription) - ) - { - if (nResult != SQL_SUCCESS) - // no further error handling - break; - else - { - ::rtl::OUString aCurrentDsn(reinterpret_cast<const char*>(szDSN),pcbDSN, nTextEncoding); - _rNames.insert(aCurrentDsn); - } - } -#endif -} - -#ifdef HAVE_ODBC_ADMINISTRATION - -//========================================================================= -//= ProcessTerminationWait -//========================================================================= -class ProcessTerminationWait : public ::osl::Thread -{ - oslProcess m_hProcessHandle; - Link m_aFinishHdl; - -public: - ProcessTerminationWait( oslProcess _hProcessHandle, const Link& _rFinishHdl ) - :m_hProcessHandle( _hProcessHandle ) - ,m_aFinishHdl( _rFinishHdl ) - { - } - -protected: - virtual void SAL_CALL run() - { - osl_joinProcess( m_hProcessHandle ); - osl_freeProcessHandle( m_hProcessHandle ); - Application::PostUserEvent( m_aFinishHdl ); - } -}; - -//========================================================================= -//= OOdbcManagement -//========================================================================= -//------------------------------------------------------------------------- -OOdbcManagement::OOdbcManagement( const Link& _rAsyncFinishCallback ) - :m_pProcessWait( NULL ) - ,m_aAsyncFinishCallback( _rAsyncFinishCallback ) -{ -} - -//------------------------------------------------------------------------- -OOdbcManagement::~OOdbcManagement() -{ - // wait for our thread to be finished - if ( m_pProcessWait.get() ) - m_pProcessWait->join(); -} - -//------------------------------------------------------------------------- -bool OOdbcManagement::manageDataSources_async() -{ - OSL_PRECOND( !isRunning(), "OOdbcManagement::manageDataSources_async: still running from the previous call!" ); - if ( isRunning() ) - return false; - - // this is done in an external process, due to #i78733# - // (and note this whole functionality is supported on Windows only, ATM) - ::rtl::OUString sExecutableName( RTL_CONSTASCII_USTRINGPARAM( "$OOO_BASE_DIR/program/odbcconfig.exe" ) ); - ::rtl::Bootstrap::expandMacros( sExecutableName ); //TODO: detect failure - oslProcess hProcessHandle(0); - oslProcessError eError = osl_executeProcess( sExecutableName.pData, NULL, 0, 0, NULL, NULL, NULL, 0, &hProcessHandle ); - if ( eError != osl_Process_E_None ) - return false; - - m_pProcessWait.reset( new ProcessTerminationWait( hProcessHandle, m_aAsyncFinishCallback ) ); - m_pProcessWait->create(); - return true; -} - -//------------------------------------------------------------------------- -bool OOdbcManagement::isRunning() const -{ - return ( m_pProcessWait.get() && m_pProcessWait->isRunning() ); -} - -#endif // HAVE_ODBC_ADMINISTRATION - -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/odbcconfig.hxx b/dbaccess/source/ui/dlg/odbcconfig.hxx deleted file mode 100644 index e35338a19..000000000 --- a/dbaccess/source/ui/dlg/odbcconfig.hxx +++ /dev/null @@ -1,142 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_ODBC_CONFIG_HXX_ -#define _DBAUI_ODBC_CONFIG_HXX_ - -#include "commontypes.hxx" - -#if defined(WNT) || defined (UNX) -#define HAVE_ODBC_SUPPORT -#endif - -#if defined(WNT) && defined(HAVE_ODBC_SUPPORT) -#define HAVE_ODBC_ADMINISTRATION -#endif - -#include <tools/link.hxx> -#include <osl/module.h> - -#include <memory> - -//......................................................................... -namespace dbaui -{ -//......................................................................... - -//========================================================================= -//= OOdbcLibWrapper -//========================================================================= -/** base for helper classes wrapping functionality from an ODBC library -*/ -class OOdbcLibWrapper -{ - oslModule m_pOdbcLib; // the library handle - ::rtl::OUString m_sLibPath; // the path to the library - -public: -#ifdef HAVE_ODBC_SUPPORT - sal_Bool isLoaded() const { return NULL != m_pOdbcLib; } -#else - sal_Bool isLoaded() const { return sal_False; } -#endif - ::rtl::OUString getLibraryName() const { return m_sLibPath; } - -protected: -#ifndef HAVE_ODBC_SUPPORT - OOdbcLibWrapper() : m_pOdbcLib(NULL) { } -#else - OOdbcLibWrapper(); -#endif - ~OOdbcLibWrapper(); - - oslGenericFunction loadSymbol(const sal_Char* _pFunctionName); - - /// load the lib - sal_Bool load(const sal_Char* _pLibPath); - /// unload the lib - void unload(); -}; - -//========================================================================= -//= OOdbcEnumeration -//========================================================================= -struct OdbcTypesImpl; -class OOdbcEnumeration : public OOdbcLibWrapper -{ -#ifdef HAVE_ODBC_SUPPORT - // entry points for ODBC administration - oslGenericFunction m_pAllocHandle; - oslGenericFunction m_pFreeHandle; - oslGenericFunction m_pSetEnvAttr; - oslGenericFunction m_pDataSources; - -#endif - OdbcTypesImpl* m_pImpl; - // needed because we can't have a member of type SQLHANDLE: this would require us to include the respective - // ODBC file, which would lead to a lot of conflicts with other includes - -public: - OOdbcEnumeration(); - ~OOdbcEnumeration(); - - void getDatasourceNames(StringBag& _rNames); - -protected: - /// ensure that an ODBC environment is allocated - sal_Bool allocEnv(); - /// free any allocated ODBC environment - void freeEnv(); -}; - -//========================================================================= -//= OOdbcManagement -//========================================================================= -#ifdef HAVE_ODBC_ADMINISTRATION -class ProcessTerminationWait; -class OOdbcManagement -{ - ::std::auto_ptr< ProcessTerminationWait > m_pProcessWait; - Link m_aAsyncFinishCallback; - -public: - OOdbcManagement( const Link& _rAsyncFinishCallback ); - ~OOdbcManagement(); - - bool manageDataSources_async(); - bool isRunning() const; -}; -#endif - -//......................................................................... -} // namespace dbaui -//......................................................................... - -#endif // _DBAUI_ODBC_CONFIG_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/optionalboolitem.cxx b/dbaccess/source/ui/dlg/optionalboolitem.cxx deleted file mode 100644 index 050ab6e6f..000000000 --- a/dbaccess/source/ui/dlg/optionalboolitem.cxx +++ /dev/null @@ -1,79 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * -************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "optionalboolitem.hxx" - -//........................................................................ -namespace dbaui -{ -//........................................................................ - - //==================================================================== - //= OptionalBoolItem - //==================================================================== - TYPEINIT1( OptionalBoolItem, SfxPoolItem ); - //-------------------------------------------------------------------- - OptionalBoolItem::OptionalBoolItem( sal_Int16 _nWhich ) - :SfxPoolItem( _nWhich ) - ,m_aValue() - { - } - - //-------------------------------------------------------------------- - OptionalBoolItem::OptionalBoolItem( const OptionalBoolItem& _rSource ) - :SfxPoolItem( _rSource ) - ,m_aValue( _rSource.m_aValue ) - { - } - - //-------------------------------------------------------------------- - int OptionalBoolItem::operator==( const SfxPoolItem& _rItem ) const - { - const OptionalBoolItem* pCompare = PTR_CAST( OptionalBoolItem, &_rItem ); - if ( !pCompare ) - return 0; - - if ( m_aValue == pCompare->m_aValue ) - return 1; - - return 0; - } - - //-------------------------------------------------------------------- - SfxPoolItem* OptionalBoolItem::Clone( SfxItemPool* /*_pPool*/ ) const - { - return new OptionalBoolItem( *this ); - } - -//........................................................................ -} // namespace dbaui -//........................................................................ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/optionalboolitem.hxx b/dbaccess/source/ui/dlg/optionalboolitem.hxx deleted file mode 100644 index 6890ac7a2..000000000 --- a/dbaccess/source/ui/dlg/optionalboolitem.hxx +++ /dev/null @@ -1,70 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * -************************************************************************/ - -#ifndef DBACCESS_OPTIONALBOOLITEM_HXX -#define DBACCESS_OPTIONALBOOLITEM_HXX - -#include <svl/poolitem.hxx> - -#include <boost/optional.hpp> - -//........................................................................ -namespace dbaui -{ -//........................................................................ - - //==================================================================== - //= OptionalBoolItem - //==================================================================== - class OptionalBoolItem : public SfxPoolItem - { - ::boost::optional< bool > m_aValue; - - public: - TYPEINFO(); - OptionalBoolItem( sal_Int16 nWhich ); - OptionalBoolItem( const OptionalBoolItem& _rSource ); - - virtual int operator==( const SfxPoolItem& _rItem ) const; - virtual SfxPoolItem* Clone( SfxItemPool* _pPool = NULL ) const; - - bool HasValue() const { return !!m_aValue; } - void ClearValue() { m_aValue.reset(); } - bool GetValue() const { return *m_aValue; } - void SetValue( const bool _bValue ) { m_aValue.reset( _bValue ); } - - const ::boost::optional< bool >& - GetFullValue() const { return m_aValue; } - }; - -//........................................................................ -} // namespace dbaui -//........................................................................ - -#endif // DBACCESS_OPTIONALBOOLITEM_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/paramdialog.cxx b/dbaccess/source/ui/dlg/paramdialog.cxx deleted file mode 100644 index 6b801ece2..000000000 --- a/dbaccess/source/ui/dlg/paramdialog.cxx +++ /dev/null @@ -1,427 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "paramdialog.hxx" -#include "paramdialog.hrc" -#include "dbu_dlg.hrc" -#include "commontypes.hxx" -#include "moduledbu.hxx" -#include <com/sun/star/util/XNumberFormatter.hpp> -#include <com/sun/star/sdbc/DataType.hpp> -#include <connectivity/dbtools.hxx> -#include "dbustrings.hrc" -#include <vcl/svapp.hxx> -#include <vcl/msgbox.hxx> -#include <osl/diagnose.h> -#include <tools/diagnose_ex.h> -#include "localresaccess.hxx" -#include <unotools/syslocale.hxx> - -#define EF_VISITED 0x0001 -#define EF_DIRTY 0x0002 - -//......................................................................... -namespace dbaui -{ -//......................................................................... - - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::lang; - using namespace ::com::sun::star::beans; - using namespace ::com::sun::star::container; - using namespace ::com::sun::star::sdbc; - using namespace ::com::sun::star::util; - using namespace ::connectivity; - - //================================================================== - //= OParameterDialog - //================================================================== - - //------------------------------------------------------------------------------ - #define INIT_MEMBERS() \ - :ModalDialog( pParent, ModuleRes(DLG_PARAMETERS)) \ - ,m_aNamesFrame (this, ModuleRes(FL_PARAMS)) \ - ,m_aAllParams (this, ModuleRes(LB_ALLPARAMS)) \ - ,m_aValueFrame (this, ModuleRes(FT_VALUE)) \ - ,m_aParam (this, ModuleRes(ET_PARAM)) \ - ,m_aTravelNext (this, ModuleRes(BT_TRAVELNEXT)) \ - ,m_aOKBtn (this, ModuleRes(BT_OK)) \ - ,m_aCancelBtn (this, ModuleRes(BT_CANCEL)) \ - ,m_nCurrentlySelected(LISTBOX_ENTRY_NOTFOUND) \ - ,m_xConnection(_rxConnection) \ - ,m_aPredicateInput( _rxORB, _rxConnection, getParseContext() ) \ - ,m_bNeedErrorOnCurrent(sal_True) \ - - - //------------------------------------------------------------------------------ -DBG_NAME(OParameterDialog) - - OParameterDialog::OParameterDialog( - Window* pParent, const Reference< XIndexAccess > & rParamContainer, - const Reference< XConnection > & _rxConnection, const Reference< XMultiServiceFactory >& _rxORB) - INIT_MEMBERS() - { - DBG_CTOR(OParameterDialog,NULL); - - if (_rxORB.is()) - m_xFormatter = Reference< XNumberFormatter>(_rxORB->createInstance( - ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.util.NumberFormatter"))), UNO_QUERY); - else { - OSL_FAIL("OParameterDialog::OParameterDialog: need a service factory!"); - } - - Reference< XNumberFormatsSupplier > xNumberFormats = ::dbtools::getNumberFormats(m_xConnection, sal_True); - if (!xNumberFormats.is()) - ::comphelper::disposeComponent(m_xFormatter); - else if (m_xFormatter.is()) - m_xFormatter->attachNumberFormatsSupplier(xNumberFormats); - try - { - OSL_ENSURE(rParamContainer->getCount(), "OParameterDialog::OParameterDialog : can't handle empty containers !"); - - m_aFinalValues.realloc(rParamContainer->getCount()); - PropertyValue* pValues = m_aFinalValues.getArray(); - - for (sal_Int32 i = 0, nCount = rParamContainer->getCount(); i<nCount; ++i, ++pValues) - { - Reference< XPropertySet > xParamAsSet; - rParamContainer->getByIndex(i) >>= xParamAsSet; - OSL_ENSURE(xParamAsSet.is(),"Parameter is null!"); - if(!xParamAsSet.is()) - continue; - pValues->Name = ::comphelper::getString(xParamAsSet->getPropertyValue(PROPERTY_NAME)); - m_aAllParams.InsertEntry(pValues->Name); - - if (!pValues->Value.hasValue()) - // it won't have a value, 'cause it's default constructed. But may be later we support - // initializing this dialog with values - pValues->Value = makeAny(::rtl::OUString()); - // default the values to an empty string - - m_aVisitedParams.push_back(0); - // not visited, not dirty - } - - m_xParams = rParamContainer; - } - catch(Exception&) - { - DBG_UNHANDLED_EXCEPTION(); - } - - - Construct(); - - m_aResetVisitFlag.SetTimeoutHdl(LINK(this, OParameterDialog, OnVisitedTimeout)); - - FreeResource(); - } - - //------------------------------------------------------------------------------ - OParameterDialog::~OParameterDialog() - { - if (m_aResetVisitFlag.IsActive()) - m_aResetVisitFlag.Stop(); - - DBG_DTOR(OParameterDialog,NULL); - } - - //------------------------------------------------------------------------------ - void OParameterDialog::Construct() - { - m_aAllParams.SetSelectHdl(LINK(this, OParameterDialog, OnEntrySelected)); - m_aParam.SetLoseFocusHdl(LINK(this, OParameterDialog, OnValueLoseFocus)); - m_aParam.SetModifyHdl(LINK(this, OParameterDialog, OnValueModified)); - m_aTravelNext.SetClickHdl(LINK(this, OParameterDialog, OnButtonClicked)); - m_aOKBtn.SetClickHdl(LINK(this, OParameterDialog, OnButtonClicked)); - m_aCancelBtn.SetClickHdl(LINK(this, OParameterDialog, OnButtonClicked)); - - if (m_aAllParams.GetEntryCount()) - { - m_aAllParams.SelectEntryPos(0); - LINK(this, OParameterDialog, OnEntrySelected).Call(&m_aAllParams); - - if (m_aAllParams.GetEntryCount() == 1) - { - m_aTravelNext.Enable(sal_False); - } - - if (m_aAllParams.GetEntryCount() > 1) - { - m_aOKBtn.SetStyle(m_aOKBtn.GetStyle() & ~WB_DEFBUTTON); - m_aTravelNext.SetStyle(m_aTravelNext.GetStyle() | WB_DEFBUTTON); - } - } - - m_aParam.GrabFocus(); - } - - //------------------------------------------------------------------------------ - IMPL_LINK(OParameterDialog, OnValueLoseFocus, Control*, /*pSource*/) - { - if (m_nCurrentlySelected != LISTBOX_ENTRY_NOTFOUND) - { - if ( ( m_aVisitedParams[ m_nCurrentlySelected ] & EF_DIRTY ) == 0 ) - // nothing to do, the value isn't dirty - return 0L; - } - - // transform the current string according to the param field type - ::rtl::OUString sTransformedText(m_aParam.GetText()); - Reference< XPropertySet > xParamAsSet; - m_xParams->getByIndex(m_nCurrentlySelected) >>= xParamAsSet; - if (xParamAsSet.is()) - { - if (m_xConnection.is() && m_xFormatter.is()) - { - ::rtl::OUString sParamValue( m_aParam.GetText() ); - sal_Bool bValid = m_aPredicateInput.normalizePredicateString( sParamValue, xParamAsSet ); - m_aParam.SetText( sParamValue ); - if ( bValid ) - { - // with this the value isn't dirty anymore - if (m_nCurrentlySelected != LISTBOX_ENTRY_NOTFOUND) - m_aVisitedParams[m_nCurrentlySelected] &= ~EF_DIRTY; - } - else - { - if (!m_bNeedErrorOnCurrent) - return 1L; - - m_bNeedErrorOnCurrent = sal_False; // will be reset in OnValueModified - - ::rtl::OUString sName; - try - { - sName = ::comphelper::getString(xParamAsSet->getPropertyValue(PROPERTY_NAME)); - } - catch(Exception&) - { - DBG_UNHANDLED_EXCEPTION(); - } - - String sMessage; - { - LocalResourceAccess aDummy(DLG_PARAMETERS, RSC_MODALDIALOG); - sMessage = String(ModuleRes(STR_COULD_NOT_CONVERT_PARAM)); - } - sMessage.SearchAndReplaceAll(String::CreateFromAscii("$name$"), sName.getStr()); - ErrorBox(NULL, WB_OK, sMessage).Execute(); - m_aParam.GrabFocus(); - return 1L; - } - } - } - - return 0L; - } - - //------------------------------------------------------------------------------ - IMPL_LINK(OParameterDialog, OnButtonClicked, PushButton*, pButton) - { - if (&m_aCancelBtn == pButton) - { - // no interpreting of the given values anymore .... - m_aParam.SetLoseFocusHdl(Link()); // no direct call from the control anymore ... - m_bNeedErrorOnCurrent = sal_False; // in case of any indirect calls -> no error message - m_aCancelBtn.SetClickHdl(Link()); - m_aCancelBtn.Click(); - } - else if (&m_aOKBtn == pButton) - { - // transfer the current values into the Any - if (LINK(this, OParameterDialog, OnEntrySelected).Call(&m_aAllParams) != 0L) - { // there was an error interpreting the current text - m_bNeedErrorOnCurrent = sal_True; - // we're are out of the complex web :) of direct and indirect calls to OnValueLoseFocus now, - // so the next time it is called we need an error message, again .... - // (TODO : there surely are better solutions for this ...) - return 1L; - } - - if (m_xParams.is()) - { - // write the parameters - try - { - ::rtl::OUString sError; - PropertyValue* pValues = m_aFinalValues.getArray(); - for (sal_Int32 i = 0, nCount = m_xParams->getCount(); i<nCount; ++i, ++pValues) - { - Reference< XPropertySet > xParamAsSet; - m_xParams->getByIndex(i) >>= xParamAsSet; - - ::rtl::OUString sValue; - pValues->Value >>= sValue; - pValues->Value <<= ::rtl::OUString( m_aPredicateInput.getPredicateValue( sValue, xParamAsSet, sal_False ) ); - } - } - catch(Exception&) - { - DBG_UNHANDLED_EXCEPTION(); - } - - } - // to close the dialog (which is more code than a simple EndDialog) - m_aOKBtn.SetClickHdl(Link()); - m_aOKBtn.Click(); - } - else if (&m_aTravelNext == pButton) - { - sal_uInt16 nCurrent = m_aAllParams.GetSelectEntryPos(); - sal_uInt16 nCount = m_aAllParams.GetEntryCount(); - OSL_ENSURE(nCount == m_aVisitedParams.size(), "OParameterDialog::OnButtonClicked : inconsistent lists !"); - - // search the next entry in list we haven't visited yet - sal_uInt16 nNext = (nCurrent + 1) % nCount; - while ((nNext != nCurrent) && ( m_aVisitedParams[nNext] & EF_VISITED )) - nNext = (nNext + 1) % nCount; - - if ( m_aVisitedParams[nNext] & EF_VISITED ) - // there is no such "not visited yet" entry -> simpy take the next one - nNext = (nCurrent + 1) % nCount; - - m_aAllParams.SelectEntryPos(nNext); - LINK(this, OParameterDialog, OnEntrySelected).Call(&m_aAllParams); - m_bNeedErrorOnCurrent = sal_True; - // we're are out of the complex web :) of direct and indirect calls to OnValueLoseFocus now, - // so the next time it is called we need an error message, again .... - // (TODO : there surely are better solutions for this ...) - } - - return 0L; - } - - //------------------------------------------------------------------------------ - IMPL_LINK(OParameterDialog, OnEntrySelected, ListBox*, /*pList*/) - { - if (m_aResetVisitFlag.IsActive()) - { - LINK(this, OParameterDialog, OnVisitedTimeout).Call(&m_aResetVisitFlag); - m_aResetVisitFlag.Stop(); - } - // save the old values - if (m_nCurrentlySelected != LISTBOX_ENTRY_NOTFOUND) - { - // do the transformation of the current text - if (LINK(this, OParameterDialog, OnValueLoseFocus).Call(&m_aParam) != 0L) - { // there was an error interpreting the text - m_aAllParams.SelectEntryPos(m_nCurrentlySelected); - return 1L; - } - - m_aFinalValues[m_nCurrentlySelected].Value <<= ::rtl::OUString(m_aParam.GetText()); - } - - // initialize the controls with the new values - sal_uInt16 nSelected = m_aAllParams.GetSelectEntryPos(); - OSL_ENSURE(nSelected != LISTBOX_ENTRY_NOTFOUND, "OParameterDialog::OnEntrySelected : no current entry !"); - - m_aParam.SetText(::comphelper::getString(m_aFinalValues[nSelected].Value)); - m_nCurrentlySelected = nSelected; - - // with this the value isn't dirty - OSL_ENSURE(m_nCurrentlySelected < m_aVisitedParams.size(), "OParameterDialog::OnEntrySelected : invalid current entry !"); - m_aVisitedParams[m_nCurrentlySelected] &= ~EF_DIRTY; - - m_aResetVisitFlag.SetTimeout(1000); - m_aResetVisitFlag.Start(); - - return 0L; - } - - //------------------------------------------------------------------------------ - IMPL_LINK(OParameterDialog, OnVisitedTimeout, Timer*, /*pTimer*/) - { - OSL_ENSURE(m_nCurrentlySelected != LISTBOX_ENTRY_NOTFOUND, "OParameterDialog::OnVisitedTimeout : invalid call !"); - - // mark the currently selected entry as visited - OSL_ENSURE(m_nCurrentlySelected < m_aVisitedParams.size(), "OParameterDialog::OnVisitedTimeout : invalid entry !"); - m_aVisitedParams[m_nCurrentlySelected] |= EF_VISITED; - - // was it the last "not visited yet" entry ? - ConstByteVectorIterator aIter; - for ( aIter = m_aVisitedParams.begin(); - aIter < m_aVisitedParams.end(); - ++aIter - ) - { - if (((*aIter) & EF_VISITED) == 0) - break; - } - if (aIter == m_aVisitedParams.end()) - { // yes, there isn't another one -> change the "default button" - m_aTravelNext.SetStyle(m_aTravelNext.GetStyle() & ~WB_DEFBUTTON); - m_aOKBtn.SetStyle(m_aOKBtn.GetStyle() | WB_DEFBUTTON); - - // set to focus to one of the buttons temporary (with this their "default"-state is really updated) - Window* pOldFocus = Application::GetFocusWindow(); - - // if the old focus window is the value edit do some preparations ... - Selection aSel; - if (pOldFocus == &m_aParam) - { - m_aParam.SetLoseFocusHdl(Link()); - aSel = m_aParam.GetSelection(); - } - m_aTravelNext.GrabFocus(); - if (pOldFocus) - pOldFocus->GrabFocus(); - - // restore the settings for the value edit - if (pOldFocus == &m_aParam) - { - m_aParam.SetLoseFocusHdl(LINK(this, OParameterDialog, OnValueLoseFocus)); - m_aParam.SetSelection(aSel); - } - } - - return 0L; - } - - //------------------------------------------------------------------------------ - IMPL_LINK(OParameterDialog, OnValueModified, Control*, /*pBox*/) - { - // mark the currently selected entry as dirty - OSL_ENSURE(m_nCurrentlySelected < m_aVisitedParams.size(), "OParameterDialog::OnValueModified : invalid entry !"); - m_aVisitedParams[m_nCurrentlySelected] |= EF_DIRTY; - - m_bNeedErrorOnCurrent = sal_True; - - return 0L; - } - - -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/paramdialog.hrc b/dbaccess/source/ui/dlg/paramdialog.hrc deleted file mode 100644 index c344ef454..000000000 --- a/dbaccess/source/ui/dlg/paramdialog.hrc +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_PARAMDIALOG_HRC_ -#define _DBAUI_PARAMDIALOG_HRC_ - -#define LB_ALLPARAMS 1 -#define FL_PARAMS 2 -#define FT_VALUE 3 -#define ET_PARAM 4 -#define CB_NULLVAL 5 -#define BT_TRAVELNEXT 6 -#define BT_OK 7 -#define BT_CANCEL 8 -#define AB_PREV 9 -#define AB_NEXT 10 - - -#define STR_COULD_NOT_CONVERT_PARAM 1 - -#endif // _DBAUI_PARAMDIALOG_HRC_ - diff --git a/dbaccess/source/ui/dlg/paramdialog.src b/dbaccess/source/ui/dlg/paramdialog.src deleted file mode 100644 index 5840ae57b..000000000 --- a/dbaccess/source/ui/dlg/paramdialog.src +++ /dev/null @@ -1,102 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_PARAMDIALOG_HRC_ -#include "paramdialog.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif - -#define LIST_WIDTH 100 -#define LIST_HEIGHT 50 - -ModalDialog DLG_PARAMETERS -{ - HelpID = "dbaccess:ModalDialog:DLG_PARAMETERS"; - OutputSize = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( 6 + LIST_WIDTH + 3 + 6 + BUTTON_WIDTH + 6, 98 ) ; - Moveable = TRUE ; - Closeable = TRUE ; - - FixedLine FL_PARAMS - { - Pos = MAP_APPFONT ( 4 , 3 ) ; - Size = MAP_APPFONT ( 3 + LIST_WIDTH + 3 , 8 ) ; - Text [ en-US ] = "~Parameters"; - }; - ListBox LB_ALLPARAMS - { - HelpID = "dbaccess:ListBox:DLG_PARAMETERS:LB_ALLPARAMS"; - Pos = MAP_APPFONT ( 7 , 12 ) ; - Size = MAP_APPFONT ( LIST_WIDTH , LIST_HEIGHT ) ; - Border = TRUE; - SVLook = TRUE; - }; - FixedText FT_VALUE - { - Pos = MAP_APPFONT ( 7 , 12 + LIST_HEIGHT + 4 ) ; - Size = MAP_APPFONT ( LIST_WIDTH , 8 ) ; - Text [ en-US ] = "~Value"; - }; - Edit ET_PARAM - { - HelpID = "dbaccess:Edit:DLG_PARAMETERS:ET_PARAM"; - Border = TRUE ; - Pos = MAP_APPFONT ( 7 , 12 + LIST_HEIGHT + 4 + 8 + 3 ) ; - Size = MAP_APPFONT ( LIST_WIDTH , 12 ) ; - TabStop = TRUE ; - }; - PushButton BT_TRAVELNEXT - { - HelpID = "dbaccess:PushButton:DLG_PARAMETERS:BT_TRAVELNEXT"; - Pos = MAP_APPFONT ( 4 + 3 + LIST_WIDTH + 3 + 6 , 12 + LIST_HEIGHT + 4 + 8 + 3 + ( 12 - BUTTON_HEIGHT ) / 2) ; - Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ; - TabStop = TRUE ; - Text [ en-US ] = "~Next"; - }; - OKButton BT_OK - { - Pos = MAP_APPFONT ( 4 + 3 + LIST_WIDTH + 3 + 6 , 3 ) ; - Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ; - TabStop = TRUE ; - DefButton = TRUE ; - }; - CancelButton BT_CANCEL - { - Pos = MAP_APPFONT ( 4 + 3 + LIST_WIDTH + 3 + 6 , 3 + BUTTON_HEIGHT + 3 ) ; - Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ; - TabStop = TRUE ; - }; - Text [ en-US ] = "Parameter Input" ; - - String STR_COULD_NOT_CONVERT_PARAM - { - Text [ en-US ] = "The entry could not be converted to a valid value for the \"$name$\"column"; - }; -}; diff --git a/dbaccess/source/ui/dlg/queryfilter.cxx b/dbaccess/source/ui/dlg/queryfilter.cxx deleted file mode 100644 index 3e21d8de7..000000000 --- a/dbaccess/source/ui/dlg/queryfilter.cxx +++ /dev/null @@ -1,873 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "queryfilter.hxx" -#include "moduledbu.hxx" -#include <com/sun/star/sdbc/DataType.hpp> -#include <com/sun/star/util/Date.hpp> -#include <com/sun/star/util/DateTime.hpp> -#include <com/sun/star/util/Time.hpp> -#include <com/sun/star/sdb/XSQLQueryComposer.hpp> -#include <com/sun/star/sdbc/ColumnSearch.hpp> -#include <com/sun/star/sdbcx/XColumnsSupplier.hpp> -#include <com/sun/star/sdb/SQLFilterOperator.hpp> -#include <com/sun/star/sdbc/XRow.hpp> -#include <com/sun/star/sdbc/XResultSet.hpp> -#include <com/sun/star/container/XNameAccess.hpp> -#include <tools/diagnose_ex.h> -#include <osl/diagnose.h> -#include "moduledbu.hxx" -#include <connectivity/sqliterator.hxx> -#include <connectivity/dbtools.hxx> -#include "queryfilter.hrc" -#include "dbustrings.hrc" -#include <com/sun/star/sdb/XSingleSelectQueryComposer.hpp> -#include <com/sun/star/sdb/SQLFilterOperator.hpp> - -using namespace dbaui; -using namespace connectivity; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::lang; -using namespace ::com::sun::star::container; -using namespace ::com::sun::star::util; -using namespace ::com::sun::star::sdb; -using namespace ::com::sun::star::sdbc; -using namespace ::com::sun::star::sdbcx; -using namespace ::com::sun::star::sdb; -using namespace ::com::sun::star::beans; - -//------------------------------------------------------------------------------ -void Replace_OS_PlaceHolder(String& aString) -{ - while (aString.SearchAndReplace( '*', '%' ) != STRING_NOTFOUND) ; - while (aString.SearchAndReplace( '?', '_' ) != STRING_NOTFOUND) ; -} - -//------------------------------------------------------------------------------ -void Replace_SQL_PlaceHolder(String& aString) -{ - while (aString.SearchAndReplace( '%', '*' ) != STRING_NOTFOUND) ; - while (aString.SearchAndReplace( '_', '?' ) != STRING_NOTFOUND) ; -} - -DBG_NAME(DlgFilterCrit); -//------------------------------------------------------------------------------ -DlgFilterCrit::DlgFilterCrit(Window * pParent, - const Reference< XMultiServiceFactory >& _rxORB, - const Reference< XConnection>& _rxConnection, - const Reference< XSingleSelectQueryComposer >& _rxComposer, - const Reference< XNameAccess>& _rxCols - ) - :ModalDialog( pParent, ModuleRes( DLG_FILTERCRIT ) ) - ,aLB_WHEREFIELD1 ( this, ModuleRes( LB_WHEREFIELD1 ) ) - ,aLB_WHERECOMP1 ( this, ModuleRes( LB_WHERECOMP1 ) ) - ,aET_WHEREVALUE1 ( this, ModuleRes( ET_WHEREVALUE1 ) ) - ,aLB_WHERECOND2 ( this, ModuleRes( LB_WHERECOND2 ) ) - ,aLB_WHEREFIELD2 ( this, ModuleRes( LB_WHEREFIELD2 ) ) - ,aLB_WHERECOMP2 ( this, ModuleRes( LB_WHERECOMP2 ) ) - ,aET_WHEREVALUE2 ( this, ModuleRes( ET_WHEREVALUE2 ) ) - ,aLB_WHERECOND3 ( this, ModuleRes( LB_WHERECOND3 ) ) - ,aLB_WHEREFIELD3 ( this, ModuleRes( LB_WHEREFIELD3 ) ) - ,aLB_WHERECOMP3 ( this, ModuleRes( LB_WHERECOMP3 ) ) - ,aET_WHEREVALUE3 ( this, ModuleRes( ET_WHEREVALUE3 ) ) - ,aFT_WHEREFIELD ( this, ModuleRes( FT_WHEREFIELD ) ) - ,aFT_WHERECOMP ( this, ModuleRes( FT_WHERECOMP ) ) - ,aFT_WHEREVALUE ( this, ModuleRes( FT_WHEREVALUE ) ) - ,aFT_WHEREOPER ( this, ModuleRes( FT_WHEREOPER ) ) - ,aFL_FIELDS ( this, ModuleRes( FL_FIELDS ) ) - ,aBT_OK ( this, ModuleRes( BT_OK ) ) - ,aBT_CANCEL ( this, ModuleRes( BT_CANCEL ) ) - ,aBT_HELP ( this, ModuleRes( BT_HELP ) ) - ,aSTR_NOENTRY ( ModuleRes( STR_NOENTRY ) ) - ,aSTR_COMPARE_OPERATORS( ModuleRes( STR_COMPARE_OPERATORS ) ) - ,m_xQueryComposer(_rxComposer) - ,m_xColumns( _rxCols ) - ,m_xConnection( _rxConnection ) - ,m_xMetaData( _rxConnection->getMetaData() ) - ,m_aPredicateInput( _rxORB, _rxConnection, getParseContext() ) -{ - DBG_CTOR(DlgFilterCrit,NULL); - // Den String fuer noEntry in die ListBoxen der Feldnamen schreiben - aLB_WHEREFIELD1.InsertEntry( aSTR_NOENTRY ); - aLB_WHEREFIELD2.InsertEntry( aSTR_NOENTRY ); - aLB_WHEREFIELD3.InsertEntry( aSTR_NOENTRY ); - - try - { - // ... sowie auch die restlichen Felder - Sequence< ::rtl::OUString> aNames = m_xColumns->getElementNames(); - const ::rtl::OUString* pIter = aNames.getConstArray(); - const ::rtl::OUString* pEnd = pIter + aNames.getLength(); - Reference<XPropertySet> xColumn; - for(;pIter != pEnd;++pIter) - { - try - { - xColumn.set( m_xColumns->getByName( *pIter ), UNO_QUERY_THROW ); - - sal_Int32 nDataType( 0 ); - OSL_VERIFY( xColumn->getPropertyValue( PROPERTY_TYPE ) >>= nDataType ); - sal_Int32 eColumnSearch = ::dbtools::getSearchColumnFlag( m_xConnection, nDataType ); - if ( eColumnSearch == ColumnSearch::NONE ) - continue; - - sal_Bool bIsSearchable( sal_True ); - OSL_VERIFY( xColumn->getPropertyValue( PROPERTY_ISSEARCHABLE ) >>= bIsSearchable ); - if ( !bIsSearchable ) - continue; - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - aLB_WHEREFIELD1.InsertEntry( *pIter ); - aLB_WHEREFIELD2.InsertEntry( *pIter ); - aLB_WHEREFIELD3.InsertEntry( *pIter ); - } - - Reference<XNameAccess> xSelectColumns = Reference<XColumnsSupplier>(m_xQueryComposer,UNO_QUERY)->getColumns(); - aNames = xSelectColumns->getElementNames(); - pIter = aNames.getConstArray(); - pEnd = pIter + aNames.getLength(); - for(;pIter != pEnd;++pIter) - { - // don't insert a column name twice - if ( !m_xColumns->hasByName(*pIter) ) - { - xColumn.set(xSelectColumns->getByName(*pIter),UNO_QUERY); - OSL_ENSURE(xColumn.is(),"DlgFilterCrit::DlgFilterCrit: Column is null!"); - sal_Int32 nDataType(0); - xColumn->getPropertyValue(PROPERTY_TYPE) >>= nDataType; - sal_Int32 eColumnSearch = dbtools::getSearchColumnFlag(m_xConnection,nDataType); - // TODO - // !pColumn->IsFunction() - if(eColumnSearch != ColumnSearch::NONE) - { - aLB_WHEREFIELD1.InsertEntry( *pIter ); - aLB_WHEREFIELD2.InsertEntry( *pIter ); - aLB_WHEREFIELD3.InsertEntry( *pIter ); - } - } - } - // initialize the listboxes with noEntry - aLB_WHEREFIELD1.SelectEntryPos(0); - aLB_WHEREFIELD2.SelectEntryPos(0); - aLB_WHEREFIELD3.SelectEntryPos(0); - - // insert the criteria into the dialog - Sequence<Sequence<PropertyValue > > aValues = m_xQueryComposer->getStructuredFilter(); - fillLines(aValues); - aValues = m_xQueryComposer->getStructuredHavingClause(); - fillLines(aValues); - - } - catch(const Exception&) - { - FreeResource(); - throw; - } - - EnableLines(); - - aLB_WHEREFIELD1.SetSelectHdl(LINK(this,DlgFilterCrit,ListSelectHdl)); - aLB_WHEREFIELD2.SetSelectHdl(LINK(this,DlgFilterCrit,ListSelectHdl)); - aLB_WHEREFIELD3.SetSelectHdl(LINK(this,DlgFilterCrit,ListSelectHdl)); - - aLB_WHERECOMP1.SetSelectHdl(LINK(this,DlgFilterCrit,ListSelectCompHdl)); - aLB_WHERECOMP2.SetSelectHdl(LINK(this,DlgFilterCrit,ListSelectCompHdl)); - aLB_WHERECOMP3.SetSelectHdl(LINK(this,DlgFilterCrit,ListSelectCompHdl)); - - aET_WHEREVALUE1.SetLoseFocusHdl( LINK( this, DlgFilterCrit, PredicateLoseFocus ) ); - aET_WHEREVALUE2.SetLoseFocusHdl( LINK( this, DlgFilterCrit, PredicateLoseFocus ) ); - aET_WHEREVALUE3.SetLoseFocusHdl( LINK( this, DlgFilterCrit, PredicateLoseFocus ) ); - - if ( aET_WHEREVALUE1.IsEnabled() ) - aET_WHEREVALUE1.GrabFocus(); - - FreeResource(); -} -//------------------------------------------------------------------------------ -DlgFilterCrit::~DlgFilterCrit() -{ - DBG_DTOR(DlgFilterCrit,NULL); -} - -#define LbText(x) ((x).GetSelectEntry()) -#define LbPos(x) ((x).GetSelectEntryPos()) - -//------------------------------------------------------------------------------ -sal_Int32 DlgFilterCrit::GetOSQLPredicateType( const String& _rSelectedPredicate ) const -{ - sal_Int32 nPredicateIndex = -1; - for ( xub_StrLen i=0; i<aSTR_COMPARE_OPERATORS.GetTokenCount(); ++i) - if ( aSTR_COMPARE_OPERATORS.GetToken(i) == _rSelectedPredicate ) - { - nPredicateIndex = i; - break; - } - - sal_Int32 nPredicateType = SQLFilterOperator::NOT_SQLNULL; - switch ( nPredicateIndex ) - { - case 0: - nPredicateType = SQLFilterOperator::EQUAL; - break; - case 1: - nPredicateType = SQLFilterOperator::NOT_EQUAL; - break; - case 2: - nPredicateType = SQLFilterOperator::LESS; - break; - case 3: - nPredicateType = SQLFilterOperator::LESS_EQUAL; - break; - case 4: - nPredicateType = SQLFilterOperator::GREATER; - break; - case 5: - nPredicateType = SQLFilterOperator::GREATER_EQUAL; - break; - case 6: - nPredicateType = SQLFilterOperator::LIKE; - break; - case 7: - nPredicateType = SQLFilterOperator::NOT_LIKE; - break; - case 8: - nPredicateType = SQLFilterOperator::SQLNULL; - break; - case 9: - nPredicateType = SQLFilterOperator::NOT_SQLNULL; - break; - default: - OSL_FAIL( "DlgFilterCrit::GetOSQLPredicateType: unknown predicate string!" ); - break; - } - - return nPredicateType; -} -//------------------------------------------------------------------------------ -sal_uInt16 DlgFilterCrit::GetSelectionPos(sal_Int32 eType,const ListBox& rListBox) const -{ - sal_uInt16 nPos; - switch(eType) - { - case SQLFilterOperator::EQUAL: - nPos = 0; - break; - case SQLFilterOperator::NOT_EQUAL: - nPos = 1; - break; - case SQLFilterOperator::LESS: - nPos = 2; - break; - case SQLFilterOperator::LESS_EQUAL: - nPos = 3; - break; - case SQLFilterOperator::GREATER: - nPos = 4; - break; - case SQLFilterOperator::GREATER_EQUAL: - nPos = 5; - break; - case SQLFilterOperator::NOT_LIKE: - nPos = rListBox.GetEntryCount() > 2 ? rListBox.GetEntryCount()-3 : 0; - break; - case SQLFilterOperator::LIKE: - nPos = rListBox.GetEntryCount() > 2 ? rListBox.GetEntryCount()-4 : 1; - break; - case SQLFilterOperator::SQLNULL: - nPos = rListBox.GetEntryCount()-2; - break; - case SQLFilterOperator::NOT_SQLNULL: - nPos = rListBox.GetEntryCount()-1; - break; - default: - // TODO What value should this be? - nPos = 0; - break; - } - return nPos; -} -// ----------------------------------------------------------------------------- -sal_Bool DlgFilterCrit::getCondition(const ListBox& _rField,const ListBox& _rComp,const Edit& _rValue,PropertyValue& _rFilter) const -{ - sal_Bool bHaving = sal_False; - try - { - ::rtl::OUString sTableName; - sal_Bool bFunction = sal_False; - _rFilter.Name = _rField.GetSelectEntry(); - Reference< XPropertySet > xColumn = getQueryColumn(_rFilter.Name); - if ( xColumn.is() ) - { - Reference< XPropertySetInfo > xInfo = xColumn->getPropertySetInfo(); - if ( xInfo->hasPropertyByName(PROPERTY_REALNAME) ) - { - if ( xInfo->hasPropertyByName(PROPERTY_TABLENAME) ) - { - xColumn->getPropertyValue(PROPERTY_TABLENAME) >>= sTableName; - if ( sTableName.getLength() ) - { - // properly quote all parts of the table name, so e.g. <schema>.<table> becomes "<schema>"."<table>" - ::rtl::OUString aCatlog,aSchema,aTable; - ::dbtools::qualifiedNameComponents( m_xMetaData, sTableName, aCatlog, aSchema, aTable, ::dbtools::eInDataManipulation ); - sTableName = ::dbtools::composeTableName( m_xMetaData, aCatlog, aSchema, aTable, sal_True, ::dbtools::eInDataManipulation ); - } - } - xColumn->getPropertyValue(PROPERTY_REALNAME) >>= _rFilter.Name; - static ::rtl::OUString sAgg(RTL_CONSTASCII_USTRINGPARAM("AggregateFunction")); - if ( xInfo->hasPropertyByName(sAgg) ) - xColumn->getPropertyValue(sAgg) >>= bHaving; - static ::rtl::OUString sFunction(RTL_CONSTASCII_USTRINGPARAM("Function")); - if ( xInfo->hasPropertyByName(sFunction) ) - xColumn->getPropertyValue(sFunction) >>= bFunction; - } - if ( !bFunction ) - { - const ::rtl::OUString aQuote = m_xMetaData.is() ? m_xMetaData->getIdentifierQuoteString() : ::rtl::OUString(); - _rFilter.Name = ::dbtools::quoteName(aQuote,_rFilter.Name); - if ( sTableName.getLength() ) - { - static ::rtl::OUString sSep(RTL_CONSTASCII_USTRINGPARAM(".")); - sTableName += sSep; - sTableName += _rFilter.Name; - _rFilter.Name = sTableName; - } - } - } - } - catch(const Exception&) - { - } - - _rFilter.Handle = GetOSQLPredicateType( _rComp.GetSelectEntry() ); - if ( SQLFilterOperator::SQLNULL != _rFilter.Handle && _rFilter.Handle != SQLFilterOperator::NOT_SQLNULL ) - { - String sPredicateValue = m_aPredicateInput.getPredicateValue( _rValue.GetText(), getMatchingColumn( _rValue ), sal_True ); - ::Replace_OS_PlaceHolder( sPredicateValue ); - _rFilter.Value <<= ::rtl::OUString(sPredicateValue); - } - return bHaving; -} - -//------------------------------------------------------------------------------ -Reference< XPropertySet > DlgFilterCrit::getColumn( const ::rtl::OUString& _rFieldName ) const -{ - Reference< XPropertySet > xColumn; - try - { - if ( m_xColumns.is() && m_xColumns->hasByName( _rFieldName ) ) - m_xColumns->getByName( _rFieldName ) >>= xColumn; - - Reference< XNameAccess> xColumns = Reference< XColumnsSupplier >(m_xQueryComposer,UNO_QUERY)->getColumns(); - if ( xColumns.is() && !xColumn.is() ) - { - Sequence< ::rtl::OUString> aSeq = xColumns->getElementNames(); - const ::rtl::OUString* pIter = aSeq.getConstArray(); - const ::rtl::OUString* pEnd = pIter + aSeq.getLength(); - for(;pIter != pEnd;++pIter) - { - Reference<XPropertySet> xProp(xColumns->getByName(*pIter),UNO_QUERY); - if ( xProp.is() && xProp->getPropertySetInfo()->hasPropertyByName(PROPERTY_REALNAME) ) - { - ::rtl::OUString sRealName; - xProp->getPropertyValue(PROPERTY_REALNAME) >>= sRealName; - if ( sRealName == _rFieldName ) - { - if ( m_xColumns.is() && m_xColumns->hasByName( *pIter ) ) - m_xColumns->getByName( *pIter ) >>= xColumn; - break; - } - } - } - } - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - - return xColumn; -} -//------------------------------------------------------------------------------ -Reference< XPropertySet > DlgFilterCrit::getQueryColumn( const ::rtl::OUString& _rFieldName ) const -{ - Reference< XPropertySet > xColumn; - try - { - Reference< XNameAccess> xColumns = Reference< XColumnsSupplier >(m_xQueryComposer,UNO_QUERY)->getColumns(); - if ( xColumns.is() && xColumns->hasByName( _rFieldName ) ) - xColumns->getByName( _rFieldName ) >>= xColumn; - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - - return xColumn; -} - -//------------------------------------------------------------------------------ -Reference< XPropertySet > DlgFilterCrit::getMatchingColumn( const Edit& _rValueInput ) const -{ - // the name - ::rtl::OUString sField; - if ( &_rValueInput == &aET_WHEREVALUE1 ) - { - sField = aLB_WHEREFIELD1.GetSelectEntry(); - } - else if ( &_rValueInput == &aET_WHEREVALUE2 ) - { - sField = aLB_WHEREFIELD2.GetSelectEntry(); - } - else if ( &_rValueInput == &aET_WHEREVALUE3 ) - { - sField = aLB_WHEREFIELD3.GetSelectEntry(); - } - else { - OSL_FAIL( "DlgFilterCrit::getMatchingColumn: invalid event source!" ); - } - - // the field itself - return getColumn( sField ); -} - -//------------------------------------------------------------------------------ -IMPL_LINK( DlgFilterCrit, PredicateLoseFocus, Edit*, _pField ) -{ - OSL_ENSURE( _pField, "DlgFilterCrit::PredicateLoseFocus: invalid event source!" ); - if ( _pField ) - { - // retrieve the field affected - Reference< XPropertySet> xColumn( getMatchingColumn( *_pField ) ); - // and normalize it's content - if ( xColumn.is() ) - { - ::rtl::OUString sText( _pField->GetText() ); - m_aPredicateInput.normalizePredicateString( sText, xColumn ); - _pField->SetText( sText ); - } - } - - return 0L; -} - -//------------------------------------------------------------------------------ -//------------------------------------------------------------------------------ -void DlgFilterCrit::SetLine( sal_uInt16 nIdx,const PropertyValue& _rItem,sal_Bool _bOr ) -{ - DBG_CHKTHIS(DlgFilterCrit,NULL); - ::rtl::OUString aCondition; - _rItem.Value >>= aCondition; - String aStr = aCondition.getStr(); - ::Replace_SQL_PlaceHolder(aStr); - aStr.EraseTrailingChars(); - - Reference< XPropertySet > xColumn = getColumn( _rItem.Name ); - - // remove the predicate from the condition - switch(_rItem.Handle) - { - case SQLFilterOperator::EQUAL: - // aStr.Erase(0,1); - break; - case SQLFilterOperator::NOT_EQUAL: - aStr.Erase(0,2); - break; - case SQLFilterOperator::LESS: - aStr.Erase(0,1); - break; - case SQLFilterOperator::LESS_EQUAL: - aStr.Erase(0,2); - break; - case SQLFilterOperator::GREATER: - aStr.Erase(0,1); - break; - case SQLFilterOperator::GREATER_EQUAL: - aStr.Erase(0,2); - break; - case SQLFilterOperator::NOT_LIKE: - aStr.Erase(0,8); - break; - case SQLFilterOperator::LIKE: - aStr.Erase(0,4); - break; - case SQLFilterOperator::SQLNULL: - aStr.Erase(0,7); - break; - case SQLFilterOperator::NOT_SQLNULL: - aStr.Erase(0,11); - break; - } - aStr.EraseLeadingChars(); - - // to make sure that we only set first three - ListBox* pColumnListControl = NULL; - ListBox* pPredicateListControl = NULL; - Edit* pPredicateValueControl = NULL; - switch( nIdx ) - { - case 0: - pColumnListControl = &aLB_WHEREFIELD1; - pPredicateListControl = &aLB_WHERECOMP1; - pPredicateValueControl = &aET_WHEREVALUE1; - break; - - case 1: - aLB_WHERECOND2.SelectEntryPos( _bOr ? 1 : 0 ); - - pColumnListControl = &aLB_WHEREFIELD2; - pPredicateListControl = &aLB_WHERECOMP2; - pPredicateValueControl = &aET_WHEREVALUE2; - break; - - case 2: - aLB_WHERECOND3.SelectEntryPos( _bOr ? 1 : 0 ); - - pColumnListControl = &aLB_WHEREFIELD3; - pPredicateListControl = &aLB_WHERECOMP3; - pPredicateValueControl = &aET_WHEREVALUE3; - break; - } - - if ( pColumnListControl && pPredicateListControl && pPredicateValueControl ) - { - ::rtl::OUString sName; - if ( xColumn.is() ) - xColumn->getPropertyValue(PROPERTY_NAME) >>= sName; - else - sName = _rItem.Name; - // select the appropriate field name - SelectField( *pColumnListControl, sName ); - ListSelectHdl( pColumnListControl ); - - // select the appropriate condition - pPredicateListControl->SelectEntryPos( GetSelectionPos( (sal_Int32)_rItem.Handle, *pPredicateListControl ) ); - - // initially normalize this value - ::rtl::OUString aString( aStr ); - m_aPredicateInput.normalizePredicateString( aString, xColumn ); - pPredicateValueControl->SetText( aString ); - } -} - -//------------------------------------------------------------------------------ -void DlgFilterCrit::SelectField( ListBox& rBox, const String& rField ) -{ - DBG_CHKTHIS(DlgFilterCrit,NULL); - sal_uInt16 nCnt = rBox.GetEntryCount(); - - for( sal_uInt16 i=0 ; i<nCnt ; i++ ) - { - if(rBox.GetEntry(i) == rField) - { - rBox.SelectEntryPos(i); - return; - } - } - - rBox.SelectEntryPos(0); -} - -//------------------------------------------------------------------------------ -void DlgFilterCrit::EnableLines() -{ - DBG_CHKTHIS(DlgFilterCrit,NULL); - // Enablen/Disablen ganzer Zeilen - if( LbPos(aLB_WHEREFIELD1) == 0 ) - { - aLB_WHEREFIELD2.Disable(); - aLB_WHERECOND2.Disable(); - aLB_WHERECOMP2.Disable(); - aET_WHEREVALUE2.Disable(); - - aLB_WHEREFIELD3.Disable(); - aLB_WHERECOND3.Disable(); - aLB_WHERECOMP3.Disable(); - aET_WHEREVALUE3.Disable(); - } - else - { - aLB_WHEREFIELD2.Enable(); - aLB_WHERECOND2.Enable(); - aLB_WHERECOMP2.Enable(); - aET_WHEREVALUE2.Enable(); - - aLB_WHEREFIELD3.Enable(); - aLB_WHERECOND3.Enable(); - aLB_WHERECOMP3.Enable(); - aET_WHEREVALUE3.Enable(); - } - - if( LbPos(aLB_WHEREFIELD2) == 0 ) - { - aLB_WHEREFIELD3.Disable(); - aLB_WHERECOND3.Disable(); - aLB_WHERECOMP3.Disable(); - aET_WHEREVALUE3.Disable(); - } - else - { - aLB_WHEREFIELD3.Enable(); - aLB_WHERECOND3.Enable(); - aLB_WHERECOMP3.Enable(); - aET_WHEREVALUE3.Enable(); - } - - // Vergleichsfeld gleich NOENTRY - if( LbPos(aLB_WHEREFIELD1) == 0 ) - { - aLB_WHERECOMP1.Disable(); - aET_WHEREVALUE1.Disable(); - } - else - { - aLB_WHEREFIELD1.Enable(); - aLB_WHERECOMP1.Enable(); - aET_WHEREVALUE1.Enable(); - } - - if( LbPos(aLB_WHEREFIELD2) == 0 ) - { - aLB_WHERECOND2.Disable(); - aLB_WHERECOMP2.Disable(); - aET_WHEREVALUE2.Disable(); - } - else - { - aLB_WHERECOND2.Enable(); - aLB_WHEREFIELD2.Enable(); - aLB_WHERECOMP2.Enable(); - aET_WHEREVALUE2.Enable(); - } - - if( LbPos(aLB_WHEREFIELD3) == 0 ) - { - aLB_WHERECOND3.Disable(); - aLB_WHERECOMP3.Disable(); - aET_WHEREVALUE3.Disable(); - } - else - { - aLB_WHERECOND3.Enable(); - aLB_WHERECOND3.Enable(); - aLB_WHEREFIELD3.Enable(); - aLB_WHERECOMP3.Enable(); - aET_WHEREVALUE3.Enable(); - } - - // Vergleichsoperator gleich ISNULL oder ISNOTNULL - if(aLB_WHERECOMP1.GetEntryCount() > 2 && - ((LbPos(aLB_WHERECOMP1) == aLB_WHERECOMP1.GetEntryCount()-1) || - (LbPos(aLB_WHERECOMP1) == aLB_WHERECOMP1.GetEntryCount()-2)) ) - aET_WHEREVALUE1.Disable(); - - if(aLB_WHERECOMP2.GetEntryCount() > 2 && - ((LbPos(aLB_WHERECOMP2) == aLB_WHERECOMP2.GetEntryCount()-1) || - (LbPos(aLB_WHERECOMP2) == aLB_WHERECOMP2.GetEntryCount()-2)) ) - aET_WHEREVALUE2.Disable(); - - if(aLB_WHERECOMP3.GetEntryCount() > 2 && - ((LbPos(aLB_WHERECOMP3) == aLB_WHERECOMP3.GetEntryCount()-1) || - (LbPos(aLB_WHERECOMP3) == aLB_WHERECOMP3.GetEntryCount()-2)) ) - aET_WHEREVALUE3.Disable(); - -} - -//------------------------------------------------------------------------------ -IMPL_LINK( DlgFilterCrit, ListSelectHdl, ListBox *, pListBox ) -{ - String aName; - ListBox* pComp; - if(pListBox == &aLB_WHEREFIELD1) - { - aName = LbText(aLB_WHEREFIELD1); - pComp = &aLB_WHERECOMP1; - } - else if(pListBox == &aLB_WHEREFIELD2) - { - aName = LbText(aLB_WHEREFIELD2); - pComp = &aLB_WHERECOMP2; - } - else - { - aName = LbText(aLB_WHEREFIELD3); - pComp = &aLB_WHERECOMP3; - } - - pComp->Clear(); - - Reference<XPropertySet> xColumn = getColumn(aName); - if ( xColumn.is() ) - { - sal_Int32 nDataType = 0; - xColumn->getPropertyValue(PROPERTY_TYPE) >>= nDataType; - sal_Int32 eColumnSearch = dbtools::getSearchColumnFlag(m_xConnection,nDataType); - - if(eColumnSearch == ColumnSearch::FULL) - { - for(xub_StrLen i=0;i<aSTR_COMPARE_OPERATORS.GetTokenCount();i++) - pComp->InsertEntry(aSTR_COMPARE_OPERATORS.GetToken(i)); - } - else if(eColumnSearch == ColumnSearch::CHAR) - { - for(xub_StrLen i=6;i<10;i++) - pComp->InsertEntry(aSTR_COMPARE_OPERATORS.GetToken(i)); - } - else if(eColumnSearch == ColumnSearch::BASIC) - { - xub_StrLen i; - for( i = 0; i < 6; i++ ) - pComp->InsertEntry(aSTR_COMPARE_OPERATORS.GetToken(i)); - for(i=8;i<aSTR_COMPARE_OPERATORS.GetTokenCount();i++) - pComp->InsertEntry(aSTR_COMPARE_OPERATORS.GetToken(i)); - } - else - { - OSL_FAIL("DlgFilterCrit::ListSelectHdl: Diese Column d�rfte garnicht vorhanden sein!"); - } - } - pComp->SelectEntryPos(0); - - EnableLines(); - return 0; -} - - - -//------------------------------------------------------------------------------ -IMPL_LINK_INLINE_START( DlgFilterCrit, ListSelectCompHdl, ListBox *, /*pListBox*/ ) -{ - EnableLines(); - return 0; -} -IMPL_LINK_INLINE_END( DlgFilterCrit, ListSelectCompHdl, ListBox *, pListBox ) -//------------------------------------------------------------------------------ -void DlgFilterCrit::BuildWherePart() -{ - DBG_CHKTHIS(DlgFilterCrit,NULL); - Sequence<Sequence<PropertyValue> > aFilter,aHaving; - aFilter.realloc(1); - aHaving.realloc(1); - - if( LbPos(aLB_WHEREFIELD1) != 0 ) - { - PropertyValue aValue; - if ( getCondition(aLB_WHEREFIELD1,aLB_WHERECOMP1,aET_WHEREVALUE1,aValue) ) - { - aHaving[0].realloc(1); - aHaving[0][0] = aValue; - } - else - { - aFilter[0].realloc(1); - aFilter[0][0] = aValue; - } - } - - if( LbPos(aLB_WHEREFIELD2) != 0 ) - { - PropertyValue aValue; - Sequence<Sequence<PropertyValue> >& _rValues = aFilter; - if ( getCondition(aLB_WHEREFIELD2,aLB_WHERECOMP2,aET_WHEREVALUE2,aValue) ) - _rValues = aHaving; - PropertyValue* pPos = NULL; - if ( aLB_WHERECOND2.GetSelectEntryPos() ) - { - sal_Int32 nPos = _rValues.getLength(); - _rValues.realloc( nPos + 1); - _rValues[nPos].realloc( 1); - pPos = &_rValues[nPos][0]; - } - else - { - sal_Int32 nPos = _rValues.getLength() - 1; - sal_Int32 nAndPos = _rValues[nPos].getLength(); - _rValues[nPos].realloc( _rValues[nPos].getLength() + 1); - pPos = &_rValues[nPos][nAndPos]; - } - *pPos = aValue; - } - - if( LbPos(aLB_WHEREFIELD3) != 0 ) - { - PropertyValue aValue; - Sequence<Sequence<PropertyValue> >& _rValues = aFilter; - if ( getCondition(aLB_WHEREFIELD3,aLB_WHERECOMP3,aET_WHEREVALUE3,aValue) ) - _rValues = aHaving; - PropertyValue* pPos = NULL; - if ( aLB_WHERECOND3.GetSelectEntryPos() ) - { - sal_Int32 nPos = _rValues.getLength(); - _rValues.realloc( nPos + 1); - _rValues[nPos].realloc( 1); - pPos = &_rValues[nPos][0]; - } - else - { - sal_Int32 nPos = _rValues.getLength() - 1; - sal_Int32 nAndPos = _rValues[nPos].getLength(); - _rValues[nPos].realloc( _rValues[nPos].getLength() + 1); - pPos = &_rValues[nPos][nAndPos]; - } - *pPos = aValue; - } - try - { - m_xQueryComposer->setStructuredFilter(aFilter); - m_xQueryComposer->setStructuredHavingClause(aHaving); - } - catch(const Exception&) - { - DBG_UNHANDLED_EXCEPTION(); - } -} -// ----------------------------------------------------------------------------- -void DlgFilterCrit::fillLines(const Sequence<Sequence<PropertyValue > >& _aValues) -{ - const Sequence<PropertyValue >* pOrIter = _aValues.getConstArray(); - const Sequence<PropertyValue >* pOrEnd = pOrIter + _aValues.getLength(); - sal_Bool bOr = sal_True; - for(sal_uInt16 i=0;pOrIter != pOrEnd; ++pOrIter) - { - bOr = sal_True; - const PropertyValue* pAndIter = pOrIter->getConstArray(); - const PropertyValue* pAndEnd = pAndIter + pOrIter->getLength(); - for(;pAndIter != pAndEnd; ++pAndIter) - { - SetLine( i++,*pAndIter,bOr); - bOr = sal_False; - } - } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/queryfilter.hrc b/dbaccess/source/ui/dlg/queryfilter.hrc deleted file mode 100644 index 9895f222e..000000000 --- a/dbaccess/source/ui/dlg/queryfilter.hrc +++ /dev/null @@ -1,64 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef DBAUI_QUERYFILTER_HRC -#define DBAUI_QUERYFILTER_HRC - -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif - -#define FT_WHEREFIELD 1 -#define FT_WHERECOMP 2 -#define FT_WHEREVALUE 3 -#define FT_WHEREOPER 4 - -#define LB_WHEREFIELD1 1 -#define LB_WHERECOMP1 2 -#define LB_WHEREFIELD2 3 -#define LB_WHERECOMP2 4 -#define LB_WHEREFIELD3 5 -#define LB_WHERECOMP3 6 -#define LB_WHERECOND2 7 -#define LB_WHERECOND3 8 - -#define FL_FIELDS 1 - -#define ET_WHEREVALUE1 1 -#define ET_WHEREVALUE2 2 -#define ET_WHEREVALUE3 3 - -#define STR_NOENTRY 1 -#define STR_NOENTRY2 2 -#define STR_DEFAULT 3 -#define STR_COMPARE_OPERATORS 4 - -#define BT_OK 1 -#define BT_CANCEL 2 -#define BT_HELP 3 - -#endif // DBAUI_QUERYFILTER_HRC - diff --git a/dbaccess/source/ui/dlg/queryfilter.src b/dbaccess/source/ui/dlg/queryfilter.src deleted file mode 100644 index 6d273b5c5..000000000 --- a/dbaccess/source/ui/dlg/queryfilter.src +++ /dev/null @@ -1,220 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_QUERYFILTER_HRC -#include "queryfilter.hrc" -#endif -#include "dbaccess_helpid.hrc" - -ModalDialog DLG_FILTERCRIT -{ - OutputSize = TRUE ; - Hide = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( 303 , 76 ) ; - /* These strings are equal to the toolbox bubble helptext from MID_SBA_QRY_FILTERCRIT in toolbox.hrc */ - Text [ en-US ] ="Standard Filter"; - - Moveable = TRUE ; - Closeable = TRUE ; - HelpId = HID_DLG_FILTERCRIT ; - ListBox LB_WHEREFIELD1 - { - HelpID = "dbaccess:ListBox:DLG_FILTERCRIT:LB_WHEREFIELD1"; - Border = TRUE ; - Pos = MAP_APPFONT ( 60 , 25 ) ; - Size = MAP_APPFONT ( 60 , 90 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - }; - ListBox LB_WHERECOMP1 - { - HelpID = "dbaccess:ListBox:DLG_FILTERCRIT:LB_WHERECOMP1"; - Border = TRUE ; - Pos = MAP_APPFONT ( 124 , 25 ) ; - Size = MAP_APPFONT ( 49 , 72 ) ; - TabStop = TRUE ; - DDExtraWidth = TRUE ; - DropDown = TRUE ; - CurPos = 0 ; - }; - Edit ET_WHEREVALUE1 - { - HelpID = "dbaccess:Edit:DLG_FILTERCRIT:ET_WHEREVALUE1"; - Border = TRUE ; - Pos = MAP_APPFONT ( 177 , 25 ) ; - Size = MAP_APPFONT ( 60 , 12 ) ; - TabStop = TRUE ; - }; - ListBox LB_WHERECOND2 - { - HelpID = "dbaccess:ListBox:DLG_FILTERCRIT:LB_WHERECOND2"; - Border = TRUE ; - Pos = MAP_APPFONT ( 15 , 41 ) ; - Size = MAP_APPFONT ( 41 , 36 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - CurPos = 0 ; - StringList [ en-US ] = - { - < "AND" ; Default ; > ; - < "OR" ; Default ; > ; - }; - }; - ListBox LB_WHEREFIELD2 - { - HelpID = "dbaccess:ListBox:DLG_FILTERCRIT:LB_WHEREFIELD2"; - Border = TRUE ; - Pos = MAP_APPFONT ( 60 , 41 ) ; - Size = MAP_APPFONT ( 60 , 90 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - }; - ListBox LB_WHERECOMP2 - { - HelpID = "dbaccess:ListBox:DLG_FILTERCRIT:LB_WHERECOMP2"; - Border = TRUE ; - Pos = MAP_APPFONT ( 124 , 41 ) ; - Size = MAP_APPFONT ( 49 , 72 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - DDExtraWidth = TRUE ; - CurPos = 0 ; - }; - Edit ET_WHEREVALUE2 - { - HelpID = "dbaccess:Edit:DLG_FILTERCRIT:ET_WHEREVALUE2"; - Border = TRUE ; - Pos = MAP_APPFONT ( 177 , 41 ) ; - Size = MAP_APPFONT ( 60 , 12 ) ; - TabStop = TRUE ; - }; - ListBox LB_WHERECOND3 - { - HelpID = "dbaccess:ListBox:DLG_FILTERCRIT:LB_WHERECOND3"; - Border = TRUE ; - Pos = MAP_APPFONT ( 15 , 57 ) ; - Size = MAP_APPFONT ( 41 , 36 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - CurPos = 0 ; - StringList [ en-US ] = - { - < "AND" ; Default ; > ; - < "OR" ; Default ; > ; - }; - }; - ListBox LB_WHEREFIELD3 - { - HelpID = "dbaccess:ListBox:DLG_FILTERCRIT:LB_WHEREFIELD3"; - Border = TRUE ; - Pos = MAP_APPFONT ( 60 , 57 ) ; - Size = MAP_APPFONT ( 60 , 90 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - }; - ListBox LB_WHERECOMP3 - { - HelpID = "dbaccess:ListBox:DLG_FILTERCRIT:LB_WHERECOMP3"; - Border = TRUE ; - Pos = MAP_APPFONT ( 124 , 57 ) ; - Size = MAP_APPFONT ( 49 , 72 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - DDExtraWidth = TRUE ; - CurPos = 0 ; - }; - Edit ET_WHEREVALUE3 - { - HelpID = "dbaccess:Edit:DLG_FILTERCRIT:ET_WHEREVALUE3"; - Border = TRUE ; - Pos = MAP_APPFONT ( 177 , 57 ) ; - Size = MAP_APPFONT ( 60 , 12 ) ; - TabStop = TRUE ; - }; - FixedText FT_WHEREFIELD - { - Pos = MAP_APPFONT ( 60 , 14 ) ; - Size = MAP_APPFONT ( 60 , 8 ) ; - Center = TRUE ; - Text [ en-US ] = "Field name" ; - }; - FixedText FT_WHERECOMP - { - Pos = MAP_APPFONT ( 124 , 14 ) ; - Size = MAP_APPFONT ( 50 , 8 ) ; - Center = TRUE ; - Text [ en-US ] = "Condition" ; - }; - FixedText FT_WHEREVALUE - { - Pos = MAP_APPFONT ( 177 , 14 ) ; - Size = MAP_APPFONT ( 60 , 8 ) ; - Center = TRUE ; - Text [ en-US ] = "Value" ; - }; - FixedText FT_WHEREOPER - { - Pos = MAP_APPFONT ( 15 , 14 ) ; - Size = MAP_APPFONT ( 40 , 8 ) ; - Center = TRUE ; - Text [ en-US ] = "Operator" ; - }; - FixedLine FL_FIELDS - { - Pos = MAP_APPFONT ( 6 , 3 ) ; - Size = MAP_APPFONT ( 236 , 8 ) ; - Text [ en-US ] = "Criteria" ; - }; - OKButton BT_OK - { - Pos = MAP_APPFONT ( 249 , 6 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - }; - CancelButton BT_CANCEL - { - Pos = MAP_APPFONT ( 249 , 23 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - HelpButton BT_HELP - { - Pos = MAP_APPFONT ( 249 , 43 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - String STR_NOENTRY - { - Text [ en-US ] = "- none -" ; - }; - String STR_COMPARE_OPERATORS - { - Text [ en-US ] = "=;<>;<;<=;>;>=;like;not like;null;not null"; - }; -}; diff --git a/dbaccess/source/ui/dlg/queryorder.cxx b/dbaccess/source/ui/dlg/queryorder.cxx deleted file mode 100644 index e0eebc88e..000000000 --- a/dbaccess/source/ui/dlg/queryorder.cxx +++ /dev/null @@ -1,310 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" -#include "queryorder.hrc" -#include "queryorder.hxx" - -#include "dbustrings.hrc" - -#include <com/sun/star/sdb/XSingleSelectQueryComposer.hpp> -#include <com/sun/star/sdbc/ColumnSearch.hpp> -#include <com/sun/star/container/XNameAccess.hpp> -#include <tools/debug.hxx> -#include "moduledbu.hxx" -#include <connectivity/sqliterator.hxx> -#include <connectivity/dbtools.hxx> -#include <comphelper/extract.hxx> -#include <com/sun/star/sdbcx/XColumnsSupplier.hpp> - -#include <tools/diagnose_ex.h> - -#include <algorithm> - - -using namespace dbaui; -using namespace connectivity; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::container; -using namespace ::com::sun::star::util; -using namespace ::com::sun::star::sdb; -using namespace ::com::sun::star::sdbc; -using namespace ::com::sun::star::sdbcx; -using namespace ::com::sun::star::beans; - -DBG_NAME(DlgOrderCrit) -//------------------------------------------------------------------------------ -DlgOrderCrit::DlgOrderCrit( Window * pParent, - const Reference< XConnection>& _rxConnection, - const Reference< XSingleSelectQueryComposer >& _rxComposer, - const Reference< XNameAccess>& _rxCols) - :ModalDialog( pParent, ModuleRes(DLG_ORDERCRIT) ) - ,aLB_ORDERFIELD1( this, ModuleRes( LB_ORDERFIELD1 ) ) - ,aLB_ORDERVALUE1( this, ModuleRes( LB_ORDERVALUE1 ) ) - ,aLB_ORDERFIELD2( this, ModuleRes( LB_ORDERFIELD2 ) ) - ,aLB_ORDERVALUE2( this, ModuleRes( LB_ORDERVALUE2 ) ) - ,aLB_ORDERFIELD3( this, ModuleRes( LB_ORDERFIELD3 ) ) - ,aLB_ORDERVALUE3( this, ModuleRes( LB_ORDERVALUE3 ) ) - ,aFT_ORDERFIELD( this, ModuleRes( FT_ORDERFIELD ) ) - ,aFT_ORDERAFTER1( this, ModuleRes( FT_ORDERAFTER1 ) ) - ,aFT_ORDERAFTER2( this, ModuleRes( FT_ORDERAFTER2 ) ) - ,aFT_ORDEROPER( this, ModuleRes( FT_ORDEROPER ) ) - ,aFT_ORDERDIR( this, ModuleRes( FT_ORDERDIR ) ) - ,aBT_OK( this, ModuleRes( BT_OK ) ) - ,aBT_CANCEL( this, ModuleRes( BT_CANCEL ) ) - ,aBT_HELP( this, ModuleRes( BT_HELP ) ) - ,aFL_ORDER( this, ModuleRes( FL_ORDER ) ) - ,aSTR_NOENTRY( ModuleRes( STR_NOENTRY ) ) - ,m_xQueryComposer( _rxComposer ) - ,m_xColumns(_rxCols) - ,m_xConnection(_rxConnection) -{ - DBG_CTOR(DlgOrderCrit,NULL); - - AllSettings aSettings( GetSettings() ); - StyleSettings aStyle( aSettings.GetStyleSettings() ); - aStyle.SetAutoMnemonic( sal_False ); - aSettings.SetStyleSettings( aStyle ); - SetSettings( aSettings ); - - m_aColumnList[0] = &aLB_ORDERFIELD1; - m_aColumnList[1] = &aLB_ORDERFIELD2; - m_aColumnList[2] = &aLB_ORDERFIELD3; - - m_aValueList[0] = &aLB_ORDERVALUE1; - m_aValueList[1] = &aLB_ORDERVALUE2; - m_aValueList[2] = &aLB_ORDERVALUE3; - - xub_StrLen j; - for(j=0 ; j < DOG_ROWS ; j++ ) - { - m_aColumnList[j]->InsertEntry( aSTR_NOENTRY ); - } - - for( j=0 ; j < DOG_ROWS ; j++ ) - { - m_aColumnList[j]->SelectEntryPos(0); - m_aValueList[j]->SelectEntryPos(0); - } - try - { - // ... sowie auch die restlichen Felder - Sequence< ::rtl::OUString> aNames = m_xColumns->getElementNames(); - const ::rtl::OUString* pIter = aNames.getConstArray(); - const ::rtl::OUString* pEnd = pIter + aNames.getLength(); - Reference<XPropertySet> xColumn; - for(;pIter != pEnd;++pIter) - { - xColumn.set(m_xColumns->getByName(*pIter),UNO_QUERY); - OSL_ENSURE(xColumn.is(),"Column is null!"); - if ( xColumn.is() ) - { - sal_Int32 nDataType = 0; - xColumn->getPropertyValue(PROPERTY_TYPE) >>= nDataType; - sal_Int32 eColumnSearch = dbtools::getSearchColumnFlag(m_xConnection,nDataType); - if(eColumnSearch != ColumnSearch::NONE) - { - for( j=0 ; j < DOG_ROWS ; j++ ) - { - m_aColumnList[j]->InsertEntry(*pIter); - } - } - } - } - - m_sOrgOrder = m_xQueryComposer->getOrder(); - impl_initializeOrderList_nothrow(); - } - catch(const Exception&) - { - DBG_UNHANDLED_EXCEPTION(); - } - EnableLines(); - - aLB_ORDERFIELD1.SetSelectHdl(LINK(this,DlgOrderCrit,FieldListSelectHdl)); - aLB_ORDERFIELD2.SetSelectHdl(LINK(this,DlgOrderCrit,FieldListSelectHdl)); - - FreeResource(); - -} - -//------------------------------------------------------------------------------ - -#define LbText(x) ((x).GetSelectEntry()) -#define LbPos(x) ((x).GetSelectEntryPos()) - -//------------------------------------------------------------------------------ -DlgOrderCrit::~DlgOrderCrit() -{ - DBG_DTOR(DlgOrderCrit,NULL); -} - -//------------------------------------------------------------------------------ -IMPL_LINK_INLINE_START( DlgOrderCrit, FieldListSelectHdl, ListBox *, /*pListBox*/ ) -{ - DBG_CHKTHIS(DlgOrderCrit,NULL); - EnableLines(); - return 0; -} -IMPL_LINK_INLINE_END( DlgOrderCrit, FieldListSelectHdl, ListBox *, pListBox ) - -//------------------------------------------------------------------------------ -void DlgOrderCrit::impl_initializeOrderList_nothrow() -{ - try - { - const ::rtl::OUString sNameProperty = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Name" ) ); - const ::rtl::OUString sAscendingProperty = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsAscending" ) ); - - Reference< XIndexAccess > xOrderColumns( m_xQueryComposer->getOrderColumns(), UNO_QUERY_THROW ); - sal_Int32 nColumns = xOrderColumns->getCount(); - if ( nColumns > DOG_ROWS ) - nColumns = DOG_ROWS; - - for ( sal_Int32 i = 0; i < nColumns; ++i ) - { - Reference< XPropertySet > xColumn( xOrderColumns->getByIndex( i ), UNO_QUERY_THROW ); - - ::rtl::OUString sColumnName; - sal_Bool bIsAscending( sal_True ); - - xColumn->getPropertyValue( sNameProperty ) >>= sColumnName; - xColumn->getPropertyValue( sAscendingProperty ) >>= bIsAscending; - - m_aColumnList[i]->SelectEntry( sColumnName ); - m_aValueList[i]->SelectEntryPos( bIsAscending ? 0 : 1 ); - } - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } -} - -//------------------------------------------------------------------------------ -void DlgOrderCrit::EnableLines() -{ - DBG_CHKTHIS(DlgOrderCrit,NULL); - - if ( aLB_ORDERFIELD1.GetSelectEntryPos() == 0 ) - { - aLB_ORDERFIELD2.Disable(); - aLB_ORDERVALUE2.Disable(); - - aLB_ORDERFIELD2.SelectEntryPos( 0 ); - aLB_ORDERVALUE2.SelectEntryPos( 0 ); - } - else - { - aLB_ORDERFIELD2.Enable(); - aLB_ORDERVALUE2.Enable(); - } - - if ( aLB_ORDERFIELD2.GetSelectEntryPos() == 0 ) - { - aLB_ORDERFIELD3.Disable(); - aLB_ORDERVALUE3.Disable(); - - aLB_ORDERFIELD3.SelectEntryPos( 0 ); - aLB_ORDERVALUE3.SelectEntryPos( 0 ); - } - else - { - aLB_ORDERFIELD3.Enable(); - aLB_ORDERVALUE3.Enable(); - } -} - -//------------------------------------------------------------------------------ -::rtl::OUString DlgOrderCrit::GetOrderList( ) const -{ - DBG_CHKTHIS(DlgOrderCrit,NULL); - Reference<XDatabaseMetaData> xMetaData = m_xConnection->getMetaData(); - ::rtl::OUString sQuote = xMetaData.is() ? xMetaData->getIdentifierQuoteString() : ::rtl::OUString(); - static const ::rtl::OUString sDESC(RTL_CONSTASCII_USTRINGPARAM(" DESC ")); - static const ::rtl::OUString sASC(RTL_CONSTASCII_USTRINGPARAM(" ASC ")); - - Reference< XNameAccess> xColumns = Reference< XColumnsSupplier >(m_xQueryComposer,UNO_QUERY)->getColumns(); - - ::rtl::OUString sOrder; - for( sal_uInt16 i=0 ; i<DOG_ROWS; i++ ) - { - if(m_aColumnList[i]->GetSelectEntryPos() != 0) - { - if(sOrder.getLength()) - sOrder += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(",")); - - String sName = m_aColumnList[i]->GetSelectEntry(); - try - { - sal_Bool bFunction = sal_False; - Reference< XPropertySet > xColumn; - if ( xColumns.is() && xColumns->hasByName( sName ) && (xColumns->getByName( sName ) >>= xColumn) && xColumn.is() ) - { - if ( xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_REALNAME) ) - { - ::rtl::OUString sRealName; - xColumn->getPropertyValue(PROPERTY_REALNAME) >>= sRealName; - sName = sRealName; - static ::rtl::OUString sAgg(RTL_CONSTASCII_USTRINGPARAM("AggregateFunction")); - static ::rtl::OUString sFunction(RTL_CONSTASCII_USTRINGPARAM("Function")); - if ( xColumn->getPropertySetInfo()->hasPropertyByName(sFunction) ) - xColumn->getPropertyValue(sFunction) >>= bFunction; - } - } - if ( bFunction ) - sOrder += sName; - else - sOrder += ::dbtools::quoteName(sQuote,sName); - } - catch(const Exception&) - { - } - if(m_aValueList[i]->GetSelectEntryPos()) - sOrder += sDESC; - else - sOrder += sASC; - } - } - return sOrder; -} - -//------------------------------------------------------------------------------ -void DlgOrderCrit::BuildOrderPart() -{ - DBG_CHKTHIS(DlgOrderCrit,NULL); - m_xQueryComposer->setOrder(GetOrderList()); -} -// ----------------------------------------------------------------------------- - - - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/queryorder.hrc b/dbaccess/source/ui/dlg/queryorder.hrc deleted file mode 100644 index fde41dfc3..000000000 --- a/dbaccess/source/ui/dlg/queryorder.hrc +++ /dev/null @@ -1,57 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef DBAUI_QUERYORDER_HRC -#define DBAUI_QUERYORDER_HRC - -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif - - -#define FT_ORDERFIELD 1 -#define FT_ORDERDIR 3 -#define FT_ORDERAFTER1 4 -#define FT_ORDERAFTER2 5 -#define FT_ORDEROPER 6 - -#define LB_ORDERFIELD1 1 -#define LB_ORDERFIELD2 2 -#define LB_ORDERFIELD3 3 -#define LB_ORDERVALUE1 4 -#define LB_ORDERVALUE2 5 -#define LB_ORDERVALUE3 6 - -#define FL_ORDER 1 - -#define BT_OK 1 -#define BT_CANCEL 2 -#define BT_HELP 3 - -#define STR_NOENTRY 1 - -#endif // DBAUI_QUERYORDER_HRC - diff --git a/dbaccess/source/ui/dlg/queryorder.src b/dbaccess/source/ui/dlg/queryorder.src deleted file mode 100644 index 7c349dda0..000000000 --- a/dbaccess/source/ui/dlg/queryorder.src +++ /dev/null @@ -1,180 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBAUI_QUERYORDER_HRC -#include "queryorder.hrc" -#endif -#include "dbaccess_helpid.hrc" - -ModalDialog DLG_ORDERCRIT -{ - OutputSize = TRUE ; - Border = TRUE ; - SVLook = TRUE ; - HelpId = HID_DLG_ORDERCRIT ; - Size = MAP_APPFONT ( 252 , 76 ) ; - Text [ en-US ] = "Sort Order" ; - Moveable = TRUE ; - Closeable = TRUE ; - ListBox LB_ORDERFIELD1 - { - HelpID = "dbaccess:ListBox:DLG_ORDERCRIT:LB_ORDERFIELD1"; - Border = TRUE ; - Pos = MAP_APPFONT ( 59 , 25 ) ; - Size = MAP_APPFONT ( 60 , 72 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - DDExtraWidth = TRUE ; - }; - ListBox LB_ORDERVALUE1 - { - HelpID = "dbaccess:ListBox:DLG_ORDERCRIT:LB_ORDERVALUE1"; - Border = TRUE ; - Pos = MAP_APPFONT ( 123 , 25 ) ; - Size = MAP_APPFONT ( 60 , 36 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - CurPos = 0 ; - StringList [ en-US ] = - { - < "ascending" ; Default ; > ; - < "descending" ; Default ; > ; - }; - }; - ListBox LB_ORDERFIELD2 - { - HelpID = "dbaccess:ListBox:DLG_ORDERCRIT:LB_ORDERFIELD2"; - Border = TRUE ; - Pos = MAP_APPFONT ( 59 , 41 ) ; - Size = MAP_APPFONT ( 60 , 72 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - DDExtraWidth = TRUE ; - }; - ListBox LB_ORDERVALUE2 - { - HelpID = "dbaccess:ListBox:DLG_ORDERCRIT:LB_ORDERVALUE2"; - Border = TRUE ; - Pos = MAP_APPFONT ( 123 , 41 ) ; - Size = MAP_APPFONT ( 60 , 36 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - CurPos = 0 ; - StringList [ en-US ] = - { - < "ascending" ; Default ; > ; - < "descending" ; Default ; > ; - }; - }; - ListBox LB_ORDERFIELD3 - { - HelpID = "dbaccess:ListBox:DLG_ORDERCRIT:LB_ORDERFIELD3"; - Border = TRUE ; - Pos = MAP_APPFONT ( 59 , 57 ) ; - Size = MAP_APPFONT ( 60 , 72 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - DDExtraWidth = TRUE ; - }; - ListBox LB_ORDERVALUE3 - { - HelpID = "dbaccess:ListBox:DLG_ORDERCRIT:LB_ORDERVALUE3"; - Border = TRUE ; - Pos = MAP_APPFONT ( 123 , 57 ) ; - Size = MAP_APPFONT ( 60 , 36 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - CurPos = 0 ; - StringList [ en-US ] = - { - < "ascending" ; Default ; > ; - < "descending" ; Default ; > ; - }; - }; - FixedText FT_ORDERFIELD - { - Pos = MAP_APPFONT ( 58 , 14 ) ; - Size = MAP_APPFONT ( 60 , 8 ) ; - Text [ en-US ] = "Field name" ; - Center = TRUE ; - }; - - FixedText FT_ORDERAFTER1 - { - Pos = MAP_APPFONT ( 12 , 43 ) ; - Size = MAP_APPFONT ( 40 , 8 ) ; - Text [ en-US ] = "and then" ; - }; - FixedText FT_ORDERAFTER2 - { - Pos = MAP_APPFONT ( 12 , 59 ) ; - Size = MAP_APPFONT ( 40 , 8 ) ; - Text [ en-US ] = "and then" ; - }; - FixedText FT_ORDEROPER - { - Pos = MAP_APPFONT ( 12 , 14 ) ; - Size = MAP_APPFONT ( 46 , 8 ) ; - Text [ en-US ] = "Operator" ; - }; - FixedText FT_ORDERDIR - { - Pos = MAP_APPFONT ( 122 , 14 ) ; - Size = MAP_APPFONT ( 60 , 8 ) ; - Text [ en-US ] = "Order" ; - Center = TRUE ; - }; - OKButton BT_OK - { - Pos = MAP_APPFONT ( 196 , 6 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - }; - CancelButton BT_CANCEL - { - Pos = MAP_APPFONT ( 196 , 23 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - HelpButton BT_HELP - { - Pos = MAP_APPFONT ( 196 , 43 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - FixedLine FL_ORDER - { - Pos = MAP_APPFONT ( 6 , 3 ) ; - Size = MAP_APPFONT ( 184 , 8 ) ; - Text [ en-US ] = "Sort order" ; - }; - String STR_NOENTRY - { - Text [ en-US ] = "<none>" ; - }; -}; diff --git a/dbaccess/source/ui/dlg/sqlmessage.cxx b/dbaccess/source/ui/dlg/sqlmessage.cxx deleted file mode 100644 index 678ef3174..000000000 --- a/dbaccess/source/ui/dlg/sqlmessage.cxx +++ /dev/null @@ -1,779 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "sqlmessage.hxx" -#include "dbu_dlg.hrc" -#include "sqlmessage.hrc" -#include <com/sun/star/sdbc/SQLException.hpp> -#include <com/sun/star/sdb/SQLContext.hpp> -#include <vcl/fixed.hxx> -#include <osl/diagnose.h> -#include <svtools/svtreebx.hxx> -#include <svtools/svmedit.hxx> -#include <connectivity/dbexception.hxx> -#include <connectivity/sqlerror.hxx> -#include <vcl/msgbox.hxx> -#include <unotools/configmgr.hxx> -#include <sfx2/sfxuno.hxx> -#include "dbaccess_helpid.hrc" -#include "UITools.hxx" -#include "moduledbu.hxx" - -#include <tools/urlobj.hxx> - -#define BUTTONID_MORE BUTTONID_RETRY + 1 - -#define DIALOG_WIDTH 220 -#define OUTER_MARGIN 6 -#define IMAGE_SIZE 20 -#define INNER_PADDING 3 -#define TEXT_POS_X ( OUTER_MARGIN + IMAGE_SIZE + INNER_PADDING ) - -using namespace dbtools; -using namespace com::sun::star::uno; -using namespace com::sun::star::sdb; -using namespace com::sun::star::sdbc; - -//......................................................................... -namespace dbaui -{ -//......................................................................... - -namespace -{ - //------------------------------------------------------------------------------ - class IImageProvider - { - public: - virtual Image getImage() const = 0; - - virtual ~IImageProvider() { } - }; - - //------------------------------------------------------------------------------ - class ILabelProvider - { - public: - virtual String getLabel() const = 0; - - virtual ~ILabelProvider() { }; - }; - - //------------------------------------------------------------------------------ - class ImageProvider : public IImageProvider - { - private: - sal_uInt16 m_defaultImageID; - - mutable Image m_defaultImage; - - public: - ImageProvider( sal_uInt16 _defaultImageID ) - :m_defaultImageID( _defaultImageID ) - { - } - - virtual Image getImage() const - { - if ( !m_defaultImage ) - m_defaultImage = Image( ModuleRes( m_defaultImageID ) ); - return m_defaultImage; - } - }; - - //------------------------------------------------------------------------------ - class LabelProvider : public ILabelProvider - { - private: - String m_label; - public: - LabelProvider( sal_uInt16 _labelResourceID ) - :m_label( ModuleRes( _labelResourceID ) ) - { - } - - virtual String getLabel() const - { - return m_label; - } - }; - - //------------------------------------------------------------------------------ - class ProviderFactory - { - private: - mutable ::boost::shared_ptr< IImageProvider > m_pErrorImage; - mutable ::boost::shared_ptr< IImageProvider > m_pWarningsImage; - mutable ::boost::shared_ptr< IImageProvider > m_pInfoImage; - mutable ::boost::shared_ptr< ILabelProvider > m_pErrorLabel; - mutable ::boost::shared_ptr< ILabelProvider > m_pWarningsLabel; - mutable ::boost::shared_ptr< ILabelProvider > m_pInfoLabel; - - public: - ProviderFactory() - { - } - - ::boost::shared_ptr< IImageProvider > getImageProvider( SQLExceptionInfo::TYPE _eType ) const - { - ::boost::shared_ptr< IImageProvider >* ppProvider( &m_pErrorImage ); - sal_uInt16 nNormalImageID( BMP_EXCEPTION_ERROR ); - - switch ( _eType ) - { - case SQLExceptionInfo::SQL_WARNING: - ppProvider = &m_pWarningsImage; - nNormalImageID = BMP_EXCEPTION_WARNING; - break; - - case SQLExceptionInfo::SQL_CONTEXT: - ppProvider = &m_pInfoImage; - nNormalImageID = BMP_EXCEPTION_INFO; - break; - - default: - break; - } - - if ( !ppProvider->get() ) - ppProvider->reset( new ImageProvider( nNormalImageID ) ); - return *ppProvider; - } - - ::boost::shared_ptr< ILabelProvider > getLabelProvider( SQLExceptionInfo::TYPE _eType, bool _bSubLabel ) const - { - ::boost::shared_ptr< ILabelProvider >* ppProvider( &m_pErrorLabel ); - sal_uInt16 nLabelID( STR_EXCEPTION_ERROR ); - - switch ( _eType ) - { - case SQLExceptionInfo::SQL_WARNING: - ppProvider = &m_pWarningsLabel; - nLabelID = STR_EXCEPTION_WARNING; - break; - - case SQLExceptionInfo::SQL_CONTEXT: - ppProvider = &m_pInfoLabel; - nLabelID = _bSubLabel ? STR_EXCEPTION_DETAILS : STR_EXCEPTION_INFO; - break; - default: - break; - } - - if ( !ppProvider->get() ) - ppProvider->reset( new LabelProvider( nLabelID ) ); - return *ppProvider; - } - - }; - - //------------------------------------------------------------------------------ - /// a stripped version of the SQLException, packed for displaying - struct ExceptionDisplayInfo - { - SQLExceptionInfo::TYPE eType; - - ::boost::shared_ptr< IImageProvider > pImageProvider; - ::boost::shared_ptr< ILabelProvider > pLabelProvider; - - bool bSubEntry; - - String sMessage; - String sSQLState; - String sErrorCode; - - ExceptionDisplayInfo() : eType( SQLExceptionInfo::UNDEFINED ), bSubEntry( false ) { } - ExceptionDisplayInfo( SQLExceptionInfo::TYPE _eType ) : eType( _eType ), bSubEntry( false ) { } - }; - - static bool lcl_hasDetails( const ExceptionDisplayInfo& _displayInfo ) - { - return ( _displayInfo.sErrorCode.Len() ) - || ( _displayInfo.sSQLState.Len() - && !_displayInfo.sSQLState.EqualsAscii( "S1000" ) - ); - } - - typedef ::std::vector< ExceptionDisplayInfo > ExceptionDisplayChain; - - //------------------------------------------------------------------------------ - /// strips the [OOoBase] vendor identifier from the given error message, if applicable - ::rtl::OUString lcl_stripOOoBaseVendor( const ::rtl::OUString& _rErrorMessage ) - { - ::rtl::OUString sErrorMessage( _rErrorMessage ); - - const ::rtl::OUString sVendorIdentifier( ::connectivity::SQLError::getMessagePrefix() ); - if ( sErrorMessage.indexOf( sVendorIdentifier ) == 0 ) - { - // characters to strip - sal_Int32 nStripLen( sVendorIdentifier.getLength() ); - // usually, there should be a whitespace between the vendor and the real message - while ( ( sErrorMessage.getLength() > nStripLen ) - && ( sErrorMessage[nStripLen] == ' ' ) - ) - ++nStripLen; - sErrorMessage = sErrorMessage.copy( nStripLen ); - } - - return sErrorMessage; - } - - //------------------------------------------------------------------------------ - void lcl_buildExceptionChain( const SQLExceptionInfo& _rErrorInfo, const ProviderFactory& _rFactory, ExceptionDisplayChain& _out_rChain ) - { - { - ExceptionDisplayChain empty; - _out_rChain.swap( empty ); - } - - SQLExceptionIteratorHelper iter( _rErrorInfo ); - while ( iter.hasMoreElements() ) - { - // current chain element - SQLExceptionInfo aCurrentElement; - iter.next( aCurrentElement ); - - const SQLException* pCurrentError = (const SQLException*)aCurrentElement; - OSL_ENSURE( pCurrentError, "lcl_buildExceptionChain: iterator failure!" ); - // hasMoreElements should not have returned <TRUE/> in this case - - ExceptionDisplayInfo aDisplayInfo( aCurrentElement.getType() ); - - aDisplayInfo.sMessage = pCurrentError->Message.trim(); - aDisplayInfo.sSQLState = pCurrentError->SQLState; - if ( pCurrentError->ErrorCode ) - aDisplayInfo.sErrorCode = String::CreateFromInt32( pCurrentError->ErrorCode ); - - if ( !aDisplayInfo.sMessage.Len() - && !lcl_hasDetails( aDisplayInfo ) - ) - { - OSL_FAIL( "lcl_buildExceptionChain: useles exception: no state, no error code, no message!" ); - continue; - } - - aDisplayInfo.pImageProvider = _rFactory.getImageProvider( aCurrentElement.getType() ); - aDisplayInfo.pLabelProvider = _rFactory.getLabelProvider( aCurrentElement.getType(), false ); - - _out_rChain.push_back( aDisplayInfo ); - - if ( aCurrentElement.getType() == SQLExceptionInfo::SQL_CONTEXT ) - { - const SQLContext* pContext = (const SQLContext*)aCurrentElement; - if ( pContext->Details.getLength() ) - { - ExceptionDisplayInfo aSubInfo( aCurrentElement.getType() ); - - aSubInfo.sMessage = pContext->Details; - aSubInfo.pImageProvider = _rFactory.getImageProvider( aCurrentElement.getType() ); - aSubInfo.pLabelProvider = _rFactory.getLabelProvider( aCurrentElement.getType(), true ); - aSubInfo.bSubEntry = true; - - _out_rChain.push_back( aSubInfo ); - } - } - } - } - - //------------------------------------------------------------------------------ - void lcl_insertExceptionEntry( SvTreeListBox& _rList, size_t _nElementPos, const ExceptionDisplayInfo& _rEntry ) - { - Image aEntryImage( _rEntry.pImageProvider->getImage() ); - SvLBoxEntry* pListEntry = - _rList.InsertEntry( _rEntry.pLabelProvider->getLabel(), aEntryImage, aEntryImage ); - pListEntry->SetUserData( reinterpret_cast< void* >( _nElementPos ) ); - } -} - -//============================================================================== -class OExceptionChainDialog : public ModalDialog -{ - FixedLine m_aFrame; - FixedText m_aListLabel; - SvTreeListBox m_aExceptionList; - FixedText m_aDescLabel; - MultiLineEdit m_aExceptionText; - OKButton m_aOK; - - String m_sStatusLabel; - String m_sErrorCodeLabel; - - ExceptionDisplayChain m_aExceptions; - -public: - OExceptionChainDialog( Window* pParent, const ExceptionDisplayChain& _rExceptions ); - ~OExceptionChainDialog(); - -protected: - DECL_LINK(OnExceptionSelected, void*); -}; - -DBG_NAME(OExceptionChainDialog) -//------------------------------------------------------------------------------ -OExceptionChainDialog::OExceptionChainDialog( Window* pParent, const ExceptionDisplayChain& _rExceptions ) - :ModalDialog(pParent, ModuleRes(DLG_SQLEXCEPTIONCHAIN)) - ,m_aFrame (this, ModuleRes(FL_DETAILS)) - ,m_aListLabel (this, ModuleRes(FT_ERRORLIST)) - ,m_aExceptionList (this, ModuleRes(CTL_ERRORLIST)) - ,m_aDescLabel (this, ModuleRes(FT_DESCRIPTION)) - ,m_aExceptionText (this, ModuleRes(ME_DESCRIPTION)) - ,m_aOK (this, ModuleRes(PB_OK)) - ,m_aExceptions( _rExceptions ) -{ - DBG_CTOR(OExceptionChainDialog,NULL); - - m_sStatusLabel = String( ModuleRes( STR_EXCEPTION_STATUS ) ); - m_sErrorCodeLabel = String( ModuleRes( STR_EXCEPTION_ERRORCODE ) ); - - FreeResource(); - - m_aExceptionList.SetSelectionMode(SINGLE_SELECTION); - m_aExceptionList.SetDragDropMode(0); - m_aExceptionList.EnableInplaceEditing(sal_False); - m_aExceptionList.SetStyle(m_aExceptionList.GetStyle() | WB_HASLINES | WB_HASBUTTONS | WB_HASBUTTONSATROOT | WB_HSCROLL); - - m_aExceptionList.SetSelectHdl(LINK(this, OExceptionChainDialog, OnExceptionSelected)); - m_aExceptionList.SetNodeDefaultImages( ); - m_aExceptionText.SetReadOnly(sal_True); - - bool bHave22018 = false; - size_t elementPos = 0; - - for ( ExceptionDisplayChain::const_iterator loop = m_aExceptions.begin(); - loop != m_aExceptions.end(); - ++loop, ++elementPos - ) - { - lcl_insertExceptionEntry( m_aExceptionList, elementPos, *loop ); - bHave22018 = loop->sSQLState.EqualsAscii( "22018" ); - } - - // if the error has the code 22018, then add an additional explanation - // #i24021# - if ( bHave22018 ) - { - ProviderFactory aProviderFactory; - - ExceptionDisplayInfo aInfo22018; - aInfo22018.sMessage = String( ModuleRes( STR_EXPLAN_STRINGCONVERSION_ERROR ) ); - aInfo22018.pLabelProvider = aProviderFactory.getLabelProvider( SQLExceptionInfo::SQL_CONTEXT, false ); - aInfo22018.pImageProvider = aProviderFactory.getImageProvider( SQLExceptionInfo::SQL_CONTEXT ); - m_aExceptions.push_back( aInfo22018 ); - - lcl_insertExceptionEntry( m_aExceptionList, m_aExceptions.size() - 1, aInfo22018 ); - } -} - -//------------------------------------------------------------------------------ -OExceptionChainDialog::~OExceptionChainDialog() -{ - DBG_DTOR(OExceptionChainDialog,NULL); -} - -//------------------------------------------------------------------------------ -IMPL_LINK(OExceptionChainDialog, OnExceptionSelected, void*, EMPTYARG) -{ - SvLBoxEntry* pSelected = m_aExceptionList.FirstSelected(); - OSL_ENSURE(!pSelected || !m_aExceptionList.NextSelected(pSelected), "OExceptionChainDialog::OnExceptionSelected : multi selection ?"); - - String sText; - - if ( pSelected ) - { - size_t pos = reinterpret_cast< size_t >( pSelected->GetUserData() ); - const ExceptionDisplayInfo& aExceptionInfo( m_aExceptions[ pos ] ); - - if ( aExceptionInfo.sSQLState.Len() ) - { - sText += m_sStatusLabel; - sText.AppendAscii(": "); - sText += aExceptionInfo.sSQLState; - sText.AppendAscii("\n"); - } - - if ( aExceptionInfo.sErrorCode.Len() ) - { - sText += m_sErrorCodeLabel; - sText.AppendAscii(": "); - sText += aExceptionInfo.sErrorCode; - sText.AppendAscii("\n"); - } - - if ( sText.Len() ) - sText.AppendAscii( "\n" ); - - sText += aExceptionInfo.sMessage; - } - - m_aExceptionText.SetText(sText); - - return 0L; -} - -//============================================================================== -//= SQLMessageBox_Impl -//============================================================================== -struct SQLMessageBox_Impl -{ - ExceptionDisplayChain aDisplayInfo; - - SQLMessageBox_Impl( const SQLExceptionInfo& _rExceptionInfo ) - { - // transform the exception chain to a form more suitable for displaying it here - ProviderFactory aProviderFactory; - lcl_buildExceptionChain( _rExceptionInfo, aProviderFactory, aDisplayInfo ); - } -}; - -//------------------------------------------------------------------------------ -namespace -{ - ::rtl::OUString lcl_getProductName() - { - ::rtl::OUString sProductName; - OSL_VERIFY( ::utl::ConfigManager::GetDirectConfigProperty( ::utl::ConfigManager::PRODUCTNAME ) >>= sProductName ); - return sProductName; - } - - void lcl_positionInAppFont( const Window& _rParent, Window& _rChild, long _nX, long _nY, long _Width, long _Height ) - { - Point aPos = _rParent.LogicToPixel( Point( _nX, _nY ), MAP_APPFONT ); - Size aSize = _rParent.LogicToPixel( Size( _Width, _Height ), MAP_APPFONT ); - _rChild.SetPosSizePixel( aPos, aSize ); - } - - void lcl_addButton( ButtonDialog& _rDialog, StandardButtonType _eType, bool _bDefault ) - { - sal_uInt16 nButtonID = 0; - switch ( _eType ) - { - case BUTTON_YES: nButtonID = BUTTONID_YES; break; - case BUTTON_NO: nButtonID = BUTTONID_NO; break; - case BUTTON_OK: nButtonID = BUTTONID_OK; break; - case BUTTON_CANCEL: nButtonID = BUTTONID_CANCEL; break; - case BUTTON_RETRY: nButtonID = BUTTONID_RETRY; break; - case BUTTON_HELP: nButtonID = BUTTONID_HELP; break; - default: - OSL_FAIL( "lcl_addButton: invalid button id!" ); - break; - } - _rDialog.AddButton( _eType, nButtonID, _bDefault ? BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_FOCUSBUTTON : 0 ); - } -} - -//------------------------------------------------------------------------------ -void OSQLMessageBox::impl_positionControls() -{ - OSL_PRECOND( !m_pImpl->aDisplayInfo.empty(), "OSQLMessageBox::impl_positionControls: nothing to display at all?" ); - - - if ( m_pImpl->aDisplayInfo.empty() ) - return; - const ExceptionDisplayInfo* pSecondInfo = NULL; - - const ExceptionDisplayInfo& rFirstInfo = *m_pImpl->aDisplayInfo.begin(); - if ( m_pImpl->aDisplayInfo.size() > 1 ) - pSecondInfo = &m_pImpl->aDisplayInfo[1]; - String sPrimary, sSecondary; - sPrimary = rFirstInfo.sMessage; - // one or two texts to display? - if ( pSecondInfo ) - { - // we show two elements in the main dialog if and only if one of - // - the first element in the chain is an SQLContext, and the second - // element denotes its sub entry - // - the first and the second element are both independent (i.e. the second - // is no sub entry), and none of them is a context. - bool bFirstElementIsContext = ( rFirstInfo.eType == SQLExceptionInfo::SQL_CONTEXT ); - bool bSecondElementIsContext = ( pSecondInfo->eType == SQLExceptionInfo::SQL_CONTEXT ); - - if ( bFirstElementIsContext && pSecondInfo->bSubEntry ) - sSecondary = pSecondInfo->sMessage; - if ( !bFirstElementIsContext && !bSecondElementIsContext ) - sSecondary = pSecondInfo->sMessage; - } - - // image - lcl_positionInAppFont( *this, m_aInfoImage, OUTER_MARGIN, OUTER_MARGIN, IMAGE_SIZE, IMAGE_SIZE ); - m_aInfoImage.Show(); - - // primary text - lcl_positionInAppFont( *this, m_aTitle, TEXT_POS_X, OUTER_MARGIN, DIALOG_WIDTH - TEXT_POS_X - 2 * OUTER_MARGIN, 16 ); - sPrimary = lcl_stripOOoBaseVendor( sPrimary ); - m_aTitle.SetText( sPrimary ); - m_aTitle.Show(); - - Rectangle aPrimaryRect( m_aTitle.GetPosPixel(), m_aTitle.GetSizePixel() ); - - // secondary text (if applicable) - m_aMessage.SetStyle( m_aMessage.GetStyle() | WB_NOLABEL ); - sSecondary = lcl_stripOOoBaseVendor( sSecondary ); - m_aMessage.SetText( sSecondary ); - - lcl_positionInAppFont( *this, m_aMessage, TEXT_POS_X, OUTER_MARGIN + 16 + 3, DIALOG_WIDTH - TEXT_POS_X - 2 * OUTER_MARGIN, 8 ); - Rectangle aSecondaryRect( m_aMessage.GetPosPixel(), m_aMessage.GetSizePixel() ); - - bool bHaveSecondaryText = sSecondary.Len() != 0; - - // determine which space the secondary text would occupy - if ( bHaveSecondaryText ) - aSecondaryRect = GetTextRect( aSecondaryRect, sSecondary, TEXT_DRAW_WORDBREAK | TEXT_DRAW_MULTILINE | TEXT_DRAW_LEFT ); - else - aSecondaryRect.Bottom() = aSecondaryRect.Top() - 1; - - // adjust secondary control height accordingly - m_aMessage.SetSizePixel( aSecondaryRect.GetSize() ); - m_aMessage.Show( aSecondaryRect.GetHeight() > 0 ); - - // if there's no secondary text ... - if ( !bHaveSecondaryText ) - { // then give the primary text as much horizontal space as it needs - Rectangle aSuggestedRect( GetTextRect( aPrimaryRect, sPrimary, TEXT_DRAW_WORDBREAK | TEXT_DRAW_MULTILINE | TEXT_DRAW_CENTER ) ); - aPrimaryRect.Right() = aPrimaryRect.Left() + aSuggestedRect.GetWidth(); - aPrimaryRect.Bottom() = aPrimaryRect.Top() + aSuggestedRect.GetHeight(); - // and center it horizontally - m_aTitle.SetStyle( ( m_aTitle.GetStyle() & ~WB_LEFT ) | WB_CENTER ); - - Rectangle aInfoRect( m_aInfoImage.GetPosPixel(), m_aInfoImage.GetSizePixel() ); - // also, if it's not as high as the image ... - if ( aPrimaryRect.GetHeight() < m_aInfoImage.GetSizePixel().Height() ) - { // ... make it fit the image height - aPrimaryRect.Bottom() += aInfoRect.GetHeight() - aPrimaryRect.GetHeight(); - // and center it vertically - m_aTitle.SetStyle( m_aTitle.GetStyle() | WB_VCENTER ); - } - else - { // ... otherwise, center the image vertically, relative to the primary text - aInfoRect.Move( 0, ( aPrimaryRect.GetHeight() - aInfoRect.GetHeight() ) / 2 ); - m_aInfoImage.SetPosSizePixel( aInfoRect.TopLeft(), aInfoRect.GetSize() ); - } - - m_aTitle.SetPosSizePixel( aPrimaryRect.TopLeft(), aPrimaryRect.GetSize() ); - } - - // adjust dialog size accordingly - const Rectangle& rBottomTextRect( bHaveSecondaryText ? aSecondaryRect : aPrimaryRect ); - Size aBorderSize = LogicToPixel( Size( OUTER_MARGIN, OUTER_MARGIN ), MAP_APPFONT ); - Size aDialogSize( LogicToPixel( Size( DIALOG_WIDTH, 30 ), MAP_APPFONT ) ); - aDialogSize.Height() = rBottomTextRect.Bottom() + aBorderSize.Height(); - aDialogSize.Width() = aPrimaryRect.Right() + aBorderSize.Width(); - - SetSizePixel( aDialogSize ); - SetPageSizePixel( aDialogSize ); -} - -//------------------------------------------------------------------------------ -void OSQLMessageBox::impl_initImage( MessageType _eImage ) -{ - switch (_eImage) - { - default: - OSL_FAIL( "OSQLMessageBox::impl_initImage: unsupported image type!" ); - - case Info: - m_aInfoImage.SetImage(InfoBox::GetStandardImage()); - break; - case Warning: - m_aInfoImage.SetImage(WarningBox::GetStandardImage()); - break; - case Error: - m_aInfoImage.SetImage(ErrorBox::GetStandardImage()); - break; - case Query: - m_aInfoImage.SetImage(QueryBox::GetStandardImage()); - break; - } -} - -//------------------------------------------------------------------------------ -void OSQLMessageBox::impl_createStandardButtons( WinBits _nStyle ) -{ - if ( _nStyle & WB_YES_NO_CANCEL ) - { - lcl_addButton( *this, BUTTON_YES, ( _nStyle & WB_DEF_YES ) != 0 ); - lcl_addButton( *this, BUTTON_NO, ( _nStyle & WB_DEF_NO ) != 0 ); - lcl_addButton( *this, BUTTON_CANCEL, ( _nStyle & WB_DEF_CANCEL ) != 0 ); - } - else if ( _nStyle & WB_OK_CANCEL ) - { - lcl_addButton( *this, BUTTON_OK, ( _nStyle & WB_DEF_OK ) != 0 ); - lcl_addButton( *this, BUTTON_CANCEL, ( _nStyle & WB_DEF_CANCEL ) != 0 ); - } - else if ( _nStyle & WB_YES_NO ) - { - lcl_addButton( *this, BUTTON_YES, ( _nStyle & WB_DEF_YES ) != 0 ); - lcl_addButton( *this, BUTTON_NO, ( _nStyle & WB_DEF_NO ) != 0 ); - } - else if ( _nStyle & WB_RETRY_CANCEL ) - { - lcl_addButton( *this, BUTTON_RETRY, ( _nStyle & WB_DEF_RETRY ) != 0 ); - lcl_addButton( *this, BUTTON_CANCEL, ( _nStyle & WB_DEF_CANCEL ) != 0 ); - } - else - { - OSL_ENSURE( WB_OK & _nStyle, "OSQLMessageBox::impl_createStandardButtons: unsupported dialog style requested!" ); - AddButton( BUTTON_OK, BUTTONID_OK, BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_FOCUSBUTTON ); - } - - if ( m_sHelpURL.getLength() ) - { - lcl_addButton( *this, BUTTON_HELP, false ); - - rtl::OUString aTmp; - INetURLObject aHID( m_sHelpURL ); - if ( aHID.GetProtocol() == INET_PROT_HID ) - aTmp = aHID.GetURLPath(); - else - aTmp = m_sHelpURL; - - SetHelpId( rtl::OUStringToOString( aTmp, RTL_TEXTENCODING_UTF8 ) ); - } -} - -//------------------------------------------------------------------------------ -void OSQLMessageBox::impl_addDetailsButton() -{ - size_t nFirstPageVisible = m_aMessage.IsVisible() ? 2 : 1; - - bool bMoreDetailsAvailable = m_pImpl->aDisplayInfo.size() > nFirstPageVisible; - if ( !bMoreDetailsAvailable ) - { - // even if the text fits into what we can display, we might need to details button - // if there is more non-trivial information in the errors than the mere messages - for ( ExceptionDisplayChain::const_iterator error = m_pImpl->aDisplayInfo.begin(); - error != m_pImpl->aDisplayInfo.end(); - ++error - ) - { - if ( lcl_hasDetails( *error ) ) - { - bMoreDetailsAvailable = true; - break; - } - } - } - - if ( bMoreDetailsAvailable ) - { - AddButton( BUTTON_MORE, BUTTONID_MORE, 0 ); - PushButton* pButton = GetPushButton( BUTTONID_MORE ); - OSL_ENSURE( pButton, "OSQLMessageBox::impl_addDetailsButton: just added this button, why isn't it there?" ); - pButton->SetClickHdl( LINK( this, OSQLMessageBox, ButtonClickHdl ) ); - pButton->SetUniqueId( UID_SQLERROR_BUTTONMORE ); - } -} - -//------------------------------------------------------------------------------ -void OSQLMessageBox::Construct( WinBits _nStyle, MessageType _eImage ) -{ - // Changed as per BugID 79541 Branding/Configuration - String sDialogTitle( lcl_getProductName() ); - SetText( sDialogTitle.AppendAscii( " Base" ) ); - - // position and size the controls and the dialog, depending on whether we have one or two texts to display - impl_positionControls(); - - // init the image - MessageType eType( _eImage ); - if ( eType == AUTO ) - { - switch ( m_pImpl->aDisplayInfo[0].eType ) - { - case SQLExceptionInfo::SQL_EXCEPTION: eType = Error; break; - case SQLExceptionInfo::SQL_WARNING: eType = Warning; break; - case SQLExceptionInfo::SQL_CONTEXT: eType = Info; break; - default: OSL_FAIL( "OSQLMessageBox::Construct: invalid type!" ); - } - } - impl_initImage( eType ); - - // create buttons - impl_createStandardButtons( _nStyle ); - impl_addDetailsButton(); -} - -//------------------------------------------------------------------------------ -OSQLMessageBox::OSQLMessageBox(Window* _pParent, const SQLExceptionInfo& _rException, WinBits _nStyle, const ::rtl::OUString& _rHelpURL ) - :ButtonDialog( _pParent, WB_HORZ | WB_STDDIALOG ) - ,m_aInfoImage( this ) - ,m_aTitle( this, WB_WORDBREAK | WB_LEFT ) - ,m_aMessage( this, WB_WORDBREAK | WB_LEFT ) - ,m_sHelpURL( _rHelpURL ) - ,m_pImpl( new SQLMessageBox_Impl( _rException ) ) -{ - Construct( _nStyle, AUTO ); -} - -//------------------------------------------------------------------------------ -OSQLMessageBox::OSQLMessageBox( Window* _pParent, const UniString& _rTitle, const UniString& _rMessage, WinBits _nStyle, MessageType _eType, const ::dbtools::SQLExceptionInfo* _pAdditionalErrorInfo ) - :ButtonDialog( _pParent, WB_HORZ | WB_STDDIALOG ) - ,m_aInfoImage( this ) - ,m_aTitle( this, WB_WORDBREAK | WB_LEFT ) - ,m_aMessage( this, WB_WORDBREAK | WB_LEFT ) -{ - SQLContext aError; - aError.Message = _rTitle; - aError.Details = _rMessage; - if ( _pAdditionalErrorInfo ) - aError.NextException = _pAdditionalErrorInfo->get(); - - m_pImpl.reset( new SQLMessageBox_Impl( SQLExceptionInfo( aError ) ) ); - - Construct( _nStyle, _eType ); -} - -//-------------------------------------------------------------------------- -OSQLMessageBox::~OSQLMessageBox() -{ -} - -//-------------------------------------------------------------------------- -IMPL_LINK( OSQLMessageBox, ButtonClickHdl, Button *, /*pButton*/ ) -{ - OExceptionChainDialog aDlg( this, m_pImpl->aDisplayInfo ); - aDlg.Execute(); - return 0; -} - -//================================================================== -// OSQLWarningBox -//================================================================== -OSQLWarningBox::OSQLWarningBox( Window* _pParent, const UniString& _rMessage, WinBits _nStyle, - const ::dbtools::SQLExceptionInfo* _pAdditionalErrorInfo ) - :OSQLMessageBox( _pParent, String( ModuleRes( STR_STAT_WARNING ) ), _rMessage, _nStyle, OSQLMessageBox::Warning, _pAdditionalErrorInfo ) -{ -} - -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/sqlmessage.hrc b/dbaccess/source/ui/dlg/sqlmessage.hrc deleted file mode 100644 index b8267bafc..000000000 --- a/dbaccess/source/ui/dlg/sqlmessage.hrc +++ /dev/null @@ -1,50 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_SQLMESSAGE_HRC_ -#define _DBAUI_SQLMESSAGE_HRC_ - -#define FT_ERRORLIST 1 -#define FT_DESCRIPTION 2 - -#define ED_TEXT 1 - -#define FL_DATA 1 - -#define FL_DETAILS 1 - -#define PB_OK 1 -#define PB_CANCEL 2 - -#define CTL_ERRORLIST 1 - -#define ME_DESCRIPTION 1 - -#define STR_EXCEPTION_STATUS 1 -#define STR_EXCEPTION_ERRORCODE 2 - -#endif // _DBAUI_SQLMESSAGE_HRC_ diff --git a/dbaccess/source/ui/dlg/sqlmessage.src b/dbaccess/source/ui/dlg/sqlmessage.src deleted file mode 100644 index 94b2e394d..000000000 --- a/dbaccess/source/ui/dlg/sqlmessage.src +++ /dev/null @@ -1,145 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBA_DBACCESS_HELPID_HRC_ -#include "dbaccess_helpid.hrc" -#endif -#ifndef _DBU_DLG_HRC_ -#include "dbu_dlg.hrc" -#endif -#ifndef _DBAUI_SQLMESSAGE_HRC_ -#include "sqlmessage.hrc" -#endif - -//------------------------------------------------------------------------- -Image BMP_EXCEPTION_ERROR -{ - ImageBitmap = Bitmap { File = "exerror.png"; }; - MaskColor = Color { Red = 0xff00 ; Green = 0x0000 ; Blue = 0xff00 ; }; -}; - -Image BMP_EXCEPTION_WARNING -{ - ImageBitmap = Bitmap { File = "exwarning.png"; }; - MaskColor = Color { Red = 0xff00 ; Green = 0x0000 ; Blue = 0xff00 ; }; -}; - -Image BMP_EXCEPTION_INFO -{ - ImageBitmap = Bitmap { File = "exinfo.png"; }; - MaskColor = Color { Red = 0xff00 ; Green = 0x0000 ; Blue = 0xff00 ; }; -}; - -ModalDialog DLG_SQLEXCEPTIONCHAIN -{ - HelpID = "dbaccess:ModalDialog:DLG_SQLEXCEPTIONCHAIN"; - Moveable = TRUE ; - Closeable = TRUE ; - OutputSize = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( 240 , 150 ) ; - Text [ en-US ] = "%PRODUCTNAME Base" ; - - FixedLine FL_DETAILS - { - Pos = MAP_APPFONT ( 6, 3 ) ; - Size = MAP_APPFONT ( 228, 8 ) ; - Text [ en-US ] = "Details"; - }; - FixedText FT_ERRORLIST - { - Pos = MAP_APPFONT ( 12, 12 ) ; - Size = MAP_APPFONT ( 85, 10 ) ; - Text [ en-US ] = "Error ~list:"; - Group = TRUE; - }; - Control CTL_ERRORLIST - { - Pos = MAP_APPFONT ( 12, 25 ) ; - Size = MAP_APPFONT ( 85, 93 ) ; - Border = TRUE; - TabStop = TRUE; - HelpId = HID_SQLERROR_EXCHAIN_ERRORS; - }; - FixedText FT_DESCRIPTION - { - Pos = MAP_APPFONT ( 103, 12 ) ; - Size = MAP_APPFONT ( 125, 10 ) ; - Text [ en-US ] = "~Description:"; - Group = TRUE; - }; - MultiLineEdit ME_DESCRIPTION - { - Border = TRUE ; - Pos = MAP_APPFONT ( 103 , 25 ) ; - Size = MAP_APPFONT ( 125 , 93 ) ; - TabStop = TRUE ; - VScroll = TRUE ; - HelpId = HID_SQLERROR_EXCHAIN_TEXT; - }; - OKButton PB_OK - { - Pos = MAP_APPFONT ( 95 , 130 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - }; - - String STR_EXCEPTION_STATUS - { - Text [ en-US ] = "SQL Status"; - }; - String STR_EXCEPTION_ERRORCODE - { - Text [ en-US ] = "Error code"; - }; -}; - -String STR_EXPLAN_STRINGCONVERSION_ERROR -{ - Text [ en-US ] = "A frequent reason for this error is an inappropriate character set setting for the language of your database. Check the setting by choosing Edit - Database - Properties."; -}; - -String STR_EXCEPTION_ERROR -{ - Text [ en-US ] = "Error"; -}; - -String STR_EXCEPTION_WARNING -{ - Text [ en-US ] = "Warning"; -}; - -String STR_EXCEPTION_INFO -{ - Text [ en-US ] = "Information"; -}; - -String STR_EXCEPTION_DETAILS -{ - Text [ en-US ] = "Details"; -}; diff --git a/dbaccess/source/ui/dlg/tablespage.cxx b/dbaccess/source/ui/dlg/tablespage.cxx deleted file mode 100644 index 9c52d9391..000000000 --- a/dbaccess/source/ui/dlg/tablespage.cxx +++ /dev/null @@ -1,631 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "tablespage.hxx" -#include "dbu_dlg.hrc" -#include "dbadmin.hrc" -#include "dsitems.hxx" -#include "browserids.hxx" -#include "datasourceconnector.hxx" -#include <comphelper/types.hxx> -#include <connectivity/dbtools.hxx> -#include <connectivity/dbexception.hxx> -#include "stringlistitem.hxx" -#include <svl/eitem.hxx> -#include <svl/stritem.hxx> -#include "dbustrings.hrc" -#include <vcl/svapp.hxx> -#include <vcl/waitobj.hxx> -#include <com/sun/star/sdb/SQLContext.hpp> -#include <com/sun/star/sdbcx/XTablesSupplier.hpp> -#include <com/sun/star/sdbcx/XAppend.hpp> -#include <com/sun/star/util/XModifiable.hpp> -#include <com/sun/star/sdbcx/XDrop.hpp> -#include <com/sun/star/sdbcx/XDataDefinitionSupplier.hpp> -#include "sqlmessage.hxx" -#include <vcl/msgbox.hxx> -#include "dbaccess_helpid.hrc" -#include "UITools.hxx" -#include <osl/mutex.hxx> -#include <osl/diagnose.h> -#include <svtools/imgdef.hxx> -#include "TablesSingleDlg.hxx" -#include <tools/diagnose_ex.h> -#include <cppuhelper/exc_hlp.hxx> -#include "AutoControls.hrc" - -//......................................................................... -namespace dbaui -{ -//......................................................................... - - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::sdbc; - using namespace ::com::sun::star::sdbcx; - using namespace ::com::sun::star::sdb; - using namespace ::com::sun::star::beans; - using namespace ::com::sun::star::lang; - using namespace ::com::sun::star::i18n; - using namespace ::com::sun::star::container; - using namespace ::com::sun::star::frame; - using namespace ::com::sun::star::util; - using namespace ::dbtools; - using namespace ::comphelper; - - //======================================================================== - //= OTableSubscriptionPage - //======================================================================== -DBG_NAME(OTableSubscriptionPage) -//------------------------------------------------------------------------ - OTableSubscriptionPage::OTableSubscriptionPage( Window* pParent, const SfxItemSet& _rCoreAttrs,OTableSubscriptionDialog* _pTablesDlg ) - :OGenericAdministrationPage( pParent, ModuleRes(PAGE_TABLESUBSCRIPTION), _rCoreAttrs ) - ,m_aTables (this, ModuleRes(FL_SEPARATOR1)) - ,m_aTablesList (this, NULL,ModuleRes(CTL_TABLESUBSCRIPTION),sal_True) - ,m_aExplanation (this, ModuleRes(FT_FILTER_EXPLANATION)) - ,m_bCheckedAll ( sal_False ) - ,m_bCatalogAtStart ( sal_True ) - ,m_pTablesDlg(_pTablesDlg) - { - DBG_CTOR(OTableSubscriptionPage,NULL); - - m_aTablesList.SetCheckHandler(getControlModifiedLink()); - - // initialize the TabListBox - m_aTablesList.SetSelectionMode( MULTIPLE_SELECTION ); - m_aTablesList.SetDragDropMode( 0 ); - m_aTablesList.EnableInplaceEditing( sal_False ); - m_aTablesList.SetStyle(m_aTablesList.GetStyle() | WB_BORDER | WB_HASLINES | WB_HASLINESATROOT | WB_SORT | WB_HASBUTTONS | WB_HSCROLL |WB_HASBUTTONSATROOT); - - m_aTablesList.Clear(); - - FreeResource(); - - m_aTablesList.SetCheckButtonHdl(LINK(this, OTableSubscriptionPage, OnTreeEntryChecked)); - m_aTablesList.SetCheckHandler(LINK(this, OTableSubscriptionPage, OnTreeEntryChecked)); - } - - //------------------------------------------------------------------------ - OTableSubscriptionPage::~OTableSubscriptionPage() - { - // just to make sure that our connection will be removed - try - { - ::comphelper::disposeComponent(m_xCurrentConnection); - } - catch (RuntimeException&) { } - - DBG_DTOR(OTableSubscriptionPage,NULL); - } - - // ----------------------------------------------------------------------------- - void OTableSubscriptionPage::StateChanged( StateChangedType nType ) - { - OGenericAdministrationPage::StateChanged( nType ); - - if ( nType == STATE_CHANGE_CONTROLBACKGROUND ) - { - // Check if we need to get new images for normal/high contrast mode - m_aTablesList.notifyHiContrastChanged(); - } - } - // ----------------------------------------------------------------------------- - void OTableSubscriptionPage::DataChanged( const DataChangedEvent& rDCEvt ) - { - OGenericAdministrationPage::DataChanged( rDCEvt ); - - if ((( rDCEvt.GetType() == DATACHANGED_SETTINGS ) || - ( rDCEvt.GetType() == DATACHANGED_DISPLAY )) && - ( rDCEvt.GetFlags() & SETTINGS_STYLE )) - { - // Check if we need to get new images for normal/high contrast mode - m_aTablesList.notifyHiContrastChanged(); - } - } - //------------------------------------------------------------------ - void OTableSubscriptionPage::resizeControls(const Size& _rDiff) - { - if ( _rDiff.Height() ) - { - Size aOldSize = m_aTablesList.GetSizePixel(); - aOldSize.Height() -= _rDiff.Height(); - m_aTablesList.SetPosSizePixel( - m_aTablesList.GetPosPixel()+Point(0,_rDiff.Height()), - aOldSize - ); - } - } - //------------------------------------------------------------------------ - void OTableSubscriptionPage::implCheckTables(const Sequence< ::rtl::OUString >& _rTables) - { - // the meta data for the current connection, used for splitting up table names - Reference< XDatabaseMetaData > xMeta; - try - { - if (m_xCurrentConnection.is()) - xMeta = m_xCurrentConnection->getMetaData(); - } - catch(SQLException&) - { - OSL_FAIL("OTableSubscriptionPage::implCheckTables : could not retrieve the current connection's meta data!"); - } - - // uncheck all - CheckAll(sal_False); - - // check the ones which are in the list - String aListBoxTable; - ::rtl::OUString sCatalog, sSchema, sName; - - SvLBoxEntry* pRootEntry = m_aTablesList.getAllObjectsEntry(); - sal_Bool bAllTables = sal_False; - sal_Bool bAllSchemas = sal_False; - - const ::rtl::OUString* pIncludeTable = _rTables.getConstArray(); - for (sal_Int32 i=0; i<_rTables.getLength(); ++i, ++pIncludeTable) - { - if (xMeta.is()) - qualifiedNameComponents(xMeta, pIncludeTable->getStr(), sCatalog, sSchema, sName,::dbtools::eInDataManipulation); - else - sName = pIncludeTable->getStr(); - - bAllTables = (1 == sName.getLength()) && ('%' == sName[0]); - bAllSchemas = (1 == sSchema.getLength()) && ('%' == sSchema[0]); - - // the catalog entry - SvLBoxEntry* pCatalog = m_aTablesList.GetEntryPosByName(sCatalog, pRootEntry); - if (!pCatalog && sCatalog.getLength()) - // the table (resp. its catalog) refered in this filter entry does not exist anymore - continue; - - if (bAllSchemas && pCatalog) - { - m_aTablesList.checkWildcard(pCatalog); - continue; - } - - // the schema entry - SvLBoxEntry* pSchema = m_aTablesList.GetEntryPosByName(sSchema, (pCatalog ? pCatalog : pRootEntry)); - if (!pSchema && sSchema.getLength()) - // the table (resp. its schema) refered in this filter entry does not exist anymore - continue; - - if (bAllTables && pSchema) - { - m_aTablesList.checkWildcard(pSchema); - continue; - } - - SvLBoxEntry* pEntry = m_aTablesList.GetEntryPosByName(sName, pSchema ? pSchema : (pCatalog ? pCatalog : pRootEntry) ); - if (pEntry) - m_aTablesList.SetCheckButtonState(pEntry, SV_BUTTON_CHECKED); - } - m_aTablesList.CheckButtons(); - } - - //------------------------------------------------------------------------ - void OTableSubscriptionPage::implCompleteTablesCheck( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rTableFilter ) - { - if (!_rTableFilter.getLength()) - { // no tables visible - CheckAll(sal_False); - } - else - { - if ((1 == _rTableFilter.getLength()) && _rTableFilter[0].equalsAsciiL("%", 1)) - { // all tables visible - CheckAll(sal_True); - } - else - implCheckTables( _rTableFilter ); - } - } - - //------------------------------------------------------------------------- - void OTableSubscriptionPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) - { - // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) - sal_Bool bValid, bReadonly; - getFlags(_rSet, bValid, bReadonly); - - // get the name of the data source we're working for - SFX_ITEMSET_GET(_rSet, pNameItem, SfxStringItem, DSID_NAME, sal_True); - OSL_ENSURE(pNameItem, "OTableSubscriptionPage::implInitControls: missing the name attribute!"); - String sDSName = pNameItem->GetValue(); - - if (bValid && sDSName.Len() && !m_xCurrentConnection.is() ) - { // get the current table list from the connection for the current settings - - // the PropertyValues for the current dialog settings - Sequence< PropertyValue > aConnectionParams; - OSL_ENSURE(m_pTablesDlg, "OTableSubscriptionPage::implInitControls: need a parent dialog doing the translation!"); - if ( m_pTablesDlg ) - { - if (!m_pTablesDlg->getCurrentSettings(aConnectionParams)) - { - m_aTablesList.Clear(); - m_pTablesDlg->endExecution(); - return; - } - } - - if (!m_xCollator.is()) - { - // the collator for the string compares - try - { - m_xCollator = Reference< XCollator >(m_xORB->createInstance(SERVICE_I18N_COLLATOR), UNO_QUERY); - if (m_xCollator.is()) - m_xCollator->loadDefaultCollator(Application::GetSettings().GetLocale(), 0); - } - catch(const Exception&) - { - DBG_UNHANDLED_EXCEPTION(); - } - } - - // fill the table list with this connection information - SQLExceptionInfo aErrorInfo; - // the current DSN - String sURL; - if ( m_pTablesDlg ) - sURL = m_pTablesDlg->getConnectionURL(); - - try - { - WaitObject aWaitCursor(this); - m_aTablesList.GetModel()->SetSortMode(SortAscending); - m_aTablesList.GetModel()->SetCompareHdl(LINK(this, OTableSubscriptionPage, OnTreeEntryCompare)); - - Reference< XDriver > xDriver; - m_aTablesList.setORB(m_xORB); - Reference<XPropertySet> xProp = m_pTablesDlg->getCurrentDataSource(); - OSL_ENSURE(xProp.is(),"No data source set!"); - if ( xProp.is() ) - { - Any aTableFilter = xProp->getPropertyValue(PROPERTY_TABLEFILTER); - Any aTableTypeFilter = xProp->getPropertyValue(PROPERTY_TABLETYPEFILTER); - - Reference<XModifiable> xModi(getDataSourceOrModel(xProp),UNO_QUERY); - sal_Bool bModified = ( xModi.is() && xModi->isModified() ); - - Sequence< ::rtl::OUString > aNewTableFilter(1); - aNewTableFilter[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%")); - xProp->setPropertyValue(PROPERTY_TABLEFILTER,makeAny(aNewTableFilter)); - - xProp->setPropertyValue( PROPERTY_TABLETYPEFILTER, makeAny( Sequence< ::rtl::OUString >() ) ); - Reference< ::com::sun::star::lang::XEventListener> xEvt; - aErrorInfo = ::dbaui::createConnection(xProp,m_xORB,xEvt,m_xCurrentConnection); - - xProp->setPropertyValue(PROPERTY_TABLEFILTER,aTableFilter); - xProp->setPropertyValue(PROPERTY_TABLETYPEFILTER,aTableTypeFilter); - - if ( xModi.is() && !bModified ) - xModi->setModified(sal_False); - - } - - if ( m_xCurrentConnection.is() ) - { - m_aTablesList.UpdateTableList( m_xCurrentConnection ); - if (m_pTablesDlg) - m_pTablesDlg->successfullyConnected(); - } - } - catch (const SQLException&) - { - aErrorInfo = ::cppu::getCaughtException(); - } - - if (aErrorInfo.isValid()) - { - // establishing the connection failed. Show an error window and exit. - OSQLMessageBox aMessageBox( GetParent()->GetParent(), aErrorInfo ); - aMessageBox.Execute(); - m_aTables.Enable(sal_False); - m_aTablesList.Enable(sal_False); - m_aExplanation.Enable(sal_False); - m_aTablesList.Clear(); - - if ( m_pTablesDlg ) - { - m_pTablesDlg->clearPassword(); - m_pTablesDlg->endExecution(); - } - } - else - { - // in addition, we need some infos about the connection used - m_sCatalogSeparator = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".")); // (default) - m_bCatalogAtStart = sal_True; // (default) - try - { - Reference< XDatabaseMetaData > xMeta; - if (m_xCurrentConnection.is()) - xMeta = m_xCurrentConnection->getMetaData(); - if (xMeta.is() && xMeta->supportsCatalogsInDataManipulation()) - { - m_sCatalogSeparator = xMeta->getCatalogSeparator(); - m_bCatalogAtStart = xMeta->isCatalogAtStart(); - } - } - catch(Exception&) - { - DBG_UNHANDLED_EXCEPTION(); - } - } - } - - bValid = bValid && m_xCurrentConnection.is(); - bReadonly = bReadonly || !bValid; - - // get the current table filter - SFX_ITEMSET_GET(_rSet, pTableFilter, OStringListItem, DSID_TABLEFILTER, sal_True); - Sequence< ::rtl::OUString > aTableFilter; - if (pTableFilter) - aTableFilter = pTableFilter->getList(); - - implCompleteTablesCheck( aTableFilter ); - - // expand the first entry by default - SvLBoxEntry* pExpand = m_aTablesList.getAllObjectsEntry(); - while (pExpand) - { - m_aTablesList.Expand(pExpand); - pExpand = m_aTablesList.FirstChild(pExpand); - if (pExpand && m_aTablesList.NextSibling(pExpand)) - pExpand = NULL; - } - - // update the toolbox according the the current selection and check state - OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue); - } - - //------------------------------------------------------------------------ - void OTableSubscriptionPage::CheckAll( sal_Bool _bCheck ) - { - SvButtonState eState = _bCheck ? SV_BUTTON_CHECKED : SV_BUTTON_UNCHECKED; - SvLBoxEntry* pEntry = m_aTablesList.First(); - while (pEntry) - { - m_aTablesList.SetCheckButtonState( pEntry, eState); - pEntry = m_aTablesList.Next(pEntry); - } - - if (_bCheck && m_aTablesList.getAllObjectsEntry()) - m_aTablesList.checkWildcard(m_aTablesList.getAllObjectsEntry()); - } - - //------------------------------------------------------------------------ - int OTableSubscriptionPage::DeactivatePage(SfxItemSet* _pSet) - { - int nResult = OGenericAdministrationPage::DeactivatePage(_pSet); - - // dispose the connection, we don't need it anymore, so we're not wasting resources - try - { - ::comphelper::disposeComponent(m_xCurrentConnection); - } - catch (RuntimeException&) { } - - return nResult; - } - //------------------------------------------------------------------------ - IMPL_LINK( OTableSubscriptionPage, OnTreeEntryChecked, Control*, _pControl ) - { - return OnControlModified(_pControl); - } - //------------------------------------------------------------------------ - IMPL_LINK( OTableSubscriptionPage, OnTreeEntryCompare, const SvSortData*, _pSortData ) - { - SvLBoxEntry* pLHS = static_cast<SvLBoxEntry*>(_pSortData->pLeft); - SvLBoxEntry* pRHS = static_cast<SvLBoxEntry*>(_pSortData->pRight); - OSL_ENSURE(pLHS && pRHS, "SbaTableQueryBrowser::OnTreeEntryCompare: invalid tree entries!"); - - SvLBoxString* pLeftTextItem = static_cast<SvLBoxString*>(pLHS->GetFirstItem(SV_ITEM_ID_LBOXSTRING)); - SvLBoxString* pRightTextItem = static_cast<SvLBoxString*>(pRHS->GetFirstItem(SV_ITEM_ID_LBOXSTRING)); - OSL_ENSURE(pLeftTextItem && pRightTextItem, "SbaTableQueryBrowser::OnTreeEntryCompare: invalid text items!"); - - String sLeftText = pLeftTextItem->GetText(); - String sRightText = pRightTextItem->GetText(); - - sal_Int32 nCompareResult = 0; // equal by default - - if (m_xCollator.is()) - { - try - { - nCompareResult = m_xCollator->compareString(sLeftText, sRightText); - } - catch(Exception&) - { - } - } - else - // default behaviour if we do not have a collator -> do the simple string compare - nCompareResult = sLeftText.CompareTo(sRightText); - - return nCompareResult; - } - - //------------------------------------------------------------------------ - Sequence< ::rtl::OUString > OTableSubscriptionPage::collectDetailedSelection() const - { - Sequence< ::rtl::OUString > aTableFilter; - static const ::rtl::OUString sDot(RTL_CONSTASCII_USTRINGPARAM(".")); - static const ::rtl::OUString sWildcard(RTL_CONSTASCII_USTRINGPARAM("%")); - - ::rtl::OUString sComposedName; - const SvLBoxEntry* pAllObjectsEntry = m_aTablesList.getAllObjectsEntry(); - if (!pAllObjectsEntry) - return aTableFilter; - SvLBoxEntry* pEntry = m_aTablesList.GetModel()->Next(const_cast<SvLBoxEntry*>(pAllObjectsEntry)); - while(pEntry) - { - sal_Bool bCatalogWildcard = sal_False; - sal_Bool bSchemaWildcard = sal_False; - SvLBoxEntry* pSchema = NULL; - SvLBoxEntry* pCatalog = NULL; - - if (m_aTablesList.GetCheckButtonState(pEntry) == SV_BUTTON_CHECKED && !m_aTablesList.GetModel()->HasChilds(pEntry)) - { // checked and a leaf, which means it's no catalog, no schema, but a real table - ::rtl::OUString sCatalog; - if(m_aTablesList.GetModel()->HasParent(pEntry)) - { - pSchema = m_aTablesList.GetModel()->GetParent(pEntry); - if (pAllObjectsEntry == pSchema) - // do not want to have the root entry - pSchema = NULL; - - if (pSchema) - { // it's a real schema entry, not the "all objects" root - if(m_aTablesList.GetModel()->HasParent(pSchema)) - { - pCatalog = m_aTablesList.GetModel()->GetParent(pSchema); - if (pAllObjectsEntry == pCatalog) - // do not want to have the root entry - pCatalog = NULL; - - if (pCatalog) - { // it's a real catalog entry, not the "all objects" root - bCatalogWildcard = m_aTablesList.isWildcardChecked(pCatalog); - if (m_bCatalogAtStart) - { - sComposedName += m_aTablesList.GetEntryText( pCatalog ); - sComposedName += m_sCatalogSeparator; - if (bCatalogWildcard) - sComposedName += sWildcard; - } - else - { - if (bCatalogWildcard) - sCatalog = sWildcard; - else - sCatalog = ::rtl::OUString(); - sCatalog += m_sCatalogSeparator; - sCatalog += m_aTablesList.GetEntryText( pCatalog ); - } - } - } - bSchemaWildcard = m_aTablesList.isWildcardChecked(pSchema); - sComposedName += m_aTablesList.GetEntryText( pSchema ); - sComposedName += sDot; - } - - if (bSchemaWildcard) - sComposedName += sWildcard; - } - if (!bSchemaWildcard && !bCatalogWildcard) - sComposedName += m_aTablesList.GetEntryText( pEntry ); - - if (!m_bCatalogAtStart && !bCatalogWildcard) - sComposedName += sCatalog; - - // need some space - sal_Int32 nOldLen = aTableFilter.getLength(); - aTableFilter.realloc(nOldLen + 1); - // add the new name - aTableFilter[nOldLen] = sComposedName; - - // reset the composed name - sComposedName = ::rtl::OUString(); - } - - if (bCatalogWildcard) - pEntry = implNextSibling(pCatalog); - else if (bSchemaWildcard) - pEntry = implNextSibling(pSchema); - else - pEntry = m_aTablesList.GetModel()->Next(pEntry); - } - - return aTableFilter; - } - - //------------------------------------------------------------------------ - SvLBoxEntry* OTableSubscriptionPage::implNextSibling(SvLBoxEntry* _pEntry) const - { - SvLBoxEntry* pReturn = NULL; - if (_pEntry) - { - pReturn = m_aTablesList.NextSibling(_pEntry); - if (!pReturn) - pReturn = implNextSibling(m_aTablesList.GetParent(_pEntry)); - } - return pReturn; - } - - //------------------------------------------------------------------------ - sal_Bool OTableSubscriptionPage::FillItemSet( SfxItemSet& _rCoreAttrs ) - { - sal_Bool bValid, bReadonly; - getFlags(_rCoreAttrs, bValid, bReadonly); - - if (!bValid || bReadonly) - // don't store anything if the data we're working with is invalid or readonly - return sal_True; - - ///////////////////////////////////////////////////////////////////////// - // create the output string which contains all the table names - if ( m_xCurrentConnection.is() ) - { // collect the table filter data only if we have a connection - else no tables are displayed at all - Sequence< ::rtl::OUString > aTableFilter; - if (m_aTablesList.isWildcardChecked(m_aTablesList.getAllObjectsEntry())) - { - aTableFilter.realloc(1); - aTableFilter[0] = ::rtl::OUString("%", 1, RTL_TEXTENCODING_ASCII_US); - } - else - { - aTableFilter = collectDetailedSelection(); - } - _rCoreAttrs.Put( OStringListItem(DSID_TABLEFILTER, aTableFilter) ); - } - - return sal_True; - } - - // ----------------------------------------------------------------------- - void OTableSubscriptionPage::fillControls(::std::vector< ISaveValueWrapper* >& /*_rControlList*/) - { - } - // ----------------------------------------------------------------------- - void OTableSubscriptionPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList) - { - _rControlList.push_back(new ODisableWrapper<OTableTreeListBox>(&m_aTablesList)); - _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aTables)); - _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aExplanation)); - } - // ----------------------------------------------------------------------- -//......................................................................... -} // namespace dbaui -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/tablespage.hxx b/dbaccess/source/ui/dlg/tablespage.hxx deleted file mode 100644 index 3861822aa..000000000 --- a/dbaccess/source/ui/dlg/tablespage.hxx +++ /dev/null @@ -1,123 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DBAUI_TABLESPAGE_HXX_ -#define _DBAUI_TABLESPAGE_HXX_ - -#include "adminpages.hxx" -#include <com/sun/star/i18n/XCollator.hpp> -#include <osl/mutex.hxx> -#include <comphelper/stl_types.hxx> -#include <vcl/fixed.hxx> -#include "tabletree.hxx" -#include <com/sun/star/sdbc/XConnection.hpp> - - -//......................................................................... -namespace dbaui -{ -//......................................................................... - - //======================================================================== - //= OTableSubscriptionPage - //======================================================================== - class OTableSubscriptionDialog; - class OTableSubscriptionPage - :public OGenericAdministrationPage - { - private: - FixedLine m_aTables; - OTableTreeListBox m_aTablesList; - FixedText m_aExplanation; - - ::rtl::OUString m_sCatalogSeparator; - sal_Bool m_bCheckedAll : 1; - sal_Bool m_bCatalogAtStart : 1; - - ::osl::Mutex m_aNotifierMutex; - - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > - m_xCurrentConnection; /// valid as long as the page is active - ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XCollator > - m_xCollator; - OTableSubscriptionDialog* m_pTablesDlg; - - public: - virtual sal_Bool FillItemSet(SfxItemSet& _rCoreAttrs); - virtual int DeactivatePage(SfxItemSet* _pSet); - using OGenericAdministrationPage::DeactivatePage; - - virtual void StateChanged( StateChangedType nStateChange ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - - /** will be called when the controls need to be resized. - */ - virtual void resizeControls(const Size& _rDiff); - - OTableSubscriptionPage( Window* pParent, const SfxItemSet& _rCoreAttrs ,OTableSubscriptionDialog* _pTablesDlg); - virtual ~OTableSubscriptionPage(); - - protected: - virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); - virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); - - DECL_LINK( OnTreeEntryCompare, const SvSortData* ); - DECL_LINK( OnTreeEntryChecked, Control* ); - - private: - - - /** check the tables in <member>m_aTablesList</member> according to <arg>_rTables</arg> - */ - void implCheckTables(const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rTables); - - /// returns the next sibling, if not available, the next sibling of the parent, a.s.o. - SvLBoxEntry* implNextSibling(SvLBoxEntry* _pEntry) const; - - /** return the current selection in <member>m_aTablesList</member> - */ - ::com::sun::star::uno::Sequence< ::rtl::OUString > collectDetailedSelection() const; - - /// (un)check all entries - void CheckAll( sal_Bool bCheck = sal_True ); - - virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); - - // checks the tables according to the filter given - // in oppsofite to implCheckTables, this method handles the case of an empty sequence, too ... - void implCompleteTablesCheck( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rTableFilter ); - }; - -//......................................................................... -} // namespace dbaui -//......................................................................... - -#endif // _DBAUI_TABLESPAGE_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/textconnectionsettings.cxx b/dbaccess/source/ui/dlg/textconnectionsettings.cxx deleted file mode 100644 index 6371268a9..000000000 --- a/dbaccess/source/ui/dlg/textconnectionsettings.cxx +++ /dev/null @@ -1,109 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_dbaccess.hxx" - -#include "textconnectionsettings.hxx" -#include "TextConnectionHelper.hxx" -#include "dbu_resource.hrc" -#include "moduledbu.hxx" -#include "dsitems.hxx" -#include "dbustrings.hrc" - -/** === begin UNO includes === **/ -/** === end UNO includes === **/ - -#include <vcl/msgbox.hxx> - -//........................................................................ -namespace dbaui -{ -//........................................................................ - - /** === begin UNO using === **/ - /** === end UNO using === **/ - - //==================================================================== - //= TextConnectionSettingsDialog - //==================================================================== - //-------------------------------------------------------------------- - TextConnectionSettingsDialog::TextConnectionSettingsDialog( Window* _pParent, SfxItemSet& _rItems ) - :ModalDialog( _pParent, ModuleRes( DLG_TEXT_CONNECTION_SETTINGS ) ) - ,m_aOK( this, ModuleRes( 1 ) ) - ,m_aCancel( this, ModuleRes( 1 ) ) - ,m_rItems( _rItems ) - { - m_pTextConnectionHelper.reset( new OTextConnectionHelper( this, TC_HEADER | TC_SEPARATORS | TC_CHARSET ) ); - FreeResource(); - - m_aOK.SetClickHdl( LINK( this, TextConnectionSettingsDialog, OnOK ) ); - } - - //-------------------------------------------------------------------- - TextConnectionSettingsDialog::~TextConnectionSettingsDialog() - { - } - - //-------------------------------------------------------------------- - void TextConnectionSettingsDialog::bindItemStorages( SfxItemSet& _rSet, PropertyValues& _rValues ) - { - _rValues[ PROPERTY_ID_HEADER_LINE ].reset( new SetItemPropertyStorage( _rSet, DSID_TEXTFILEHEADER ) ); - _rValues[ PROPERTY_ID_FIELD_DELIMITER ].reset( new SetItemPropertyStorage( _rSet, DSID_FIELDDELIMITER ) ); - _rValues[ PROPERTY_ID_STRING_DELIMITER ].reset( new SetItemPropertyStorage( _rSet, DSID_TEXTDELIMITER ) ); - _rValues[ PROPERTY_ID_DECIMAL_DELIMITER ].reset( new SetItemPropertyStorage( _rSet, DSID_DECIMALDELIMITER ) ); - _rValues[ PROPERTY_ID_THOUSAND_DELIMITER ].reset( new SetItemPropertyStorage( _rSet, DSID_THOUSANDSDELIMITER ) ); - _rValues[ PROPERTY_ID_ENCODING ].reset( new SetItemPropertyStorage( _rSet, DSID_CHARSET ) ); - } - - //-------------------------------------------------------------------- - short TextConnectionSettingsDialog::Execute() - { - m_pTextConnectionHelper->implInitControls( m_rItems, sal_True ); - return ModalDialog::Execute(); - } - - //-------------------------------------------------------------------- - IMPL_LINK( TextConnectionSettingsDialog, OnOK, PushButton*, /*_pButton*/ ) - { - if ( m_pTextConnectionHelper->prepareLeave() ) - { - sal_Bool bUnused = sal_False; - m_pTextConnectionHelper->FillItemSet( m_rItems, bUnused ); - EndDialog( RET_OK ); - return 1L; - } - - return 0L; - } - -//........................................................................ -} // namespace dbaui -//........................................................................ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/textconnectionsettings.src b/dbaccess/source/ui/dlg/textconnectionsettings.src deleted file mode 100644 index b34a05607..000000000 --- a/dbaccess/source/ui/dlg/textconnectionsettings.src +++ /dev/null @@ -1,61 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "dbu_dlg.hrc" -#include "dbu_resource.hrc" -#include "AutoControls.hrc" - -#define DIALOG_WIDTH 200 -#define DIALOG_HEIGHT 160 - -ModalDialog DLG_TEXT_CONNECTION_SETTINGS -{ - HelpID = "dbaccess:ModalDialog:DLG_TEXT_CONNECTION_SETTINGS"; - Size = MAP_APPFONT( DIALOG_WIDTH, DIALOG_HEIGHT ); - OutputSize = TRUE ; - - Moveable = TRUE ; - Closeable = TRUE ; - - Text [ en-US ] = "Text Connection Settings"; - - AUTO_SEPARATORCONTROLGROUP( UNRELATED_CONTROLS, DIALOG_WIDTH ) - - OKButton 1 - { - Pos = MAP_APPFONT( DIALOG_WIDTH - 6 - BUTTON_WIDTH - RELATED_CONTROLS - BUTTON_WIDTH, DIALOG_HEIGHT - 6 - BUTTON_HEIGHT ); - Size = MAP_APPFONT( BUTTON_WIDTH, BUTTON_HEIGHT ); - - DefButton = TRUE; - }; - - CancelButton 1 - { - Pos = MAP_APPFONT( DIALOG_WIDTH - 6 - BUTTON_WIDTH, DIALOG_HEIGHT - 6 - BUTTON_HEIGHT ); - Size = MAP_APPFONT( BUTTON_WIDTH, BUTTON_HEIGHT ); - }; -}; |