diff options
Diffstat (limited to 'cui/source/options/connpooloptions.cxx')
-rw-r--r-- | cui/source/options/connpooloptions.cxx | 505 |
1 files changed, 0 insertions, 505 deletions
diff --git a/cui/source/options/connpooloptions.cxx b/cui/source/options/connpooloptions.cxx deleted file mode 100644 index a02f2888d..000000000 --- a/cui/source/options/connpooloptions.cxx +++ /dev/null @@ -1,505 +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. - * - ************************************************************************/ - -#include "connpooloptions.hxx" -#include "connpooloptions.hrc" -#include <svtools/editbrowsebox.hxx> -#include <vcl/field.hxx> -#include "connpoolsettings.hxx" -#include <svl/eitem.hxx> -#include <cuires.hrc> -#include "helpid.hrc" -#include <dialmgr.hxx> - -//........................................................................ -namespace offapp -{ -//........................................................................ - - //==================================================================== - //= DriverListControl - //==================================================================== - typedef ::svt::EditBrowseBox DriverListControl_Base; - class DriverListControl : public DriverListControl_Base - { - using Window::Update; - protected: - DriverPoolingSettings m_aSavedSettings; - DriverPoolingSettings m_aSettings; - DriverPoolingSettings::const_iterator m_aSeekRow; - - String m_sYes; - String m_sNo; - - Link m_aRowChangeHandler; - - public: - DriverListControl( Window* _pParent, const ResId& _rId); - - virtual void Init(); - void Update(const DriverPoolingSettings& _rSettings); - virtual String GetCellText( long nRow, sal_uInt16 nColId ) const; - - // the handler will be called with a DriverPoolingSettings::const_iterator as parameter, - // or NULL if no valid current row exists - void SetRowChangeHandler(const Link& _rHdl) { m_aRowChangeHandler = _rHdl; } - Link GetRowChangeHandler() const { return m_aRowChangeHandler; } - - const DriverPooling* getCurrentRow() const; - DriverPooling* getCurrentRow(); - void updateCurrentRow(); - - const DriverPoolingSettings& getSettings() const { return m_aSettings; } - - void saveValue() { m_aSavedSettings = m_aSettings; } - sal_Bool isModified() const; - - protected: - virtual void InitController( ::svt::CellControllerRef& rController, long nRow, sal_uInt16 nCol ); - virtual ::svt::CellController* GetController( long nRow, sal_uInt16 nCol ); - - virtual void PaintCell( OutputDevice& rDev, const Rectangle& rRect, sal_uInt16 nColId ) const; - - virtual sal_Bool SeekRow( long nRow ); - virtual sal_Bool SaveModified(); - - virtual sal_Bool IsTabAllowed(sal_Bool _bForward) const; - - virtual void StateChanged( StateChangedType nStateChange ); - - virtual void CursorMoved(); - - protected: - virtual sal_uInt32 GetTotalCellWidth(long nRow, sal_uInt16 nColId); - - - private: - String implGetCellText(DriverPoolingSettings::const_iterator _rPos, sal_uInt16 _nColId) const; - }; - - //-------------------------------------------------------------------- - DriverListControl::DriverListControl( Window* _pParent, const ResId& _rId) - :DriverListControl_Base(_pParent, _rId, EBBF_NOROWPICTURE, BROWSER_AUTO_VSCROLL | BROWSER_AUTO_HSCROLL | BROWSER_HIDECURSOR | BROWSER_AUTOSIZE_LASTCOL) - ,m_aSeekRow(m_aSettings.end()) - ,m_sYes(ResId(STR_YES,*_rId.GetResMgr())) - ,m_sNo(ResId(STR_NO,*_rId.GetResMgr())) - { - SetStyle((GetStyle() & ~WB_HSCROLL) | WB_AUTOHSCROLL); - - SetUniqueId(UID_OFA_CONNPOOL_DRIVERLIST_BACK); - GetDataWindow().SetHelpId(HID_OFA_CONNPOOL_DRIVERLIST); - } - - //-------------------------------------------------------------------- - sal_Bool DriverListControl::IsTabAllowed(sal_Bool /*_bForward*/) const - { - // no travinling within the fields via RETURN and TAB - return sal_False; - } - - //-------------------------------------------------------------------- - sal_Bool DriverListControl::isModified() const - { - if (m_aSettings.size() != m_aSavedSettings.size()) - return sal_True; - - DriverPoolingSettings::const_iterator aCurrent = m_aSettings.begin(); - DriverPoolingSettings::const_iterator aCurrentEnd = m_aSettings.end(); - DriverPoolingSettings::const_iterator aSaved = m_aSavedSettings.begin(); - for (;aCurrent != aCurrentEnd; ++aCurrent, ++aSaved) - { - if (*aCurrent != *aSaved) - return sal_True; - } - - return sal_False; - } - - //-------------------------------------------------------------------- - void DriverListControl::Init() - { - DriverListControl_Base::Init(); - - Size aColWidth = LogicToPixel(Size(160, 0), MAP_APPFONT); - InsertDataColumn(1, String(CUI_RES(STR_DRIVER_NAME)), aColWidth.Width()); - aColWidth = LogicToPixel(Size(30, 0), MAP_APPFONT); - InsertDataColumn(2, String(CUI_RES(STR_POOLED_FLAG)), aColWidth.Width()); - aColWidth = LogicToPixel(Size(60, 0), MAP_APPFONT); - InsertDataColumn(3, String(CUI_RES(STR_POOL_TIMEOUT)), aColWidth.Width()); - // Attention: the resource of the string is local to the resource of the enclosing dialog! - } - - //-------------------------------------------------------------------- - void DriverListControl::CursorMoved() - { - DriverListControl_Base::CursorMoved(); - - // call the row change handler - if ( m_aRowChangeHandler.IsSet() ) - { - if ( GetCurRow() >= 0 ) - { // == -1 may happen in case the browse box has just been cleared - m_aRowChangeHandler.Call( getCurrentRow() ); - } - } - } - - //-------------------------------------------------------------------- - const DriverPooling* DriverListControl::getCurrentRow() const - { - OSL_ENSURE( ( GetCurRow() < m_aSettings.size() ) && ( GetCurRow() >= 0 ), - "DriverListControl::getCurrentRow: invalid current row!"); - - if ( ( GetCurRow() >= 0 ) && ( GetCurRow() < m_aSettings.size() ) ) - return &(*(m_aSettings.begin() + GetCurRow())); - - return NULL; - } - - //-------------------------------------------------------------------- - DriverPooling* DriverListControl::getCurrentRow() - { - OSL_ENSURE( ( GetCurRow() < m_aSettings.size() ) && ( GetCurRow() >= 0 ), - "DriverListControl::getCurrentRow: invalid current row!"); - - if ( ( GetCurRow() >= 0 ) && ( GetCurRow() < m_aSettings.size() ) ) - return &(*(m_aSettings.begin() + GetCurRow())); - - return NULL; - } - - //-------------------------------------------------------------------- - void DriverListControl::updateCurrentRow() - { - Window::Invalidate( GetRowRectPixel( GetCurRow() ), INVALIDATE_UPDATE ); - } - - //-------------------------------------------------------------------- - void DriverListControl::Update(const DriverPoolingSettings& _rSettings) - { - m_aSettings = _rSettings; - - SetUpdateMode(sal_False); - RowRemoved(0, GetRowCount()); - RowInserted(0, m_aSettings.size()); - SetUpdateMode(sal_True); - - ActivateCell(1, 0); - } - - //-------------------------------------------------------------------- - sal_uInt32 DriverListControl::GetTotalCellWidth(long nRow, sal_uInt16 nColId) - { - return GetDataWindow().GetTextWidth(GetCellText(nRow, nColId)); - } - - //-------------------------------------------------------------------- - String DriverListControl::implGetCellText(DriverPoolingSettings::const_iterator _rPos, sal_uInt16 _nColId) const - { - OSL_ENSURE(_rPos < m_aSettings.end(), "DriverListControl::implGetCellText: invalid position!"); - - String sReturn; - switch (_nColId) - { - case 1: - sReturn = _rPos->sName; - break; - case 2: - sReturn = _rPos->bEnabled ? m_sYes : m_sNo; - break; - case 3: - if (_rPos->bEnabled) - sReturn = String::CreateFromInt32(_rPos->nTimeoutSeconds); - break; - default: - OSL_FAIL("DriverListControl::implGetCellText: invalid column id!"); - } - return sReturn; - } - - //-------------------------------------------------------------------- - void DriverListControl::StateChanged( StateChangedType nStateChange ) - { - if (STATE_CHANGE_ENABLE == nStateChange) - Window::Invalidate(INVALIDATE_UPDATE); - DriverListControl_Base::StateChanged( nStateChange ); - } - - //-------------------------------------------------------------------- - String DriverListControl::GetCellText( long nRow, sal_uInt16 nColId ) const - { - String sReturn; - if (nRow > m_aSettings.size()) - { - OSL_FAIL("DriverListControl::GetCellText: don't ask me for such rows!"); - } - else - { - sReturn = implGetCellText(m_aSettings.begin() + nRow, nColId); - } - return sReturn; - } - - //-------------------------------------------------------------------- - void DriverListControl::InitController( ::svt::CellControllerRef& rController, long nRow, sal_uInt16 nCol ) - { - rController->GetWindow().SetText(GetCellText(nRow, nCol)); - } - - //-------------------------------------------------------------------- - ::svt::CellController* DriverListControl::GetController( long /*nRow*/, sal_uInt16 /*nCol*/ ) - { - return NULL; - } - - //-------------------------------------------------------------------- - sal_Bool DriverListControl::SaveModified() - { - return sal_True; - } - - //-------------------------------------------------------------------- - sal_Bool DriverListControl::SeekRow( long _nRow ) - { - DriverListControl_Base::SeekRow(_nRow); - - if (_nRow < m_aSettings.size()) - m_aSeekRow = m_aSettings.begin() + _nRow; - else - m_aSeekRow = m_aSettings.end(); - - return m_aSeekRow != m_aSettings.end(); - } - - //-------------------------------------------------------------------- - void DriverListControl::PaintCell( OutputDevice& rDev, const Rectangle& rRect, sal_uInt16 nColId ) const - { - OSL_ENSURE(m_aSeekRow != m_aSettings.end(), "DriverListControl::PaintCell: invalid row!"); - - if (m_aSeekRow != m_aSettings.end()) - { - rDev.SetClipRegion(rRect); - - sal_uInt16 nStyle = TEXT_DRAW_CLIP; - if (!IsEnabled()) - nStyle |= TEXT_DRAW_DISABLE; - switch (nColId) - { - case 1: nStyle |= TEXT_DRAW_LEFT; break; - case 2: - case 3: nStyle |= TEXT_DRAW_CENTER; break; - } - - rDev.DrawText(rRect, implGetCellText(m_aSeekRow, nColId), nStyle); - - rDev.SetClipRegion(); - } - } - - //==================================================================== - //= ConnectionPoolOptionsPage - //==================================================================== - //-------------------------------------------------------------------- - ConnectionPoolOptionsPage::ConnectionPoolOptionsPage(Window* _pParent, const SfxItemSet& _rAttrSet) - :SfxTabPage(_pParent, CUI_RES(RID_OFAPAGE_CONNPOOLOPTIONS ), _rAttrSet) - ,m_aFrame (this, CUI_RES(FL_POOLING)) - ,m_aEnablePooling (this, CUI_RES(CB_POOL_CONNS)) - ,m_aDriversLabel (this, CUI_RES(FT_DRIVERS)) - ,m_pDriverList(new DriverListControl(this, CUI_RES(CTRL_DRIVER_LIST))) - ,m_aDriverLabel (this, CUI_RES(FT_DRIVERLABEL)) - ,m_aDriver (this, CUI_RES(FT_DRIVER)) - ,m_aDriverPoolingEnabled(this, CUI_RES(CB_DRIVERPOOLING)) - ,m_aTimeoutLabel (this, CUI_RES(FT_TIMEOUT)) - ,m_aTimeout (this, CUI_RES(NF_TIMEOUT)) - { - m_pDriverList->Init(); - m_pDriverList->Show(); - - FreeResource(); - - m_aEnablePooling.SetClickHdl( LINK(this, ConnectionPoolOptionsPage, OnEnabledDisabled) ); - m_aDriverPoolingEnabled.SetClickHdl( LINK(this, ConnectionPoolOptionsPage, OnEnabledDisabled) ); - - m_pDriverList->SetRowChangeHandler( LINK(this, ConnectionPoolOptionsPage, OnDriverRowChanged) ); - } - - //-------------------------------------------------------------------- - SfxTabPage* ConnectionPoolOptionsPage::Create(Window* _pParent, const SfxItemSet& _rAttrSet) - { - return new ConnectionPoolOptionsPage(_pParent, _rAttrSet); - } - - //-------------------------------------------------------------------- - ConnectionPoolOptionsPage::~ConnectionPoolOptionsPage() - { - delete m_pDriverList; - } - - //-------------------------------------------------------------------- - void ConnectionPoolOptionsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool /*_bFromReset*/) - { - // the enabled flag - SFX_ITEMSET_GET( _rSet, pEnabled, SfxBoolItem, SID_SB_POOLING_ENABLED, sal_True ); - OSL_ENSURE(pEnabled, "ConnectionPoolOptionsPage::implInitControls: missing the Enabled item!"); - m_aEnablePooling.Check(pEnabled ? pEnabled->GetValue() : sal_True); - - m_aEnablePooling.SaveValue(); - - // the settings for the single drivers - SFX_ITEMSET_GET( _rSet, pDriverSettings, DriverPoolingSettingsItem, SID_SB_DRIVER_TIMEOUTS, sal_True ); - if (pDriverSettings) - m_pDriverList->Update(pDriverSettings->getSettings()); - else - { - OSL_FAIL("ConnectionPoolOptionsPage::implInitControls: missing the DriverTimeouts item!"); - m_pDriverList->Update(DriverPoolingSettings()); - } - m_pDriverList->saveValue(); - - // reflect the new settings - OnEnabledDisabled(&m_aEnablePooling); - } - - //-------------------------------------------------------------------- - long ConnectionPoolOptionsPage::Notify( NotifyEvent& _rNEvt ) - { - if (EVENT_LOSEFOCUS == _rNEvt.GetType()) - if (m_aTimeout.IsWindowOrChild(_rNEvt.GetWindow())) - commitTimeoutField(); - - return SfxTabPage::Notify(_rNEvt); - } - - //-------------------------------------------------------------------- - sal_Bool ConnectionPoolOptionsPage::FillItemSet(SfxItemSet& _rSet) - { - commitTimeoutField(); - - sal_Bool bModified = sal_False; - // the enabled flag - if (m_aEnablePooling.GetSavedValue() != m_aEnablePooling.IsChecked()) - { - _rSet.Put(SfxBoolItem(SID_SB_POOLING_ENABLED, m_aEnablePooling.IsChecked()), SID_SB_POOLING_ENABLED); - bModified = sal_True; - } - - // the settings for the single drivers - if (m_pDriverList->isModified()) - { - _rSet.Put(DriverPoolingSettingsItem(SID_SB_DRIVER_TIMEOUTS, m_pDriverList->getSettings()), SID_SB_DRIVER_TIMEOUTS); - bModified = sal_True; - } - - return bModified; - } - - //-------------------------------------------------------------------- - void ConnectionPoolOptionsPage::ActivatePage( const SfxItemSet& _rSet) - { - SfxTabPage::ActivatePage(_rSet); - implInitControls(_rSet, sal_False); - } - - //-------------------------------------------------------------------- - void ConnectionPoolOptionsPage::Reset(const SfxItemSet& _rSet) - { - implInitControls(_rSet, sal_True); - } - - //-------------------------------------------------------------------- - IMPL_LINK( ConnectionPoolOptionsPage, OnDriverRowChanged, const void*, _pRowIterator ) - { - sal_Bool bValidRow = (NULL != _pRowIterator); - m_aDriverPoolingEnabled.Enable(bValidRow && m_aEnablePooling.IsChecked()); - m_aTimeoutLabel.Enable(bValidRow); - m_aTimeout.Enable(bValidRow); - - if (!bValidRow) - { // positioned on an invalid row - m_aDriver.SetText(String()); - } - else - { - const DriverPooling *pDriverPos = static_cast<const DriverPooling*>(_pRowIterator); - - m_aDriver.SetText(pDriverPos->sName); - m_aDriverPoolingEnabled.Check(pDriverPos->bEnabled); - m_aTimeout.SetText(String::CreateFromInt32(pDriverPos->nTimeoutSeconds)); - - OnEnabledDisabled(&m_aDriverPoolingEnabled); - } - - return 0L; - } - - //-------------------------------------------------------------------- - void ConnectionPoolOptionsPage::commitTimeoutField() - { - if (DriverPooling* pCurrentDriver = m_pDriverList->getCurrentRow()) - { - pCurrentDriver->nTimeoutSeconds = static_cast<long>(m_aTimeout.GetValue()); - m_pDriverList->updateCurrentRow(); - } - } - - //-------------------------------------------------------------------- - IMPL_LINK( ConnectionPoolOptionsPage, OnEnabledDisabled, const CheckBox*, _pCheckBox ) - { - sal_Bool bGloballyEnabled = m_aEnablePooling.IsChecked(); - sal_Bool bLocalDriverChanged = &m_aDriverPoolingEnabled == _pCheckBox; - - if (&m_aEnablePooling == _pCheckBox) - { - m_aDriversLabel.Enable(bGloballyEnabled); - m_pDriverList->Enable(bGloballyEnabled); - m_aDriverLabel.Enable(bGloballyEnabled); - m_aDriver.Enable(bGloballyEnabled); - m_aDriverPoolingEnabled.Enable(bGloballyEnabled); - } - else - OSL_ENSURE(bLocalDriverChanged, "ConnectionPoolOptionsPage::OnEnabledDisabled: where did this come from?"); - - m_aTimeoutLabel.Enable(bGloballyEnabled && m_aDriverPoolingEnabled.IsChecked()); - m_aTimeout.Enable(bGloballyEnabled && m_aDriverPoolingEnabled.IsChecked()); - - if (bLocalDriverChanged) - { - // update the list - m_pDriverList->getCurrentRow()->bEnabled = m_aDriverPoolingEnabled.IsChecked(); - m_pDriverList->updateCurrentRow(); - } - - return 0L; - } - -//........................................................................ -} // namespace offapp -//........................................................................ - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |