2009-08-26 13:11:27 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
|
|
*
|
2010-02-12 15:01:35 +01:00
|
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
2009-08-26 13:11:27 +00:00
|
|
|
*
|
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
|
|
|
*
|
|
|
|
* This file is part of OpenOffice.org.
|
|
|
|
*
|
|
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
|
|
* only, as published by the Free Software Foundation.
|
|
|
|
*
|
|
|
|
* OpenOffice.org is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU Lesser General Public License version 3 for more details
|
|
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
|
|
* <http://www.openoffice.org/license.html>
|
|
|
|
* for a copy of the LGPLv3 License.
|
|
|
|
*
|
|
|
|
************************************************************************/
|
|
|
|
|
|
|
|
// MARKER(update_precomp.py): autogen include statement, do not remove
|
|
|
|
#include "precompiled_toolkit.hxx"
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
#include "gridcontrol.hxx"
|
|
|
|
#include "grideventforwarder.hxx"
|
2009-08-26 13:11:27 +00:00
|
|
|
|
|
|
|
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
|
|
|
|
#include <com/sun/star/view/SelectionType.hpp>
|
|
|
|
#include <com/sun/star/awt/grid/XGridDataModel.hpp>
|
2010-02-12 17:05:02 +01:00
|
|
|
#include <com/sun/star/awt/grid/XGridColumnModel.hpp>
|
2009-08-26 13:11:27 +00:00
|
|
|
#include <toolkit/helper/unopropertyarrayhelper.hxx>
|
|
|
|
#include <toolkit/helper/property.hxx>
|
|
|
|
#include <com/sun/star/awt/XVclWindowPeer.hpp>
|
|
|
|
#include <comphelper/processfactory.hxx>
|
2010-12-07 13:50:47 +01:00
|
|
|
#include <tools/diagnose_ex.h>
|
2011-01-04 10:26:14 +01:00
|
|
|
#include <tools/color.hxx>
|
2009-08-26 13:11:27 +00:00
|
|
|
|
|
|
|
using ::rtl::OUString;
|
|
|
|
using namespace ::com::sun::star;
|
|
|
|
using namespace ::com::sun::star::uno;
|
2010-12-07 13:50:47 +01:00
|
|
|
using namespace ::com::sun::star::awt;
|
2009-08-26 13:11:27 +00:00
|
|
|
using namespace ::com::sun::star::awt::grid;
|
|
|
|
using namespace ::com::sun::star::lang;
|
|
|
|
using namespace ::com::sun::star::beans;
|
|
|
|
using namespace ::com::sun::star::container;
|
|
|
|
using namespace ::com::sun::star::view;
|
|
|
|
|
|
|
|
namespace toolkit
|
|
|
|
{
|
|
|
|
// ----------------------------------------------------
|
|
|
|
// class UnoGridModel
|
|
|
|
// ----------------------------------------------------
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2010-12-06 14:14:11 +01:00
|
|
|
UnoGridModel::UnoGridModel( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& i_factory )
|
|
|
|
:UnoControlModel( i_factory )
|
2009-08-26 13:11:27 +00:00
|
|
|
{
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_BORDER );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_BORDERCOLOR );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_ENABLED );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_FILLCOLOR );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_HELPTEXT );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_HELPURL );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_PRINTABLE );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_SIZEABLE ); // resizeable
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_HSCROLL );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_VSCROLL );
|
2010-02-12 17:05:02 +01:00
|
|
|
ImplRegisterProperty( BASEPROPERTY_TABSTOP );
|
2009-08-26 13:11:27 +00:00
|
|
|
ImplRegisterProperty( BASEPROPERTY_GRID_SHOWROWHEADER );
|
2011-01-07 10:31:19 +01:00
|
|
|
ImplRegisterProperty( BASEPROPERTY_ROW_HEADER_WIDTH );
|
2009-08-26 13:11:27 +00:00
|
|
|
ImplRegisterProperty( BASEPROPERTY_GRID_SHOWCOLUMNHEADER );
|
2011-01-07 10:31:19 +01:00
|
|
|
ImplRegisterProperty( BASEPROPERTY_COLUMN_HEADER_HEIGHT );
|
2011-01-07 10:51:57 +01:00
|
|
|
ImplRegisterProperty( BASEPROPERTY_ROW_HEIGHT );
|
2010-12-23 16:10:02 +01:00
|
|
|
ImplRegisterProperty( BASEPROPERTY_GRID_DATAMODEL, makeAny( maContext.createComponent( "com.sun.star.awt.grid.DefaultGridDataModel" ) ) );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_GRID_COLUMNMODEL, makeAny( maContext.createComponent( "com.sun.star.awt.grid.DefaultGridColumnModel" ) ) );
|
2009-08-26 13:11:27 +00:00
|
|
|
ImplRegisterProperty( BASEPROPERTY_GRID_SELECTIONMODE );
|
2010-02-12 17:05:02 +01:00
|
|
|
ImplRegisterProperty( BASEPROPERTY_FONTRELIEF );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_FONTEMPHASISMARK );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_FONTDESCRIPTOR );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_TEXTCOLOR );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_VERTICALALIGN );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_GRID_EVEN_ROW_BACKGROUND );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_GRID_HEADER_BACKGROUND );
|
|
|
|
ImplRegisterProperty( BASEPROPERTY_GRID_LINE_COLOR );
|
2010-03-22 11:17:10 +01:00
|
|
|
ImplRegisterProperty( BASEPROPERTY_GRID_ROW_BACKGROUND );
|
2009-08-26 13:11:27 +00:00
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
UnoGridModel::UnoGridModel( const UnoGridModel& rModel )
|
2011-01-03 23:14:55 +01:00
|
|
|
:UnoControlModel( rModel )
|
2009-08-26 13:11:27 +00:00
|
|
|
{
|
2011-01-03 23:14:55 +01:00
|
|
|
// clone the data model
|
|
|
|
const Reference< XFastPropertySet > xCloneSource( &const_cast< UnoGridModel& >( rModel ) );
|
|
|
|
bool success = false;
|
|
|
|
try
|
|
|
|
{
|
|
|
|
const Reference< XCloneable > xCloneable( xCloneSource->getFastPropertyValue( BASEPROPERTY_GRID_DATAMODEL ), UNO_QUERY_THROW );
|
|
|
|
setFastPropertyValue( BASEPROPERTY_GRID_DATAMODEL, makeAny( xCloneable->createClone() ) );
|
|
|
|
success = true;
|
|
|
|
}
|
|
|
|
catch( const Exception& )
|
|
|
|
{
|
|
|
|
DBG_UNHANDLED_EXCEPTION();
|
|
|
|
}
|
|
|
|
if ( !success )
|
|
|
|
setFastPropertyValue( BASEPROPERTY_GRID_DATAMODEL, makeAny( maContext.createComponent( "com.sun.star.awt.grid.DefaultGridDataModel" ) ) );
|
|
|
|
|
|
|
|
// clone the column model
|
|
|
|
success = false;
|
|
|
|
try
|
|
|
|
{
|
|
|
|
const Reference< XCloneable > xCloneable( xCloneSource->getFastPropertyValue( BASEPROPERTY_GRID_COLUMNMODEL ), UNO_QUERY_THROW );
|
|
|
|
setFastPropertyValue( BASEPROPERTY_GRID_COLUMNMODEL, makeAny( xCloneable->createClone() ) );
|
|
|
|
success = true;
|
|
|
|
}
|
|
|
|
catch( const Exception& )
|
|
|
|
{
|
|
|
|
DBG_UNHANDLED_EXCEPTION();
|
|
|
|
}
|
|
|
|
if ( !success )
|
|
|
|
setFastPropertyValue( BASEPROPERTY_GRID_COLUMNMODEL, makeAny( maContext.createComponent( "com.sun.star.awt.grid.DefaultGridColumnModel" ) ) );
|
2009-08-26 13:11:27 +00:00
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
UnoControlModel* UnoGridModel::Clone() const
|
|
|
|
{
|
|
|
|
return new UnoGridModel( *this );
|
|
|
|
}
|
|
|
|
|
2010-12-23 16:10:02 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
|
|
|
namespace
|
|
|
|
{
|
|
|
|
void lcl_dispose_nothrow( const Any& i_component )
|
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
|
|
|
const Reference< XComponent > xComponent( i_component, UNO_QUERY_THROW );
|
|
|
|
xComponent->dispose();
|
|
|
|
}
|
|
|
|
catch( const Exception& )
|
|
|
|
{
|
|
|
|
DBG_UNHANDLED_EXCEPTION();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
|
|
|
void SAL_CALL UnoGridModel::dispose( ) throw(RuntimeException)
|
|
|
|
{
|
|
|
|
lcl_dispose_nothrow( getFastPropertyValue( BASEPROPERTY_GRID_COLUMNMODEL ) );
|
|
|
|
lcl_dispose_nothrow( getFastPropertyValue( BASEPROPERTY_GRID_DATAMODEL ) );
|
|
|
|
|
|
|
|
UnoControlModel::dispose();
|
|
|
|
}
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
|
|
|
void SAL_CALL UnoGridModel::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const Any& rValue ) throw (Exception)
|
|
|
|
{
|
|
|
|
Any aOldSubModel;
|
|
|
|
if ( ( nHandle == BASEPROPERTY_GRID_COLUMNMODEL ) || ( nHandle == BASEPROPERTY_GRID_DATAMODEL ) )
|
|
|
|
{
|
|
|
|
aOldSubModel = getFastPropertyValue( nHandle );
|
|
|
|
if ( aOldSubModel == rValue )
|
|
|
|
{
|
|
|
|
OSL_ENSURE( false, "UnoGridModel::setFastPropertyValue_NoBroadcast: setting the same value, again!" );
|
|
|
|
// shouldn't this have been caught by convertFastPropertyValue?
|
|
|
|
aOldSubModel.clear();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
UnoControlModel::setFastPropertyValue_NoBroadcast( nHandle, rValue );
|
|
|
|
|
|
|
|
if ( aOldSubModel.hasValue() )
|
|
|
|
lcl_dispose_nothrow( aOldSubModel );
|
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
OUString UnoGridModel::getServiceName() throw(RuntimeException)
|
|
|
|
{
|
|
|
|
return OUString::createFromAscii( szServiceName_GridControlModel );
|
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
Any UnoGridModel::ImplGetDefaultValue( sal_uInt16 nPropId ) const
|
|
|
|
{
|
|
|
|
switch( nPropId )
|
|
|
|
{
|
|
|
|
case BASEPROPERTY_DEFAULTCONTROL:
|
|
|
|
return uno::makeAny( ::rtl::OUString::createFromAscii( szServiceName_GridControl ) );
|
|
|
|
case BASEPROPERTY_GRID_SELECTIONMODE:
|
|
|
|
return uno::makeAny( SelectionType(1) );
|
2010-03-22 11:17:10 +01:00
|
|
|
case BASEPROPERTY_GRID_SHOWROWHEADER:
|
2010-12-23 15:48:53 +01:00
|
|
|
return uno::makeAny( (sal_Bool)sal_False );
|
2011-01-07 10:31:19 +01:00
|
|
|
case BASEPROPERTY_ROW_HEADER_WIDTH:
|
|
|
|
return uno::makeAny( sal_Int32( 10 ) );
|
2010-03-22 11:17:10 +01:00
|
|
|
case BASEPROPERTY_GRID_SHOWCOLUMNHEADER:
|
2010-12-17 13:38:24 +01:00
|
|
|
return uno::makeAny( (sal_Bool)sal_True );
|
2011-01-07 10:31:19 +01:00
|
|
|
case BASEPROPERTY_COLUMN_HEADER_HEIGHT:
|
2011-01-07 10:51:57 +01:00
|
|
|
case BASEPROPERTY_ROW_HEIGHT:
|
2011-01-07 10:31:19 +01:00
|
|
|
return Any();
|
2010-03-22 11:17:10 +01:00
|
|
|
case BASEPROPERTY_GRID_EVEN_ROW_BACKGROUND:
|
2011-01-04 10:26:14 +01:00
|
|
|
return uno::makeAny( com::sun::star::util::Color( COL_TRANSPARENT ) );
|
2010-03-22 11:17:10 +01:00
|
|
|
case BASEPROPERTY_GRID_HEADER_BACKGROUND:
|
2011-01-04 10:26:14 +01:00
|
|
|
return uno::makeAny( com::sun::star::util::Color( COL_TRANSPARENT ) );
|
2010-03-22 11:17:10 +01:00
|
|
|
case BASEPROPERTY_GRID_LINE_COLOR:
|
2011-01-04 10:26:14 +01:00
|
|
|
return uno::makeAny( com::sun::star::util::Color( COL_TRANSPARENT ) );
|
2010-03-22 11:17:10 +01:00
|
|
|
case BASEPROPERTY_GRID_ROW_BACKGROUND:
|
2011-01-04 10:26:14 +01:00
|
|
|
return uno::makeAny(com::sun::star::util::Color( COL_TRANSPARENT ) );
|
2009-08-26 13:11:27 +00:00
|
|
|
default:
|
|
|
|
return UnoControlModel::ImplGetDefaultValue( nPropId );
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
::cppu::IPropertyArrayHelper& UnoGridModel::getInfoHelper()
|
|
|
|
{
|
|
|
|
static UnoPropertyArrayHelper* pHelper = NULL;
|
|
|
|
if ( !pHelper )
|
|
|
|
{
|
|
|
|
Sequence<sal_Int32> aIDs = ImplGetPropertyIds();
|
|
|
|
pHelper = new UnoPropertyArrayHelper( aIDs );
|
|
|
|
}
|
|
|
|
return *pHelper;
|
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
// XMultiPropertySet
|
|
|
|
Reference< XPropertySetInfo > UnoGridModel::getPropertySetInfo( ) throw(RuntimeException)
|
|
|
|
{
|
|
|
|
static Reference< XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
|
|
|
|
return xInfo;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//======================================================================================================================
|
|
|
|
//= UnoGridControl
|
|
|
|
//======================================================================================================================
|
2010-12-07 09:51:12 +01:00
|
|
|
UnoGridControl::UnoGridControl( const Reference< XMultiServiceFactory >& i_factory )
|
|
|
|
:UnoGridControl_Base( i_factory )
|
|
|
|
,mSelectionMode(SelectionType(1))
|
|
|
|
,m_aSelectionListeners( *this )
|
2010-12-07 13:50:47 +01:00
|
|
|
,m_pEventForwarder( new GridEventForwarder( *this ) )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
|
|
|
UnoGridControl::~UnoGridControl()
|
2009-08-26 13:11:27 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
OUString UnoGridControl::GetComponentServiceName()
|
|
|
|
{
|
|
|
|
return OUString::createFromAscii( "Grid" );
|
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
void SAL_CALL UnoGridControl::dispose( ) throw(RuntimeException)
|
|
|
|
{
|
2010-03-22 11:17:10 +01:00
|
|
|
lang::EventObject aEvt;
|
|
|
|
aEvt.Source = (::cppu::OWeakObject*)this;
|
|
|
|
m_aSelectionListeners.disposeAndClear( aEvt );
|
2009-08-26 13:11:27 +00:00
|
|
|
UnoControl::dispose();
|
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
|
|
|
void SAL_CALL UnoGridControl::createPeer( const uno::Reference< awt::XToolkit > & rxToolkit, const uno::Reference< awt::XWindowPeer > & rParentPeer ) throw(uno::RuntimeException)
|
2009-08-26 13:11:27 +00:00
|
|
|
{
|
|
|
|
UnoControlBase::createPeer( rxToolkit, rParentPeer );
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
const Reference< XGridControl > xGrid( getPeer(), UNO_QUERY_THROW );
|
2010-03-22 11:17:10 +01:00
|
|
|
xGrid->addSelectionListener(&m_aSelectionListeners);
|
2010-12-07 13:50:47 +01:00
|
|
|
}
|
2009-08-26 13:11:27 +00:00
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
|
|
|
namespace
|
|
|
|
{
|
|
|
|
void lcl_setEventForwarding( const Reference< XControlModel >& i_gridControlModel, const ::boost::scoped_ptr< GridEventForwarder >& i_listener,
|
|
|
|
bool const i_add )
|
2010-03-22 11:17:10 +01:00
|
|
|
{
|
2010-12-07 13:50:47 +01:00
|
|
|
const Reference< XPropertySet > xModelProps( i_gridControlModel, UNO_QUERY );
|
|
|
|
if ( !xModelProps.is() )
|
|
|
|
return;
|
|
|
|
|
|
|
|
try
|
2010-03-22 11:17:10 +01:00
|
|
|
{
|
2010-12-07 13:50:47 +01:00
|
|
|
const Reference< XContainer > xColModel(
|
|
|
|
xModelProps->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ColumnModel" ) ) ),
|
|
|
|
UNO_QUERY_THROW );
|
|
|
|
if ( i_add )
|
|
|
|
xColModel->addContainerListener( i_listener.get() );
|
|
|
|
else
|
|
|
|
xColModel->removeContainerListener( i_listener.get() );
|
|
|
|
|
|
|
|
const Reference< XGridDataModel > xDataModel(
|
|
|
|
xModelProps->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "GridDataModel" ) ) ),
|
|
|
|
UNO_QUERY_THROW
|
|
|
|
);
|
|
|
|
if ( i_add )
|
2010-12-17 14:32:31 +01:00
|
|
|
xDataModel->addGridDataListener( i_listener.get() );
|
2010-12-07 13:50:47 +01:00
|
|
|
else
|
2010-12-17 14:32:31 +01:00
|
|
|
xDataModel->removeGridDataListener( i_listener.get() );
|
2010-12-07 13:50:47 +01:00
|
|
|
}
|
|
|
|
catch( const Exception& )
|
|
|
|
{
|
|
|
|
DBG_UNHANDLED_EXCEPTION();
|
2010-03-22 11:17:10 +01:00
|
|
|
}
|
|
|
|
}
|
2009-08-26 13:11:27 +00:00
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
|
|
|
sal_Bool SAL_CALL UnoGridControl::setModel( const Reference< XControlModel >& i_model ) throw(RuntimeException)
|
|
|
|
{
|
|
|
|
lcl_setEventForwarding( getModel(), m_pEventForwarder, false );
|
|
|
|
if ( !UnoGridControl_Base::setModel( i_model ) )
|
|
|
|
return sal_False;
|
|
|
|
lcl_setEventForwarding( getModel(), m_pEventForwarder, true );
|
|
|
|
return sal_True;
|
|
|
|
}
|
2009-08-26 13:11:27 +00:00
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2010-02-12 17:05:02 +01:00
|
|
|
::sal_Int32 UnoGridControl::getItemIndexAtPoint(::sal_Int32 x, ::sal_Int32 y) throw (::com::sun::star::uno::RuntimeException)
|
2009-08-26 13:11:27 +00:00
|
|
|
{
|
2010-02-12 17:05:02 +01:00
|
|
|
Reference< XGridControl > xGrid ( getPeer(), UNO_QUERY_THROW );
|
|
|
|
return xGrid->getItemIndexAtPoint( x, y );
|
2009-08-26 13:11:27 +00:00
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2010-02-12 17:05:02 +01:00
|
|
|
void SAL_CALL UnoGridControl::setToolTip(const ::com::sun::star::uno::Sequence< ::rtl::OUString >& text, const ::com::sun::star::uno::Sequence< ::sal_Int32 >& columns) throw (::com::sun::star::uno::RuntimeException)
|
2009-08-26 13:11:27 +00:00
|
|
|
{
|
2010-02-12 17:05:02 +01:00
|
|
|
Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->setToolTip( text, columns );
|
2009-08-26 13:11:27 +00:00
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
::sal_Int32 SAL_CALL UnoGridControl::getMinSelectionIndex() throw (::com::sun::star::uno::RuntimeException)
|
|
|
|
{
|
|
|
|
return Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->getMinSelectionIndex();
|
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
::sal_Int32 SAL_CALL UnoGridControl::getMaxSelectionIndex() throw (::com::sun::star::uno::RuntimeException)
|
|
|
|
{
|
|
|
|
return Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->getMaxSelectionIndex();
|
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2010-03-22 11:17:10 +01:00
|
|
|
void SAL_CALL UnoGridControl::selectRows(const ::com::sun::star::uno::Sequence< ::sal_Int32 >& rangeOfRows) throw (::com::sun::star::uno::RuntimeException)
|
2009-08-26 13:11:27 +00:00
|
|
|
{
|
2010-03-22 11:17:10 +01:00
|
|
|
Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->selectRows( rangeOfRows);
|
2009-08-26 13:11:27 +00:00
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2010-03-22 11:17:10 +01:00
|
|
|
void SAL_CALL UnoGridControl::selectAllRows() throw (::com::sun::star::uno::RuntimeException)
|
2009-08-26 13:11:27 +00:00
|
|
|
{
|
2010-03-22 11:17:10 +01:00
|
|
|
Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->selectAllRows();
|
|
|
|
}
|
2010-12-07 13:50:47 +01:00
|
|
|
|
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2010-03-22 11:17:10 +01:00
|
|
|
void SAL_CALL UnoGridControl::deselectRows(const ::com::sun::star::uno::Sequence< ::sal_Int32 >& rangeOfRows) throw (::com::sun::star::uno::RuntimeException)
|
|
|
|
{
|
|
|
|
Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->deselectRows( rangeOfRows);
|
2009-08-26 13:11:27 +00:00
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2010-03-22 11:17:10 +01:00
|
|
|
void SAL_CALL UnoGridControl::deselectAllRows() throw (::com::sun::star::uno::RuntimeException)
|
|
|
|
{
|
|
|
|
Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->deselectAllRows();
|
|
|
|
}
|
2010-12-07 13:50:47 +01:00
|
|
|
|
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
::com::sun::star::uno::Sequence< ::sal_Int32 > SAL_CALL UnoGridControl::getSelection() throw (::com::sun::star::uno::RuntimeException)
|
|
|
|
{
|
|
|
|
return Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->getSelection();
|
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
::sal_Bool SAL_CALL UnoGridControl::isSelectionEmpty() throw (::com::sun::star::uno::RuntimeException)
|
|
|
|
{
|
|
|
|
return Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->isSelectionEmpty();
|
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
::sal_Bool SAL_CALL UnoGridControl::isSelectedIndex(::sal_Int32 index) throw (::com::sun::star::uno::RuntimeException)
|
|
|
|
{
|
|
|
|
return Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->isSelectedIndex( index );
|
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
void SAL_CALL UnoGridControl::selectRow(::sal_Int32 y) throw (::com::sun::star::uno::RuntimeException)
|
|
|
|
{
|
|
|
|
Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->selectRow( y );
|
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
void SAL_CALL UnoGridControl::addSelectionListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::grid::XGridSelectionListener > & listener) throw (::com::sun::star::uno::RuntimeException)
|
|
|
|
{
|
2010-03-22 11:17:10 +01:00
|
|
|
m_aSelectionListeners.addInterface( listener );
|
2009-08-26 13:11:27 +00:00
|
|
|
}
|
|
|
|
|
2010-12-07 13:50:47 +01:00
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
2009-08-26 13:11:27 +00:00
|
|
|
void SAL_CALL UnoGridControl::removeSelectionListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::grid::XGridSelectionListener > & listener) throw (::com::sun::star::uno::RuntimeException)
|
|
|
|
{
|
2010-03-22 11:17:10 +01:00
|
|
|
m_aSelectionListeners.removeInterface( listener );
|
2009-08-26 13:11:27 +00:00
|
|
|
}
|
2010-12-07 13:50:47 +01:00
|
|
|
|
2010-02-12 17:05:02 +01:00
|
|
|
}//namespace toolkit
|
2009-08-26 13:11:27 +00:00
|
|
|
|
2010-12-07 09:51:12 +01:00
|
|
|
Reference< XInterface > SAL_CALL GridControl_CreateInstance( const Reference< XMultiServiceFactory >& i_factory )
|
2009-08-26 13:11:27 +00:00
|
|
|
{
|
2010-12-07 09:51:12 +01:00
|
|
|
return Reference < XInterface >( ( ::cppu::OWeakObject* ) new ::toolkit::UnoGridControl( i_factory ) );
|
2009-08-26 13:11:27 +00:00
|
|
|
}
|
|
|
|
|
2010-12-06 14:14:11 +01:00
|
|
|
Reference< XInterface > SAL_CALL GridControlModel_CreateInstance( const Reference< XMultiServiceFactory >& i_factory )
|
2009-08-26 13:11:27 +00:00
|
|
|
{
|
2010-12-06 14:14:11 +01:00
|
|
|
return Reference < XInterface >( ( ::cppu::OWeakObject* ) new ::toolkit::UnoGridModel( i_factory ) );
|
2009-08-26 13:11:27 +00:00
|
|
|
}
|