Branch data 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 : :
21 : : #include <com/sun/star/lang/DisposedException.hpp>
22 : :
23 : : #include "tablecolumns.hxx"
24 : : #include "tablecolumn.hxx"
25 : :
26 : : // -----------------------------------------------------------------------------
27 : :
28 : : using ::rtl::OUString;
29 : : using namespace ::com::sun::star::uno;
30 : : using namespace ::com::sun::star::lang;
31 : : using namespace ::com::sun::star::container;
32 : : using namespace ::com::sun::star::table;
33 : :
34 : : // -----------------------------------------------------------------------------
35 : :
36 : : namespace sdr { namespace table {
37 : :
38 : : // -----------------------------------------------------------------------------
39 : : // TableColumns
40 : : // -----------------------------------------------------------------------------
41 : :
42 : 6 : TableColumns::TableColumns( const TableModelRef& xTableModel )
43 : 6 : : mxTableModel( xTableModel )
44 : : {
45 : 6 : }
46 : :
47 : : // -----------------------------------------------------------------------------
48 : :
49 : 6 : TableColumns::~TableColumns()
50 : : {
51 [ + - ]: 6 : dispose();
52 [ - + ]: 12 : }
53 : :
54 : : // -----------------------------------------------------------------------------
55 : :
56 : 12 : void TableColumns::dispose()
57 : : {
58 : 12 : mxTableModel.clear();
59 : 12 : }
60 : :
61 : : // -----------------------------------------------------------------------------
62 : :
63 : 243 : void TableColumns::throwIfDisposed() const throw (::com::sun::star::uno::RuntimeException)
64 : : {
65 [ - + ]: 243 : if( !mxTableModel.is() )
66 [ # # ]: 0 : throw DisposedException();
67 : 243 : }
68 : :
69 : : // -----------------------------------------------------------------------------
70 : : // XTableRows
71 : : // -----------------------------------------------------------------------------
72 : :
73 : 3 : void SAL_CALL TableColumns::insertByIndex( sal_Int32 nIndex, sal_Int32 nCount ) throw (RuntimeException)
74 : : {
75 : 3 : throwIfDisposed();
76 : 3 : mxTableModel->insertColumns( nIndex, nCount );
77 : 3 : }
78 : :
79 : : // -----------------------------------------------------------------------------
80 : :
81 : 0 : void SAL_CALL TableColumns::removeByIndex( sal_Int32 nIndex, sal_Int32 nCount ) throw (RuntimeException)
82 : : {
83 : 0 : throwIfDisposed();
84 : 0 : mxTableModel->removeColumns( nIndex, nCount );
85 : 0 : }
86 : :
87 : : // -----------------------------------------------------------------------------
88 : : // XIndexAccess
89 : : // -----------------------------------------------------------------------------
90 : :
91 : 54 : sal_Int32 SAL_CALL TableColumns::getCount() throw (RuntimeException)
92 : : {
93 : 54 : throwIfDisposed();
94 : 54 : return mxTableModel->getColumnCount();
95 : : }
96 : :
97 : : // -----------------------------------------------------------------------------
98 : :
99 : 186 : Any SAL_CALL TableColumns::getByIndex( sal_Int32 Index ) throw (IndexOutOfBoundsException, WrappedTargetException, RuntimeException)
100 : : {
101 : 186 : throwIfDisposed();
102 : :
103 [ - + ][ - + ]: 186 : if( ( Index < 0 ) || ( Index >= mxTableModel->getColumnCount() ) )
[ + - ]
104 [ # # ]: 0 : throw IndexOutOfBoundsException();
105 : :
106 [ + - ][ + - ]: 186 : return Any( Reference< XCellRange >( mxTableModel->getColumn( Index ).get() ) );
[ + - ]
107 : : }
108 : :
109 : : // -----------------------------------------------------------------------------
110 : : // XElementAccess
111 : : // -----------------------------------------------------------------------------
112 : :
113 : 0 : Type SAL_CALL TableColumns::getElementType() throw (RuntimeException)
114 : : {
115 : 0 : throwIfDisposed();
116 : :
117 : 0 : return XCellRange::static_type();
118 : : }
119 : :
120 : : // -----------------------------------------------------------------------------
121 : :
122 : 0 : sal_Bool SAL_CALL TableColumns::hasElements() throw (RuntimeException)
123 : : {
124 : 0 : throwIfDisposed();
125 : :
126 : 0 : return mxTableModel->getColumnCount() != 0;
127 : : }
128 : :
129 : : // -----------------------------------------------------------------------------
130 : :
131 : : } }
132 : :
133 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|