1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir #ifndef _DBAUI_INDEXFIELDSCONTROL_HXX_ 29*cdf0e10cSrcweir #define _DBAUI_INDEXFIELDSCONTROL_HXX_ 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir #ifndef _DBAUI_MODULE_DBU_HXX_ 32*cdf0e10cSrcweir #include "moduledbu.hxx" 33*cdf0e10cSrcweir #endif 34*cdf0e10cSrcweir #ifndef _SVTOOLS_EDITBROWSEBOX_HXX_ 35*cdf0e10cSrcweir #include <svtools/editbrowsebox.hxx> 36*cdf0e10cSrcweir #endif 37*cdf0e10cSrcweir #ifndef _DBAUI_INDEXCOLLECTION_HXX_ 38*cdf0e10cSrcweir #include "indexcollection.hxx" 39*cdf0e10cSrcweir #endif 40*cdf0e10cSrcweir #ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_ 41*cdf0e10cSrcweir #include <com/sun/star/uno/Sequence.hxx> 42*cdf0e10cSrcweir #endif 43*cdf0e10cSrcweir 44*cdf0e10cSrcweir //...................................................................... 45*cdf0e10cSrcweir namespace dbaui 46*cdf0e10cSrcweir { 47*cdf0e10cSrcweir //...................................................................... 48*cdf0e10cSrcweir 49*cdf0e10cSrcweir //================================================================== 50*cdf0e10cSrcweir // IndexFieldsControl 51*cdf0e10cSrcweir //================================================================== 52*cdf0e10cSrcweir class IndexFieldsControl : public ::svt::EditBrowseBox 53*cdf0e10cSrcweir { 54*cdf0e10cSrcweir OModuleClient m_aModuleClient; 55*cdf0e10cSrcweir protected: 56*cdf0e10cSrcweir IndexFields m_aSavedValue; 57*cdf0e10cSrcweir 58*cdf0e10cSrcweir IndexFields m_aFields; // !! order matters !! 59*cdf0e10cSrcweir ConstIndexFieldsIterator m_aSeekRow; // !! 60*cdf0e10cSrcweir 61*cdf0e10cSrcweir Link m_aModifyHdl; 62*cdf0e10cSrcweir 63*cdf0e10cSrcweir ::svt::ListBoxControl* m_pSortingCell; 64*cdf0e10cSrcweir ::svt::ListBoxControl* m_pFieldNameCell; 65*cdf0e10cSrcweir 66*cdf0e10cSrcweir String m_sAscendingText; 67*cdf0e10cSrcweir String m_sDescendingText; 68*cdf0e10cSrcweir 69*cdf0e10cSrcweir sal_Int32 m_nMaxColumnsInIndex; 70*cdf0e10cSrcweir sal_Bool m_bAddIndexAppendix; 71*cdf0e10cSrcweir 72*cdf0e10cSrcweir public: 73*cdf0e10cSrcweir IndexFieldsControl( Window* _pParent, const ResId& _rId ,sal_Int32 _nMaxColumnsInIndex,sal_Bool _bAddIndexAppendix); 74*cdf0e10cSrcweir ~IndexFieldsControl(); 75*cdf0e10cSrcweir 76*cdf0e10cSrcweir void Init(const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rAvailableFields); 77*cdf0e10cSrcweir 78*cdf0e10cSrcweir void initializeFrom(const IndexFields& _rFields); 79*cdf0e10cSrcweir void commitTo(IndexFields& _rFields); 80*cdf0e10cSrcweir 81*cdf0e10cSrcweir sal_Bool SaveModified(); 82*cdf0e10cSrcweir sal_Bool IsModified() const; 83*cdf0e10cSrcweir 84*cdf0e10cSrcweir const IndexFields& GetSavedValue() const { return m_aSavedValue; } 85*cdf0e10cSrcweir void SaveValue() { m_aSavedValue = m_aFields; } 86*cdf0e10cSrcweir 87*cdf0e10cSrcweir void SetModifyHdl(const Link& _rHdl) { m_aModifyHdl = _rHdl; } 88*cdf0e10cSrcweir Link GetModifyHdl() const { return m_aModifyHdl; } 89*cdf0e10cSrcweir virtual String GetCellText(long _nRow,sal_uInt16 nColId) const; 90*cdf0e10cSrcweir 91*cdf0e10cSrcweir protected: 92*cdf0e10cSrcweir // EditBrowseBox overridables 93*cdf0e10cSrcweir virtual void PaintCell( OutputDevice& _rDev, const Rectangle& _rRect, sal_uInt16 _nColumnId ) const; 94*cdf0e10cSrcweir virtual sal_Bool SeekRow(long nRow); 95*cdf0e10cSrcweir virtual sal_uInt32 GetTotalCellWidth(long nRow, sal_uInt16 nColId); 96*cdf0e10cSrcweir virtual sal_Bool IsTabAllowed(sal_Bool bForward) const; 97*cdf0e10cSrcweir 98*cdf0e10cSrcweir ::svt::CellController* GetController(long _nRow, sal_uInt16 _nColumnId); 99*cdf0e10cSrcweir void InitController(::svt::CellControllerRef&, long _nRow, sal_uInt16 _nColumnId); 100*cdf0e10cSrcweir 101*cdf0e10cSrcweir protected: 102*cdf0e10cSrcweir String GetRowCellText(const ConstIndexFieldsIterator& _rRow,sal_uInt16 nColId) const; 103*cdf0e10cSrcweir sal_Bool implGetFieldDesc(long _nRow, ConstIndexFieldsIterator& _rPos); 104*cdf0e10cSrcweir 105*cdf0e10cSrcweir sal_Bool isNewField() const { return GetCurRow() >= (sal_Int32)m_aFields.size(); } 106*cdf0e10cSrcweir 107*cdf0e10cSrcweir DECL_LINK( OnListEntrySelected, ListBox* ); 108*cdf0e10cSrcweir 109*cdf0e10cSrcweir private: 110*cdf0e10cSrcweir using ::svt::EditBrowseBox::Init; 111*cdf0e10cSrcweir }; 112*cdf0e10cSrcweir 113*cdf0e10cSrcweir //...................................................................... 114*cdf0e10cSrcweir } // namespace dbaui 115*cdf0e10cSrcweir //...................................................................... 116*cdf0e10cSrcweir 117*cdf0e10cSrcweir #endif // _DBAUI_INDEXFIELDSCONTROL_HXX_ 118*cdf0e10cSrcweir 119