23#include <com/sun/star/awt/grid/XGridColumn.hpp>
24#include <com/sun/star/awt/grid/XGridColumnListener.hpp>
36 using css::uno::Reference;
37 using css::awt::grid::XGridColumn;
38 using css::uno::Exception;
39 using css::awt::grid::XGridColumnListener;
40 using css::lang::EventObject;
41 using css::awt::grid::GridColumnEvent;
42 using css::style::HorizontalAlignment_LEFT;
43 using css::style::HorizontalAlignment;
48 template<
class T1,
class T2 >
49 void lcl_set( Reference< XGridColumn >
const & i_column,
void ( SAL_CALL XGridColumn::*i_setter )( T1 ),
54 (i_column.get()->*i_setter) ( i_value );
56 catch(
const Exception& )
62 template<
class ATTRIBUTE_TYPE >
63 ATTRIBUTE_TYPE lcl_get( Reference< XGridColumn >
const & i_column, ATTRIBUTE_TYPE ( SAL_CALL XGridColumn::*i_getter )() )
65 ATTRIBUTE_TYPE
value = ATTRIBUTE_TYPE();
68 value = (i_column.get()->*i_getter)();
70 catch(
const Exception& )
81 typedef ::cppu::WeakImplHelper < XGridColumnListener
96 virtual void SAL_CALL
columnChanged(
const GridColumnEvent& i_event )
override;
99 virtual void SAL_CALL
disposing(
const EventObject& i_event )
override;
107 :m_pColumnImplementation( &i_colImpl )
126 if ( i_event.AttributeName ==
"DataColumnIndex" )
136 if ( i_event.AttributeName ==
"HorizontalAlign" )
139 if ( i_event.AttributeName ==
"ColumnWidth"
140 || i_event.AttributeName ==
"MaxWidth"
141 || i_event.AttributeName ==
"MinWidth"
142 || i_event.AttributeName ==
"PreferredWidth"
143 || i_event.AttributeName ==
"Resizeable"
144 || i_event.AttributeName ==
"Flexibility"
149 "ColumnChangeMultiplexer::columnChanged: unknown column attributed changed!" );
167 ,m_nDataColumnIndex( -1 )
168 ,m_xGridColumn( i_gridColumn, css::
uno::UNO_SET_THROW )
171 m_xGridColumn->addGridColumnListener( m_pChangeMultiplexer );
172 impl_updateDataColumnIndex_nothrow();
261 return lcl_get(
m_xGridColumn, &XGridColumn::getResizeable );
268 return lcl_get(
m_xGridColumn, &XGridColumn::getFlexibility );
275 return lcl_get(
m_xGridColumn, &XGridColumn::getColumnWidth );
282 lcl_set(
m_xGridColumn, &XGridColumn::setColumnWidth, _nWidth );
303 return lcl_get(
m_xGridColumn, &XGridColumn::getHorizontalAlign );
virtual void SAL_CALL disposing(const EventObject &i_event) override
ColumnChangeMultiplexer & operator=(const ColumnChangeMultiplexer &)=delete
virtual void SAL_CALL columnChanged(const GridColumnEvent &i_event) override
ColumnChangeMultiplexer(UnoGridColumnFacade &i_colImpl)
UnoGridColumnFacade * m_pColumnImplementation
ColumnChangeMultiplexer(const ColumnChangeMultiplexer &)=delete
virtual ~ColumnChangeMultiplexer() override
ColPos getColumnPos(UnoGridColumnFacade const &i_column) const
retrieves the index of a column within the model
void notifyAllDataChanged() const
notifies a change in all data represented by the model.
void notifyColumnChange(ColPos const i_columnPos, ColumnAttributeGroup const i_attributeGroup) const
notifies a change in a column belonging to the model
virtual bool isResizable() const override
determines whether the column can be interactively resized
virtual sal_Int32 getFlexibility() const override
denotes the relative flexibility of the column
UnoGridColumnFacade(UnoControlTableModel const &i_owner, css::uno::Reference< css::awt::grid::XGridColumn > const &i_gridColumn)
virtual void setWidth(TableMetrics _nWidth) override
sets a new width for the column
void impl_updateDataColumnIndex_nothrow()
virtual TableMetrics getMaxWidth() const override
returns the maximum width of the column, in app-font units, or 0 if the column does not have a minima...
void dispose()
disposes the column wrapper
virtual OUString getHelpText() const override
retrieves the help text to be displayed for the column.
virtual TableMetrics getMinWidth() const override
returns the minimum width of the column, in app-font units, or 0 if the column does not have a minima...
sal_Int32 m_nDataColumnIndex
void columnChanged(ColumnAttributeGroup const i_attributeGroup)
UnoControlTableModel const * m_pOwner
virtual css::style::HorizontalAlignment getHorizontalAlign() override
retrieves the horizontal alignment to be used for content in this cell
virtual OUString getName() const override
returns the name of the column
::rtl::Reference< ColumnChangeMultiplexer > m_pChangeMultiplexer
virtual TableMetrics getWidth() const override
returns the width of the column, in app-font units
virtual ~UnoGridColumnFacade() override
css::uno::Reference< css::awt::grid::XGridColumn > m_xGridColumn
void dataColumnIndexChanged()
#define DBG_TESTSOLARMUTEX()
#define ENSURE_OR_RETURN(c, m, r)
#define DBG_UNHANDLED_EXCEPTION(...)
#define ENSURE_OR_RETURN_VOID(c, m)
::cppu::WeakImplHelper< XGridColumnListener > ColumnChangeMultiplexer_Base
ContentProvider * m_pOwner
@ APPEARANCE
denotes column attributes related to the appearance of the column, i.e. those relevant for rendering
@ WIDTH
denotes column attributes related to the width of the column