1*3334a7e6SAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
3*3334a7e6SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*3334a7e6SAndrew Rist * or more contributor license agreements. See the NOTICE file
5*3334a7e6SAndrew Rist * distributed with this work for additional information
6*3334a7e6SAndrew Rist * regarding copyright ownership. The ASF licenses this file
7*3334a7e6SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*3334a7e6SAndrew Rist * "License"); you may not use this file except in compliance
9*3334a7e6SAndrew Rist * with the License. You may obtain a copy of the License at
10*3334a7e6SAndrew Rist *
11*3334a7e6SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12*3334a7e6SAndrew Rist *
13*3334a7e6SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*3334a7e6SAndrew Rist * software distributed under the License is distributed on an
15*3334a7e6SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*3334a7e6SAndrew Rist * KIND, either express or implied. See the License for the
17*3334a7e6SAndrew Rist * specific language governing permissions and limitations
18*3334a7e6SAndrew Rist * under the License.
19*3334a7e6SAndrew Rist *
20*3334a7e6SAndrew Rist *************************************************************/
21*3334a7e6SAndrew Rist
22*3334a7e6SAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir #ifndef _SVX_GRIDCELL_HXX
25cdf0e10cSrcweir #define _SVX_GRIDCELL_HXX
26cdf0e10cSrcweir
27cdf0e10cSrcweir #include <svx/gridctrl.hxx>
28cdf0e10cSrcweir
29cdf0e10cSrcweir #include "sqlparserclient.hxx"
30cdf0e10cSrcweir #include "typeconversionclient.hxx"
31cdf0e10cSrcweir
32cdf0e10cSrcweir /** === begin UNO includes === **/
33cdf0e10cSrcweir #include <com/sun/star/sdb/XColumn.hpp>
34cdf0e10cSrcweir #include <com/sun/star/form/XBoundControl.hpp>
35cdf0e10cSrcweir #include <com/sun/star/awt/XTextComponent.hpp>
36cdf0e10cSrcweir #include <com/sun/star/awt/XListBox.hpp>
37cdf0e10cSrcweir #include <com/sun/star/awt/XComboBox.hpp>
38cdf0e10cSrcweir #include <com/sun/star/awt/TextAlign.hpp>
39cdf0e10cSrcweir #include <com/sun/star/awt/XControlModel.hpp>
40cdf0e10cSrcweir #include <com/sun/star/awt/XControl.hpp>
41cdf0e10cSrcweir #include <com/sun/star/awt/XCheckBox.hpp>
42cdf0e10cSrcweir #include <com/sun/star/awt/XButton.hpp>
43cdf0e10cSrcweir #include <com/sun/star/beans/XFastPropertySet.hpp>
44cdf0e10cSrcweir #include <com/sun/star/lang/XUnoTunnel.hpp>
45cdf0e10cSrcweir #include <com/sun/star/form/XChangeBroadcaster.hpp>
46cdf0e10cSrcweir #include <com/sun/star/awt/XWindow.hpp>
47cdf0e10cSrcweir /** === end UNO includes === **/
48cdf0e10cSrcweir
49cdf0e10cSrcweir #include <comphelper/propmultiplex.hxx>
50cdf0e10cSrcweir #include <comphelper/componentcontext.hxx>
51cdf0e10cSrcweir #include <cppuhelper/component.hxx>
52cdf0e10cSrcweir #include <cppuhelper/implbase1.hxx>
53cdf0e10cSrcweir #include <cppuhelper/implbase2.hxx>
54cdf0e10cSrcweir #include <tools/diagnose_ex.h>
55cdf0e10cSrcweir #include <tools/rtti.hxx>
56cdf0e10cSrcweir
57cdf0e10cSrcweir class DbCellControl;
58cdf0e10cSrcweir class Edit;
59cdf0e10cSrcweir class FmXGridCell;
60cdf0e10cSrcweir
61cdf0e10cSrcweir //==================================================================
62cdf0e10cSrcweir // FmMutexHelper
63cdf0e10cSrcweir //==================================================================
64cdf0e10cSrcweir class FmMutexHelper
65cdf0e10cSrcweir {
66cdf0e10cSrcweir protected:
67cdf0e10cSrcweir ::osl::Mutex m_aMutex;
68cdf0e10cSrcweir };
69cdf0e10cSrcweir
70cdf0e10cSrcweir //==================================================================
71cdf0e10cSrcweir // DbGridColumn, Spaltenbeschreibung
72cdf0e10cSrcweir //==================================================================
73cdf0e10cSrcweir class DbGridColumn
74cdf0e10cSrcweir {
75cdf0e10cSrcweir friend class DbGridControl;
76cdf0e10cSrcweir
77cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xModel;
78cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xField; // Verbindung zum Datenbankfeld
79cdf0e10cSrcweir ::svt::CellControllerRef m_xController; // Struktur zum Verwalten der Controls fuer eine Spalte
80cdf0e10cSrcweir // diese wird von der DbBrowseBox auf die jeweiligen Zellen
81cdf0e10cSrcweir // einer Spalte positioniert
82cdf0e10cSrcweir FmXGridCell* m_pCell;
83cdf0e10cSrcweir
84cdf0e10cSrcweir protected:
85cdf0e10cSrcweir DbGridControl& m_rParent;
86cdf0e10cSrcweir
87cdf0e10cSrcweir private:
88cdf0e10cSrcweir sal_Int32 m_nLastVisibleWidth; // nur gueltig, wenn m_bHidden == sal_True
89cdf0e10cSrcweir sal_Int32 m_nFormatKey;
90cdf0e10cSrcweir sal_Int16 m_nFieldType;
91cdf0e10cSrcweir sal_Int16 m_nTypeId;
92cdf0e10cSrcweir sal_uInt16 m_nId;
93cdf0e10cSrcweir sal_Int16 m_nFieldPos;
94cdf0e10cSrcweir sal_Int16 m_nAlign; // wird mit TXT_ALIGN_LEFT .... angegeben
95cdf0e10cSrcweir sal_Bool m_bReadOnly : 1;
96cdf0e10cSrcweir sal_Bool m_bAutoValue : 1;
97cdf0e10cSrcweir sal_Bool m_bInSave : 1;
98cdf0e10cSrcweir sal_Bool m_bNumeric : 1;
99cdf0e10cSrcweir sal_Bool m_bObject : 1; // Verweist die Column auf ein Object Datentyp?
100cdf0e10cSrcweir sal_Bool m_bHidden : 1;
101cdf0e10cSrcweir sal_Bool m_bLocked : 1;
102cdf0e10cSrcweir sal_Bool m_bDateTime : 1;
103cdf0e10cSrcweir
104cdf0e10cSrcweir static ::svt::CellControllerRef s_xEmptyController;
105cdf0e10cSrcweir // used by locked columns
106cdf0e10cSrcweir public:
DbGridColumn(sal_uInt16 _nId,DbGridControl & rParent)107cdf0e10cSrcweir DbGridColumn(sal_uInt16 _nId, DbGridControl& rParent)
108cdf0e10cSrcweir :m_pCell(NULL)
109cdf0e10cSrcweir ,m_rParent(rParent)
110cdf0e10cSrcweir ,m_nLastVisibleWidth(-1)
111cdf0e10cSrcweir ,m_nFormatKey(0)
112cdf0e10cSrcweir ,m_nFieldType(0)
113cdf0e10cSrcweir ,m_nTypeId(0)
114cdf0e10cSrcweir ,m_nId(_nId)
115cdf0e10cSrcweir ,m_nFieldPos(-1)
116cdf0e10cSrcweir ,m_nAlign(::com::sun::star::awt::TextAlign::LEFT)
117cdf0e10cSrcweir ,m_bReadOnly(sal_False)
118cdf0e10cSrcweir ,m_bAutoValue(sal_False)
119cdf0e10cSrcweir ,m_bInSave(sal_False)
120cdf0e10cSrcweir ,m_bNumeric(sal_False)
121cdf0e10cSrcweir ,m_bObject(sal_False)
122cdf0e10cSrcweir ,m_bHidden(sal_False)
123cdf0e10cSrcweir ,m_bLocked(sal_False)
124cdf0e10cSrcweir ,m_bDateTime(sal_False)
125cdf0e10cSrcweir {
126cdf0e10cSrcweir }
127cdf0e10cSrcweir
128cdf0e10cSrcweir ~DbGridColumn();
129cdf0e10cSrcweir
getModel() const130cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& getModel() const { return m_xModel; }
131cdf0e10cSrcweir void setModel(::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _xModel);
132cdf0e10cSrcweir
133cdf0e10cSrcweir
GetId() const134cdf0e10cSrcweir sal_uInt16 GetId() const {return m_nId;}
IsReadOnly() const135cdf0e10cSrcweir sal_Bool IsReadOnly() const {return m_bReadOnly;}
IsAutoValue() const136cdf0e10cSrcweir sal_Bool IsAutoValue() const {return m_bAutoValue;}
IsUpdating() const137cdf0e10cSrcweir sal_Bool IsUpdating() const {return m_bInSave;}
GetAlignment() const138cdf0e10cSrcweir sal_Int16 GetAlignment() const {return m_nAlign;}
GetType() const139cdf0e10cSrcweir sal_Int16 GetType() const {return m_nFieldType;}
GetFieldPos() const140cdf0e10cSrcweir sal_Int16 GetFieldPos() const {return m_nFieldPos; }
IsNumeric() const141cdf0e10cSrcweir sal_Bool IsNumeric() const {return m_bNumeric;}
IsDateTime() const142cdf0e10cSrcweir sal_Bool IsDateTime() const {return m_bDateTime;}
IsObject() const143cdf0e10cSrcweir sal_Bool IsObject() const {return m_bObject;}
IsHidden() const144cdf0e10cSrcweir sal_Bool IsHidden() const {return m_bHidden;}
GetKey() const145cdf0e10cSrcweir sal_Int32 GetKey() const {return m_nFormatKey;}
GetController() const146cdf0e10cSrcweir const ::svt::CellControllerRef& GetController() const {return m_bLocked ? s_xEmptyController : m_xController;}
GetField() const147cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& GetField() const {return m_xField;}
GetParent() const148cdf0e10cSrcweir DbGridControl& GetParent() const {return m_rParent;}
GetCell() const149cdf0e10cSrcweir FmXGridCell* GetCell() const {return m_pCell;}
150cdf0e10cSrcweir
151cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn > GetCurrentFieldValue() const;
152cdf0e10cSrcweir
153cdf0e10cSrcweir // Zeichnen eines Feldes an einer Position, ist ein ::com::sun::star::sdbcx::View gesetzt
154cdf0e10cSrcweir // uebernimmt dieser das Zeichnen, z.B. fuer CheckBoxen
155cdf0e10cSrcweir void Paint(OutputDevice& rDev,
156cdf0e10cSrcweir const Rectangle& rRect,
157cdf0e10cSrcweir const DbGridRow* pRow,
158cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
159cdf0e10cSrcweir
160cdf0e10cSrcweir
161cdf0e10cSrcweir // Inititialierung im alive mode
162cdf0e10cSrcweir // Ist kein ColumnController gesetzt, wird eine DefaultInitialisierung
163cdf0e10cSrcweir // vorgenommen
164cdf0e10cSrcweir void CreateControl(sal_Int32 _nFieldPos, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xField, sal_Int32 nTypeId);
UpdateControl()165cdf0e10cSrcweir void UpdateControl()
166cdf0e10cSrcweir {
167cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xField(m_xField);
168cdf0e10cSrcweir CreateControl(m_nFieldPos, xField, m_nTypeId);
169cdf0e10cSrcweir }
170cdf0e10cSrcweir
171cdf0e10cSrcweir // Editieren einer Zelle
172cdf0e10cSrcweir void UpdateFromField(const DbGridRow* pRow, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
173cdf0e10cSrcweir sal_Bool Commit();
174cdf0e10cSrcweir
175cdf0e10cSrcweir // freigeben aller Daten, die fuer den AliveMode noetig sind
176cdf0e10cSrcweir void Clear();
177cdf0e10cSrcweir
178cdf0e10cSrcweir XubString GetCellText(const DbGridRow* pRow, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter) const;
179cdf0e10cSrcweir XubString GetCellText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& xField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter) const;
180cdf0e10cSrcweir
SetReadOnly(sal_Bool bRead)181cdf0e10cSrcweir void SetReadOnly(sal_Bool bRead){m_bReadOnly = bRead;}
SetObject(sal_Int16 nPos)182cdf0e10cSrcweir void SetObject(sal_Int16 nPos) {m_bObject = m_bReadOnly = sal_True; m_nFieldPos = nPos;}
183cdf0e10cSrcweir
184cdf0e10cSrcweir void ImplInitWindow( Window& rParent, const InitWindowFacet _eInitWhat );
185cdf0e10cSrcweir
186cdf0e10cSrcweir // Properties, die auf den ::com::sun::star::frame::Controller durchschlagen koennen
187cdf0e10cSrcweir sal_Int16 SetAlignment(sal_Int16 _nAlign);
188cdf0e10cSrcweir // if _nAlign is -1, the alignment is calculated from the type of the field we are bound to
189cdf0e10cSrcweir // the value really set is returned
190cdf0e10cSrcweir sal_Int16 SetAlignmentFromModel(sal_Int16 nStandardAlign);
191cdf0e10cSrcweir // set the alignment according to the "Align"-property of m_xModel, use the given standard
192cdf0e10cSrcweir // alignment if the property if void, return the really set alignment
193cdf0e10cSrcweir
194cdf0e10cSrcweir // column locking
isLocked() const195cdf0e10cSrcweir sal_Bool isLocked() const { return m_bLocked; }
196cdf0e10cSrcweir void setLock(sal_Bool _bLock);
197cdf0e10cSrcweir
198cdf0e10cSrcweir private:
199cdf0e10cSrcweir /** attaches or detaches our cell object to the SctriptEventAttacherManager implemented
200cdf0e10cSrcweir by our model's parent
201cdf0e10cSrcweir */
202cdf0e10cSrcweir void impl_toggleScriptManager_nothrow( bool _bAttach );
203cdf0e10cSrcweir };
204cdf0e10cSrcweir
205cdf0e10cSrcweir //==================================================================
206cdf0e10cSrcweir // DbCellControl, liefert die Daten fuer einen CellController
207cdf0e10cSrcweir // wird in der Regel nur f�r komplexe Controls wie z.B ComboBoxen
208cdf0e10cSrcweir // benoetigt
209cdf0e10cSrcweir //==================================================================
210cdf0e10cSrcweir class DbCellControl
211cdf0e10cSrcweir :public ::svxform::OTypeConversionClient
212cdf0e10cSrcweir ,public ::svxform::OStaticDataAccessTools
213cdf0e10cSrcweir ,public FmMutexHelper // _before_ the listener, so the listener is to be destroyed first!
214cdf0e10cSrcweir ,public ::comphelper::OPropertyChangeListener
215cdf0e10cSrcweir {
216cdf0e10cSrcweir private:
217cdf0e10cSrcweir ::comphelper::OPropertyChangeMultiplexer* m_pModelChangeBroadcaster;
218cdf0e10cSrcweir ::comphelper::OPropertyChangeMultiplexer* m_pFieldChangeBroadcaster;
219cdf0e10cSrcweir
220cdf0e10cSrcweir private:
221cdf0e10cSrcweir sal_Bool m_bTransparent : 1;
222cdf0e10cSrcweir sal_Bool m_bAlignedController : 1;
223cdf0e10cSrcweir sal_Bool m_bAccessingValueProperty : 1;
224cdf0e10cSrcweir
225cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >
226cdf0e10cSrcweir m_xCursor;
227cdf0e10cSrcweir
228cdf0e10cSrcweir protected:
229cdf0e10cSrcweir DbGridColumn& m_rColumn;
230cdf0e10cSrcweir Window* m_pPainter;
231cdf0e10cSrcweir Window* m_pWindow;
232cdf0e10cSrcweir
233cdf0e10cSrcweir protected:
234cdf0e10cSrcweir // attribute access
getCursor() const235cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& getCursor() const { return m_xCursor; }
236cdf0e10cSrcweir
237cdf0e10cSrcweir // control transparency
isTransparent() const238cdf0e10cSrcweir inline sal_Bool isTransparent( ) const { return m_bTransparent; }
setTransparent(sal_Bool _bSet)239cdf0e10cSrcweir inline void setTransparent( sal_Bool _bSet ) { m_bTransparent = _bSet; }
240cdf0e10cSrcweir
241cdf0e10cSrcweir // control alignment
setAlignedController(sal_Bool _bAlign=sal_True)242cdf0e10cSrcweir inline void setAlignedController( sal_Bool _bAlign = sal_True ) { m_bAlignedController = _bAlign; }
243cdf0e10cSrcweir
244cdf0e10cSrcweir
245cdf0e10cSrcweir /** determined whether or not the value property is locked
246cdf0e10cSrcweir @see lockValueProperty
247cdf0e10cSrcweir */
248cdf0e10cSrcweir inline sal_Bool isValuePropertyLocked() const;
249cdf0e10cSrcweir
250cdf0e10cSrcweir /** locks the listening at the value property.
251cdf0e10cSrcweir <p>This means that every subsequent change now done on the value property of the model ("Text", or "Value",
252cdf0e10cSrcweir or whatever) is then ignored.<br/>
253cdf0e10cSrcweir This base class uses this setting in <method>Commit</method>.</p>
254cdf0e10cSrcweir @precond
255cdf0e10cSrcweir Value locking can't be nested
256cdf0e10cSrcweir @see unlockValueProperty
257cdf0e10cSrcweir */
258cdf0e10cSrcweir inline void lockValueProperty();
259cdf0e10cSrcweir /** unlocks the listening at the value property
260cdf0e10cSrcweir @see lockValueProperty
261cdf0e10cSrcweir */
262cdf0e10cSrcweir inline void unlockValueProperty();
263cdf0e10cSrcweir
264cdf0e10cSrcweir protected:
265cdf0e10cSrcweir // adds the given property to the list of properties which we listen for
266cdf0e10cSrcweir void doPropertyListening( const ::rtl::OUString& _rPropertyName );
267cdf0e10cSrcweir
268cdf0e10cSrcweir // called whenever a property which affects field settings in general is called
269cdf0e10cSrcweir // you should overwrite this method for every property you add yourself as listener to
270cdf0e10cSrcweir // with doPropertyListening
271cdf0e10cSrcweir virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel );
272cdf0e10cSrcweir
273cdf0e10cSrcweir // called by _propertyChanged if a property which denotes the column value has changed
274cdf0e10cSrcweir void implValuePropertyChanged( );
275cdf0e10cSrcweir
276cdf0e10cSrcweir
277cdf0e10cSrcweir public:
278cdf0e10cSrcweir TYPEINFO();
279cdf0e10cSrcweir DbCellControl(DbGridColumn& _rColumn, sal_Bool _bText = sal_True);
280cdf0e10cSrcweir virtual ~DbCellControl();
281cdf0e10cSrcweir
282cdf0e10cSrcweir
GetWindow() const283cdf0e10cSrcweir Window& GetWindow() const
284cdf0e10cSrcweir {
285cdf0e10cSrcweir ENSURE_OR_THROW( m_pWindow, "no window" );
286cdf0e10cSrcweir return *m_pWindow;
287cdf0e10cSrcweir }
288cdf0e10cSrcweir
289cdf0e10cSrcweir // control alignment
isAlignedController() const290cdf0e10cSrcweir inline sal_Bool isAlignedController() const { return m_bAlignedController; }
291cdf0e10cSrcweir void AlignControl(sal_Int16 nAlignment);
292cdf0e10cSrcweir
293cdf0e10cSrcweir void SetTextLineColor();
294cdf0e10cSrcweir void SetTextLineColor(const Color& _rColor);
295cdf0e10cSrcweir
296cdf0e10cSrcweir // Initialisieren bevor ein Control angezeigt wird
297cdf0e10cSrcweir virtual void Init( Window& rParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor );
298cdf0e10cSrcweir virtual ::svt::CellControllerRef CreateController() const = 0;
299cdf0e10cSrcweir
300cdf0e10cSrcweir // Schreiben des Wertes in das Model
301cdf0e10cSrcweir sal_Bool Commit();
302cdf0e10cSrcweir
303cdf0e10cSrcweir // Formatting the field data to output text
304cdf0e10cSrcweir virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL) = 0;
305cdf0e10cSrcweir
Update()306cdf0e10cSrcweir virtual void Update(){}
307cdf0e10cSrcweir // Refresh the control by the field data
308cdf0e10cSrcweir virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter) = 0;
309cdf0e10cSrcweir
310cdf0e10cSrcweir // Painten eines Zellinhalts im vorgegeben Rechteck
311cdf0e10cSrcweir virtual void PaintFieldToCell( OutputDevice& rDev, const Rectangle& rRect, const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
312cdf0e10cSrcweir virtual void PaintCell( OutputDevice& _rDev, const Rectangle& _rRect );
313cdf0e10cSrcweir
314cdf0e10cSrcweir void ImplInitWindow( Window& rParent, const InitWindowFacet _eInitWhat );
315cdf0e10cSrcweir
316cdf0e10cSrcweir double GetValue(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter) const;
317cdf0e10cSrcweir
318cdf0e10cSrcweir protected:
319cdf0e10cSrcweir void invalidatedController();
320cdf0e10cSrcweir
321cdf0e10cSrcweir /** commits the content of the control (e.g. the text of an edit field) into the column model
322cdf0e10cSrcweir (e.g. the "Text" property of the model).
323cdf0e10cSrcweir <p>To be overwritten in derived classes.</p>
324cdf0e10cSrcweir @see updateFromModel
325cdf0e10cSrcweir */
326cdf0e10cSrcweir virtual sal_Bool commitControl( ) = 0;
327cdf0e10cSrcweir
328cdf0e10cSrcweir /** updates the current content of the control (e.g. the text of an edit field) from the column model
329cdf0e10cSrcweir (e.g. the "Text" property of the model).
330cdf0e10cSrcweir <p>To be overwritten in derived classes.</p>
331cdf0e10cSrcweir @precond
332cdf0e10cSrcweir NULL != _rxModel
333cdf0e10cSrcweir @precond
334cdf0e10cSrcweir NULL != m_pWindow
335cdf0e10cSrcweir
336cdf0e10cSrcweir @see commitControl
337cdf0e10cSrcweir */
338cdf0e10cSrcweir virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel ) = 0;
339cdf0e10cSrcweir
340cdf0e10cSrcweir protected:
341cdf0e10cSrcweir // OPropertyChangeListener
342cdf0e10cSrcweir virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException);
343cdf0e10cSrcweir
344cdf0e10cSrcweir private:
345cdf0e10cSrcweir void implDoPropertyListening( const ::rtl::OUString& _rPropertyName, sal_Bool _bWarnIfNotExistent = sal_True );
346cdf0e10cSrcweir
347cdf0e10cSrcweir /// updates the "readonly" setting on m_pWindow, according to the respective property value in the given model
348cdf0e10cSrcweir void implAdjustReadOnly( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel,bool i_bReadOnly );
349cdf0e10cSrcweir
350cdf0e10cSrcweir /// updates the "enabled" setting on m_pWindow, according to the respective property value in the given model
351cdf0e10cSrcweir void implAdjustEnabled( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel );
352cdf0e10cSrcweir };
353cdf0e10cSrcweir
354cdf0e10cSrcweir //==================================================================
355cdf0e10cSrcweir //------------------------------------------------------------------
isValuePropertyLocked() const356cdf0e10cSrcweir inline sal_Bool DbCellControl::isValuePropertyLocked() const
357cdf0e10cSrcweir {
358cdf0e10cSrcweir return m_bAccessingValueProperty;
359cdf0e10cSrcweir }
360cdf0e10cSrcweir
361cdf0e10cSrcweir //------------------------------------------------------------------
lockValueProperty()362cdf0e10cSrcweir inline void DbCellControl::lockValueProperty()
363cdf0e10cSrcweir {
364cdf0e10cSrcweir OSL_ENSURE( !isValuePropertyLocked(), "DbCellControl::lockValueProperty: not to be nested!" );
365cdf0e10cSrcweir m_bAccessingValueProperty = sal_True;
366cdf0e10cSrcweir }
367cdf0e10cSrcweir
368cdf0e10cSrcweir //------------------------------------------------------------------
unlockValueProperty()369cdf0e10cSrcweir inline void DbCellControl::unlockValueProperty()
370cdf0e10cSrcweir {
371cdf0e10cSrcweir OSL_ENSURE( isValuePropertyLocked(), "DbCellControl::lockValueProperty: not locked so far!" );
372cdf0e10cSrcweir m_bAccessingValueProperty = sal_False;
373cdf0e10cSrcweir }
374cdf0e10cSrcweir
375cdf0e10cSrcweir //==================================================================
376cdf0e10cSrcweir /** a field which is bound to a column which supports the MaxTextLen property
377cdf0e10cSrcweir */
378cdf0e10cSrcweir class DbLimitedLengthField : public DbCellControl
379cdf0e10cSrcweir {
380cdf0e10cSrcweir public:
381cdf0e10cSrcweir TYPEINFO();
382cdf0e10cSrcweir
383cdf0e10cSrcweir protected:
384cdf0e10cSrcweir DbLimitedLengthField( DbGridColumn& _rColumn );
385cdf0e10cSrcweir
386cdf0e10cSrcweir protected:
387cdf0e10cSrcweir // DbCellControl
388cdf0e10cSrcweir virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel );
389cdf0e10cSrcweir
390cdf0e10cSrcweir protected:
implSetMaxTextLen(sal_Int16 _nMaxLen)391cdf0e10cSrcweir inline void implSetMaxTextLen( sal_Int16 _nMaxLen )
392cdf0e10cSrcweir {
393cdf0e10cSrcweir implSetEffectiveMaxTextLen( _nMaxLen ? _nMaxLen : EDIT_NOLIMIT );
394cdf0e10cSrcweir }
395cdf0e10cSrcweir virtual void implSetEffectiveMaxTextLen( sal_Int16 _nMaxLen );
396cdf0e10cSrcweir };
397cdf0e10cSrcweir
398cdf0e10cSrcweir //==================================================================
399cdf0e10cSrcweir class DbTextField : public DbLimitedLengthField
400cdf0e10cSrcweir {
401cdf0e10cSrcweir ::svt::IEditImplementation* m_pEdit;
402cdf0e10cSrcweir ::svt::IEditImplementation* m_pPainterImplementation;
403cdf0e10cSrcweir sal_Int16 m_nKeyType;
404cdf0e10cSrcweir sal_Bool m_bIsSimpleEdit;
405cdf0e10cSrcweir
406cdf0e10cSrcweir protected:
407cdf0e10cSrcweir ~DbTextField( );
408cdf0e10cSrcweir
409cdf0e10cSrcweir public:
410cdf0e10cSrcweir TYPEINFO();
411cdf0e10cSrcweir DbTextField(DbGridColumn& _rColumn);
412cdf0e10cSrcweir
GetEditImplementation()413cdf0e10cSrcweir ::svt::IEditImplementation* GetEditImplementation() { return m_pEdit; }
IsSimpleEdit() const414cdf0e10cSrcweir sal_Bool IsSimpleEdit() const { return m_bIsSimpleEdit; }
415cdf0e10cSrcweir
416cdf0e10cSrcweir virtual void Init( Window& rParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor );
417cdf0e10cSrcweir virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL);
418cdf0e10cSrcweir virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
419cdf0e10cSrcweir virtual ::svt::CellControllerRef CreateController() const;
420cdf0e10cSrcweir virtual void PaintFieldToCell( OutputDevice& _rDev, const Rectangle& _rRect,
421cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField,
422cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& _rxFormatter );
423cdf0e10cSrcweir
424cdf0e10cSrcweir protected:
425cdf0e10cSrcweir // DbCellControl
426cdf0e10cSrcweir virtual sal_Bool commitControl( );
427cdf0e10cSrcweir virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel );
428cdf0e10cSrcweir // DbLimitedLengthField
429cdf0e10cSrcweir virtual void implSetEffectiveMaxTextLen( sal_Int16 _nMaxLen );
430cdf0e10cSrcweir };
431cdf0e10cSrcweir
432cdf0e10cSrcweir //==================================================================
433cdf0e10cSrcweir class DbFormattedField : public DbLimitedLengthField
434cdf0e10cSrcweir {
435cdf0e10cSrcweir protected:
436cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier > m_xSupplier;
437cdf0e10cSrcweir sal_Int16 m_nKeyType;
438cdf0e10cSrcweir
439cdf0e10cSrcweir
440cdf0e10cSrcweir public:
441cdf0e10cSrcweir TYPEINFO();
442cdf0e10cSrcweir DbFormattedField(DbGridColumn& _rColumn);
443cdf0e10cSrcweir virtual ~DbFormattedField();
444cdf0e10cSrcweir
445cdf0e10cSrcweir
446cdf0e10cSrcweir virtual void Init( Window& rParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor );
447cdf0e10cSrcweir virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL);
448cdf0e10cSrcweir virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
449cdf0e10cSrcweir virtual ::svt::CellControllerRef CreateController() const;
450cdf0e10cSrcweir
451cdf0e10cSrcweir protected:
452cdf0e10cSrcweir // DbCellControl
453cdf0e10cSrcweir virtual sal_Bool commitControl( );
454cdf0e10cSrcweir virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel );
455cdf0e10cSrcweir
456cdf0e10cSrcweir // OPropertyChangeListener
457cdf0e10cSrcweir virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException);
458cdf0e10cSrcweir };
459cdf0e10cSrcweir
460cdf0e10cSrcweir //==================================================================
461cdf0e10cSrcweir class DbCheckBox : public DbCellControl
462cdf0e10cSrcweir {
463cdf0e10cSrcweir public:
464cdf0e10cSrcweir TYPEINFO();
465cdf0e10cSrcweir DbCheckBox(DbGridColumn& _rColumn);
466cdf0e10cSrcweir
467cdf0e10cSrcweir virtual void Init( Window& rParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor );
468cdf0e10cSrcweir virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
469cdf0e10cSrcweir virtual ::svt::CellControllerRef CreateController() const;
470cdf0e10cSrcweir virtual void PaintFieldToCell(OutputDevice& rDev, const Rectangle& rRect,
471cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField,
472cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
473cdf0e10cSrcweir virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL);
474cdf0e10cSrcweir
475cdf0e10cSrcweir protected:
476cdf0e10cSrcweir // DbCellControl
477cdf0e10cSrcweir virtual sal_Bool commitControl( );
478cdf0e10cSrcweir virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel );
479cdf0e10cSrcweir };
480cdf0e10cSrcweir
481cdf0e10cSrcweir //==================================================================
482cdf0e10cSrcweir class DbComboBox : public DbCellControl
483cdf0e10cSrcweir {
484cdf0e10cSrcweir sal_Int16 m_nKeyType;
485cdf0e10cSrcweir
486cdf0e10cSrcweir public:
487cdf0e10cSrcweir TYPEINFO();
488cdf0e10cSrcweir DbComboBox(DbGridColumn& _rColumn);
489cdf0e10cSrcweir
490cdf0e10cSrcweir virtual void Init( Window& rParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor );
491cdf0e10cSrcweir virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL);
492cdf0e10cSrcweir virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
493cdf0e10cSrcweir virtual ::svt::CellControllerRef CreateController() const;
494cdf0e10cSrcweir
495cdf0e10cSrcweir void SetList(const ::com::sun::star::uno::Any& rItems);
496cdf0e10cSrcweir
497cdf0e10cSrcweir protected:
498cdf0e10cSrcweir // DbCellControl
499cdf0e10cSrcweir virtual sal_Bool commitControl( );
500cdf0e10cSrcweir virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel );
501cdf0e10cSrcweir
502cdf0e10cSrcweir virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel );
503cdf0e10cSrcweir
504cdf0e10cSrcweir // OPropertyChangeListener
505cdf0e10cSrcweir virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException);
506cdf0e10cSrcweir };
507cdf0e10cSrcweir
508cdf0e10cSrcweir //==================================================================
509cdf0e10cSrcweir class DbListBox :public DbCellControl
510cdf0e10cSrcweir {
511cdf0e10cSrcweir sal_Bool m_bBound : 1;
512cdf0e10cSrcweir ::com::sun::star::uno::Sequence< ::rtl::OUString > m_aValueList;
513cdf0e10cSrcweir
514cdf0e10cSrcweir public:
515cdf0e10cSrcweir TYPEINFO();
516cdf0e10cSrcweir DbListBox(DbGridColumn& _rColumn);
517cdf0e10cSrcweir
518cdf0e10cSrcweir virtual void Init( Window& rParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor );
519cdf0e10cSrcweir virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL);
520cdf0e10cSrcweir virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
521cdf0e10cSrcweir virtual ::svt::CellControllerRef CreateController() const;
522cdf0e10cSrcweir
523cdf0e10cSrcweir void SetList(const ::com::sun::star::uno::Any& rItems);
524cdf0e10cSrcweir
525cdf0e10cSrcweir protected:
526cdf0e10cSrcweir // DbCellControl
527cdf0e10cSrcweir virtual sal_Bool commitControl( );
528cdf0e10cSrcweir virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel );
529cdf0e10cSrcweir
530cdf0e10cSrcweir virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel );
531cdf0e10cSrcweir
532cdf0e10cSrcweir // OPropertyChangeListener
533cdf0e10cSrcweir virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException);
534cdf0e10cSrcweir };
535cdf0e10cSrcweir
536cdf0e10cSrcweir //==================================================================
537cdf0e10cSrcweir class DbPatternField : public DbCellControl
538cdf0e10cSrcweir {
539cdf0e10cSrcweir public:
540cdf0e10cSrcweir TYPEINFO();
541cdf0e10cSrcweir DbPatternField( DbGridColumn& _rColumn, const ::comphelper::ComponentContext& _rContext );
542cdf0e10cSrcweir virtual void Init( Window& rParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor );
543cdf0e10cSrcweir virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL);
544cdf0e10cSrcweir virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
545cdf0e10cSrcweir virtual ::svt::CellControllerRef CreateController() const;
546cdf0e10cSrcweir
547cdf0e10cSrcweir protected:
548cdf0e10cSrcweir /// DbCellControl
549cdf0e10cSrcweir virtual sal_Bool commitControl( );
550cdf0e10cSrcweir virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel );
551cdf0e10cSrcweir
552cdf0e10cSrcweir virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel );
553cdf0e10cSrcweir
554cdf0e10cSrcweir private:
555cdf0e10cSrcweir String impl_formatText( const String& _rText );
556cdf0e10cSrcweir
557cdf0e10cSrcweir private:
558cdf0e10cSrcweir ::std::auto_ptr< ::dbtools::FormattedColumnValue > m_pValueFormatter;
559cdf0e10cSrcweir ::std::auto_ptr< ::dbtools::FormattedColumnValue > m_pPaintFormatter;
560cdf0e10cSrcweir ::comphelper::ComponentContext m_aContext;
561cdf0e10cSrcweir };
562cdf0e10cSrcweir
563cdf0e10cSrcweir //==================================================================
564cdf0e10cSrcweir class DbSpinField : public DbCellControl
565cdf0e10cSrcweir {
566cdf0e10cSrcweir private:
567cdf0e10cSrcweir sal_Int16 m_nStandardAlign;
568cdf0e10cSrcweir
569cdf0e10cSrcweir public:
570cdf0e10cSrcweir TYPEINFO();
571cdf0e10cSrcweir
572cdf0e10cSrcweir protected:
573cdf0e10cSrcweir DbSpinField( DbGridColumn& _rColumn, sal_Int16 _nStandardAlign = com::sun::star::awt::TextAlign::RIGHT );
574cdf0e10cSrcweir
575cdf0e10cSrcweir public:
576cdf0e10cSrcweir virtual void Init( Window& rParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& _rxCursor );
577cdf0e10cSrcweir virtual ::svt::CellControllerRef CreateController() const;
578cdf0e10cSrcweir
579cdf0e10cSrcweir protected:
580cdf0e10cSrcweir virtual SpinField* createField(
581cdf0e10cSrcweir Window* _pParent,
582cdf0e10cSrcweir WinBits _nFieldStyle,
583cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel
584cdf0e10cSrcweir ) = 0;
585cdf0e10cSrcweir };
586cdf0e10cSrcweir
587cdf0e10cSrcweir //==================================================================
588cdf0e10cSrcweir class DbDateField : public DbSpinField
589cdf0e10cSrcweir {
590cdf0e10cSrcweir public:
591cdf0e10cSrcweir TYPEINFO();
592cdf0e10cSrcweir DbDateField(DbGridColumn& _rColumn);
593cdf0e10cSrcweir virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL);
594cdf0e10cSrcweir virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
595cdf0e10cSrcweir
596cdf0e10cSrcweir protected:
597cdf0e10cSrcweir // DbCellControl
598cdf0e10cSrcweir virtual sal_Bool commitControl( );
599cdf0e10cSrcweir virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel );
600cdf0e10cSrcweir
601cdf0e10cSrcweir // DbSpinField
602cdf0e10cSrcweir virtual SpinField* createField(
603cdf0e10cSrcweir Window* _pParent,
604cdf0e10cSrcweir WinBits _nFieldStyle,
605cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel
606cdf0e10cSrcweir );
607cdf0e10cSrcweir
608cdf0e10cSrcweir /// initializes everything which relates to the properties describing the numeric behaviour
609cdf0e10cSrcweir virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel );
610cdf0e10cSrcweir };
611cdf0e10cSrcweir
612cdf0e10cSrcweir //==================================================================
613cdf0e10cSrcweir class DbTimeField : public DbSpinField
614cdf0e10cSrcweir {
615cdf0e10cSrcweir public:
616cdf0e10cSrcweir TYPEINFO();
617cdf0e10cSrcweir DbTimeField(DbGridColumn& _rColumn);
618cdf0e10cSrcweir virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL);
619cdf0e10cSrcweir virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
620cdf0e10cSrcweir
621cdf0e10cSrcweir protected:
622cdf0e10cSrcweir // DbCellControl
623cdf0e10cSrcweir virtual sal_Bool commitControl( );
624cdf0e10cSrcweir virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel );
625cdf0e10cSrcweir
626cdf0e10cSrcweir // DbSpinField
627cdf0e10cSrcweir virtual SpinField* createField(
628cdf0e10cSrcweir Window* _pParent,
629cdf0e10cSrcweir WinBits _nFieldStyle,
630cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel
631cdf0e10cSrcweir );
632cdf0e10cSrcweir
633cdf0e10cSrcweir /// initializes everything which relates to the properties describing the numeric behaviour
634cdf0e10cSrcweir virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel );
635cdf0e10cSrcweir };
636cdf0e10cSrcweir
637cdf0e10cSrcweir //==================================================================
638cdf0e10cSrcweir class DbCurrencyField : public DbSpinField
639cdf0e10cSrcweir {
640cdf0e10cSrcweir sal_Int16 m_nScale;
641cdf0e10cSrcweir
642cdf0e10cSrcweir public:
643cdf0e10cSrcweir TYPEINFO();
644cdf0e10cSrcweir DbCurrencyField(DbGridColumn& _rColumn);
645cdf0e10cSrcweir virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL);
646cdf0e10cSrcweir virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
647cdf0e10cSrcweir
648cdf0e10cSrcweir double GetCurrency(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter) const;
649cdf0e10cSrcweir
650cdf0e10cSrcweir protected:
651cdf0e10cSrcweir // DbCellControl
652cdf0e10cSrcweir virtual sal_Bool commitControl( );
653cdf0e10cSrcweir virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel );
654cdf0e10cSrcweir
655cdf0e10cSrcweir // DbSpinField
656cdf0e10cSrcweir virtual SpinField* createField(
657cdf0e10cSrcweir Window* _pParent,
658cdf0e10cSrcweir WinBits _nFieldStyle,
659cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel
660cdf0e10cSrcweir );
661cdf0e10cSrcweir
662cdf0e10cSrcweir /// initializes everything which relates to the properties describing the numeric behaviour
663cdf0e10cSrcweir virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel );
664cdf0e10cSrcweir };
665cdf0e10cSrcweir
666cdf0e10cSrcweir //==================================================================
667cdf0e10cSrcweir class DbNumericField : public DbSpinField
668cdf0e10cSrcweir {
669cdf0e10cSrcweir public:
670cdf0e10cSrcweir TYPEINFO();
671cdf0e10cSrcweir DbNumericField(DbGridColumn& _rColumn);
672cdf0e10cSrcweir virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL);
673cdf0e10cSrcweir virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
674cdf0e10cSrcweir
675cdf0e10cSrcweir protected:
676cdf0e10cSrcweir // DbCellControl
677cdf0e10cSrcweir virtual sal_Bool commitControl( );
678cdf0e10cSrcweir virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel );
679cdf0e10cSrcweir
680cdf0e10cSrcweir // DbSpinField
681cdf0e10cSrcweir virtual SpinField* createField(
682cdf0e10cSrcweir Window* _pParent,
683cdf0e10cSrcweir WinBits _nFieldStyle,
684cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel
685cdf0e10cSrcweir );
686cdf0e10cSrcweir
687cdf0e10cSrcweir /// initializes everything which relates to the properties describing the numeric behaviour
688cdf0e10cSrcweir void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel );
689cdf0e10cSrcweir };
690cdf0e10cSrcweir
691cdf0e10cSrcweir //==================================================================
692cdf0e10cSrcweir class DbFilterField
693cdf0e10cSrcweir :public DbCellControl
694cdf0e10cSrcweir ,public ::svxform::OSQLParserClient
695cdf0e10cSrcweir {
696cdf0e10cSrcweir ::com::sun::star::uno::Sequence< ::rtl::OUString > m_aValueList;
697cdf0e10cSrcweir XubString m_aText;
698cdf0e10cSrcweir Link m_aCommitLink;
699cdf0e10cSrcweir sal_Int16 m_nControlClass;
700cdf0e10cSrcweir sal_Bool m_bFilterList : 1;
701cdf0e10cSrcweir sal_Bool m_bFilterListFilled : 1;
702cdf0e10cSrcweir sal_Bool m_bBound : 1;
703cdf0e10cSrcweir
704cdf0e10cSrcweir public:
705cdf0e10cSrcweir TYPEINFO();
706cdf0e10cSrcweir DbFilterField(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB,DbGridColumn& _rColumn);
707cdf0e10cSrcweir virtual ~DbFilterField();
708cdf0e10cSrcweir
709cdf0e10cSrcweir virtual void Init( Window& rParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor );
710cdf0e10cSrcweir virtual ::svt::CellControllerRef CreateController() const;
711cdf0e10cSrcweir virtual void PaintCell(OutputDevice& rDev, const Rectangle& rRect);
712cdf0e10cSrcweir virtual void Update();
713cdf0e10cSrcweir virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL);
714cdf0e10cSrcweir virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
715cdf0e10cSrcweir
GetText() const716cdf0e10cSrcweir const XubString& GetText() const {return m_aText;}
717cdf0e10cSrcweir void SetText(const XubString& rText);
718cdf0e10cSrcweir
SetCommitHdl(const Link & rLink)719cdf0e10cSrcweir void SetCommitHdl( const Link& rLink ) { m_aCommitLink = rLink; }
GetCommitHdl() const720cdf0e10cSrcweir const Link& GetCommitHdl() const { return m_aCommitLink; }
721cdf0e10cSrcweir
722cdf0e10cSrcweir protected:
723cdf0e10cSrcweir
724cdf0e10cSrcweir // DbCellControl
725cdf0e10cSrcweir virtual sal_Bool commitControl( );
726cdf0e10cSrcweir virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel );
727cdf0e10cSrcweir
728cdf0e10cSrcweir protected:
729cdf0e10cSrcweir void SetList(const ::com::sun::star::uno::Any& rItems, sal_Bool bComboBox);
730cdf0e10cSrcweir void CreateControl(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xModel);
731cdf0e10cSrcweir DECL_LINK( OnClick, void* );
732cdf0e10cSrcweir };
733cdf0e10cSrcweir
734cdf0e10cSrcweir //==================================================================
735cdf0e10cSrcweir // Base class providing the access to a grid cell
736cdf0e10cSrcweir //==================================================================
737cdf0e10cSrcweir typedef ::cppu::ImplHelper2 < ::com::sun::star::awt::XControl
738cdf0e10cSrcweir , ::com::sun::star::form::XBoundControl
739cdf0e10cSrcweir > FmXGridCell_Base;
740cdf0e10cSrcweir typedef ::cppu::ImplHelper1 < ::com::sun::star::awt::XWindow
741cdf0e10cSrcweir > FmXGridCell_WindowBase;
742cdf0e10cSrcweir class FmXGridCell :public ::cppu::OComponentHelper
743cdf0e10cSrcweir ,public FmXGridCell_Base
744cdf0e10cSrcweir ,public FmXGridCell_WindowBase
745cdf0e10cSrcweir {
746cdf0e10cSrcweir protected:
747cdf0e10cSrcweir ::osl::Mutex m_aMutex;
748cdf0e10cSrcweir DbGridColumn* m_pColumn;
749cdf0e10cSrcweir DbCellControl* m_pCellControl;
750cdf0e10cSrcweir
751cdf0e10cSrcweir private:
752cdf0e10cSrcweir ::cppu::OInterfaceContainerHelper m_aWindowListeners;
753cdf0e10cSrcweir ::cppu::OInterfaceContainerHelper m_aFocusListeners;
754cdf0e10cSrcweir ::cppu::OInterfaceContainerHelper m_aKeyListeners;
755cdf0e10cSrcweir ::cppu::OInterfaceContainerHelper m_aMouseListeners;
756cdf0e10cSrcweir ::cppu::OInterfaceContainerHelper m_aMouseMotionListeners;
757cdf0e10cSrcweir
758cdf0e10cSrcweir protected:
759cdf0e10cSrcweir virtual ~FmXGridCell();
760cdf0e10cSrcweir
761cdf0e10cSrcweir public:
762cdf0e10cSrcweir TYPEINFO();
763cdf0e10cSrcweir FmXGridCell( DbGridColumn* pColumn, DbCellControl* pControl );
764cdf0e10cSrcweir void init();
765cdf0e10cSrcweir
766cdf0e10cSrcweir DECLARE_UNO3_AGG_DEFAULTS(FmXGridCell, OComponentHelper);
767cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw(::com::sun::star::uno::RuntimeException);
768cdf0e10cSrcweir
769cdf0e10cSrcweir void SetTextLineColor();
770cdf0e10cSrcweir void SetTextLineColor(const Color& _rColor);
771cdf0e10cSrcweir
772cdf0e10cSrcweir // XTypeProvider
773cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw (::com::sun::star::uno::RuntimeException);
774cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException);
775cdf0e10cSrcweir
776cdf0e10cSrcweir // OComponentHelper
777cdf0e10cSrcweir virtual void SAL_CALL disposing();
778cdf0e10cSrcweir
779cdf0e10cSrcweir // ::com::sun::star::lang::XComponent
dispose()780cdf0e10cSrcweir virtual void SAL_CALL dispose() throw(::com::sun::star::uno::RuntimeException){OComponentHelper::dispose();}
addEventListener(const::com::sun::star::uno::Reference<::com::sun::star::lang::XEventListener> & aListener)781cdf0e10cSrcweir virtual void SAL_CALL addEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener)throw(::com::sun::star::uno::RuntimeException) { OComponentHelper::addEventListener(aListener);}
removeEventListener(const::com::sun::star::uno::Reference<::com::sun::star::lang::XEventListener> & aListener)782cdf0e10cSrcweir virtual void SAL_CALL removeEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener)throw(::com::sun::star::uno::RuntimeException) { OComponentHelper::removeEventListener(aListener);}
783cdf0e10cSrcweir
784cdf0e10cSrcweir // ::com::sun::star::awt::XControl
setContext(const::com::sun::star::uno::Reference<::com::sun::star::uno::XInterface> &)785cdf0e10cSrcweir virtual void SAL_CALL setContext(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& /*Context*/) throw(::com::sun::star::uno::RuntimeException){}
786cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getContext() throw(::com::sun::star::uno::RuntimeException);
createPeer(const::com::sun::star::uno::Reference<::com::sun::star::awt::XToolkit> &,const::com::sun::star::uno::Reference<::com::sun::star::awt::XWindowPeer> &)787cdf0e10cSrcweir virtual void SAL_CALL createPeer(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XToolkit >& /*Toolkit*/, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer >& /*Parent*/) throw(::com::sun::star::uno::RuntimeException){}
788cdf0e10cSrcweir
getPeer()789cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > SAL_CALL getPeer() throw (::com::sun::star::uno::RuntimeException) {return ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > ();}
setModel(const::com::sun::star::uno::Reference<::com::sun::star::awt::XControlModel> &)790cdf0e10cSrcweir virtual sal_Bool SAL_CALL setModel(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& /*Model*/) throw (::com::sun::star::uno::RuntimeException) {return sal_False;}
791cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel > SAL_CALL getModel() throw (::com::sun::star::uno::RuntimeException);
getView()792cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XView > SAL_CALL getView() throw (::com::sun::star::uno::RuntimeException) {return ::com::sun::star::uno::Reference< ::com::sun::star::awt::XView > ();}
setDesignMode(sal_Bool)793cdf0e10cSrcweir virtual void SAL_CALL setDesignMode(sal_Bool /*bOn*/) throw (::com::sun::star::uno::RuntimeException) {}
isDesignMode()794cdf0e10cSrcweir virtual sal_Bool SAL_CALL isDesignMode() throw (::com::sun::star::uno::RuntimeException) {return sal_False;}
isTransparent()795cdf0e10cSrcweir virtual sal_Bool SAL_CALL isTransparent() throw (::com::sun::star::uno::RuntimeException) {return sal_False;}
796cdf0e10cSrcweir
797cdf0e10cSrcweir // ::com::sun::star::form::XBoundControl
798cdf0e10cSrcweir virtual sal_Bool SAL_CALL getLock() throw(::com::sun::star::uno::RuntimeException);
799cdf0e10cSrcweir virtual void SAL_CALL setLock(sal_Bool _bLock) throw(::com::sun::star::uno::RuntimeException);
800cdf0e10cSrcweir
801cdf0e10cSrcweir // XWindow
802cdf0e10cSrcweir virtual void SAL_CALL setPosSize( ::sal_Int32 X, ::sal_Int32 Y, ::sal_Int32 Width, ::sal_Int32 Height, ::sal_Int16 Flags ) throw (::com::sun::star::uno::RuntimeException);
803cdf0e10cSrcweir virtual ::com::sun::star::awt::Rectangle SAL_CALL getPosSize( ) throw (::com::sun::star::uno::RuntimeException);
804cdf0e10cSrcweir virtual void SAL_CALL setVisible( ::sal_Bool Visible ) throw (::com::sun::star::uno::RuntimeException);
805cdf0e10cSrcweir virtual void SAL_CALL setEnable( ::sal_Bool Enable ) throw (::com::sun::star::uno::RuntimeException);
806cdf0e10cSrcweir virtual void SAL_CALL setFocus( ) throw (::com::sun::star::uno::RuntimeException);
807cdf0e10cSrcweir virtual void SAL_CALL addWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
808cdf0e10cSrcweir virtual void SAL_CALL removeWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
809cdf0e10cSrcweir virtual void SAL_CALL addFocusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
810cdf0e10cSrcweir virtual void SAL_CALL removeFocusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
811cdf0e10cSrcweir virtual void SAL_CALL addKeyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
812cdf0e10cSrcweir virtual void SAL_CALL removeKeyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
813cdf0e10cSrcweir virtual void SAL_CALL addMouseListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
814cdf0e10cSrcweir virtual void SAL_CALL removeMouseListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
815cdf0e10cSrcweir virtual void SAL_CALL addMouseMotionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseMotionListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
816cdf0e10cSrcweir virtual void SAL_CALL removeMouseMotionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseMotionListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
817cdf0e10cSrcweir virtual void SAL_CALL addPaintListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPaintListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
818cdf0e10cSrcweir virtual void SAL_CALL removePaintListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPaintListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
819cdf0e10cSrcweir
Commit()820cdf0e10cSrcweir sal_Bool Commit() {return m_pCellControl->Commit();}
ImplInitWindow(Window & rParent,const InitWindowFacet _eInitWhat)821cdf0e10cSrcweir void ImplInitWindow( Window& rParent, const InitWindowFacet _eInitWhat )
822cdf0e10cSrcweir { m_pCellControl->ImplInitWindow( rParent, _eInitWhat ); }
823cdf0e10cSrcweir
isAlignedController() const824cdf0e10cSrcweir sal_Bool isAlignedController() const { return m_pCellControl->isAlignedController(); }
AlignControl(sal_Int16 nAlignment)825cdf0e10cSrcweir void AlignControl(sal_Int16 nAlignment)
826cdf0e10cSrcweir { m_pCellControl->AlignControl(nAlignment);}
827cdf0e10cSrcweir
828cdf0e10cSrcweir protected:
829cdf0e10cSrcweir virtual Window* getEventWindow() const;
830cdf0e10cSrcweir virtual void onWindowEvent( const sal_uLong _nEventId, const Window& _rWindow, const void* _pEventData );
831cdf0e10cSrcweir
832cdf0e10cSrcweir // default implementations call our focus listeners, don't forget to call them if you override this
833cdf0e10cSrcweir virtual void onFocusGained( const ::com::sun::star::awt::FocusEvent& _rEvent );
834cdf0e10cSrcweir virtual void onFocusLost( const ::com::sun::star::awt::FocusEvent& _rEvent );
835cdf0e10cSrcweir
836cdf0e10cSrcweir private:
837cdf0e10cSrcweir DECL_LINK( OnWindowEvent, VclWindowEvent* );
838cdf0e10cSrcweir };
839cdf0e10cSrcweir
840cdf0e10cSrcweir //==================================================================
841cdf0e10cSrcweir class FmXDataCell : public FmXGridCell
842cdf0e10cSrcweir {
843cdf0e10cSrcweir public:
844cdf0e10cSrcweir TYPEINFO();
FmXDataCell(DbGridColumn * pColumn,DbCellControl & _rControl)845cdf0e10cSrcweir FmXDataCell( DbGridColumn* pColumn, DbCellControl& _rControl )
846cdf0e10cSrcweir :FmXGridCell( pColumn, &_rControl )
847cdf0e10cSrcweir {
848cdf0e10cSrcweir }
849cdf0e10cSrcweir
850cdf0e10cSrcweir virtual void PaintFieldToCell(OutputDevice& rDev,
851cdf0e10cSrcweir const Rectangle& rRect,
852cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& xField,
853cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
854cdf0e10cSrcweir
UpdateFromField(const::com::sun::star::uno::Reference<::com::sun::star::sdb::XColumn> & xField,const::com::sun::star::uno::Reference<::com::sun::star::util::XNumberFormatter> & xFormatter)855cdf0e10cSrcweir void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& xField,
856cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter)
857cdf0e10cSrcweir { m_pCellControl->UpdateFromField(xField, xFormatter); }
858cdf0e10cSrcweir
859cdf0e10cSrcweir protected:
860cdf0e10cSrcweir void UpdateFromColumn();
861cdf0e10cSrcweir };
862cdf0e10cSrcweir
863cdf0e10cSrcweir //==================================================================
864cdf0e10cSrcweir class FmXTextCell : public FmXDataCell
865cdf0e10cSrcweir {
866cdf0e10cSrcweir protected:
867cdf0e10cSrcweir /** determines whether the text of this cell can be painted directly, without
868cdf0e10cSrcweir using the painter control
869cdf0e10cSrcweir
870cdf0e10cSrcweir If this is <TRUE/>, the <member>PaintCell</member> method will simply use the text as returned
871cdf0e10cSrcweir by <member>GetText</member>, and draw it onto the device passed to <member>PaintFieldToCell</member>,
872cdf0e10cSrcweir while respecting the current alignment settings.
873cdf0e10cSrcweir
874cdf0e10cSrcweir If this is <FALSE/>, the <member>PaintFieldToCell</member> request will be forwarded to the painter
875cdf0e10cSrcweir control (<member>m_pPainter</member>). This is more expensive, but the only option
876cdf0e10cSrcweir if your painting involves more that a simple DrawText.
877cdf0e10cSrcweir
878cdf0e10cSrcweir This member is <TRUE/> by default, and can be modified by derived classes.
879cdf0e10cSrcweir */
880cdf0e10cSrcweir sal_Bool m_bFastPaint;
881cdf0e10cSrcweir
882cdf0e10cSrcweir public:
883cdf0e10cSrcweir TYPEINFO();
884cdf0e10cSrcweir FmXTextCell( DbGridColumn* pColumn, DbCellControl& _rControl );
885cdf0e10cSrcweir
886cdf0e10cSrcweir virtual void PaintFieldToCell(OutputDevice& rDev,
887cdf0e10cSrcweir const Rectangle& rRect,
888cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& xField,
889cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter);
890cdf0e10cSrcweir
GetText(const::com::sun::star::uno::Reference<::com::sun::star::sdb::XColumn> & _rxField,const::com::sun::star::uno::Reference<::com::sun::star::util::XNumberFormatter> & xFormatter,Color ** ppColor=NULL)891cdf0e10cSrcweir XubString GetText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxField,
892cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter,
893cdf0e10cSrcweir Color** ppColor = NULL)
894cdf0e10cSrcweir {return m_pCellControl->GetFormatText(_rxField, xFormatter, ppColor);}
895cdf0e10cSrcweir };
896cdf0e10cSrcweir
897cdf0e10cSrcweir //==================================================================
898cdf0e10cSrcweir typedef ::cppu::ImplHelper2 < ::com::sun::star::awt::XTextComponent
899cdf0e10cSrcweir , ::com::sun::star::form::XChangeBroadcaster
900cdf0e10cSrcweir > FmXEditCell_Base;
901cdf0e10cSrcweir class FmXEditCell : public FmXTextCell,
902cdf0e10cSrcweir public FmXEditCell_Base
903cdf0e10cSrcweir {
904cdf0e10cSrcweir private:
905cdf0e10cSrcweir ::rtl::OUString m_sValueOnEnter;
906cdf0e10cSrcweir
907cdf0e10cSrcweir protected:
908cdf0e10cSrcweir ::cppu::OInterfaceContainerHelper m_aTextListeners;
909cdf0e10cSrcweir ::cppu::OInterfaceContainerHelper m_aChangeListeners;
910cdf0e10cSrcweir ::svt::IEditImplementation* m_pEditImplementation;
911cdf0e10cSrcweir bool m_bOwnEditImplementation;
912cdf0e10cSrcweir
913cdf0e10cSrcweir virtual ~FmXEditCell();
914cdf0e10cSrcweir public:
915cdf0e10cSrcweir FmXEditCell( DbGridColumn* pColumn, DbCellControl& _rControl );
916cdf0e10cSrcweir
917cdf0e10cSrcweir DECLARE_UNO3_AGG_DEFAULTS(FmXEditCell, FmXTextCell);
918cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw(::com::sun::star::uno::RuntimeException);
919cdf0e10cSrcweir
920cdf0e10cSrcweir // XTypeProvider
921cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
922cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException);
923cdf0e10cSrcweir
924cdf0e10cSrcweir // OComponentHelper
925cdf0e10cSrcweir virtual void SAL_CALL disposing();
926cdf0e10cSrcweir
927cdf0e10cSrcweir // ::com::sun::star::awt::XTextComponent
928cdf0e10cSrcweir virtual void SAL_CALL addTextListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextListener >& l) throw(::com::sun::star::uno::RuntimeException);
929cdf0e10cSrcweir virtual void SAL_CALL removeTextListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextListener >& l) throw(::com::sun::star::uno::RuntimeException);
930cdf0e10cSrcweir virtual void SAL_CALL setText(const ::rtl::OUString& aText) throw(::com::sun::star::uno::RuntimeException);
931cdf0e10cSrcweir virtual void SAL_CALL insertText(const ::com::sun::star::awt::Selection& Sel, const ::rtl::OUString& Text) throw(::com::sun::star::uno::RuntimeException);
932cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getText() throw(::com::sun::star::uno::RuntimeException);
933cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getSelectedText() throw(::com::sun::star::uno::RuntimeException);
934cdf0e10cSrcweir virtual void SAL_CALL setSelection(const ::com::sun::star::awt::Selection& aSelection) throw(::com::sun::star::uno::RuntimeException);
935cdf0e10cSrcweir virtual ::com::sun::star::awt::Selection SAL_CALL getSelection() throw(::com::sun::star::uno::RuntimeException);
936cdf0e10cSrcweir virtual sal_Bool SAL_CALL isEditable() throw(::com::sun::star::uno::RuntimeException);
937cdf0e10cSrcweir virtual void SAL_CALL setEditable(sal_Bool bEditable) throw(::com::sun::star::uno::RuntimeException);
938cdf0e10cSrcweir virtual void SAL_CALL setMaxTextLen(sal_Int16 nLen) throw(::com::sun::star::uno::RuntimeException);
939cdf0e10cSrcweir virtual sal_Int16 SAL_CALL getMaxTextLen() throw(::com::sun::star::uno::RuntimeException);
940cdf0e10cSrcweir
941cdf0e10cSrcweir // XChangeBroadcaster
942cdf0e10cSrcweir virtual void SAL_CALL addChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XChangeListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
943cdf0e10cSrcweir virtual void SAL_CALL removeChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XChangeListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
944cdf0e10cSrcweir
945cdf0e10cSrcweir protected:
946cdf0e10cSrcweir virtual void onWindowEvent( const sal_uLong _nEventId, const Window& _rWindow, const void* _pEventData );
947cdf0e10cSrcweir
948cdf0e10cSrcweir virtual void onFocusGained( const ::com::sun::star::awt::FocusEvent& _rEvent );
949cdf0e10cSrcweir virtual void onFocusLost( const ::com::sun::star::awt::FocusEvent& _rEvent );
950cdf0e10cSrcweir
951cdf0e10cSrcweir private:
952cdf0e10cSrcweir void onTextChanged();
953cdf0e10cSrcweir };
954cdf0e10cSrcweir
955cdf0e10cSrcweir //==================================================================
956cdf0e10cSrcweir typedef ::cppu::ImplHelper2 < ::com::sun::star::awt::XCheckBox
957cdf0e10cSrcweir , ::com::sun::star::awt::XButton
958cdf0e10cSrcweir > FmXCheckBoxCell_Base;
959cdf0e10cSrcweir class FmXCheckBoxCell : public FmXDataCell,
960cdf0e10cSrcweir public FmXCheckBoxCell_Base
961cdf0e10cSrcweir {
962cdf0e10cSrcweir ::cppu::OInterfaceContainerHelper m_aItemListeners;
963cdf0e10cSrcweir ::cppu::OInterfaceContainerHelper m_aActionListeners;
964cdf0e10cSrcweir ::rtl::OUString m_aActionCommand;
965cdf0e10cSrcweir CheckBox* m_pBox;
966cdf0e10cSrcweir
967cdf0e10cSrcweir protected:
968cdf0e10cSrcweir virtual ~FmXCheckBoxCell();
969cdf0e10cSrcweir
970cdf0e10cSrcweir public:
971cdf0e10cSrcweir FmXCheckBoxCell( DbGridColumn* pColumn, DbCellControl& _rControl );
972cdf0e10cSrcweir
973cdf0e10cSrcweir // UNO
974cdf0e10cSrcweir DECLARE_UNO3_AGG_DEFAULTS(FmXCheckBoxCell, FmXDataCell);
975cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw(::com::sun::star::uno::RuntimeException);
976cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
977cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException);
978cdf0e10cSrcweir
979cdf0e10cSrcweir // OComponentHelper
980cdf0e10cSrcweir virtual void SAL_CALL disposing();
981cdf0e10cSrcweir
982cdf0e10cSrcweir // ::com::sun::star::awt::XCheckBox
983cdf0e10cSrcweir virtual void SAL_CALL addItemListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener >& l) throw(::com::sun::star::uno::RuntimeException);
984cdf0e10cSrcweir virtual void SAL_CALL removeItemListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener >& l) throw(::com::sun::star::uno::RuntimeException);
985cdf0e10cSrcweir virtual sal_Int16 SAL_CALL getState() throw(::com::sun::star::uno::RuntimeException);
986cdf0e10cSrcweir virtual void SAL_CALL setState(sal_Int16 n) throw(::com::sun::star::uno::RuntimeException);
987cdf0e10cSrcweir virtual void SAL_CALL setLabel(const ::rtl::OUString& Label) throw(::com::sun::star::uno::RuntimeException);
988cdf0e10cSrcweir virtual void SAL_CALL enableTriState(sal_Bool b) throw(::com::sun::star::uno::RuntimeException);
989cdf0e10cSrcweir
990cdf0e10cSrcweir // XButton
991cdf0e10cSrcweir virtual void SAL_CALL addActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener >& l ) throw (::com::sun::star::uno::RuntimeException);
992cdf0e10cSrcweir virtual void SAL_CALL removeActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener >& l ) throw (::com::sun::star::uno::RuntimeException);
993cdf0e10cSrcweir //virtual void SAL_CALL setLabel( const ::rtl::OUString& Label ) throw (::com::sun::star::uno::RuntimeException);
994cdf0e10cSrcweir virtual void SAL_CALL setActionCommand( const ::rtl::OUString& Command ) throw (::com::sun::star::uno::RuntimeException);
995cdf0e10cSrcweir
996cdf0e10cSrcweir protected:
997cdf0e10cSrcweir virtual Window* getEventWindow() const;
998cdf0e10cSrcweir virtual void onWindowEvent( const sal_uLong _nEventId, const Window& _rWindow, const void* _pEventData );
999cdf0e10cSrcweir };
1000cdf0e10cSrcweir
1001cdf0e10cSrcweir //==================================================================
1002cdf0e10cSrcweir typedef ::cppu::ImplHelper1 < ::com::sun::star::awt::XListBox
1003cdf0e10cSrcweir > FmXListBoxCell_Base;
1004cdf0e10cSrcweir class FmXListBoxCell :public FmXTextCell
1005cdf0e10cSrcweir ,public FmXListBoxCell_Base
1006cdf0e10cSrcweir {
1007cdf0e10cSrcweir ::cppu::OInterfaceContainerHelper m_aItemListeners,
1008cdf0e10cSrcweir m_aActionListeners;
1009cdf0e10cSrcweir ListBox* m_pBox;
1010cdf0e10cSrcweir
1011cdf0e10cSrcweir protected:
1012cdf0e10cSrcweir virtual ~FmXListBoxCell();
1013cdf0e10cSrcweir
1014cdf0e10cSrcweir public:
1015cdf0e10cSrcweir FmXListBoxCell( DbGridColumn* pColumn, DbCellControl& _rControl );
1016cdf0e10cSrcweir
1017cdf0e10cSrcweir DECLARE_UNO3_AGG_DEFAULTS(FmXListBoxCell, FmXTextCell);
1018cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw(::com::sun::star::uno::RuntimeException);
1019cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
1020cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException);
1021cdf0e10cSrcweir
1022cdf0e10cSrcweir // OComponentHelper
1023cdf0e10cSrcweir virtual void SAL_CALL disposing();
1024cdf0e10cSrcweir
1025cdf0e10cSrcweir // ::com::sun::star::awt::XListBox
1026cdf0e10cSrcweir virtual void SAL_CALL addItemListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener >& l) throw(::com::sun::star::uno::RuntimeException);
1027cdf0e10cSrcweir virtual void SAL_CALL removeItemListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener >& l) throw(::com::sun::star::uno::RuntimeException);
1028cdf0e10cSrcweir virtual void SAL_CALL addActionListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener >& l) throw(::com::sun::star::uno::RuntimeException);
1029cdf0e10cSrcweir virtual void SAL_CALL removeActionListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener >& l) throw(::com::sun::star::uno::RuntimeException);
1030cdf0e10cSrcweir virtual void SAL_CALL addItem(const ::rtl::OUString& aItem, sal_Int16 nPos) throw(::com::sun::star::uno::RuntimeException);
1031cdf0e10cSrcweir virtual void SAL_CALL addItems(const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aItems, sal_Int16 nPos) throw(::com::sun::star::uno::RuntimeException);
1032cdf0e10cSrcweir virtual void SAL_CALL removeItems(sal_Int16 nPos, sal_Int16 nCount) throw(::com::sun::star::uno::RuntimeException);
1033cdf0e10cSrcweir virtual sal_Int16 SAL_CALL getItemCount() throw(::com::sun::star::uno::RuntimeException);
1034cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getItem(sal_Int16 nPos) throw(::com::sun::star::uno::RuntimeException);
1035cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getItems() throw(::com::sun::star::uno::RuntimeException);
1036cdf0e10cSrcweir virtual sal_Int16 SAL_CALL getSelectedItemPos() throw(::com::sun::star::uno::RuntimeException);
1037cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< sal_Int16 > SAL_CALL getSelectedItemsPos() throw(::com::sun::star::uno::RuntimeException);
1038cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getSelectedItem() throw(::com::sun::star::uno::RuntimeException);
1039cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSelectedItems() throw(::com::sun::star::uno::RuntimeException);
1040cdf0e10cSrcweir virtual void SAL_CALL SAL_CALL selectItemPos(sal_Int16 nPos, sal_Bool bSelect) throw(::com::sun::star::uno::RuntimeException);
1041cdf0e10cSrcweir virtual void SAL_CALL SAL_CALL selectItemsPos(const ::com::sun::star::uno::Sequence< sal_Int16 >& aPositions, sal_Bool bSelect) throw(::com::sun::star::uno::RuntimeException);
1042cdf0e10cSrcweir virtual void SAL_CALL SAL_CALL selectItem(const ::rtl::OUString& aItem, sal_Bool bSelect) throw(::com::sun::star::uno::RuntimeException);
1043cdf0e10cSrcweir virtual sal_Bool SAL_CALL isMutipleMode() throw(::com::sun::star::uno::RuntimeException);
1044cdf0e10cSrcweir virtual void SAL_CALL SAL_CALL setMultipleMode(sal_Bool bMulti) throw(::com::sun::star::uno::RuntimeException);
1045cdf0e10cSrcweir virtual sal_Int16 SAL_CALL getDropDownLineCount() throw(::com::sun::star::uno::RuntimeException);
1046cdf0e10cSrcweir virtual void SAL_CALL SAL_CALL setDropDownLineCount(sal_Int16 nLines) throw(::com::sun::star::uno::RuntimeException);
1047cdf0e10cSrcweir virtual void SAL_CALL SAL_CALL makeVisible(sal_Int16 nEntry) throw(::com::sun::star::uno::RuntimeException);
1048cdf0e10cSrcweir
1049cdf0e10cSrcweir protected:
1050cdf0e10cSrcweir virtual void onWindowEvent( const sal_uLong _nEventId, const Window& _rWindow, const void* _pEventData );
1051cdf0e10cSrcweir
1052cdf0e10cSrcweir DECL_LINK( OnDoubleClick, void* );
1053cdf0e10cSrcweir };
1054cdf0e10cSrcweir
1055cdf0e10cSrcweir //==================================================================
1056cdf0e10cSrcweir typedef ::cppu::ImplHelper1 < ::com::sun::star::awt::XComboBox
1057cdf0e10cSrcweir > FmXComboBoxCell_Base;
1058cdf0e10cSrcweir class FmXComboBoxCell :public FmXTextCell
1059cdf0e10cSrcweir ,public FmXComboBoxCell_Base
1060cdf0e10cSrcweir {
1061cdf0e10cSrcweir private:
1062cdf0e10cSrcweir ::cppu::OInterfaceContainerHelper m_aItemListeners,
1063cdf0e10cSrcweir m_aActionListeners;
1064cdf0e10cSrcweir ComboBox* m_pComboBox;
1065cdf0e10cSrcweir
1066cdf0e10cSrcweir protected:
1067cdf0e10cSrcweir virtual ~FmXComboBoxCell();
1068cdf0e10cSrcweir
1069cdf0e10cSrcweir public:
1070cdf0e10cSrcweir FmXComboBoxCell( DbGridColumn* pColumn, DbCellControl& _rControl );
1071cdf0e10cSrcweir
1072cdf0e10cSrcweir DECLARE_UNO3_AGG_DEFAULTS(FmXListBoxCell, FmXTextCell);
1073cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw(::com::sun::star::uno::RuntimeException);
1074cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
1075cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException);
1076cdf0e10cSrcweir
1077cdf0e10cSrcweir // OComponentHelper
1078cdf0e10cSrcweir virtual void SAL_CALL disposing();
1079cdf0e10cSrcweir
1080cdf0e10cSrcweir // XComboBox
1081cdf0e10cSrcweir virtual void SAL_CALL addItemListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener >& _Listener ) throw (::com::sun::star::uno::RuntimeException);
1082cdf0e10cSrcweir virtual void SAL_CALL removeItemListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener >& _Listener ) throw (::com::sun::star::uno::RuntimeException);
1083cdf0e10cSrcweir virtual void SAL_CALL addActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener >& _Listener ) throw (::com::sun::star::uno::RuntimeException);
1084cdf0e10cSrcweir virtual void SAL_CALL removeActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener >& _Listener ) throw (::com::sun::star::uno::RuntimeException);
1085cdf0e10cSrcweir virtual void SAL_CALL addItem( const ::rtl::OUString& _Item, ::sal_Int16 _Pos ) throw (::com::sun::star::uno::RuntimeException);
1086cdf0e10cSrcweir virtual void SAL_CALL addItems( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _Items, ::sal_Int16 _Pos ) throw (::com::sun::star::uno::RuntimeException);
1087cdf0e10cSrcweir virtual void SAL_CALL removeItems( ::sal_Int16 nPos, ::sal_Int16 nCount ) throw (::com::sun::star::uno::RuntimeException);
1088cdf0e10cSrcweir virtual ::sal_Int16 SAL_CALL getItemCount( ) throw (::com::sun::star::uno::RuntimeException);
1089cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getItem( ::sal_Int16 _Pos ) throw (::com::sun::star::uno::RuntimeException);
1090cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getItems( ) throw (::com::sun::star::uno::RuntimeException);
1091cdf0e10cSrcweir virtual ::sal_Int16 SAL_CALL getDropDownLineCount( ) throw (::com::sun::star::uno::RuntimeException);
1092cdf0e10cSrcweir virtual void SAL_CALL setDropDownLineCount( ::sal_Int16 _Lines ) throw (::com::sun::star::uno::RuntimeException);
1093cdf0e10cSrcweir
1094cdf0e10cSrcweir protected:
1095cdf0e10cSrcweir virtual void onWindowEvent( const sal_uLong _nEventId, const Window& _rWindow, const void* _pEventData );
1096cdf0e10cSrcweir };
1097cdf0e10cSrcweir
1098cdf0e10cSrcweir //==================================================================
1099cdf0e10cSrcweir typedef ::cppu::ImplHelper2 < ::com::sun::star::awt::XTextComponent
1100cdf0e10cSrcweir , ::com::sun::star::lang::XUnoTunnel
1101cdf0e10cSrcweir > FmXFilterCell_Base;
1102cdf0e10cSrcweir class FmXFilterCell :public FmXGridCell
1103cdf0e10cSrcweir ,public FmXFilterCell_Base
1104cdf0e10cSrcweir {
1105cdf0e10cSrcweir ::cppu::OInterfaceContainerHelper m_aTextListeners;
1106cdf0e10cSrcweir protected:
1107cdf0e10cSrcweir virtual ~FmXFilterCell();
1108cdf0e10cSrcweir public:
1109cdf0e10cSrcweir TYPEINFO();
1110cdf0e10cSrcweir FmXFilterCell(DbGridColumn* pColumn = NULL, DbCellControl* pControl = NULL);
1111cdf0e10cSrcweir
1112cdf0e10cSrcweir
1113cdf0e10cSrcweir DECLARE_UNO3_AGG_DEFAULTS(FmXFilterCell, FmXGridCell);
1114cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw(::com::sun::star::uno::RuntimeException);
1115cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
1116cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException);
1117cdf0e10cSrcweir
1118cdf0e10cSrcweir // XUnoTunnel
1119cdf0e10cSrcweir virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
1120cdf0e10cSrcweir
1121cdf0e10cSrcweir // helpers for XUnoTunnel
1122cdf0e10cSrcweir static const ::com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId();
1123cdf0e10cSrcweir static FmXFilterCell* getImplementation(
1124cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& _rxObject);
1125cdf0e10cSrcweir
1126cdf0e10cSrcweir // painting the filter text
1127cdf0e10cSrcweir virtual void PaintCell(OutputDevice& rDev, const Rectangle& rRect);
Update()1128cdf0e10cSrcweir void Update(){m_pCellControl->Update();}
1129cdf0e10cSrcweir
1130cdf0e10cSrcweir // OComponentHelper
1131cdf0e10cSrcweir virtual void SAL_CALL disposing();
1132cdf0e10cSrcweir
1133cdf0e10cSrcweir // ::com::sun::star::awt::XTextComponent
1134cdf0e10cSrcweir virtual void SAL_CALL addTextListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextListener >& l) throw(::com::sun::star::uno::RuntimeException);
1135cdf0e10cSrcweir virtual void SAL_CALL removeTextListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextListener >& l) throw(::com::sun::star::uno::RuntimeException);
1136cdf0e10cSrcweir virtual void SAL_CALL setText(const ::rtl::OUString& aText) throw(::com::sun::star::uno::RuntimeException);
1137cdf0e10cSrcweir virtual void SAL_CALL insertText(const ::com::sun::star::awt::Selection& Sel, const ::rtl::OUString& Text) throw(::com::sun::star::uno::RuntimeException);
1138cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getText() throw(::com::sun::star::uno::RuntimeException);
1139cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getSelectedText() throw(::com::sun::star::uno::RuntimeException);
1140cdf0e10cSrcweir virtual void SAL_CALL setSelection(const ::com::sun::star::awt::Selection& aSelection) throw(::com::sun::star::uno::RuntimeException);
1141cdf0e10cSrcweir virtual ::com::sun::star::awt::Selection SAL_CALL getSelection() throw(::com::sun::star::uno::RuntimeException);
1142cdf0e10cSrcweir virtual sal_Bool SAL_CALL isEditable() throw(::com::sun::star::uno::RuntimeException);
1143cdf0e10cSrcweir virtual void SAL_CALL setEditable(sal_Bool bEditable) throw(::com::sun::star::uno::RuntimeException);
1144cdf0e10cSrcweir virtual void SAL_CALL setMaxTextLen(sal_Int16 nLen) throw(::com::sun::star::uno::RuntimeException);
1145cdf0e10cSrcweir virtual sal_Int16 SAL_CALL getMaxTextLen() throw(::com::sun::star::uno::RuntimeException);
1146cdf0e10cSrcweir
1147cdf0e10cSrcweir protected:
1148cdf0e10cSrcweir DECL_LINK( OnCommit, void* );
1149cdf0e10cSrcweir };
1150cdf0e10cSrcweir
1151cdf0e10cSrcweir #endif // _SVX_GRIDCELL_HXX
1152cdf0e10cSrcweir
1153