summaryrefslogtreecommitdiff
path: root/toolkit/source/controls/grid/gridcontrol.cxx
diff options
context:
space:
mode:
authorRelease Engineers <releng@openoffice.org>2009-08-26 13:11:27 +0000
committerRelease Engineers <releng@openoffice.org>2009-08-26 13:11:27 +0000
commit27a1e85b656bad222f113f650b03397aa3bc59d3 (patch)
treefac68d7fa88bffbbb938326923bd280d4992e2b1 /toolkit/source/controls/grid/gridcontrol.cxx
parenta002f6d0433ef40e9a5fc16f6cf41818adced3ad (diff)
CWS-TOOLING: integrate CWS gridcontrol_01
2009-08-13 07:53:28 +0200 tkr r274919 : #103210# remove mixed-line-endings 2009-08-13 07:36:19 +0200 tkr r274918 : #103210# remove mixed-line-endings 2009-08-06 14:02:11 +0200 tkr r274725 : #103210# build issues fixed 2009-08-06 12:11:52 +0200 tkr r274711 : #103210# build issues fixed 2009-08-06 12:03:32 +0200 tkr r274710 : #103210# add grid directory to d.lst 2009-08-05 17:00:11 +0200 misheto r274689 : CWS-TOOLING: rebase CWS gridcontrol_01 to trunk@274622 (milestone: DEV300:m54) 2009-08-05 14:31:42 +0200 tkr r274668 : #103210# remove add/removeMouseListener from XGridControl and use XWindow 2009-08-05 14:30:06 +0200 tkr r274667 : #103210# remove add/removeMouseListener from XGridControl and use XWindow 2009-08-05 14:29:09 +0200 tkr r274666 : #103210# remove add/removeMouseListener from XGridControl and use XWindow 2009-08-05 12:02:15 +0200 misheto r274649 : fox for HScroll problem 2009-08-05 11:37:22 +0200 misheto r274644 : CWS-TOOLING: rebase CWS gridcontrol_01 to trunk@274203 (milestone: DEV300:m53) 2009-08-03 10:12:50 +0200 tkr r274568 : #103210# Method getItemIndexPos() added 2009-07-31 18:25:42 +0200 misheto r274547 : fixed bug no cursor with NONE-selection, arrow keys cause selection disappear 2009-07-31 16:36:34 +0200 tkr r274541 : #103210# MouseListener added 2009-07-31 16:35:48 +0200 tkr r274540 : #103210# MouseListener added 2009-07-31 14:37:45 +0200 misheto r274533 : event handlers 2009-07-31 09:43:52 +0200 tkr r274513 : #103210# MouseListener added 2009-07-31 09:42:46 +0200 tkr r274512 : #103210# MouseListenerMultiplexer exported 2009-07-30 18:19:55 +0200 misheto r274501 : 2009-07-30 18:15:00 +0200 misheto r274500 : mouselistener changes 2009-07-30 15:23:03 +0200 tkr r274491 : #i103210# remove XItemListener and add XMouseListener 2009-07-30 15:22:01 +0200 tkr r274490 : #i103210# remove XItemListener and add XMouseListener 2009-07-28 16:47:37 +0200 misheto r274415 : fixed text left intented, removeAllScroll mode, selection mode, single selection 2009-07-28 16:45:32 +0200 misheto r274413 : 2009-07-28 14:56:33 +0200 tkr r274407 : #i103210# build issue fixed 2009-07-28 12:49:23 +0200 tkr r274397 : #i103210# use HScroll and VScroll for Scrolbarmode 2009-07-28 12:24:14 +0200 tkr r274396 : #i103210# use HScroll and VScroll for Scrolbarmode 2009-07-28 11:33:46 +0200 tkr r274393 : ##i103210# api changes 2009-07-28 11:32:48 +0200 tkr r274392 : ##i103210# add ItemListener 2009-07-28 11:31:49 +0200 tkr r274391 : ##i103210# add ItemListener 2009-07-28 08:30:30 +0200 tkr r274388 : #i103210# paint background color 2009-07-24 17:22:10 +0200 misheto r274314 : focus problem solved, single selection with keys UP DOWN 2009-07-22 11:43:24 +0200 misheto r274226 : removed vclxcontrol dependencies 2009-07-22 10:23:34 +0200 misheto r274220 : 2009-07-21 15:04:26 +0200 misheto r274200 : tablecontrol added items 2009-07-21 15:00:44 +0200 misheto r274198 : tablecontrol 2009-07-17 09:58:59 +0200 misheto r274082 : changes mihaela 2009-07-15 11:04:27 +0200 tkr r273999 : #i103210# api documentation added 2009-07-15 11:03:18 +0200 tkr r273998 : #i103210# adapt idl changes 2009-07-14 08:47:32 +0200 tkr r273959 : #i103210# Method removeRow added 2009-07-14 08:46:52 +0200 tkr r273958 : #i103210# Method removeRow added 2009-07-13 08:20:11 +0200 tkr r273914 : #i103210# XGridSelectionModel removed 2009-07-10 13:50:01 +0200 tkr r273888 : #i103210# selection support and listener added 2009-07-10 13:42:17 +0200 tkr r273887 : #i103210# selection support added 2009-07-06 10:21:51 +0200 tkr r273724 : #i103210# implement listener 2009-07-06 10:13:25 +0200 tkr r273723 : #i103210# remove wrong interfaces 2009-07-06 10:11:47 +0200 tkr r273722 : #i103210# interface changes 2009-07-02 15:28:50 +0200 tkr r273659 : #i103210# create new services 2009-07-02 15:26:21 +0200 tkr r273658 : #i103210# create new services 2009-07-02 12:00:39 +0200 tkr r273633 : #i103210# defaultgriddatamodel works now 2009-07-02 11:59:24 +0200 tkr r273631 : #i103210# now XGridDataModel inherits XComponent 2009-07-01 14:07:31 +0200 tkr r273579 : #i103210# initial implementation of the grid control data model 2009-07-01 13:14:21 +0200 tkr r273571 : #i103210# adding new service and some methods 2009-06-30 12:15:13 +0200 tkr r273500 : #i103210# change attribute names 2009-06-30 10:55:07 +0200 tkr r273496 : #i103210# create services and interfaces for the grid control 2009-06-30 10:47:26 +0200 tkr r273495 : #i103210# create services and interfaces for the grid control
Diffstat (limited to 'toolkit/source/controls/grid/gridcontrol.cxx')
-rw-r--r--toolkit/source/controls/grid/gridcontrol.cxx273
1 files changed, 273 insertions, 0 deletions
diff --git a/toolkit/source/controls/grid/gridcontrol.cxx b/toolkit/source/controls/grid/gridcontrol.cxx
new file mode 100644
index 000000000000..c642d8a0dcce
--- /dev/null
+++ b/toolkit/source/controls/grid/gridcontrol.cxx
@@ -0,0 +1,273 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: gridcontrol.cxx,v $
+ * $Revision: 1.4 $
+ *
+ * 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"
+
+#include <gridcontrol.hxx>
+
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/view/SelectionType.hpp>
+#include <com/sun/star/awt/grid/XGridDataModel.hpp>
+#include <com/sun/star/awt/grid/ScrollBarMode.hpp>
+#include <toolkit/helper/unopropertyarrayhelper.hxx>
+#include <toolkit/helper/property.hxx>
+#include <com/sun/star/awt/XVclWindowPeer.hpp>
+#include <comphelper/processfactory.hxx>
+#include <osl/diagnose.h>
+
+using ::rtl::OUString;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+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
+// ----------------------------------------------------
+UnoGridModel::UnoGridModel()
+{
+ 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 );
+ ImplRegisterProperty( BASEPROPERTY_GRID_SHOWROWHEADER );
+ ImplRegisterProperty( BASEPROPERTY_GRID_SHOWCOLUMNHEADER );
+ ImplRegisterProperty( BASEPROPERTY_GRID_DATAMODEL );
+ ImplRegisterProperty( BASEPROPERTY_GRID_COLUMNMODEL );
+ ImplRegisterProperty( BASEPROPERTY_GRID_SELECTIONMODE );
+
+}
+
+UnoGridModel::UnoGridModel( const UnoGridModel& rModel )
+: UnoControlModel( rModel )
+{
+}
+
+UnoControlModel* UnoGridModel::Clone() const
+{
+ return new UnoGridModel( *this );
+}
+
+OUString UnoGridModel::getServiceName() throw(RuntimeException)
+{
+ return OUString::createFromAscii( szServiceName_GridControlModel );
+}
+
+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) );
+ default:
+ return UnoControlModel::ImplGetDefaultValue( nPropId );
+ }
+
+}
+
+::cppu::IPropertyArrayHelper& UnoGridModel::getInfoHelper()
+{
+ static UnoPropertyArrayHelper* pHelper = NULL;
+ if ( !pHelper )
+ {
+ Sequence<sal_Int32> aIDs = ImplGetPropertyIds();
+ pHelper = new UnoPropertyArrayHelper( aIDs );
+ }
+ return *pHelper;
+}
+
+// XMultiPropertySet
+Reference< XPropertySetInfo > UnoGridModel::getPropertySetInfo( ) throw(RuntimeException)
+{
+ static Reference< XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
+ return xInfo;
+}
+
+
+// ----------------------------------------------------
+// class UnoGridControl
+// ----------------------------------------------------
+UnoGridControl::UnoGridControl()
+: mSelectionMode(SelectionType(1))
+{
+}
+
+OUString UnoGridControl::GetComponentServiceName()
+{
+ return OUString::createFromAscii( "Grid" );
+}
+
+void SAL_CALL UnoGridControl::dispose( ) throw(RuntimeException)
+{
+ UnoControl::dispose();
+}
+
+void UnoGridControl::createPeer( const uno::Reference< awt::XToolkit > & rxToolkit, const uno::Reference< awt::XWindowPeer > & rParentPeer ) throw(uno::RuntimeException)
+{
+ UnoControlBase::createPeer( rxToolkit, rParentPeer );
+
+ Reference< XGridControl > xGrid( getPeer(), UNO_QUERY_THROW );
+
+ Reference<XGridDataListener> xListener ( getPeer(), UNO_QUERY_THROW );
+ Reference<XPropertySet> xPropSet ( getModel(), UNO_QUERY_THROW );
+
+ Reference<XGridDataModel> xGridDataModel ( xPropSet->getPropertyValue(OUString::createFromAscii( "GridDataModel" )), UNO_QUERY_THROW );
+ xGridDataModel->addDataListener(xListener);
+}
+
+
+// -------------------------------------------------------------------
+// XGridControl
+// -------------------------------------------------------------------
+
+::com::sun::star::uno::Reference< ::com::sun::star::awt::grid::XGridColumnModel > SAL_CALL UnoGridControl::getColumnModel() throw (::com::sun::star::uno::RuntimeException)
+{
+ Reference<XPropertySet> xPropSet ( getModel(), UNO_QUERY_THROW );
+ Reference<XGridColumnModel> xGridColumnModel ( xPropSet->getPropertyValue(OUString::createFromAscii( "ColumnModel" )), UNO_QUERY_THROW );
+
+ return xGridColumnModel;
+}
+
+void SAL_CALL UnoGridControl::setColumnModel(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::grid::XGridColumnModel > & model) throw (::com::sun::star::uno::RuntimeException)
+{
+ Reference<XPropertySet> xPropSet ( getModel(), UNO_QUERY_THROW );
+ xPropSet->setPropertyValue(OUString::createFromAscii( "ColumnModel" ), Any (model));
+}
+
+::com::sun::star::uno::Reference< ::com::sun::star::awt::grid::XGridDataModel > SAL_CALL UnoGridControl::getDataModel() throw (::com::sun::star::uno::RuntimeException)
+{
+ Reference<XPropertySet> xPropSet ( getModel(), UNO_QUERY_THROW );
+ Reference<XGridDataModel> xGridDataModel ( xPropSet->getPropertyValue(OUString::createFromAscii( "GridDataModel" )), UNO_QUERY_THROW );
+
+ return xGridDataModel;
+}
+
+void SAL_CALL UnoGridControl::setDataModel(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::grid::XGridDataModel > & model) throw (::com::sun::star::uno::RuntimeException)
+{
+ Reference<XPropertySet> xPropSet ( getModel(), UNO_QUERY_THROW );
+ xPropSet->setPropertyValue(OUString::createFromAscii( "GridDataModel" ), Any(model));
+}
+
+::sal_Int32 UnoGridControl::getItemIndexAtPoint(::sal_Int32 x, ::sal_Int32 y) throw (::com::sun::star::uno::RuntimeException)
+{
+ return Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->getItemIndexAtPoint( x, y );
+}
+
+/*
+void SAL_CALL UnoGridControl::addMouseListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseListener > & listener) throw (::com::sun::star::uno::RuntimeException)
+{
+ Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->addMouseListener( listener );
+}
+
+void SAL_CALL UnoGridControl::removeMouseListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseListener > & listener) throw (::com::sun::star::uno::RuntimeException)
+{
+ Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->removeMouseListener( listener );
+}
+*/
+// -------------------------------------------------------------------
+// XGridSelection
+// -------------------------------------------------------------------
+
+::sal_Int32 SAL_CALL UnoGridControl::getMinSelectionIndex() throw (::com::sun::star::uno::RuntimeException)
+{
+ return Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->getMinSelectionIndex();
+}
+
+::sal_Int32 SAL_CALL UnoGridControl::getMaxSelectionIndex() throw (::com::sun::star::uno::RuntimeException)
+{
+ return Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->getMaxSelectionIndex();
+}
+
+void SAL_CALL UnoGridControl::insertIndexIntervall(::sal_Int32 start, ::sal_Int32 length) throw (::com::sun::star::uno::RuntimeException)
+{
+ Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->insertIndexIntervall( start, length);
+}
+
+void SAL_CALL UnoGridControl::removeIndexIntervall(::sal_Int32 start, ::sal_Int32 length) throw (::com::sun::star::uno::RuntimeException)
+{
+ Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->removeIndexIntervall( start, length );
+}
+
+::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();
+}
+
+::sal_Bool SAL_CALL UnoGridControl::isSelectionEmpty() throw (::com::sun::star::uno::RuntimeException)
+{
+ return Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->isSelectionEmpty();
+}
+
+::sal_Bool SAL_CALL UnoGridControl::isSelectedIndex(::sal_Int32 index) throw (::com::sun::star::uno::RuntimeException)
+{
+ return Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->isSelectedIndex( index );
+}
+
+void SAL_CALL UnoGridControl::selectRow(::sal_Int32 y) throw (::com::sun::star::uno::RuntimeException)
+{
+ Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->selectRow( y );
+}
+
+void SAL_CALL UnoGridControl::addSelectionListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::grid::XGridSelectionListener > & listener) throw (::com::sun::star::uno::RuntimeException)
+{
+ Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->addSelectionListener( listener );
+}
+
+void SAL_CALL UnoGridControl::removeSelectionListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::grid::XGridSelectionListener > & listener) throw (::com::sun::star::uno::RuntimeException)
+{
+ Reference< XGridControl >( getPeer(), UNO_QUERY_THROW )->removeSelectionListener( listener );
+}
+}
+
+Reference< XInterface > SAL_CALL GridControl_CreateInstance( const Reference< XMultiServiceFactory >& )
+{
+ return Reference < XInterface >( ( ::cppu::OWeakObject* ) new ::toolkit::UnoGridControl );
+}
+
+Reference< XInterface > SAL_CALL GridControlModel_CreateInstance( const Reference< XMultiServiceFactory >& )
+{
+ return Reference < XInterface >( ( ::cppu::OWeakObject* ) new ::toolkit::UnoGridModel );
+}