Update ooo320-m1
[ooovba.git] / svx / source / table / tablerows.cxx
blob1fb302eb7113dddd553c4879dbcdc70cf6f19aa7
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: tablerows.cxx,v $
10 * $Revision: 1.3 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_svx.hxx"
34 #include <com/sun/star/lang/DisposedException.hpp>
36 #include "cell.hxx"
37 #include "tablerow.hxx"
38 #include "tablerows.hxx"
40 // -----------------------------------------------------------------------------
42 using ::rtl::OUString;
43 using namespace ::com::sun::star::uno;
44 using namespace ::com::sun::star::lang;
45 using namespace ::com::sun::star::container;
46 using namespace ::com::sun::star::table;
48 // -----------------------------------------------------------------------------
50 namespace sdr { namespace table {
52 // -----------------------------------------------------------------------------
53 // TableRows
54 // -----------------------------------------------------------------------------
56 TableRows::TableRows( const TableModelRef& xTableModel )
57 : mxTableModel( xTableModel )
61 // -----------------------------------------------------------------------------
63 TableRows::~TableRows()
65 dispose();
68 // -----------------------------------------------------------------------------
70 void TableRows::dispose()
72 mxTableModel.clear();
75 // -----------------------------------------------------------------------------
77 void TableRows::throwIfDisposed() const throw (::com::sun::star::uno::RuntimeException)
79 if( !mxTableModel.is() )
80 throw DisposedException();
83 // -----------------------------------------------------------------------------
84 // XTableRows
85 // -----------------------------------------------------------------------------
87 void SAL_CALL TableRows::insertByIndex( sal_Int32 nIndex, sal_Int32 nCount ) throw (RuntimeException)
89 throwIfDisposed();
90 mxTableModel->insertRows( nIndex, nCount );
93 // -----------------------------------------------------------------------------
95 void SAL_CALL TableRows::removeByIndex( sal_Int32 nIndex, sal_Int32 nCount ) throw (RuntimeException)
97 throwIfDisposed();
98 mxTableModel->removeRows( nIndex, nCount );
101 // -----------------------------------------------------------------------------
102 // XIndexAccess
103 // -----------------------------------------------------------------------------
105 sal_Int32 SAL_CALL TableRows::getCount() throw (RuntimeException)
107 throwIfDisposed();
108 return mxTableModel->getRowCount();
111 // -----------------------------------------------------------------------------
113 Any SAL_CALL TableRows::getByIndex( sal_Int32 Index ) throw (IndexOutOfBoundsException, WrappedTargetException, RuntimeException)
115 throwIfDisposed();
116 return Any( Reference< XCellRange >( static_cast< XCellRange* >( mxTableModel->getRow( Index ).get() ) ) );
119 // -----------------------------------------------------------------------------
120 // XElementAccess
121 // -----------------------------------------------------------------------------
123 Type SAL_CALL TableRows::getElementType() throw (RuntimeException)
125 throwIfDisposed();
126 return XCellRange::static_type();
129 // -----------------------------------------------------------------------------
131 sal_Bool SAL_CALL TableRows::hasElements() throw (RuntimeException)
133 throwIfDisposed();
134 return mxTableModel->getRowCount() != 0;
137 // -----------------------------------------------------------------------------