| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef DBAUI_DBWIZ_HXX |
| #define DBAUI_DBWIZ_HXX |
| |
| #ifndef _SFXTABDLG_HXX |
| #include <sfx2/tabdlg.hxx> |
| #endif |
| #ifndef _DBAUI_DSNTYPES_HXX_ |
| #include "dsntypes.hxx" |
| #endif |
| #ifndef DBAUI_ITEMSETHELPER_HXX |
| #include "IItemSetHelper.hxx" |
| #endif |
| #ifndef _COMPHELPER_UNO3_HXX_ |
| #include <comphelper/uno3.hxx> |
| #endif |
| #ifndef _SVTOOLS_WIZARDMACHINE_HXX_ |
| #include <svtools/wizardmachine.hxx> |
| #endif |
| #ifndef _DBAUI_MODULE_DBU_HXX_ |
| #include "moduledbu.hxx" |
| #endif |
| #include <memory> |
| |
| FORWARD_DECLARE_INTERFACE(beans,XPropertySet) |
| FORWARD_DECLARE_INTERFACE(sdbc,XConnection) |
| FORWARD_DECLARE_INTERFACE(lang,XMultiServiceFactory) |
| |
| namespace dbaccess |
| { |
| class ODsnTypeCollection; |
| } |
| //......................................................................... |
| namespace dbaui |
| { |
| //......................................................................... |
| |
| //========================================================================= |
| //= ODbTypeWizDialog |
| //========================================================================= |
| class OGeneralPage; |
| class ODbDataSourceAdministrationHelper; |
| /** tab dialog for administrating the office wide registered data sources |
| */ |
| class ODbTypeWizDialog : public svt::OWizardMachine , public IItemSetHelper, public IDatabaseSettingsDialog,public dbaui::OModuleClient |
| { |
| private: |
| OModuleClient m_aModuleClient; |
| ::std::auto_ptr<ODbDataSourceAdministrationHelper> m_pImpl; |
| SfxItemSet* m_pOutSet; |
| ::dbaccess::ODsnTypeCollection* |
| m_pCollection; /// the DSN type collection instance |
| ::rtl::OUString m_eType; |
| |
| sal_Bool m_bResetting : 1; /// sal_True while we're resetting the pages |
| sal_Bool m_bApplied : 1; /// sal_True if any changes have been applied while the dialog was executing |
| sal_Bool m_bUIEnabled : 1; /// <TRUE/> if the UI is enabled, false otherwise. Cannot be switched back to <TRUE/>, once it is <FALSE/> |
| |
| public: |
| /** ctor. The itemset given should have been created by <method>createItemSet</method> and should be destroyed |
| after the dialog has been destroyed |
| */ |
| ODbTypeWizDialog(Window* pParent |
| ,SfxItemSet* _pItems |
| ,const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB |
| ,const ::com::sun::star::uno::Any& _aDataSourceName |
| ); |
| virtual ~ODbTypeWizDialog(); |
| |
| virtual const SfxItemSet* getOutputSet() const; |
| virtual SfxItemSet* getWriteOutputSet(); |
| |
| // forwards to ODbDataSourceAdministrationHelper |
| virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > getORB() const; |
| virtual ::std::pair< ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >,sal_Bool> createConnection(); |
| virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDriver > getDriver(); |
| virtual ::rtl::OUString getDatasourceType(const SfxItemSet& _rSet) const; |
| virtual void clearPassword(); |
| virtual sal_Bool saveDatasource(); |
| virtual void setTitle(const ::rtl::OUString& _sTitle); |
| virtual void enableConfirmSettings( bool _bEnable ); |
| |
| protected: |
| /// to override to create new pages |
| virtual TabPage* createPage(WizardState _nState); |
| virtual WizardState determineNextState(WizardState _nCurrentState) const; |
| virtual sal_Bool leaveState(WizardState _nState); |
| virtual ::svt::IWizardPageController* |
| getPageController( TabPage* _pCurrentPage ) const; |
| virtual sal_Bool onFinish(); |
| |
| protected: |
| inline sal_Bool isUIEnabled() const { return m_bUIEnabled; } |
| inline void disabledUI() { m_bUIEnabled = sal_False; } |
| |
| /// select a datasource with a given name, adjust the item set accordingly, and everything like that .. |
| void implSelectDatasource(const ::rtl::OUString& _rRegisteredName); |
| void resetPages(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxDatasource); |
| |
| enum ApplyResult |
| { |
| AR_LEAVE_MODIFIED, // somthing was modified and has successfully been committed |
| AR_LEAVE_UNCHANGED, // no changes were made |
| AR_KEEP // don't leave the page (e.g. because an error occured) |
| }; |
| /** apply all changes made |
| */ |
| ApplyResult implApplyChanges(); |
| |
| private: |
| DECL_LINK(OnTypeSelected, OGeneralPage*); |
| }; |
| |
| //......................................................................... |
| } // namespace dbaui |
| //......................................................................... |
| |
| #endif // DBAUI_DBWIZ_HXX |
| |