1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #ifndef _DBAUI_GENERALPAGE_HXX_ 25*b1cdbd2cSJim Jagielski #define _DBAUI_GENERALPAGE_HXX_ 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #ifndef _DBAUI_ADMINPAGES_HXX_ 28*b1cdbd2cSJim Jagielski #include "adminpages.hxx" 29*b1cdbd2cSJim Jagielski #endif 30*b1cdbd2cSJim Jagielski #ifndef DBACCESS_SOURCE_UI_INC_OPENDOCCONTROLS_HXX 31*b1cdbd2cSJim Jagielski #include "opendoccontrols.hxx" 32*b1cdbd2cSJim Jagielski #endif 33*b1cdbd2cSJim Jagielski #ifndef _SV_FIXED_HXX 34*b1cdbd2cSJim Jagielski #include <vcl/fixed.hxx> 35*b1cdbd2cSJim Jagielski #endif 36*b1cdbd2cSJim Jagielski #ifndef _SV_LSTBOX_HXX 37*b1cdbd2cSJim Jagielski #include <vcl/lstbox.hxx> 38*b1cdbd2cSJim Jagielski #endif 39*b1cdbd2cSJim Jagielski #ifndef _SV_EDIT_HXX 40*b1cdbd2cSJim Jagielski #include <vcl/edit.hxx> 41*b1cdbd2cSJim Jagielski #endif 42*b1cdbd2cSJim Jagielski #include <svtools/dialogcontrolling.hxx> 43*b1cdbd2cSJim Jagielski #include <memory> 44*b1cdbd2cSJim Jagielski 45*b1cdbd2cSJim Jagielski //......................................................................... 46*b1cdbd2cSJim Jagielski namespace dbaui 47*b1cdbd2cSJim Jagielski { 48*b1cdbd2cSJim Jagielski //......................................................................... 49*b1cdbd2cSJim Jagielski class IDatabaseSettingsDialog; 50*b1cdbd2cSJim Jagielski //========================================================================= 51*b1cdbd2cSJim Jagielski //= OGeneralPage 52*b1cdbd2cSJim Jagielski //========================================================================= 53*b1cdbd2cSJim Jagielski class OGeneralPage : public OGenericAdministrationPage 54*b1cdbd2cSJim Jagielski { 55*b1cdbd2cSJim Jagielski OGeneralPage(Window* pParent, const SfxItemSet& _rItems, sal_Bool _bDBWizardMode = sal_False); 56*b1cdbd2cSJim Jagielski ~OGeneralPage(); 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski public: 59*b1cdbd2cSJim Jagielski enum CreationMode 60*b1cdbd2cSJim Jagielski { 61*b1cdbd2cSJim Jagielski eCreateNew, 62*b1cdbd2cSJim Jagielski eConnectExternal, 63*b1cdbd2cSJim Jagielski eOpenExisting 64*b1cdbd2cSJim Jagielski }; 65*b1cdbd2cSJim Jagielski 66*b1cdbd2cSJim Jagielski struct DocumentDescriptor 67*b1cdbd2cSJim Jagielski { 68*b1cdbd2cSJim Jagielski String sURL; 69*b1cdbd2cSJim Jagielski String sFilter; 70*b1cdbd2cSJim Jagielski }; 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski private: 73*b1cdbd2cSJim Jagielski // dialog controls 74*b1cdbd2cSJim Jagielski FixedText m_aFTHeaderText; 75*b1cdbd2cSJim Jagielski FixedText m_aFTHelpText; 76*b1cdbd2cSJim Jagielski FixedText m_aFT_DatasourceTypeHeader; 77*b1cdbd2cSJim Jagielski RadioButton m_aRB_CreateDatabase; 78*b1cdbd2cSJim Jagielski RadioButton m_aRB_OpenDocument; 79*b1cdbd2cSJim Jagielski RadioButton m_aRB_GetExistingDatabase; 80*b1cdbd2cSJim Jagielski FixedText m_aFT_DocListLabel; 81*b1cdbd2cSJim Jagielski ::std::auto_ptr< OpenDocumentListBox > 82*b1cdbd2cSJim Jagielski m_pLB_DocumentList; 83*b1cdbd2cSJim Jagielski OpenDocumentButton m_aPB_OpenDocument; 84*b1cdbd2cSJim Jagielski FixedText m_aTypePreLabel; 85*b1cdbd2cSJim Jagielski FixedText m_aDatasourceTypeLabel; 86*b1cdbd2cSJim Jagielski ::std::auto_ptr< ListBox > 87*b1cdbd2cSJim Jagielski m_pDatasourceType; 88*b1cdbd2cSJim Jagielski FixedText m_aFTDataSourceAppendix; 89*b1cdbd2cSJim Jagielski FixedText m_aTypePostLabel; 90*b1cdbd2cSJim Jagielski FixedText m_aSpecialMessage; 91*b1cdbd2cSJim Jagielski sal_Bool m_DBWizardMode; 92*b1cdbd2cSJim Jagielski String m_sMySQLEntry; 93*b1cdbd2cSJim Jagielski CreationMode m_eOriginalCreationMode; 94*b1cdbd2cSJim Jagielski DocumentDescriptor m_aBrowsedDocument; 95*b1cdbd2cSJim Jagielski 96*b1cdbd2cSJim Jagielski ::svt::ControlDependencyManager 97*b1cdbd2cSJim Jagielski m_aControlDependencies; 98*b1cdbd2cSJim Jagielski ::std::vector< ::rtl::OUString> m_aURLPrefixes; 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski 101*b1cdbd2cSJim Jagielski ::dbaccess::ODsnTypeCollection* 102*b1cdbd2cSJim Jagielski m_pCollection; /// the DSN type collection instance 103*b1cdbd2cSJim Jagielski ::rtl::OUString m_eCurrentSelection; /// currently selected type 104*b1cdbd2cSJim Jagielski ::dbaccess::DATASOURCE_TYPE m_eNotSupportedKnownType; /// if a data source of an unsupported, but known type is encountered .... 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski enum SPECIAL_MESSAGE 107*b1cdbd2cSJim Jagielski { 108*b1cdbd2cSJim Jagielski smNone, 109*b1cdbd2cSJim Jagielski smUnsupportedType 110*b1cdbd2cSJim Jagielski }; 111*b1cdbd2cSJim Jagielski SPECIAL_MESSAGE m_eLastMessage; 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski Link m_aTypeSelectHandler; /// to be called if a new type is selected 114*b1cdbd2cSJim Jagielski Link m_aCreationModeHandler; /// to be called if a new type is selected 115*b1cdbd2cSJim Jagielski Link m_aDocumentSelectionHandler; /// to be called when a document in the RecentDoc list is selected 116*b1cdbd2cSJim Jagielski Link m_aChooseDocumentHandler; /// to be called when a recent document has been definately chosen 117*b1cdbd2cSJim Jagielski sal_Bool m_bDisplayingInvalid : 1; // the currently displayed data source is deleted 118*b1cdbd2cSJim Jagielski sal_Bool m_bUserGrabFocus : 1; 119*b1cdbd2cSJim Jagielski bool m_bInitTypeList : 1; 120*b1cdbd2cSJim Jagielski bool approveDataSourceType( const ::rtl::OUString& _sURLPrefix, String& _inout_rDisplayName ); 121*b1cdbd2cSJim Jagielski void insertDatasourceTypeEntryData(const ::rtl::OUString& _sType, String sDisplayName); 122*b1cdbd2cSJim Jagielski 123*b1cdbd2cSJim Jagielski public: 124*b1cdbd2cSJim Jagielski static SfxTabPage* Create(Window* pParent, const SfxItemSet& _rAttrSet, sal_Bool _bDBWizardMode = sal_False); 125*b1cdbd2cSJim Jagielski 126*b1cdbd2cSJim Jagielski /// set a handler which gets called every time the user selects a new type SetTypeSelectHandler(const Link & _rHandler)127*b1cdbd2cSJim Jagielski void SetTypeSelectHandler(const Link& _rHandler) { m_aTypeSelectHandler = _rHandler; } SetCreationModeHandler(const Link & _rHandler)128*b1cdbd2cSJim Jagielski void SetCreationModeHandler(const Link& _rHandler) { m_aCreationModeHandler = _rHandler; } SetDocumentSelectionHandler(const Link & _rHandler)129*b1cdbd2cSJim Jagielski void SetDocumentSelectionHandler( const Link& _rHandler) { m_aDocumentSelectionHandler = _rHandler; } SetChooseDocumentHandler(const Link & _rHandler)130*b1cdbd2cSJim Jagielski void SetChooseDocumentHandler( const Link& _rHandler) { m_aChooseDocumentHandler = _rHandler; } 131*b1cdbd2cSJim Jagielski CreationMode GetDatabaseCreationMode() const; 132*b1cdbd2cSJim Jagielski 133*b1cdbd2cSJim Jagielski DocumentDescriptor GetSelectedDocument() const; 134*b1cdbd2cSJim Jagielski 135*b1cdbd2cSJim Jagielski /// get the currently selected datasource type GetSelectedType() const136*b1cdbd2cSJim Jagielski ::rtl::OUString GetSelectedType() const { return m_eCurrentSelection; } 137*b1cdbd2cSJim Jagielski 138*b1cdbd2cSJim Jagielski protected: 139*b1cdbd2cSJim Jagielski // SfxTabPage overridables 140*b1cdbd2cSJim Jagielski virtual sal_Bool FillItemSet(SfxItemSet& _rCoreAttrs); 141*b1cdbd2cSJim Jagielski virtual void Reset(const SfxItemSet& _rCoreAttrs); 142*b1cdbd2cSJim Jagielski 143*b1cdbd2cSJim Jagielski virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski virtual void GetFocus(); 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim Jagielski // <method>OGenericAdministrationPage::fillControls</method> 148*b1cdbd2cSJim Jagielski virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); 149*b1cdbd2cSJim Jagielski // <method>OGenericAdministrationPage::fillWindows</method> 150*b1cdbd2cSJim Jagielski virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski protected: 153*b1cdbd2cSJim Jagielski 154*b1cdbd2cSJim Jagielski void onTypeSelected(const ::rtl::OUString& _sURLPrefix); 155*b1cdbd2cSJim Jagielski void initializeTypeList(); 156*b1cdbd2cSJim Jagielski 157*b1cdbd2cSJim Jagielski void implSetCurrentType( const ::rtl::OUString& _eType ); 158*b1cdbd2cSJim Jagielski 159*b1cdbd2cSJim Jagielski void switchMessage(const ::rtl::OUString& _sURLPrefix); 160*b1cdbd2cSJim Jagielski 161*b1cdbd2cSJim Jagielski /// sets the the title of the parent dialog 162*b1cdbd2cSJim Jagielski void setParentTitle(const ::rtl::OUString& _sURLPrefix); 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski DECL_LINK(OnDatasourceTypeSelected, ListBox*); 165*b1cdbd2cSJim Jagielski DECL_LINK(OnSetupModeSelected, RadioButton*); 166*b1cdbd2cSJim Jagielski DECL_LINK(OnDocumentSelected, ListBox*); 167*b1cdbd2cSJim Jagielski DECL_LINK(OnOpenDocument, PushButton*); 168*b1cdbd2cSJim Jagielski }; 169*b1cdbd2cSJim Jagielski 170*b1cdbd2cSJim Jagielski //......................................................................... 171*b1cdbd2cSJim Jagielski } // namespace dbaui 172*b1cdbd2cSJim Jagielski //......................................................................... 173*b1cdbd2cSJim Jagielski #endif // _DBAUI_GENERALPAGE_HXX_ 174