blob: dfead59195bb7011617b45c33917b57f9a6831c7 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef SC_XMLDPIMP_HXX
#define SC_XMLDPIMP_HXX
#include <xmloff/xmlictxt.hxx>
#include <xmloff/xmlimp.hxx>
#include <com/sun/star/sheet/DataPilotFieldReference.hpp>
#include <com/sun/star/sheet/DataPilotFieldSortInfo.hpp>
#include <com/sun/star/sheet/DataPilotFieldAutoShowInfo.hpp>
#include <com/sun/star/sheet/DataPilotFieldLayoutInfo.hpp>
#include "global.hxx"
#include "dpobject.hxx"
#include "dpsave.hxx"
#include "queryparam.hxx"
#include <hash_set>
class ScXMLImport;
class ScDPSaveNumGroupDimension;
class ScDPSaveGroupDimension;
enum ScMySourceType
{
SQL,
TABLE,
QUERY,
SERVICE,
CELLRANGE
};
class ScXMLDataPilotTablesContext : public SvXMLImportContext
{
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotTablesContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList);
virtual ~ScXMLDataPilotTablesContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
};
class ScXMLDataPilotTableContext : public SvXMLImportContext
{
typedef ::std::hash_set< ::rtl::OUString, ::rtl::OUStringHash > StringSet;
StringSet maHiddenMemberFields;
struct GrandTotalItem
{
::rtl::OUString maDisplayName;
bool mbVisible;
GrandTotalItem();
};
ScDocument* pDoc;
ScDPObject* pDPObject;
ScDPSaveData* pDPSave;
ScDPDimensionSaveData* pDPDimSaveData;
GrandTotalItem maRowGrandTotal;
GrandTotalItem maColGrandTotal;
rtl::OUString sDataPilotTableName;
rtl::OUString sApplicationData;
rtl::OUString sDatabaseName;
rtl::OUString sSourceObject;
rtl::OUString sServiceName;
rtl::OUString sServiceSourceName;
rtl::OUString sServiceSourceObject;
rtl::OUString sServiceUsername;
rtl::OUString sServicePassword;
rtl::OUString sButtons;
ScRange aSourceCellRangeAddress;
ScRange aTargetRangeAddress;
ScRange aFilterSourceRange;
ScAddress aFilterOutputPosition;
ScQueryParam aSourceQueryParam;
ScMySourceType nSourceType;
sal_uInt32 mnRowFieldCount;
sal_uInt32 mnColFieldCount;
sal_uInt32 mnPageFieldCount;
sal_uInt32 mnDataFieldCount;
sal_Bool bIsNative;
sal_Bool bIgnoreEmptyRows;
sal_Bool bIdentifyCategories;
sal_Bool bUseRegularExpression;
sal_Bool bIsCaseSensitive;
sal_Bool bSkipDuplicates;
sal_Bool bFilterCopyOutputData;
sal_Bool bTargetRangeAddress;
sal_Bool bSourceCellRange;
sal_Bool bShowFilter;
sal_Bool bDrillDown;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotTableContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList);
virtual ~ScXMLDataPilotTableContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
void SetGrandTotal(::xmloff::token::XMLTokenEnum eOrientation, bool bVisible, const ::rtl::OUString& rDisplayName);
void SetDatabaseName(const rtl::OUString& sValue) { sDatabaseName = sValue; }
void SetSourceObject(const rtl::OUString& sValue) { sSourceObject = sValue; }
void SetNative(const sal_Bool bValue) { bIsNative = bValue; }
void SetServiceName(const rtl::OUString& sValue) { sServiceName = sValue; }
void SetServiceSourceName(const rtl::OUString& sValue) { sServiceSourceName = sValue; }
void SetServiceSourceObject(const rtl::OUString& sValue) { sServiceSourceObject = sValue; }
void SetServiceUsername(const rtl::OUString& sValue) { sServiceUsername = sValue; }
void SetServicePassword(const rtl::OUString& sValue) { sServicePassword = sValue; }
void SetSourceCellRangeAddress(const ScRange& aValue) { aSourceCellRangeAddress = aValue; bSourceCellRange = sal_True; }
void SetSourceQueryParam(const ScQueryParam& aValue) { aSourceQueryParam = aValue; }
// void SetFilterUseRegularExpressions(const sal_Bool bValue) { aSourceQueryParam.bRegExp = bValue; }
void SetFilterOutputPosition(const ScAddress& aValue) { aFilterOutputPosition = aValue; }
void SetFilterCopyOutputData(const sal_Bool bValue) { bFilterCopyOutputData = bValue; }
void SetFilterSourceRange(const ScRange& aValue) { aFilterSourceRange = aValue; }
// void SetFilterIsCaseSensitive(const sal_Bool bValue) { aSourceQueryParam.bCaseSens = bValue; }
// void SetFilterSkipDuplicates(const sal_Bool bValue) { aSourceQueryParam.bDuplicate = !bValue; }
void AddDimension(ScDPSaveDimension* pDim, bool bHasHiddenMember);
void AddGroupDim(const ScDPSaveNumGroupDimension& aNumGroupDim);
void AddGroupDim(const ScDPSaveGroupDimension& aGroupDim);
void SetButtons();
};
class ScXMLDPSourceSQLContext : public SvXMLImportContext
{
ScXMLDataPilotTableContext* pDataPilotTable;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDPSourceSQLContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotTableContext* pDataPilotTable);
virtual ~ScXMLDPSourceSQLContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
};
class ScXMLDPSourceTableContext : public SvXMLImportContext
{
ScXMLDataPilotTableContext* pDataPilotTable;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDPSourceTableContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotTableContext* pDataPilotTable);
virtual ~ScXMLDPSourceTableContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
};
class ScXMLDPSourceQueryContext : public SvXMLImportContext
{
ScXMLDataPilotTableContext* pDataPilotTable;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDPSourceQueryContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotTableContext* pDataPilotTable);
virtual ~ScXMLDPSourceQueryContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
};
class ScXMLSourceServiceContext : public SvXMLImportContext
{
ScXMLDataPilotTableContext* pDataPilotTable;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLSourceServiceContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotTableContext* pDataPilotTable);
virtual ~ScXMLSourceServiceContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
};
class ScXMLDataPilotGrandTotalContext : public SvXMLImportContext
{
enum Orientation { COLUMN, ROW, BOTH, NONE };
ScXMLImport& GetScImport();
ScXMLDataPilotTableContext* mpTableContext;
::rtl::OUString maDisplayName;
Orientation meOrientation;
bool mbVisible;
public:
ScXMLDataPilotGrandTotalContext(
ScXMLImport& rImport, sal_uInt16 nPrefix, const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotTableContext* pTableContext );
virtual ~ScXMLDataPilotGrandTotalContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
};
class ScXMLSourceCellRangeContext : public SvXMLImportContext
{
ScXMLDataPilotTableContext* pDataPilotTable;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLSourceCellRangeContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotTableContext* pDataPilotTable);
virtual ~ScXMLSourceCellRangeContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
};
struct ScXMLDataPilotGroup
{
::std::vector<rtl::OUString> aMembers;
rtl::OUString aName;
};
class ScXMLDataPilotFieldContext : public SvXMLImportContext
{
ScXMLDataPilotTableContext* pDataPilotTable;
ScDPSaveDimension* pDim;
::std::vector<ScXMLDataPilotGroup> aGroups;
rtl::OUString sGroupSource;
rtl::OUString sSelectedPage;
rtl::OUString sName;
double fStart;
double fEnd;
double fStep;
sal_Int32 nUsedHierarchy;
sal_Int32 nGroupPart;
sal_Int16 nFunction;
sal_Int16 nOrientation;
sal_Bool bShowEmpty:1;
sal_Bool bSelectedPage:1;
sal_Bool bIsGroupField:1;
sal_Bool bDateValue:1;
sal_Bool bAutoStart:1;
sal_Bool bAutoEnd:1;
bool mbHasHiddenMember:1;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotFieldContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotTableContext* pDataPilotTable);
virtual ~ScXMLDataPilotFieldContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
void SetShowEmpty(const sal_Bool bValue) { if (pDim) pDim->SetShowEmpty(bValue); }
void SetSubTotals(const sal_uInt16* pFunctions, const sal_Int16 nCount) { if(pDim) pDim->SetSubTotals(nCount, pFunctions); }
void AddMember(ScDPSaveMember* pMember);
void SetSubTotalName(const ::rtl::OUString& rName);
void SetFieldReference(const com::sun::star::sheet::DataPilotFieldReference& aRef) { if (pDim) pDim->SetReferenceValue(&aRef); }
void SetAutoShowInfo(const com::sun::star::sheet::DataPilotFieldAutoShowInfo& aInfo) { if (pDim) pDim->SetAutoShowInfo(&aInfo); }
void SetSortInfo(const com::sun::star::sheet::DataPilotFieldSortInfo& aInfo) { if (pDim) pDim->SetSortInfo(&aInfo); }
void SetLayoutInfo(const com::sun::star::sheet::DataPilotFieldLayoutInfo& aInfo) { if (pDim) pDim->SetLayoutInfo(&aInfo); }
void SetGrouping(const rtl::OUString& rGroupSource, const double& rStart, const double& rEnd, const double& rStep,
sal_Int32 nPart, sal_Bool bDate, sal_Bool bAutoSt, sal_Bool bAutoE)
{
bIsGroupField = sal_True;
sGroupSource = rGroupSource;
fStart = rStart;
fEnd = rEnd;
fStep = rStep;
nGroupPart = nPart;
bDateValue = bDate;
bAutoStart = bAutoSt;
bAutoEnd = bAutoE;
}
void AddGroup(const ::std::vector<rtl::OUString>& rMembers, const rtl::OUString& rName);
};
class ScXMLDataPilotFieldReferenceContext : public SvXMLImportContext
{
// com::sun::star::sheet::DataPilotFieldReference aReference;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotFieldReferenceContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotFieldContext* pDataPilotField);
virtual ~ScXMLDataPilotFieldReferenceContext();
};
class ScXMLDataPilotLevelContext : public SvXMLImportContext
{
ScXMLDataPilotFieldContext* pDataPilotField;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotLevelContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotFieldContext* pDataPilotField);
virtual ~ScXMLDataPilotLevelContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
};
class ScXMLDataPilotDisplayInfoContext : public SvXMLImportContext
{
// com::sun::star::sheet::DataPilotFieldAutoShowInfo aInfo;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotDisplayInfoContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotFieldContext* pDataPilotField);
virtual ~ScXMLDataPilotDisplayInfoContext();
};
class ScXMLDataPilotSortInfoContext : public SvXMLImportContext
{
// com::sun::star::sheet::DataPilotFieldSortInfo aInfo;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotSortInfoContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotFieldContext* pDataPilotField);
virtual ~ScXMLDataPilotSortInfoContext();
};
class ScXMLDataPilotLayoutInfoContext : public SvXMLImportContext
{
// com::sun::star::sheet::DataPilotFieldLayoutInfo aInfo;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotLayoutInfoContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotFieldContext* pDataPilotField);
virtual ~ScXMLDataPilotLayoutInfoContext();
};
class ScXMLDataPilotSubTotalsContext : public SvXMLImportContext
{
ScXMLDataPilotFieldContext* pDataPilotField;
sal_Int16 nFunctionCount;
sal_uInt16* pFunctions;
::rtl::OUString maDisplayName;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotFieldContext* GetDataPilotField() { return pDataPilotField; }
ScXMLDataPilotSubTotalsContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotFieldContext* pDataPilotField);
virtual ~ScXMLDataPilotSubTotalsContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
void AddFunction(sal_Int16 nFunction);
void SetDisplayName(const ::rtl::OUString& rName);
};
class ScXMLDataPilotSubTotalContext : public SvXMLImportContext
{
ScXMLDataPilotSubTotalsContext* pDataPilotSubTotals;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotSubTotalContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotSubTotalsContext* pDataPilotSubTotals);
virtual ~ScXMLDataPilotSubTotalContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
};
class ScXMLDataPilotMembersContext : public SvXMLImportContext
{
ScXMLDataPilotFieldContext* pDataPilotField;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotMembersContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotFieldContext* pDataPilotField);
virtual ~ScXMLDataPilotMembersContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
};
class ScXMLDataPilotMemberContext : public SvXMLImportContext
{
ScXMLDataPilotFieldContext* pDataPilotField;
rtl::OUString sName;
rtl::OUString maDisplayName;
sal_Bool bDisplay;
sal_Bool bDisplayDetails;
sal_Bool bHasName;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotMemberContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotFieldContext* pDataPilotField);
virtual ~ScXMLDataPilotMemberContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
};
class ScXMLDataPilotGroupsContext : public SvXMLImportContext
{
ScXMLDataPilotFieldContext* pDataPilotField;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotGroupsContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotFieldContext* pDataPilotField);
virtual ~ScXMLDataPilotGroupsContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
};
class ScXMLDataPilotGroupContext : public SvXMLImportContext
{
ScXMLDataPilotFieldContext* pDataPilotField;
rtl::OUString sName;
::std::vector<rtl::OUString> aMembers;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotGroupContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotFieldContext* pDataPilotField);
virtual ~ScXMLDataPilotGroupContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
void AddMember(const rtl::OUString& sMember) { aMembers.push_back(sMember); }
};
class ScXMLDataPilotGroupMemberContext : public SvXMLImportContext
{
ScXMLDataPilotGroupContext* pDataPilotGroup;
rtl::OUString sName;
const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
public:
ScXMLDataPilotGroupMemberContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
const ::rtl::OUString& rLName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList,
ScXMLDataPilotGroupContext* pDataPilotGroup);
virtual ~ScXMLDataPilotGroupMemberContext();
virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
const ::rtl::OUString& rLocalName,
const ::com::sun::star::uno::Reference<
::com::sun::star::xml::sax::XAttributeList>& xAttrList );
virtual void EndElement();
};
#endif