diff options
Diffstat (limited to 'chart2/source/controller/inc/ItemConverter.hxx')
-rw-r--r-- | chart2/source/controller/inc/ItemConverter.hxx | 218 |
1 files changed, 0 insertions, 218 deletions
diff --git a/chart2/source/controller/inc/ItemConverter.hxx b/chart2/source/controller/inc/ItemConverter.hxx deleted file mode 100644 index 816ac3c7b..000000000 --- a/chart2/source/controller/inc/ItemConverter.hxx +++ /dev/null @@ -1,218 +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 CHART_ITEMCONVERTER_HXX -#define CHART_ITEMCONVERTER_HXX - -#include <unotools/eventlisteneradapter.hxx> -#include <svl/itempool.hxx> -#include <svl/itemset.hxx> -#include <com/sun/star/beans/XPropertySet.hpp> - -// for pair -#include <utility> - -namespace comphelper -{ - -/** This class serves for conversion between properties of an XPropertySet and - SfxItems in SfxItemSets. - - With this helper classes, you can feed dialogs with XPropertySets and let - those modify by the dialogs. - - You must implement GetWhichPairs() such that an SfxItemSet created with - CreateEmptyItemSet() is able to hold all items that may be mapped. - - You also have to implement GetItemProperty(), in order to return the - property name for a given which-id together with the corresponding member-id - that has to be used for conversion in QueryValue/PutValue. - - FillSpecialItem and ApplySpecialItem may be used for special handling of - individual item, e.g. if you need member-ids in QueryValue/PutValue - - A typical use could be the following: - - ::comphelper::ChartTypeItemConverter aItemConverter( xPropertySet, GetItemPool() ); - SfxItemSet aItemSet = aItemConverter.CreateEmptyItemSet(); - aItemConverter.FillItemSet( aItemSet ); - bool bChanged = false; - - MyDialog aDlg( aItemSet ); - if( aDlg.Execute() == RET_OK ) - { - const SfxItemSet* pOutItemSet = aDlg.GetOutputItemSet(); - if( pOutItemSet ) - bChanged = aItemConverter.ApplyItemSet( *pOutItemSet ); - } - - if( bChanged ) - { - [ apply model changes to view ] - } - */ -class ItemConverter : - public ::utl::OEventListenerAdapter -{ -public: - /** Construct an item converter that uses the given property set for - reading/writing converted items - */ - ItemConverter( - const ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySet > & rPropertySet , - SfxItemPool& rItemPool ); - virtual ~ItemConverter(); - - // typedefs ------------------------------- - - typedef sal_uInt16 tWhichIdType; - typedef ::rtl::OUString tPropertyNameType; - typedef sal_uInt8 tMemberIdType; - - typedef ::std::pair< tPropertyNameType, tMemberIdType > tPropertyNameWithMemberId; - - // ---------------------------------------- - - /** applies all properties that can be mapped to items into the given item - set. - - Call this method before opening a dialog. - - @param rOutItemSet - the SfxItemSet is filled with all items that are a result of a - conversion from a property of the internal XPropertySet. - */ - virtual void FillItemSet( SfxItemSet & rOutItemSet ) const; - - /** applies all properties that are results of a conversion from all items - in rItemSet to the internal XPropertySet. - - Call this method after a dialog was closed with OK - - @return true, if any properties have been changed, false otherwise. - */ - virtual bool ApplyItemSet( const SfxItemSet & rItemSet ); - - /** creates an empty item set using the given pool or a common pool if empty - (see GetItemPool) and allowing all items given in the ranges returned by - GetWhichPairs. - */ - SfxItemSet CreateEmptyItemSet() const; - - /** Invalidates all items in rDestSet, that are set (state SFX_ITEM_SET) in - both item sets (rDestSet and rSourceSet) and have differing content. - */ - static void InvalidateUnequalItems( SfxItemSet &rDestSet, const SfxItemSet &rSourceSet ); - -protected: - // ________ - - /** implement this method to provide an array of which-ranges of the form: - - const sal_uInt16 aMyPairs[] = - { - from_1, to_1, - from_2, to_2, - ... - from_n, to_n, - 0 - }; - */ - virtual const sal_uInt16 * GetWhichPairs() const = 0; - - /** implement this method to return a Property object for a given which id. - - @param rOutProperty - If true is returned, this contains the property name and the - corresponding Member-Id. - - @return true, if the item can be mapped to a property. - */ - virtual bool GetItemProperty( tWhichIdType nWhichId, tPropertyNameWithMemberId & rOutProperty ) const = 0; - - /** for items that can not be mapped directly to a property. - - This method is called from FillItemSet(), if GetItemProperty() returns - false. - - The default implementation does nothing except showing an assertion - */ - virtual void FillSpecialItem( sal_uInt16 nWhichId, SfxItemSet & rOutItemSet ) const - throw( ::com::sun::star::uno::Exception ); - - /** for items that can not be mapped directly to a property. - - This method is called from ApplyItemSet(), if GetItemProperty() returns - false. - - The default implementation returns just false and shows an assertion - - @return true if the item changed a property, false otherwise. - */ - virtual bool ApplySpecialItem( sal_uInt16 nWhichId, const SfxItemSet & rItemSet ) - throw( ::com::sun::star::uno::Exception ); - - // ________ - - /// Returns the pool - SfxItemPool & GetItemPool() const; - - /** Returns the XPropertySet that was given in the CTOR and is used to apply - items in ApplyItemSet(). - */ - ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySet > GetPropertySet() const; - - // ____ ::utl::OEventListenerAdapter ____ - virtual void _disposing( const ::com::sun::star::lang::EventObject& rSource ); - -protected: - /** sets a new property set, that you get with GetPropertySet(). It should - not be necessary to use this method. It is introduced to allow changing - the regression type of a regression curve which changes the object - identity. - */ - void resetPropertySet( const ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySet > & xPropSet ); - -private: - ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySet > m_xPropertySet; - ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySetInfo > m_xPropertySetInfo; - - SfxItemPool& m_rItemPool; - bool m_bIsValid; -}; - -} // namespace comphelper - -// CHART_ITEMCONVERTER_HXX -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |