20#include <core_resource.hxx>
44#include <com/sun/star/frame/TerminationVetoException.hpp>
45#include <com/sun/star/frame/XStorable.hpp>
46#include <com/sun/star/sdb/DatabaseContext.hpp>
47#include <com/sun/star/frame/Desktop.hpp>
48#include <com/sun/star/frame/FrameSearchFlag.hpp>
49#include <com/sun/star/frame/XComponentLoader.hpp>
50#include <com/sun/star/frame/XModel.hpp>
51#include <com/sun/star/ucb/SimpleFileAccess.hpp>
52#include <com/sun/star/ucb/InteractiveIOException.hpp>
53#include <com/sun/star/io/IOException.hpp>
54#include <com/sun/star/frame/XTerminateListener.hpp>
55#include <com/sun/star/document/MacroExecMode.hpp>
56#include <com/sun/star/ucb/IOErrorCode.hpp>
57#include <com/sun/star/task/InteractionHandler.hpp>
58#include <com/sun/star/task/XInteractionHandler2.hpp>
59#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
64#include <osl/diagnose.h>
87using namespace ::
cppu;
95 ,
const css::uno::Any& _aDataSourceName
99 , m_bIsConnectable( false)
100 , m_sRM_IntroText(
DBA_RES( STR_PAGETITLE_INTROPAGE ) )
101 , m_sRM_dBaseText(
DBA_RES( STR_PAGETITLE_DBASE ) )
102 , m_sRM_TextText(
DBA_RES( STR_PAGETITLE_TEXT ) )
103 , m_sRM_MSAccessText(
DBA_RES( STR_PAGETITLE_MSACCESS ) )
104 , m_sRM_LDAPText(
DBA_RES( STR_PAGETITLE_LDAP ) )
105 , m_sRM_ADOText(
DBA_RES( STR_PAGETITLE_ADO ) )
106 , m_sRM_JDBCText(
DBA_RES( STR_PAGETITLE_JDBC ) )
107 , m_sRM_MySQLNativePageTitle(
DBA_RES( STR_PAGETITLE_MYSQL_NATIVE ) )
108 , m_sRM_OracleText(
DBA_RES( STR_PAGETITLE_ORACLE ) )
109 , m_sRM_PostgresText(
DBA_RES( STR_PAGETITLE_POSTGRES ) )
110 , m_sRM_MySQLText(
DBA_RES( STR_PAGETITLE_MYSQL ) )
111 , m_sRM_ODBCText(
DBA_RES( STR_PAGETITLE_ODBC ) )
112 , m_sRM_DocumentOrSpreadSheetText(
DBA_RES( STR_PAGETITLE_DOCUMENT_OR_SPREADSHEET ) )
113 , m_sRM_AuthentificationText(
DBA_RES( STR_PAGETITLE_AUTHENTIFICATION ) )
114 , m_sRM_FinalText(
DBA_RES( STR_PAGETITLE_FINAL ) )
116 , m_pGeneralPage( nullptr )
117 , m_pMySQLIntroPage( nullptr )
118 , m_pFinalPage( nullptr )
123 assert(pCollectionItem &&
"must exist");
126 assert(
m_pCollection &&
"ODbTypeWizDialogSetup::ODbTypeWizDialogSetup : really need a DSN type collection !");
129 m_pImpl->setDataSourceOrName(_aDataSourceName);
141 for(
PathId i = 1;aIter != aEnd;++aIter,++
i)
143 const OUString& sURLPrefix = aIter.getURLPrefix();
177 for (
auto const& path : _rPaths)
180 aPath.push_back(path);
189 OUString sRoadmapItem;
242 sRoadmapItem =
DBA_RES(STR_PAGETITLE_CONNECTION);
259 activateDatabasePath();
264 _rDSInfo.
merge(_aNew,
true);
265 uno::Sequence< beans::NamedValue > aOldValues = _aOld.
getNamedValues();
266 const beans::NamedValue* pIter = aOldValues.getConstArray();
267 const beans::NamedValue* pEnd = pIter + aOldValues.getLength();
268 for(;pIter != pEnd;++pIter)
270 if ( !_aNew.has(pIter->Name) )
272 _rDSInfo.
remove(pIter->Name);
279 if ( _pCollection->getPrefix(_sOldURLPrefix) == _pCollection->getPrefix(_sNewURLPrefix) )
281 uno::Sequence< beans::PropertyValue> aInfo;
287 const ::comphelper::NamedValueCollection& aOldProperties = aDriverConfig.getProperties(_sOldURLPrefix);
288 const ::comphelper::NamedValueCollection& aNewProperties = aDriverConfig.getProperties(_sNewURLPrefix);
302 if ( nCreateNewDBIndex == -1 )
304 OSL_ENSURE( nCreateNewDBIndex != -1,
"ODbTypeWizDialogSetup::activateDatabasePath: the GeneralPage should have prevented this!" );
331 OSL_FAIL(
"ODbTypeWizDialogSetup::activateDatabasePath: unknown creation mode!" );
342 bool bDoEnable =
false;
344 if (!bIsConnectionRequired)
364 for (
auto const& elem : rMap)
383 return m_pImpl->createConnection();
414 return LocDatabaseType;
425 sRet =
"sdbc:mysql:jdbc:";
428 sRet =
"sdbc:mysql:mysqlc:";
431 sRet =
"sdbc:mysql:odbc:";
465 std::unique_ptr<OGenericAdministrationPage> xPage;
467 OUString sIdent(OUString::number(_nState));
473 xPage = std::make_unique<OGeneralPageWizard>(pPageContainer,
this,*
m_pOutSet);
553 xPage->SetServiceFactory(
m_pImpl->getORB() );
554 xPage->SetAdminDialog(
this,
this);
567 m_bIsConnectable = _pConnectionPageSetup->GetRoadmapStateValue( );
571 enableButtons( WizardButtonFlags::FINISH,
true);
573 enableButtons( WizardButtonFlags::FINISH, m_bIsConnectable);
580 switch( _pMySQLIntroPageSetup->getMySQLMode() )
583 sURLPrefix =
"sdbc:mysql:odbc:";
586 sURLPrefix =
"sdbc:mysql:jdbc:";
589 sURLPrefix =
"sdbc:mysql:mysqlc:";
592 activatePath(
static_cast<PathId>(m_pCollection->getIndexOf(sURLPrefix) + 1),
true);
597 activateDatabasePath();
602 enableButtons( WizardButtonFlags::FINISH, !m_pGeneralPage->GetSelectedDocumentURL().isEmpty() );
607 if (prepareLeaveCurrentState(WizardTypes::eFinish))
662 pRequest->addContinuation( pAbort );
664 return _rxHandler->handleInteractionRequest( pRequest );
684 aArgs.
put(
"Overwrite",
true );
685 aArgs.
put(
"InteractionHandler", xHandler );
686 aArgs.
put(
"MacroExecutionMode", MacroExecMode::USE_CONFIG );
687 aArgs.
put(
"IgnoreFirebirdMigration",
true );
700 Any aError = ::cppu::getCaughtException();
703 if ( !lcl_handle( xHandler, aError ) )
705 InteractiveIOException aRequest;
706 aRequest.Classification = InteractionClassification_ERROR;
709 aRequest.Code = IOErrorCode_CANT_WRITE;
711 aRequest.Code = IOErrorCode_GENERAL;
712 aRequest.Message = e.Message;
713 aRequest.Context = e.Context;
714 lcl_handle( xHandler,
Any( aRequest ) );
751 OSL_ENSURE(xDatasource.is(),
"DataSource is null!");
752 if ( xDatasource.is() )
763 xSimpleFileAccess->createFolder(sUrl);
776 OUString sDatabaseName = ::dbtools::createUniqueName(xDatabaseContext, sFilename,
false);
777 xDatabaseContext->registerObject(sDatabaseName, xDatasource);
784 ui::dialogs::TemplateDescription::FILESAVE_AUTOEXTENSION,
790 OUString sDefaultName =
DBA_RES( STR_DATABASEDEFAULTNAME );
791 OUString sExtension = pFilter->GetDefaultExtension();
792 sDefaultName += sExtension.replaceAt( 0, 1,
u"" );
794 aWorkURL.
Append( sDefaultName );
798 aFileDlg.
AddFilter(pFilter->GetUIName(),pFilter->GetDefaultExtension());
808 if ( ::utl::UCBContentHelper::IsDocument(sFileName) )
809 ::utl::UCBContentHelper::Kill(sFileName);
820 OUString sLastSegmentName = pURL->
getName();
821 bool bFolderExists =
true;
823 while (bFolderExists)
829 pURL->
setName(Concat2View(sLastSegmentName + OUString::number(
i)));
837 OUString BaseName = _rURL.
getBase();
839 bool bElementExists =
true;
842 for ( sal_Int32
i = 1; bElementExists; )
845 if ( bElementExists )
847 aExistenceCheck.
setBase( Concat2View(BaseName + OUString::number(
i ) ));
862 typedef ::cppu::WeakImplHelper< XTerminateListener
864 class AsyncLoader :
public AsyncLoader_Base
879 virtual void SAL_CALL queryTermination(
const css::lang::EventObject& Event )
override;
880 virtual void SAL_CALL notifyTermination(
const css::lang::EventObject& Event )
override;
882 virtual void SAL_CALL disposing(
const css::lang::EventObject& Source )
override;
885 DECL_LINK( OnOpenDocument,
void*,
void );
898 catch(
const Exception& )
904 void AsyncLoader::doLoadAsync()
906 OSL_ENSURE( !
m_aAsyncCaller.IsRunning(),
"AsyncLoader:doLoadAsync: already running!" );
927 aLoadArgs.
put(
"MacroExecutionMode", MacroExecMode::USE_CONFIG );
930 aLoadArgs >>= aLoadArgPV;
934 FrameSearchFlag::ALL,
939 catch(
const Exception& )
955 void SAL_CALL AsyncLoader::queryTermination(
const css::lang::EventObject& )
957 throw TerminationVetoException();
960 void SAL_CALL AsyncLoader::notifyTermination(
const css::lang::EventObject& )
963 void SAL_CALL AsyncLoader::disposing(
const css::lang::EventObject& )
968 bool ODbTypeWizDialogSetup::onFinish()
970 if ( m_pGeneralPage->GetDatabaseCreationMode() == OGeneralPageWizard::eOpenExisting )
976 if ( !WizardMachine::Finish() )
982 pAsyncLoader->doLoadAsync();
997 return SaveDatabaseDocument() && WizardMachine::onFinish();
1000 enableButtons( WizardButtonFlags::FINISH,
false );
OUString getName(sal_Int32 nIndex=LAST_SEGMENT, bool bIgnoreFinalSlash=true, DecodeMechanism eMechanism=DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8) const
OUString GetMainURL(DecodeMechanism eMechanism, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8) const
OUString getBase(sal_Int32 nIndex=LAST_SEGMENT, bool bIgnoreFinalSlash=true, DecodeMechanism eMechanism=DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8) const
bool setBase(std::u16string_view rTheBase, sal_Int32 nIndex=LAST_SEGMENT, EncodeMechanism eMechanism=EncodeMechanism::WasEncoded, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8)
bool setName(std::u16string_view rTheName, EncodeMechanism eMechanism=EncodeMechanism::WasEncoded, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8)
INetProtocol GetProtocol() const
bool Append(std::u16string_view rTheSegment, EncodeMechanism eMechanism=EncodeMechanism::WasEncoded, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8)
const WhichRangesContainer & GetRanges() const
SfxItemPool * GetPool() const
sal_uInt16 ClearItem(sal_uInt16 nWhich=0)
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
virtual DeactivateRC DeactivatePage(SfxItemSet *pSet)
virtual bool FillItemSet(SfxItemSet *)
bool remove(const OUString &_rValueName)
bool put(const OUString &_rValueName, const VALUE_TYPE &_rValue)
css::uno::Sequence< css::beans::NamedValue > getNamedValues() const
NamedValueCollection & merge(const NamedValueCollection &_rAdditionalValues, bool _bOverwriteExisting)
css::uno::Sequence< css::beans::PropertyValue > getPropertyValues() const
DATASOURCE_TYPE determineType(std::u16string_view _rDsn) const
TypeIterator end() const
get access to the (last + 1st) element of the types collection
bool supportsTableCreation(std::u16string_view _sURL) const
check if the given data source allows creation of tables
bool isFileSystemBased(std::u16string_view _sURL) const
check if the given data source type is based on the file system - i.e. the URL is a prefix plus a fil...
static bool isEmbeddedDatabase(std::u16string_view _sURL)
checks if the given data source type embeds its data into the database document
OUString getPrefix(std::u16string_view _sURL) const
on a given string, return the type prefix
void fillPageIds(std::u16string_view _sURL, std::vector< sal_Int16 > &_rOutPathIds) const
TypeIterator begin() const
get access to the first element of the types collection
css::uno::Sequence< css::beans::PropertyValue > getDefaultDBSettings(std::u16string_view _sURL) const
returns default settings for newly created databases of the given type.
bool isConnectionUrlRequired(std::u16string_view _sURL) const
sal_Int32 getIndexOf(std::u16string_view _sURL) const
TypeIterator(const TypeIterator &_rSource)
allows an ODsnTypeCollection to be transported in an SfxItemSet
::dbaccess::ODsnTypeCollection * getCollection() const
static std::unique_ptr< OGenericAdministrationPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &rAttrSet)
static std::unique_ptr< OGenericAdministrationPage > CreateAuthentificationTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &_rAttrSet)
static std::unique_ptr< OGenericAdministrationPage > CreateADOTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &_rAttrSet)
static std::unique_ptr< OGenericAdministrationPage > CreateUserDefinedTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &_rAttrSet)
static std::unique_ptr< OGenericAdministrationPage > CreateDbaseTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &_rAttrSet)
static std::unique_ptr< OGenericAdministrationPage > CreateODBCTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &_rAttrSet)
static std::unique_ptr< OGenericAdministrationPage > CreateMSAccessTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &_rAttrSet)
std::map< sal_Int32, OUString > MapInt2String
static OUString getDocumentUrl(SfxItemSet const &_rDest)
static OUString getDatasourceType(const SfxItemSet &_rSet)
extracts the connection type from the given setThe connection type is determined by the value of the ...
virtual void clearPassword() override
OUString m_sRM_OracleText
virtual OUString getStateDisplayName(WizardState _nState) const override
OUString m_sRM_MSAccessText
void SetFinalPage(OFinalDBPageSetup *pPage)
OUString createUniqueFileName(const INetURLObject &rURL)
bool IsTableWizardToBeStarted() const
returns <TRUE> if the table wizard should be opened, otherwise <FALSE>.
virtual const SfxItemSet * getOutputSet() const override
virtual bool leaveState(WizardState _nState) override
void SetGeneralPage(OGeneralPageWizard *pPage)
virtual css::uno::Reference< css::uno::XComponentContext > getORB() const override
virtual css::uno::Reference< css::sdbc::XDriver > getDriver() override
OGeneralPageWizard * m_pGeneralPage
virtual std::unique_ptr< BuilderPage > createPage(WizardState _nState) override
to override to create new pages
virtual SfxItemSet * getWriteOutputSet() override
::dbaccess::ODsnTypeCollection * m_pCollection
void declareAuthDepPath(const OUString &_sURL, PathId _nPathId, const vcl::RoadmapWizardTypes::WizardPath &_rPaths)
declares a path with or without authentication, as indicated by the database type
virtual void enableConfirmSettings(bool _bEnable) override
enables or disables the user's possibility to confirm the settings
void resetPages(const css::uno::Reference< css::beans::XPropertySet > &_rxDatasource)
virtual void saveDatasource() override
virtual void setTitle(const OUString &_sTitle) override
virtual std::pair< css::uno::Reference< css::sdbc::XConnection >, bool > createConnection() override
OUString m_sRM_AuthentificationText
bool SaveDatabaseDocument()
void activateDatabasePath()
virtual ~ODbTypeWizDialogSetup() override
std::unique_ptr< SfxItemSet > m_pOutSet
virtual OUString getDatasourceType(const SfxItemSet &_rSet) const override
OFinalDBPageSetup * m_pFinalPage
ODbTypeWizDialogSetup(weld::Window *pParent, SfxItemSet const *_pItems, const css::uno::Reference< css::uno::XComponentContext > &_rxORB, const css::uno::Any &_aDataSourceName)
the DSN type collection instance
OMySQLIntroPageSetup * m_pMySQLIntroPage
bool IsDatabaseDocumentToBeOpened() const
returns <TRUE> if the database should be opened, otherwise <FALSE>.
virtual void enterState(WizardState _nState) override
void RegisterDataSourceByLocation(std::u16string_view sPath)
void updateTypeDependentStates()
void SetIntroPage(OMySQLIntroPageSetup *pPage)
virtual ::vcl::IWizardPageController * getPageController(BuilderPage *pCurrentPage) const override
::dbaccess::DATASOURCE_TYPE VerifyDataSourceType(const ::dbaccess::DATASOURCE_TYPE DatabaseType) const
OUString m_sRM_DocumentOrSpreadSheetText
void createUniqueFolderName(INetURLObject *pURL)
std::unique_ptr< ODbDataSourceAdministrationHelper > m_pImpl
OUString m_sRM_PostgresText
OUString m_sRM_MySQLNativePageTitle
bool IsTableWizardToBeStarted() const
bool IsDatabaseDocumentToBeRegistered() const
void enableTableWizardCheckBox(bool _bSupportsTableCreation)
static std::unique_ptr< OGenericAdministrationPage > CreateFinalDBTabPageSetup(weld::Container *pPage, ODbTypeWizDialogSetup *pController, const SfxItemSet &_rAttrSet)
bool IsDatabaseDocumentToBeOpened() const
CreationMode GetDatabaseCreationMode() const
OUString GetSelectedDocumentURL() const
void SetChooseDocumentHandler(const Link< OGeneralPageWizard &, void > &_rHandler)
void SetDocumentSelectionHandler(const Link< OGeneralPageWizard &, void > &_rHandler)
void SetCreationModeHandler(const Link< OGeneralPageWizard &, void > &_rHandler)
void SetTypeSelectHandler(const Link< OGeneralPage &, void > &_rHandler)
set a handler which gets called every time the user selects a new type
const OUString & GetSelectedType() const
get the currently selected datasource type
static std::unique_ptr< OGenericAdministrationPage > CreateOracleJDBCTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &_rAttrSet)
static std::unique_ptr< OGenericAdministrationPage > CreateMySQLJDBCTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &_rAttrSet)
static std::unique_ptr< OGenericAdministrationPage > CreateJDBCTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &rAttrSet)
static std::unique_ptr< OGenericAdministrationPage > CreateLDAPTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &_rAttrSet)
void SetClickHdl(const Link< OMySQLIntroPageSetup *, void > &rLink)
static std::unique_ptr< OMySQLIntroPageSetup > CreateMySQLIntroTabPage(weld::Container *pPage, ODbTypeWizDialogSetup *pController, const SfxItemSet &rAttrSet)
ConnectionType getMySQLMode() const
static std::unique_ptr< OGenericAdministrationPage > CreatePostgresTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &_rAttrSet)
static std::unique_ptr< OGenericAdministrationPage > CreateDocumentOrSpreadSheetTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &_rAttrSet)
static std::unique_ptr< OGenericAdministrationPage > CreateTextTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &_rAttrSet)
void AddFilter(const OUString &rFilterName, const OUString &rExtension)
void SetFileName(const OUString &_rFileName)
void SetCurrentFilter(const OUString &rFilter)
void SetContext(Context _eNewContext)
void SetRoadmapHelpId(const OUString &_rId)
void declarePath(RoadmapWizardTypes::PathId _nPathId, const RoadmapWizardTypes::WizardPath &_lWizardStates)
void activatePath(RoadmapWizardTypes::PathId _nPathId, bool _bDecideForIt=false)
virtual void enterState(WizardTypes::WizardState nState) override
void enableState(WizardTypes::WizardState nState, bool _bEnable=true)
std::unique_ptr< weld::Button > m_xNextPage
std::unique_ptr< weld::Button > m_xCancel
void defaultButton(WizardButtonFlags _nWizardButtonFlags)
void enableAutomaticNextButtonState()
std::unique_ptr< weld::Button > m_xPrevPage
virtual void ActivatePage()
void enableButtons(WizardButtonFlags _nWizardButtonFlags, bool _bEnable)
std::unique_ptr< weld::Button > m_xHelp
std::unique_ptr< weld::Button > m_xFinish
WizardTypes::WizardState getCurrentState() const
void setTitleBase(const OUString &_rTitleBase)
BuilderPage * GetPage(WizardTypes::WizardState eState) const
std::unique_ptr< weld::Assistant > m_xAssistant
Reference< XComponentLoader > m_xFrameLoader
Reference< XDesktop2 > m_xDesktop
OAsynchronousLink m_aAsyncCaller
Reference< XInteractionHandler2 > m_xInteractionHandler
#define DBG_UNHANDLED_EXCEPTION(...)
DECL_LINK(CheckNameHdl, SvxNameDialog &, bool)
#define DSID_DOCUMENT_URL
#define DSID_TYPECOLLECTION
#define PAGE_DBSETUPWIZARD_ADO
#define PAGE_DBSETUPWIZARD_MYSQL_INTRO
#define PAGE_DBSETUPWIZARD_MYSQL_NATIVE
#define PAGE_DBSETUPWIZARD_MSACCESS
#define PAGE_DBSETUPWIZARD_POSTGRES
#define PAGE_DBSETUPWIZARD_JDBC
#define PAGE_DBSETUPWIZARD_MYSQL_JDBC
#define PAGE_DBSETUPWIZARD_DOCUMENT_OR_SPREADSHEET
#define PAGE_DBSETUPWIZARD_LDAP
#define PAGE_DBSETUPWIZARD_DBASE
#define PAGE_DBSETUPWIZARD_MYSQL_ODBC
#define PAGE_DBSETUPWIZARD_AUTHENTIFICATION
#define PAGE_DBSETUPWIZARD_USERDEFINED
#define PAGE_DBSETUPWIZARD_INTRO
#define PAGE_DBSETUPWIZARD_TEXT
#define PAGE_DBSETUPWIZARD_ODBC
#define PAGE_DBSETUPWIZARD_ORACLE
#define PAGE_DBSETUPWIZARD_FINAL
constexpr OUStringLiteral HID_DBWIZ_NEXT
constexpr OUStringLiteral HID_DBWIZ_CANCEL
constexpr OUStringLiteral HID_DBWIZ_HELP
constexpr OUStringLiteral HID_DBWIZ_PREVIOUS
constexpr OUStringLiteral HID_DBWIZ_ROADMAP
constexpr OUStringLiteral HID_DBWIZ_FINISH
#define LINK(Instance, Class, Member)
DATASOURCE_TYPE
known datasource types
@ DST_UNKNOWN
unrecognized type
void convert(const css::uno::Reference< css::uno::XComponentContext > &xContext, const ::dbaccess::ODsnTypeCollection *_pCollection, std::u16string_view _sOldURLPrefix, std::u16string_view _sNewURLPrefix, const css::uno::Reference< css::beans::XPropertySet > &_xDatasource)
static void lcl_removeUnused(const ::comphelper::NamedValueCollection &_aOld, const ::comphelper::NamedValueCollection &_aNew,::comphelper::NamedValueCollection &_rDSInfo)
IMPL_LINK_NOARG(OApplicationController, OnClipboardChanged, TransferableDataHelper *, void)
IMPL_LINK_NOARG(ODbTypeWizDialogSetup, OnSingleDocumentChosen, OGeneralPageWizard &, void)
IMPL_LINK(OApplicationController, OnSelectContainer, void *, _pType, void)
css::uno::Reference< css::uno::XInterface > getDataSourceOrModel(const css::uno::Reference< css::uno::XInterface > &_xObject)
returns either the model when data source is given as parameter, or returns a data source when a mode...
std::shared_ptr< const SfxFilter > getStandardDatabaseFilter()
returns the standard database filter
::std::vector< WizardTypes::WizardState > WizardPath
constexpr OUStringLiteral PROPERTY_INFO(u"Info")
Reference< XModel > xModel
the model of the sub component. Might be <NULL>