xref: /trunk/main/svtools/source/uno/unogridcolumnfacade.cxx (revision cf6516809c57e1bb0a940545cca99cdad54d4ce2)
1*5900e8ecSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*5900e8ecSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*5900e8ecSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*5900e8ecSAndrew Rist  * distributed with this work for additional information
6*5900e8ecSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*5900e8ecSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*5900e8ecSAndrew Rist  * "License"); you may not use this file except in compliance
9*5900e8ecSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*5900e8ecSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*5900e8ecSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*5900e8ecSAndrew Rist  * software distributed under the License is distributed on an
15*5900e8ecSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*5900e8ecSAndrew Rist  * KIND, either express or implied.  See the License for the
17*5900e8ecSAndrew Rist  * specific language governing permissions and limitations
18*5900e8ecSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*5900e8ecSAndrew Rist  *************************************************************/
21*5900e8ecSAndrew Rist 
22*5900e8ecSAndrew Rist 
23cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
24cdf0e10cSrcweir #include "precompiled_svtools.hxx"
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include "unogridcolumnfacade.hxx"
27cdf0e10cSrcweir #include "unocontroltablemodel.hxx"
28cdf0e10cSrcweir 
29cdf0e10cSrcweir #include "svtools/table/defaultinputhandler.hxx"
30cdf0e10cSrcweir #include "svtools/table/gridtablerenderer.hxx"
31cdf0e10cSrcweir #include "svtools/table/tablecontrol.hxx"
32cdf0e10cSrcweir 
33cdf0e10cSrcweir /** === begin UNO includes === **/
34cdf0e10cSrcweir #include <com/sun/star/awt/grid/XGridColumn.hpp>
35cdf0e10cSrcweir #include <com/sun/star/view/SelectionType.hpp>
36cdf0e10cSrcweir #include <com/sun/star/awt/grid/XGridColumnListener.hpp>
37cdf0e10cSrcweir /** === end UNO includes === **/
38cdf0e10cSrcweir 
39cdf0e10cSrcweir #include <comphelper/stlunosequence.hxx>
40cdf0e10cSrcweir #include <tools/debug.hxx>
41cdf0e10cSrcweir #include <tools/diagnose_ex.h>
42cdf0e10cSrcweir #include <vcl/svapp.hxx>
43cdf0e10cSrcweir #include <vos/mutex.hxx>
44cdf0e10cSrcweir 
45cdf0e10cSrcweir // .....................................................................................................................
46cdf0e10cSrcweir namespace svt { namespace table
47cdf0e10cSrcweir {
48cdf0e10cSrcweir // .....................................................................................................................
49cdf0e10cSrcweir 
50cdf0e10cSrcweir     /** === begin UNO using === **/
51cdf0e10cSrcweir     using ::com::sun::star::uno::Reference;
52cdf0e10cSrcweir     using ::com::sun::star::uno::RuntimeException;
53cdf0e10cSrcweir     using ::com::sun::star::uno::Sequence;
54cdf0e10cSrcweir     using ::com::sun::star::uno::UNO_QUERY_THROW;
55cdf0e10cSrcweir     using ::com::sun::star::uno::UNO_QUERY;
56cdf0e10cSrcweir     using ::com::sun::star::awt::grid::XGridColumn;
57cdf0e10cSrcweir     using ::com::sun::star::uno::XInterface;
58cdf0e10cSrcweir     using ::com::sun::star::uno::Exception;
59cdf0e10cSrcweir     using ::com::sun::star::awt::grid::XGridColumnListener;
60cdf0e10cSrcweir     using ::com::sun::star::lang::EventObject;
61cdf0e10cSrcweir     using ::com::sun::star::awt::grid::GridColumnEvent;
62cdf0e10cSrcweir     using ::com::sun::star::uno::Any;
63cdf0e10cSrcweir     using ::com::sun::star::style::HorizontalAlignment_LEFT;
64cdf0e10cSrcweir     using ::com::sun::star::style::HorizontalAlignment;
65cdf0e10cSrcweir     /** === end UNO using === **/
66cdf0e10cSrcweir 
67cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
68cdf0e10cSrcweir     namespace
69cdf0e10cSrcweir     {
70cdf0e10cSrcweir         template< class ATTRIBUTE_TYPE >
lcl_set(Reference<XGridColumn> const & i_column,void (SAL_CALL XGridColumn::* i_setter)(ATTRIBUTE_TYPE),ATTRIBUTE_TYPE i_value)71cdf0e10cSrcweir         void lcl_set( Reference< XGridColumn > const & i_column, void ( SAL_CALL XGridColumn::*i_setter )( ATTRIBUTE_TYPE ),
72cdf0e10cSrcweir             ATTRIBUTE_TYPE i_value )
73cdf0e10cSrcweir         {
74cdf0e10cSrcweir             try
75cdf0e10cSrcweir             {
76cdf0e10cSrcweir                 (i_column.get()->*i_setter) ( i_value );
77cdf0e10cSrcweir             }
78cdf0e10cSrcweir             catch( const Exception& )
79cdf0e10cSrcweir             {
80cdf0e10cSrcweir                 DBG_UNHANDLED_EXCEPTION();
81cdf0e10cSrcweir             }
82cdf0e10cSrcweir         }
83cdf0e10cSrcweir 
84cdf0e10cSrcweir         template< class ATTRIBUTE_TYPE >
lcl_get(Reference<XGridColumn> const & i_column,ATTRIBUTE_TYPE (SAL_CALL XGridColumn::* i_getter)())85cdf0e10cSrcweir         ATTRIBUTE_TYPE lcl_get( Reference< XGridColumn > const & i_column, ATTRIBUTE_TYPE ( SAL_CALL XGridColumn::*i_getter )() )
86cdf0e10cSrcweir         {
87cdf0e10cSrcweir             ATTRIBUTE_TYPE value = ATTRIBUTE_TYPE();
88cdf0e10cSrcweir             try
89cdf0e10cSrcweir             {
90cdf0e10cSrcweir                 value = (i_column.get()->*i_getter)();
91cdf0e10cSrcweir             }
92cdf0e10cSrcweir             catch( const Exception& )
93cdf0e10cSrcweir             {
94cdf0e10cSrcweir                 DBG_UNHANDLED_EXCEPTION();
95cdf0e10cSrcweir             }
96cdf0e10cSrcweir             return value;
97cdf0e10cSrcweir         }
98cdf0e10cSrcweir     }
99cdf0e10cSrcweir 
100cdf0e10cSrcweir     //==================================================================================================================
101cdf0e10cSrcweir     //= ColumnChangeMultiplexer
102cdf0e10cSrcweir     //==================================================================================================================
103cdf0e10cSrcweir     typedef ::cppu::WeakImplHelper1 <   XGridColumnListener
104cdf0e10cSrcweir                                     >   ColumnChangeMultiplexer_Base;
105cdf0e10cSrcweir     class ColumnChangeMultiplexer   :public ColumnChangeMultiplexer_Base
106cdf0e10cSrcweir                                     ,public ::boost::noncopyable
107cdf0e10cSrcweir     {
108cdf0e10cSrcweir     public:
109cdf0e10cSrcweir         ColumnChangeMultiplexer( UnoGridColumnFacade& i_colImpl );
110cdf0e10cSrcweir 
111cdf0e10cSrcweir         void dispose();
112cdf0e10cSrcweir 
113cdf0e10cSrcweir     protected:
114cdf0e10cSrcweir         ~ColumnChangeMultiplexer();
115cdf0e10cSrcweir 
116cdf0e10cSrcweir         // XGridColumnListener
117cdf0e10cSrcweir         virtual void SAL_CALL columnChanged( const GridColumnEvent& i_event ) throw (RuntimeException);
118cdf0e10cSrcweir 
119cdf0e10cSrcweir         // XEventListener
120cdf0e10cSrcweir         virtual void SAL_CALL disposing( const EventObject& i_event ) throw (RuntimeException);
121cdf0e10cSrcweir 
122cdf0e10cSrcweir     private:
123cdf0e10cSrcweir         UnoGridColumnFacade* m_pColumnImplementation;
124cdf0e10cSrcweir     };
125cdf0e10cSrcweir 
126cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
ColumnChangeMultiplexer(UnoGridColumnFacade & i_colImpl)127cdf0e10cSrcweir     ColumnChangeMultiplexer::ColumnChangeMultiplexer( UnoGridColumnFacade& i_colImpl )
128cdf0e10cSrcweir         :m_pColumnImplementation( &i_colImpl )
129cdf0e10cSrcweir     {
130cdf0e10cSrcweir     }
131cdf0e10cSrcweir 
132cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
~ColumnChangeMultiplexer()133cdf0e10cSrcweir     ColumnChangeMultiplexer::~ColumnChangeMultiplexer()
134cdf0e10cSrcweir     {
135cdf0e10cSrcweir     }
136cdf0e10cSrcweir 
137cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
dispose()138cdf0e10cSrcweir     void ColumnChangeMultiplexer::dispose()
139cdf0e10cSrcweir     {
140cdf0e10cSrcweir         DBG_TESTSOLARMUTEX();
141cdf0e10cSrcweir         m_pColumnImplementation = NULL;
142cdf0e10cSrcweir     }
143cdf0e10cSrcweir 
144cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
columnChanged(const GridColumnEvent & i_event)145cdf0e10cSrcweir     void SAL_CALL ColumnChangeMultiplexer::columnChanged( const GridColumnEvent& i_event ) throw (RuntimeException)
146cdf0e10cSrcweir     {
147cdf0e10cSrcweir         if ( i_event.AttributeName.equalsAscii( "DataColumnIndex" ) )
148cdf0e10cSrcweir         {
149cdf0e10cSrcweir             ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
150cdf0e10cSrcweir             if ( m_pColumnImplementation != NULL )
151cdf0e10cSrcweir                 m_pColumnImplementation->dataColumnIndexChanged();
152cdf0e10cSrcweir             return;
153cdf0e10cSrcweir         }
154cdf0e10cSrcweir 
155cdf0e10cSrcweir         ColumnAttributeGroup nChangedAttributes( COL_ATTRS_NONE );
156cdf0e10cSrcweir 
157cdf0e10cSrcweir         if ( i_event.AttributeName.equalsAscii( "HorizontalAlign" ) )
158cdf0e10cSrcweir             nChangedAttributes |= COL_ATTRS_APPEARANCE;
159cdf0e10cSrcweir 
160cdf0e10cSrcweir         if  (   i_event.AttributeName.equalsAscii( "ColumnWidth" )
161cdf0e10cSrcweir             ||  i_event.AttributeName.equalsAscii( "MaxWidth" )
162cdf0e10cSrcweir             ||  i_event.AttributeName.equalsAscii( "MinWidth" )
163cdf0e10cSrcweir             ||  i_event.AttributeName.equalsAscii( "PreferredWidth" )
164cdf0e10cSrcweir             ||  i_event.AttributeName.equalsAscii( "Resizeable" )
165cdf0e10cSrcweir             ||  i_event.AttributeName.equalsAscii( "Flexibility" )
166cdf0e10cSrcweir             )
167cdf0e10cSrcweir             nChangedAttributes |= COL_ATTRS_WIDTH;
168cdf0e10cSrcweir 
169cdf0e10cSrcweir         OSL_ENSURE( nChangedAttributes != COL_ATTRS_NONE,
170cdf0e10cSrcweir             "ColumnChangeMultiplexer::columnChanged: unknown column attributed changed!" );
171cdf0e10cSrcweir 
172cdf0e10cSrcweir         ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
173cdf0e10cSrcweir         if ( m_pColumnImplementation != NULL )
174cdf0e10cSrcweir             m_pColumnImplementation->columnChanged( nChangedAttributes );
175cdf0e10cSrcweir     }
176cdf0e10cSrcweir 
177cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
disposing(const EventObject & i_event)178cdf0e10cSrcweir     void SAL_CALL ColumnChangeMultiplexer::disposing( const EventObject& i_event ) throw (RuntimeException)
179cdf0e10cSrcweir     {
180cdf0e10cSrcweir         OSL_UNUSED( i_event );
181cdf0e10cSrcweir     }
182cdf0e10cSrcweir 
183cdf0e10cSrcweir     //==================================================================================================================
184cdf0e10cSrcweir     //= UnoGridColumnFacade
185cdf0e10cSrcweir     //==================================================================================================================
186cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
UnoGridColumnFacade(UnoControlTableModel const & i_owner,Reference<XGridColumn> const & i_gridColumn)187cdf0e10cSrcweir     UnoGridColumnFacade::UnoGridColumnFacade( UnoControlTableModel const & i_owner, Reference< XGridColumn > const & i_gridColumn )
188cdf0e10cSrcweir         :m_pOwner( &i_owner )
189cdf0e10cSrcweir         ,m_nDataColumnIndex( -1 )
190cdf0e10cSrcweir         ,m_xGridColumn( i_gridColumn, UNO_QUERY_THROW )
191cdf0e10cSrcweir         ,m_pChangeMultiplexer( new ColumnChangeMultiplexer( *this ) )
192cdf0e10cSrcweir     {
193cdf0e10cSrcweir         m_xGridColumn->addGridColumnListener( m_pChangeMultiplexer.get() );
194cdf0e10cSrcweir         impl_updateDataColumnIndex_nothrow();
195cdf0e10cSrcweir     }
196cdf0e10cSrcweir 
197cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
~UnoGridColumnFacade()198cdf0e10cSrcweir     UnoGridColumnFacade::~UnoGridColumnFacade()
199cdf0e10cSrcweir     {
200cdf0e10cSrcweir     }
201cdf0e10cSrcweir 
202cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
dispose()203cdf0e10cSrcweir     void UnoGridColumnFacade::dispose()
204cdf0e10cSrcweir     {
205cdf0e10cSrcweir         DBG_TESTSOLARMUTEX();
206cdf0e10cSrcweir         ENSURE_OR_RETURN_VOID( m_pOwner != NULL, "UnoGridColumnFacade::dispose: already disposed!" );
207cdf0e10cSrcweir 
208cdf0e10cSrcweir         m_xGridColumn->removeGridColumnListener( m_pChangeMultiplexer.get() );
209cdf0e10cSrcweir         m_pChangeMultiplexer->dispose();
210cdf0e10cSrcweir         m_pChangeMultiplexer.clear();
211cdf0e10cSrcweir         m_xGridColumn.clear();
212cdf0e10cSrcweir         m_pOwner = NULL;
213cdf0e10cSrcweir     }
214cdf0e10cSrcweir 
215cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
impl_updateDataColumnIndex_nothrow()216cdf0e10cSrcweir     void UnoGridColumnFacade::impl_updateDataColumnIndex_nothrow()
217cdf0e10cSrcweir     {
218cdf0e10cSrcweir         m_nDataColumnIndex = -1;
219cdf0e10cSrcweir         ENSURE_OR_RETURN_VOID( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!" );
220cdf0e10cSrcweir         try
221cdf0e10cSrcweir         {
222cdf0e10cSrcweir             m_nDataColumnIndex = m_xGridColumn->getDataColumnIndex();
223cdf0e10cSrcweir         }
224cdf0e10cSrcweir         catch( const Exception& )
225cdf0e10cSrcweir         {
226cdf0e10cSrcweir             DBG_UNHANDLED_EXCEPTION();
227cdf0e10cSrcweir         }
228cdf0e10cSrcweir     }
229cdf0e10cSrcweir 
230cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
dataColumnIndexChanged()231cdf0e10cSrcweir     void UnoGridColumnFacade::dataColumnIndexChanged()
232cdf0e10cSrcweir     {
233cdf0e10cSrcweir         DBG_TESTSOLARMUTEX();
234cdf0e10cSrcweir         impl_updateDataColumnIndex_nothrow();
235cdf0e10cSrcweir         if ( m_pOwner != NULL )
236cdf0e10cSrcweir             m_pOwner->notifyAllDataChanged();
237cdf0e10cSrcweir     }
238cdf0e10cSrcweir 
239cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
columnChanged(ColumnAttributeGroup const i_attributeGroup)240cdf0e10cSrcweir     void UnoGridColumnFacade::columnChanged( ColumnAttributeGroup const i_attributeGroup )
241cdf0e10cSrcweir     {
242cdf0e10cSrcweir         DBG_TESTSOLARMUTEX();
243cdf0e10cSrcweir         if ( m_pOwner != NULL )
244cdf0e10cSrcweir             m_pOwner->notifyColumnChange( m_pOwner->getColumnPos( *this ), i_attributeGroup );
245cdf0e10cSrcweir     }
246cdf0e10cSrcweir 
247cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
getID() const248cdf0e10cSrcweir     Any UnoGridColumnFacade::getID() const
249cdf0e10cSrcweir     {
250cdf0e10cSrcweir         Any aID;
251cdf0e10cSrcweir         ENSURE_OR_RETURN( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!", aID );
252cdf0e10cSrcweir         try
253cdf0e10cSrcweir         {
254cdf0e10cSrcweir             aID = m_xGridColumn->getIdentifier();
255cdf0e10cSrcweir         }
256cdf0e10cSrcweir         catch( const Exception& )
257cdf0e10cSrcweir         {
258cdf0e10cSrcweir             DBG_UNHANDLED_EXCEPTION();
259cdf0e10cSrcweir         }
260cdf0e10cSrcweir         return aID;
261cdf0e10cSrcweir     }
262cdf0e10cSrcweir 
263cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
setID(const Any & i_ID)264cdf0e10cSrcweir     void UnoGridColumnFacade::setID( const Any& i_ID )
265cdf0e10cSrcweir     {
266cdf0e10cSrcweir         ENSURE_OR_RETURN_VOID( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!" );
267cdf0e10cSrcweir         try
268cdf0e10cSrcweir         {
269cdf0e10cSrcweir             m_xGridColumn->setIdentifier( i_ID );
270cdf0e10cSrcweir         }
271cdf0e10cSrcweir         catch( const Exception& )
272cdf0e10cSrcweir         {
273cdf0e10cSrcweir             DBG_UNHANDLED_EXCEPTION();
274cdf0e10cSrcweir         }
275cdf0e10cSrcweir     }
276cdf0e10cSrcweir 
277cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
getName() const278cdf0e10cSrcweir     String UnoGridColumnFacade::getName() const
279cdf0e10cSrcweir     {
280cdf0e10cSrcweir         ::rtl::OUString sName;
281cdf0e10cSrcweir         ENSURE_OR_RETURN( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!", sName );
282cdf0e10cSrcweir         try
283cdf0e10cSrcweir         {
284cdf0e10cSrcweir             sName = m_xGridColumn->getTitle();
285cdf0e10cSrcweir         }
286cdf0e10cSrcweir         catch( const Exception& )
287cdf0e10cSrcweir         {
288cdf0e10cSrcweir             DBG_UNHANDLED_EXCEPTION();
289cdf0e10cSrcweir         }
290cdf0e10cSrcweir         return sName;
291cdf0e10cSrcweir     }
292cdf0e10cSrcweir 
293cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
setName(const String & _rName)294cdf0e10cSrcweir     void UnoGridColumnFacade::setName( const String& _rName )
295cdf0e10cSrcweir     {
296cdf0e10cSrcweir         ENSURE_OR_RETURN_VOID( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!" );
297cdf0e10cSrcweir         try
298cdf0e10cSrcweir         {
299cdf0e10cSrcweir             m_xGridColumn->setTitle( _rName );
300cdf0e10cSrcweir         }
301cdf0e10cSrcweir         catch( const Exception& )
302cdf0e10cSrcweir         {
303cdf0e10cSrcweir             DBG_UNHANDLED_EXCEPTION();
304cdf0e10cSrcweir         }
305cdf0e10cSrcweir     }
306cdf0e10cSrcweir 
307cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
getHelpText() const308cdf0e10cSrcweir     String UnoGridColumnFacade::getHelpText() const
309cdf0e10cSrcweir     {
310cdf0e10cSrcweir         ::rtl::OUString sHelpText;
311cdf0e10cSrcweir         ENSURE_OR_RETURN( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!", sHelpText );
312cdf0e10cSrcweir         try
313cdf0e10cSrcweir         {
314cdf0e10cSrcweir             sHelpText = m_xGridColumn->getHelpText();
315cdf0e10cSrcweir         }
316cdf0e10cSrcweir         catch( const Exception& )
317cdf0e10cSrcweir         {
318cdf0e10cSrcweir             DBG_UNHANDLED_EXCEPTION();
319cdf0e10cSrcweir         }
320cdf0e10cSrcweir         return sHelpText;
321cdf0e10cSrcweir     }
322cdf0e10cSrcweir 
323cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
setHelpText(const String & i_helpText)324cdf0e10cSrcweir     void UnoGridColumnFacade::setHelpText( const String& i_helpText )
325cdf0e10cSrcweir     {
326cdf0e10cSrcweir         ENSURE_OR_RETURN_VOID( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!" );
327cdf0e10cSrcweir         try
328cdf0e10cSrcweir         {
329cdf0e10cSrcweir             m_xGridColumn->setHelpText( i_helpText );
330cdf0e10cSrcweir         }
331cdf0e10cSrcweir         catch( const Exception& )
332cdf0e10cSrcweir         {
333cdf0e10cSrcweir             DBG_UNHANDLED_EXCEPTION();
334cdf0e10cSrcweir         }
335cdf0e10cSrcweir     }
336cdf0e10cSrcweir 
337cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
isResizable() const338cdf0e10cSrcweir     bool UnoGridColumnFacade::isResizable() const
339cdf0e10cSrcweir     {
340cdf0e10cSrcweir         ENSURE_OR_RETURN( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!", false );
341cdf0e10cSrcweir         return lcl_get( m_xGridColumn, &XGridColumn::getResizeable );
342cdf0e10cSrcweir     }
343cdf0e10cSrcweir 
344cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
setResizable(bool i_resizable)345cdf0e10cSrcweir     void UnoGridColumnFacade::setResizable( bool i_resizable )
346cdf0e10cSrcweir     {
347cdf0e10cSrcweir         ENSURE_OR_RETURN_VOID( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!" );
348cdf0e10cSrcweir         lcl_set( m_xGridColumn, &XGridColumn::setResizeable, sal_Bool( i_resizable ) );
349cdf0e10cSrcweir     }
350cdf0e10cSrcweir 
351cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
getFlexibility() const352cdf0e10cSrcweir     sal_Int32 UnoGridColumnFacade::getFlexibility() const
353cdf0e10cSrcweir     {
354cdf0e10cSrcweir         ENSURE_OR_RETURN( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!", 1 );
355cdf0e10cSrcweir         return lcl_get( m_xGridColumn, &XGridColumn::getFlexibility );
356cdf0e10cSrcweir     }
357cdf0e10cSrcweir 
358cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
setFlexibility(sal_Int32 const i_flexibility)359cdf0e10cSrcweir     void UnoGridColumnFacade::setFlexibility( sal_Int32 const i_flexibility )
360cdf0e10cSrcweir     {
361cdf0e10cSrcweir         ENSURE_OR_RETURN_VOID( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!" );
362cdf0e10cSrcweir         lcl_set( m_xGridColumn, &XGridColumn::setFlexibility, i_flexibility );
363cdf0e10cSrcweir     }
364cdf0e10cSrcweir 
365cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
getWidth() const366cdf0e10cSrcweir     TableMetrics UnoGridColumnFacade::getWidth() const
367cdf0e10cSrcweir     {
368cdf0e10cSrcweir         ENSURE_OR_RETURN( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!", 0 );
369cdf0e10cSrcweir         return lcl_get( m_xGridColumn, &XGridColumn::getColumnWidth );
370cdf0e10cSrcweir     }
371cdf0e10cSrcweir 
372cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
setWidth(TableMetrics _nWidth)373cdf0e10cSrcweir     void UnoGridColumnFacade::setWidth( TableMetrics _nWidth )
374cdf0e10cSrcweir     {
375cdf0e10cSrcweir         ENSURE_OR_RETURN_VOID( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!" );
376cdf0e10cSrcweir         lcl_set( m_xGridColumn, &XGridColumn::setColumnWidth, _nWidth );
377cdf0e10cSrcweir     }
378cdf0e10cSrcweir 
379cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
getMinWidth() const380cdf0e10cSrcweir     TableMetrics UnoGridColumnFacade::getMinWidth() const
381cdf0e10cSrcweir     {
382cdf0e10cSrcweir         ENSURE_OR_RETURN( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!", 0 );
383cdf0e10cSrcweir         return lcl_get( m_xGridColumn, &XGridColumn::getMinWidth );
384cdf0e10cSrcweir     }
385cdf0e10cSrcweir 
386cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
setMinWidth(TableMetrics _nMinWidth)387cdf0e10cSrcweir     void UnoGridColumnFacade::setMinWidth( TableMetrics _nMinWidth )
388cdf0e10cSrcweir     {
389cdf0e10cSrcweir         ENSURE_OR_RETURN_VOID( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!" );
390cdf0e10cSrcweir         lcl_set( m_xGridColumn, &XGridColumn::setMinWidth, _nMinWidth );
391cdf0e10cSrcweir     }
392cdf0e10cSrcweir 
393cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
getMaxWidth() const394cdf0e10cSrcweir     TableMetrics UnoGridColumnFacade::getMaxWidth() const
395cdf0e10cSrcweir     {
396cdf0e10cSrcweir         ENSURE_OR_RETURN( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!", 0 );
397cdf0e10cSrcweir         return lcl_get( m_xGridColumn, &XGridColumn::getMaxWidth );
398cdf0e10cSrcweir     }
399cdf0e10cSrcweir 
400cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
setMaxWidth(TableMetrics _nMaxWidth)401cdf0e10cSrcweir     void UnoGridColumnFacade::setMaxWidth( TableMetrics _nMaxWidth )
402cdf0e10cSrcweir     {
403cdf0e10cSrcweir         ENSURE_OR_RETURN_VOID( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!" );
404cdf0e10cSrcweir         lcl_set( m_xGridColumn, &XGridColumn::setMinWidth, _nMaxWidth );
405cdf0e10cSrcweir     }
406cdf0e10cSrcweir 
407cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
getHorizontalAlign()408cdf0e10cSrcweir     ::com::sun::star::style::HorizontalAlignment UnoGridColumnFacade::getHorizontalAlign()
409cdf0e10cSrcweir     {
410cdf0e10cSrcweir         ENSURE_OR_RETURN( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!", HorizontalAlignment_LEFT );
411cdf0e10cSrcweir         return lcl_get( m_xGridColumn, &XGridColumn::getHorizontalAlign );
412cdf0e10cSrcweir     }
413cdf0e10cSrcweir 
414cdf0e10cSrcweir     //------------------------------------------------------------------------------------------------------------------
setHorizontalAlign(com::sun::star::style::HorizontalAlignment _align)415cdf0e10cSrcweir     void UnoGridColumnFacade::setHorizontalAlign( com::sun::star::style::HorizontalAlignment _align )
416cdf0e10cSrcweir     {
417cdf0e10cSrcweir         ENSURE_OR_RETURN_VOID( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!" );
418cdf0e10cSrcweir         lcl_set( m_xGridColumn, &XGridColumn::setHorizontalAlign, _align );
419cdf0e10cSrcweir     }
420cdf0e10cSrcweir 
421cdf0e10cSrcweir // .....................................................................................................................
422cdf0e10cSrcweir } } // svt::table
423cdf0e10cSrcweir // .....................................................................................................................
424