diff options
Diffstat (limited to 'extensions/source/propctrlr/cellbindinghelper.hxx')
-rw-r--r-- | extensions/source/propctrlr/cellbindinghelper.hxx | 293 |
1 files changed, 0 insertions, 293 deletions
diff --git a/extensions/source/propctrlr/cellbindinghelper.hxx b/extensions/source/propctrlr/cellbindinghelper.hxx deleted file mode 100644 index a6767c4f1..000000000 --- a/extensions/source/propctrlr/cellbindinghelper.hxx +++ /dev/null @@ -1,293 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * 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. - * - ************************************************************************/ - -#ifndef EXTENSIONS_PROPCTRLR_CELLBINDINGHELPER_HXX -#define EXTENSIONS_PROPCTRLR_CELLBINDINGHELPER_HXX - -/** === begin UNO includes === **/ -#include <com/sun/star/frame/XModel.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/sheet/XSpreadsheetDocument.hpp> -#include <com/sun/star/table/CellAddress.hpp> -#include <com/sun/star/table/CellRangeAddress.hpp> -#include <com/sun/star/form/binding/XValueBinding.hpp> -#include <com/sun/star/form/binding/XListEntrySource.hpp> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/sheet/XSpreadsheet.hpp> -/** === end UNO includes === **/ - -//............................................................................ -namespace pcr -{ -//............................................................................ - - //======================================================================== - //= CellBindingHelper - //======================================================================== - /** encapsulates functionality related to binding a form control to a spreadsheet cell - */ - class CellBindingHelper - { - protected: - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > - m_xControlModel; // the model we work for - ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSpreadsheetDocument > - m_xDocument; // the document where the model lives - - public: - /** ctor - @param _rxControlModel - the control model which is or will be bound - */ - CellBindingHelper( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, - const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& _rxContextDocument - ); - - public: - /** determines whether the given model is a spreadsheet document model - - <p>If this method returns <FALSE/>, you cannot instantiate a CellBindingHelper with - the document, since then no of it's functionality will be available.</p> - */ - static sal_Bool isSpreadsheetDocument( - const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& _rxContextDocument - ); - - /** gets a cell binding for the given address - @precond - isCellBindingAllowed returns <TRUE/> - */ - ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding > - createCellBindingFromStringAddress( - const ::rtl::OUString& _rAddress, - bool _bSupportIntegerExchange = false - ) const; - - /** creates a cell binding (supporting integer exchange, if requested) for - the given address object - */ - ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding > - createCellBindingFromAddress( - const ::com::sun::star::table::CellAddress& _rAddress, - bool _bSupportIntegerExchange = false - ) const; - - /** gets a cell range list source binding for the given address - */ - ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XListEntrySource > - createCellListSourceFromStringAddress( const ::rtl::OUString& _rAddress ) const; - - /** creates a string representation for the given value binding's address - - <p>If the sheet of the bound cell is the same as the sheet which our control belongs - to, then the sheet name is omitted in the resulting string representation.</p> - - @precond - The binding is a valid cell binding, or <NULL/> - @see isCellBinding - */ - ::rtl::OUString getStringAddressFromCellBinding( - const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >& _rxBinding - ) const; - - /** creates an address object for the given value binding's address - - @precond - The binding is a valid cell binding, or <NULL/> - @return - <FALSE/> if and only if an error occurred and no valid address could be obtained - @see isCellBinding - */ - bool getAddressFromCellBinding( - const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >& _rxBinding, - ::com::sun::star::table::CellAddress& _rAddress - ) const; - - /** creates a string representation for the given list source's range address - - <p>If the sheet of the cell range which acts as list source is the same as the - sheet which our control belongs to, then the sheet name is omitted in the - resulting string representation.</p> - - @precond - The object is a valid cell range list source, or <NULL/> - @see isCellRangeListSource - */ - ::rtl::OUString getStringAddressFromCellListSource( - const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XListEntrySource >& _rxSource - ) const; - - /** returns the current binding of our control model, if any. - */ - ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding > - getCurrentBinding( ) const; - - /** returns the current external list source of the control model, if any - */ - ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XListEntrySource > - getCurrentListSource( ) const; - - /** sets a new binding for our control model - @precond - the control model is bindable (which is implied by <member>isCellBindingAllowed</member> - returning <TRUE/>) - */ - void setBinding( - const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >& _rxBinding - ); - - /** sets a list source for our control model - @precond - the control model is a list sink (which is implied by <member>isListCellRangeAllowed</member> - returning <TRUE/>) - */ - void setListSource( - const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XListEntrySource >& _rxSource - ); - - /** checks whether it's possible to bind the control model to a spreadsheet cell - */ - bool isCellBindingAllowed( ) const; - - /** checks whether it's possible to bind the control model to a spreadsheet cell, - with exchanging integer values - */ - bool isCellIntegerBindingAllowed( ) const; - - /** checks whether it's possible to bind the control model to range of spreadsheet cells - supplying the list entries - */ - bool isListCellRangeAllowed( ) const; - - /** checks whether a given binding is a spreadsheet cell binding - */ - bool isCellBinding( - const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >& _rxBinding - ) const; - - /** checks whether a given binding is a spreadsheet cell binding, exchanging - integer values - */ - bool isCellIntegerBinding( - const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >& _rxBinding - ) const; - - /** checks whether a given list source is a spreadsheet cell list source - */ - bool isCellRangeListSource( - const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XListEntrySource >& _rxSource - ) const; - - /** retrieves the index of the sheet which our control belongs to - @return the index of the sheet which our control belongs to or -1, if an error occurred - */ - sal_Int16 getControlSheetIndex( - ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSpreadsheet >& _out_rxSheet - ) const; - - protected: - /** creates an address object from a string representation of a cell address - */ - bool convertStringAddress( - const ::rtl::OUString& _rAddressDescription, - ::com::sun::star::table::CellAddress& /* [out] */ _rAddress - ) const; - - /** creates an address range object from a string representation of a cell range address - */ - bool convertStringAddress( - const ::rtl::OUString& _rAddressDescription, - ::com::sun::star::table::CellRangeAddress& /* [out] */ _rAddress - ) const; - - /** determines if our document is a spreadsheet document, *and* can supply - the given service - */ - bool isSpreadsheetDocumentWhichSupplies( const ::rtl::OUString& _rService ) const; - - /** checkes whether a given component supports a given servive - */ - bool doesComponentSupport( - const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxComponent, - const ::rtl::OUString& _rService - ) const; - - /** uses the document (it's factory interface, respectively) to create a component instance - @param _rService - the service name - @param _rArgumentName - the name of the single argument to pass during creation. May be empty, in this case - no arguments are passed - @param _rArgumentValue - the value of the instantiation argument. Not evaluated if <arg>_rArgumentName</arg> - is empty. - */ - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > - createDocumentDependentInstance( - const ::rtl::OUString& _rService, - const ::rtl::OUString& _rArgumentName, - const ::com::sun::star::uno::Any& _rArgumentValue - ) const; - - /** converts an address representation into another one - - @param _rInputProperty - the input property name for the conversion service - @param _rInputValue - the input property value for the conversion service - @param _rOutputProperty - the output property name for the conversion service - @param _rOutputValue - the output property value for the conversion service - @param _bIsRange - if <TRUE/>, the RangeAddressConversion service will be used, else - the AddressConversion service - - @return - <TRUE/> if any only if the conversion was successfull - - @see com::sun::star::table::CellAddressConversion - @see com::sun::star::table::CellRangeAddressConversion - */ - bool doConvertAddressRepresentations( - const ::rtl::OUString& _rInputProperty, - const ::com::sun::star::uno::Any& _rInputValue, - const ::rtl::OUString& _rOutputProperty, - ::com::sun::star::uno::Any& _rOutputValue, - bool _bIsRange - ) const SAL_THROW(()); - }; - -//............................................................................ -} // namespace pcr -//............................................................................ - -#endif // EXTENSIONS_PROPCTRLR_CELLBINDINGHELPER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |