Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #ifndef SW_UNOTBL_HXX
21 : #define SW_UNOTBL_HXX
22 :
23 : #include <com/sun/star/container/XNamed.hpp>
24 : #include <com/sun/star/container/XEnumerationAccess.hpp>
25 : #include <com/sun/star/util/XSortable.hpp>
26 : #include <com/sun/star/chart/XChartData.hpp>
27 : #include <com/sun/star/chart/XChartDataArray.hpp>
28 : #include <com/sun/star/chart2/data/XLabeledDataSequence.hpp>
29 : #include <com/sun/star/text/XTextTableCursor.hpp>
30 : #include <com/sun/star/text/XTextTable.hpp>
31 : #include <com/sun/star/table/XCellRange.hpp>
32 : #include <com/sun/star/sheet/XCellRangeData.hpp>
33 : #include <com/sun/star/table/XAutoFormattable.hpp>
34 :
35 : #include <cppuhelper/implbase3.hxx>
36 : #include <cppuhelper/implbase4.hxx>
37 : #include <cppuhelper/implbase5.hxx>
38 : #include <cppuhelper/implbase7.hxx>
39 : #include <cppuhelper/implbase10.hxx>
40 :
41 : #include <comphelper/uno3.hxx>
42 : #include <tools/string.hxx>
43 :
44 : #include <calbck.hxx>
45 : #include <TextCursorHelper.hxx>
46 : #include <unoevtlstnr.hxx>
47 : #include <unotext.hxx>
48 :
49 :
50 : class SwUnoCrsr;
51 : class SwTable;
52 : class SwTableBox;
53 : class SwTableLine;
54 : class SwTableCursor;
55 : class SwTableBoxFmt;
56 : class SwChartDataProvider;
57 : class SwFrmFmt;
58 :
59 :
60 107 : class SwChartEventListenerContainer : public SwEventListenerContainer
61 : {
62 : public:
63 107 : SwChartEventListenerContainer( ::com::sun::star::uno::XInterface* pxParentL) :
64 107 : SwEventListenerContainer(pxParentL){}
65 : void ChartDataChanged();
66 : };
67 :
68 : typedef
69 : cppu::WeakImplHelper4
70 : <
71 : ::com::sun::star::table::XCell,
72 : ::com::sun::star::lang::XServiceInfo,
73 : ::com::sun::star::beans::XPropertySet,
74 : ::com::sun::star::container::XEnumerationAccess
75 : >
76 : SwXCellBaseClass;
77 : class SwXCell : public SwXCellBaseClass,
78 : public SwXText,
79 : public SwClient
80 : {
81 : friend void sw_setString( SwXCell &rCell, const rtl::OUString &rTxt,
82 : sal_Bool bKeepNumberFmt = sal_False );
83 : friend double sw_getValue( SwXCell &rCell );
84 : friend void sw_setValue( SwXCell &rCell, double nVal );
85 :
86 :
87 : const SfxItemPropertySet* m_pPropSet;
88 : SwTableBox* pBox; // only set in non-XML import
89 : const SwStartNode* pStartNode; // only set in XML import
90 :
91 : // table position where pBox was found last
92 : size_t nFndPos;
93 : static size_t const NOTFOUND = SAL_MAX_SIZE;
94 :
95 : protected:
96 : virtual const SwStartNode *GetStartNode() const;
97 :
98 : virtual ::com::sun::star::uno::Reference<
99 : ::com::sun::star::text::XTextCursor >
100 : CreateCursor()
101 : throw (::com::sun::star::uno::RuntimeException);
102 :
103 : bool IsValid() const;
104 :
105 : virtual ~SwXCell();
106 :
107 : //SwClient
108 : virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
109 :
110 : public:
111 : SwXCell(SwFrmFmt* pTblFmt, SwTableBox* pBox, size_t nPos = NOTFOUND);
112 : SwXCell(SwFrmFmt* pTblFmt, const SwStartNode& rStartNode); // XML import interface
113 :
114 :
115 : TYPEINFO();
116 :
117 : static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId();
118 :
119 : //XUnoTunnel
120 : virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
121 :
122 : virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw(::com::sun::star::uno::RuntimeException);
123 : virtual void SAL_CALL acquire( ) throw();
124 : virtual void SAL_CALL release( ) throw();
125 :
126 : //XTypeProvider
127 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
128 : virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
129 :
130 : //XCell
131 : virtual ::rtl::OUString SAL_CALL getFormula( ) throw(::com::sun::star::uno::RuntimeException);
132 : virtual void SAL_CALL setFormula( const ::rtl::OUString& aFormula ) throw(::com::sun::star::uno::RuntimeException);
133 : virtual double SAL_CALL getValue( ) throw(::com::sun::star::uno::RuntimeException);
134 : virtual void SAL_CALL setValue( double nValue ) throw(::com::sun::star::uno::RuntimeException);
135 : virtual ::com::sun::star::table::CellContentType SAL_CALL getType( ) throw(::com::sun::star::uno::RuntimeException);
136 : virtual sal_Int32 SAL_CALL getError( ) throw(::com::sun::star::uno::RuntimeException);
137 :
138 : //XText
139 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursor(void) throw( ::com::sun::star::uno::RuntimeException );
140 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursorByRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & aTextPosition) throw( ::com::sun::star::uno::RuntimeException );
141 : virtual void SAL_CALL setString(const rtl::OUString& aString) throw( ::com::sun::star::uno::RuntimeException );
142 :
143 : //XPropertySet
144 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
145 : virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
146 : virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
147 : virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
148 : virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
149 : virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
150 : virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
151 :
152 : //XServiceInfo
153 : virtual rtl::OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException );
154 : virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException );
155 : virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException );
156 :
157 : //XEnumerationAccess - was: XParagraphEnumerationAccess
158 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createEnumeration(void) throw( ::com::sun::star::uno::RuntimeException );
159 :
160 : //XElementAccess
161 : virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw(::com::sun::star::uno::RuntimeException);
162 : virtual sal_Bool SAL_CALL hasElements( ) throw(::com::sun::star::uno::RuntimeException);
163 :
164 118 : SwTableBox* GetTblBox()const {return pBox;}
165 : static SwXCell* CreateXCell(SwFrmFmt* pTblFmt, SwTableBox* pBox, SwTable *pTbl = 0 );
166 : SwTableBox* FindBox(SwTable* pTable, SwTableBox* pBox);
167 :
168 2589 : SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
169 : };
170 :
171 : class SwXTextTableRow : public cppu::WeakImplHelper2
172 : <
173 : ::com::sun::star::beans::XPropertySet,
174 : ::com::sun::star::lang::XServiceInfo
175 : >,
176 : public SwClient
177 : {
178 : const SfxItemPropertySet* m_pPropSet;
179 : SwTableLine* pLine;
180 :
181 158 : SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
182 : protected:
183 : virtual ~SwXTextTableRow();
184 : //SwClient
185 : virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
186 :
187 : public:
188 : SwXTextTableRow(SwFrmFmt* pFmt, SwTableLine* pLine);
189 :
190 :
191 : TYPEINFO();
192 :
193 : //XPropertySet
194 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
195 : virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
196 : virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
197 : virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
198 : virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
199 : virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
200 : virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
201 :
202 : //XServiceInfo
203 : virtual rtl::OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException );
204 : virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException );
205 : virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException );
206 :
207 0 : const SwTableLine* GetTblRow() const {return pLine;}
208 : static SwTableLine* FindLine(SwTable* pTable, SwTableLine* pLine);
209 : };
210 :
211 : typedef cppu::WeakImplHelper3<
212 : ::com::sun::star::text::XTextTableCursor,
213 : ::com::sun::star::lang::XServiceInfo,
214 : ::com::sun::star::beans::XPropertySet
215 : > SwXTextTableCursor_Base;
216 : class SW_DLLPUBLIC SwXTextTableCursor : public SwXTextTableCursor_Base
217 : ,public SwClient
218 : ,public OTextCursorHelper
219 : {
220 : SwDepend aCrsrDepend;
221 : const SfxItemPropertySet* m_pPropSet;
222 :
223 : protected:
224 : virtual ~SwXTextTableCursor();
225 : public:
226 : SwXTextTableCursor(SwFrmFmt* pFmt, SwTableBox* pBox);
227 : SwXTextTableCursor(SwFrmFmt& rTableFmt,
228 : const SwTableCursor* pTableSelection);
229 :
230 :
231 : DECLARE_XINTERFACE()
232 :
233 : //XTextTableCursor
234 : virtual ::rtl::OUString SAL_CALL getRangeName( ) throw(::com::sun::star::uno::RuntimeException);
235 : virtual sal_Bool SAL_CALL gotoCellByName( const ::rtl::OUString& aCellName, sal_Bool bExpand ) throw(::com::sun::star::uno::RuntimeException);
236 : virtual sal_Bool SAL_CALL goLeft( sal_Int16 nCount, sal_Bool bExpand ) throw(::com::sun::star::uno::RuntimeException);
237 : virtual sal_Bool SAL_CALL goRight( sal_Int16 nCount, sal_Bool bExpand ) throw(::com::sun::star::uno::RuntimeException);
238 : virtual sal_Bool SAL_CALL goUp( sal_Int16 nCount, sal_Bool bExpand ) throw(::com::sun::star::uno::RuntimeException);
239 : virtual sal_Bool SAL_CALL goDown( sal_Int16 nCount, sal_Bool bExpand ) throw(::com::sun::star::uno::RuntimeException);
240 : virtual void SAL_CALL gotoStart( sal_Bool bExpand ) throw(::com::sun::star::uno::RuntimeException);
241 : virtual void SAL_CALL gotoEnd( sal_Bool bExpand ) throw(::com::sun::star::uno::RuntimeException);
242 : virtual sal_Bool SAL_CALL mergeRange( ) throw(::com::sun::star::uno::RuntimeException);
243 : virtual sal_Bool SAL_CALL splitRange( sal_Int16 Count, sal_Bool Horizontal ) throw(::com::sun::star::uno::RuntimeException);
244 :
245 : //XPropertySet
246 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
247 : virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
248 : virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
249 : virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
250 : virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
251 : virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
252 : virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
253 :
254 : //XServiceInfo
255 : virtual rtl::OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException );
256 : virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException );
257 : virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException );
258 :
259 : //SwClient
260 : virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
261 :
262 : // ITextCursorHelper
263 : virtual const SwPaM* GetPaM() const;
264 : virtual SwPaM* GetPaM();
265 : virtual const SwDoc* GetDoc() const;
266 : virtual SwDoc* GetDoc();
267 :
268 : const SwUnoCrsr* GetCrsr() const;
269 : SwUnoCrsr* GetCrsr();
270 0 : SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
271 : };
272 :
273 : struct SwRangeDescriptor
274 : {
275 : sal_Int32 nTop;
276 : sal_Int32 nLeft;
277 : sal_Int32 nBottom;
278 : sal_Int32 nRight;
279 :
280 : void Normalize();
281 : };
282 :
283 : class SwTableProperties_Impl;
284 : class SwXTextTable : public cppu::WeakImplHelper10
285 : <
286 : ::com::sun::star::text::XTextTable,
287 : ::com::sun::star::lang::XServiceInfo,
288 : ::com::sun::star::table::XCellRange,
289 : ::com::sun::star::chart::XChartDataArray,
290 : ::com::sun::star::beans::XPropertySet,
291 : ::com::sun::star::container::XNamed,
292 : ::com::sun::star::table::XAutoFormattable,
293 : ::com::sun::star::util::XSortable,
294 : ::com::sun::star::lang::XUnoTunnel,
295 : ::com::sun::star::sheet::XCellRangeData
296 : >,
297 : public SwClient
298 : {
299 : SwEventListenerContainer aLstnrCntnr;
300 : SwChartEventListenerContainer aChartLstnrCntnr;
301 : const SfxItemPropertySet* m_pPropSet;
302 :
303 : // Descriptor-interface
304 : SwTableProperties_Impl* pTableProps;
305 : String m_sTableName;
306 : sal_Bool bIsDescriptor;
307 : unsigned short nRows;
308 : unsigned short nColumns;
309 :
310 :
311 : sal_Bool bFirstRowAsLabel :1;
312 : sal_Bool bFirstColumnAsLabel :1;
313 : protected:
314 : virtual ~SwXTextTable();
315 : public:
316 : SwXTextTable();
317 : SwXTextTable(SwFrmFmt& rFrmFmt);
318 :
319 :
320 : SW_DLLPUBLIC static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId();
321 :
322 : //XUnoTunnel
323 : virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
324 :
325 : TYPEINFO();
326 :
327 : //XTextTable
328 : virtual void SAL_CALL initialize( sal_Int32 nRows, sal_Int32 nColumns ) throw(::com::sun::star::uno::RuntimeException);
329 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XTableRows > SAL_CALL getRows( ) throw(::com::sun::star::uno::RuntimeException);
330 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XTableColumns > SAL_CALL getColumns( ) throw(::com::sun::star::uno::RuntimeException);
331 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCell > SAL_CALL getCellByName( const ::rtl::OUString& aCellName ) throw(::com::sun::star::uno::RuntimeException);
332 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getCellNames( ) throw(::com::sun::star::uno::RuntimeException);
333 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextTableCursor > SAL_CALL createCursorByCellName( const ::rtl::OUString& aCellName ) throw(::com::sun::star::uno::RuntimeException);
334 :
335 : //XTextContent
336 : virtual void SAL_CALL attach(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & xTextRange) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
337 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL getAnchor( ) throw(::com::sun::star::uno::RuntimeException);
338 :
339 : //XComponent
340 : virtual void SAL_CALL dispose(void) throw( ::com::sun::star::uno::RuntimeException );
341 : virtual void SAL_CALL addEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener > & aListener) throw( ::com::sun::star::uno::RuntimeException );
342 : virtual void SAL_CALL removeEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener > & aListener) throw( ::com::sun::star::uno::RuntimeException );
343 :
344 : //XCellRange
345 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCell > SAL_CALL getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow ) throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
346 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom ) throw(com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
347 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL getCellRangeByName( const ::rtl::OUString& aRange ) throw(::com::sun::star::uno::RuntimeException);
348 :
349 : //XChartDataArray
350 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > > SAL_CALL getData( ) throw(::com::sun::star::uno::RuntimeException);
351 : virtual void SAL_CALL setData( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& aData ) throw(::com::sun::star::uno::RuntimeException);
352 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getRowDescriptions( ) throw(::com::sun::star::uno::RuntimeException);
353 : virtual void SAL_CALL setRowDescriptions( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRowDescriptions ) throw(::com::sun::star::uno::RuntimeException);
354 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getColumnDescriptions( ) throw(::com::sun::star::uno::RuntimeException);
355 : virtual void SAL_CALL setColumnDescriptions( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aColumnDescriptions ) throw(::com::sun::star::uno::RuntimeException);
356 :
357 : //XChartData
358 : virtual void SAL_CALL addChartDataChangeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartDataChangeEventListener >& aListener ) throw(::com::sun::star::uno::RuntimeException);
359 : virtual void SAL_CALL removeChartDataChangeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartDataChangeEventListener >& aListener ) throw(::com::sun::star::uno::RuntimeException);
360 : virtual double SAL_CALL getNotANumber( ) throw(::com::sun::star::uno::RuntimeException);
361 : virtual sal_Bool SAL_CALL isNotANumber( double nNumber ) throw(::com::sun::star::uno::RuntimeException);
362 :
363 : //XSortable
364 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL createSortDescriptor(void) throw( ::com::sun::star::uno::RuntimeException );
365 : virtual void SAL_CALL sort(const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& xDescriptor) throw( ::com::sun::star::uno::RuntimeException );
366 :
367 : //XAutoFormattable
368 : virtual void SAL_CALL autoFormat(const rtl::OUString& aName) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
369 :
370 : //XPropertySet
371 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
372 : virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
373 : virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
374 : virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
375 : virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
376 : virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
377 : virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
378 :
379 : //XNamed
380 : virtual rtl::OUString SAL_CALL getName(void) throw( ::com::sun::star::uno::RuntimeException );
381 : virtual void SAL_CALL setName(const rtl::OUString& Name_) throw( ::com::sun::star::uno::RuntimeException );
382 :
383 : //XCellRangeData
384 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > > SAL_CALL getDataArray( ) throw (::com::sun::star::uno::RuntimeException);
385 : virtual void SAL_CALL setDataArray( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >& aArray ) throw (::com::sun::star::uno::RuntimeException);
386 :
387 : //XServiceInfo
388 : virtual rtl::OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException );
389 : virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException );
390 : virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException );
391 :
392 : void attachToRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & xTextRange)throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
393 :
394 : sal_uInt16 getRowCount(void);
395 : sal_uInt16 getColumnCount(void);
396 : ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > GetRangeByName(SwFrmFmt* pFmt, SwTable* pTable,
397 : const String& sTLName, const String& sBRName,
398 : SwRangeDescriptor& rDesc);
399 :
400 : //SwClient
401 : virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
402 :
403 1111 : SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
404 : };
405 :
406 : class SwXCellRange : public cppu::WeakImplHelper7
407 : <
408 : ::com::sun::star::table::XCellRange,
409 : ::com::sun::star::lang::XServiceInfo,
410 : ::com::sun::star::lang::XUnoTunnel,
411 : ::com::sun::star::beans::XPropertySet,
412 : ::com::sun::star::chart::XChartDataArray,
413 : ::com::sun::star::util::XSortable,
414 : ::com::sun::star::sheet::XCellRangeData
415 : >,
416 : public SwClient
417 : {
418 : SwDepend aCursorDepend; //the cursor is removed after the doc has been removed
419 : SwChartEventListenerContainer aChartLstnrCntnr;
420 :
421 : SwRangeDescriptor aRgDesc;
422 : const SfxItemPropertySet* m_pPropSet;
423 :
424 : SwUnoCrsr* pTblCrsr;
425 :
426 : sal_Bool bFirstRowAsLabel :1;
427 : sal_Bool bFirstColumnAsLabel :1;
428 :
429 : public:
430 : SwXCellRange(SwUnoCrsr* pCrsr, SwFrmFmt& rFrmFmt, SwRangeDescriptor& rDesc);
431 : ~SwXCellRange();
432 :
433 : TYPEINFO();
434 :
435 : static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId();
436 :
437 : //XUnoTunnel
438 : virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
439 :
440 :
441 : //XCellRange
442 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCell > SAL_CALL getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow ) throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
443 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom ) throw(com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
444 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL getCellRangeByName( const ::rtl::OUString& aRange ) throw(::com::sun::star::uno::RuntimeException);
445 :
446 : //XPropertySet
447 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
448 : virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
449 : virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
450 : virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
451 : virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
452 : virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
453 : virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
454 :
455 : //XChartData
456 : virtual void SAL_CALL addChartDataChangeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartDataChangeEventListener >& aListener ) throw(::com::sun::star::uno::RuntimeException);
457 : virtual void SAL_CALL removeChartDataChangeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartDataChangeEventListener >& aListener ) throw(::com::sun::star::uno::RuntimeException);
458 : virtual double SAL_CALL getNotANumber( ) throw(::com::sun::star::uno::RuntimeException);
459 : virtual sal_Bool SAL_CALL isNotANumber( double nNumber ) throw(::com::sun::star::uno::RuntimeException);
460 :
461 : //XChartDataArray
462 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > > SAL_CALL getData( ) throw(::com::sun::star::uno::RuntimeException);
463 : virtual void SAL_CALL setData( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& aData ) throw(::com::sun::star::uno::RuntimeException);
464 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getRowDescriptions( ) throw(::com::sun::star::uno::RuntimeException);
465 : virtual void SAL_CALL setRowDescriptions( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRowDescriptions ) throw(::com::sun::star::uno::RuntimeException);
466 : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getColumnDescriptions( ) throw(::com::sun::star::uno::RuntimeException);
467 : virtual void SAL_CALL setColumnDescriptions( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aColumnDescriptions ) throw(::com::sun::star::uno::RuntimeException);
468 :
469 : //XSortable
470 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL createSortDescriptor(void) throw( ::com::sun::star::uno::RuntimeException );
471 : virtual void SAL_CALL sort(const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& xDescriptor) throw( ::com::sun::star::uno::RuntimeException );
472 :
473 : //XCellRangeData
474 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > > SAL_CALL getDataArray( ) throw (::com::sun::star::uno::RuntimeException);
475 : virtual void SAL_CALL setDataArray( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >& aArray ) throw (::com::sun::star::uno::RuntimeException);
476 :
477 : //XServiceInfo
478 : virtual rtl::OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException );
479 : virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException );
480 : virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException );
481 :
482 : //SwClient
483 : virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
484 :
485 0 : SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
486 : sal_uInt16 getRowCount(void);
487 : sal_uInt16 getColumnCount(void);
488 :
489 : const SwUnoCrsr* GetTblCrsr() const;
490 :
491 : // for SwChartDataSequence
492 : void GetDataSequence(
493 : ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > *pAnySeq,
494 : ::com::sun::star::uno::Sequence< ::rtl::OUString > *pTxtSeq,
495 : ::com::sun::star::uno::Sequence< double > *pDblSeq,
496 : sal_Bool bForceNumberResults = sal_False ) throw (::com::sun::star::uno::RuntimeException);
497 :
498 : };
499 :
500 : class SwXTableRows : public cppu::WeakImplHelper2
501 : <
502 : ::com::sun::star::table::XTableRows,
503 : ::com::sun::star::lang::XServiceInfo
504 : >,
505 : public SwClient
506 :
507 : {
508 186 : SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
509 : protected:
510 : virtual ~SwXTableRows();
511 : public:
512 : SwXTableRows(SwFrmFmt& rFrmFmt);
513 :
514 :
515 : TYPEINFO();
516 :
517 : //XIndexAccess
518 : virtual sal_Int32 SAL_CALL getCount(void) throw( ::com::sun::star::uno::RuntimeException );
519 : virtual ::com::sun::star::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException );
520 :
521 : //XElementAccess
522 : virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw(::com::sun::star::uno::RuntimeException);
523 : virtual sal_Bool SAL_CALL hasElements( ) throw(::com::sun::star::uno::RuntimeException);
524 :
525 : //XTableRows
526 : virtual void SAL_CALL insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( ::com::sun::star::uno::RuntimeException );
527 : virtual void SAL_CALL removeByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( ::com::sun::star::uno::RuntimeException );
528 :
529 : //XServiceInfo
530 : virtual rtl::OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException );
531 : virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException );
532 : virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException );
533 :
534 : //SwClient
535 : virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
536 : };
537 :
538 : class SwXTableColumns : public cppu::WeakImplHelper2
539 : <
540 : ::com::sun::star::table::XTableColumns,
541 : ::com::sun::star::lang::XServiceInfo
542 : >,
543 : public SwClient
544 :
545 : {
546 0 : SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
547 : protected:
548 : virtual ~SwXTableColumns();
549 : public:
550 : SwXTableColumns(SwFrmFmt& rFrmFmt);
551 :
552 :
553 : TYPEINFO();
554 :
555 : //XIndexAccess
556 : virtual sal_Int32 SAL_CALL getCount(void) throw( ::com::sun::star::uno::RuntimeException );
557 : virtual ::com::sun::star::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException );
558 :
559 : //XElementAccess
560 : virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw(::com::sun::star::uno::RuntimeException);
561 : virtual sal_Bool SAL_CALL hasElements( ) throw(::com::sun::star::uno::RuntimeException);
562 :
563 : //XTableColumns
564 : virtual void SAL_CALL insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( ::com::sun::star::uno::RuntimeException );
565 : virtual void SAL_CALL removeByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( ::com::sun::star::uno::RuntimeException );
566 :
567 : //XServiceInfo
568 : virtual rtl::OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException );
569 : virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException );
570 : virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException );
571 :
572 : //SwClient
573 : virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
574 : };
575 :
576 : #endif
577 :
578 :
579 :
580 :
581 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|