--- a/csxhelp/HelpEngine/src/CSXHXMLParseHandler.cpp Thu Aug 19 09:42:56 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,808 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: CCSXHXMLParseHandler class definition
-*
-*/
-
-#include "CSXHXMLParseHandler.h"
-#include "CSXHHtmlTOC2.h"
-#include "CSXHKywdTopics.h"
-#include "CSXHHelpDataBase.h"
-#include "CSXHHtmlTOC1.h"
-#include "csxhconstants.h"
-#include "CSXHHTMLContentParser.h"
-
-#include <aknnotewrappers.h>
-#include <utf.h>
-#include <eikenv.h>
-#include <bautils.h>
-
-
-CCSXHXMLParseHandler::CCSXHXMLParseHandler(CCoeEnv* aCoeEnv)
- {
- iCoeEnv = aCoeEnv;
- }
-
-CCSXHXMLParseHandler::~CCSXHXMLParseHandler()
- {
- if(iFeatureIds)
- {
- delete iFeatureIds;
- iFeatureIds = NULL;
- }
- }
-TInt CCSXHXMLParseHandler::StartDocument()
- {
- return KErrNone;
- }
-
-TInt CCSXHXMLParseHandler::EndDocument()
- {
- return KErrNone;
- }
-
-void CCSXHXMLParseHandler::SetDataBasePtr(CCSXHHelpDataBase* aDataBase)
- {
- iDataBase = aDataBase;
- }
-
-TDesC& CCSXHXMLParseHandler::GetApplicationName()
- {
- return iApplicationName;
- }
-
-TPtr CCSXHXMLParseHandler::GetFeatureIds()
- {
- return iFeatureIds->Des();
- }
-
-TBool CCSXHXMLParseHandler::SetAppNameFlag(const TDesC8& alocalName,const TDesC& aAppTag)
- {
- //R_TYPE_APPLICATION_TAG_NAME
- TBool Result = EFalse;
- TBuf<KMaxFileName> AppName;
- CnvUtfConverter::ConvertToUnicodeFromUtf8(AppName,alocalName);
- if(AppName.Compare(aAppTag) == 0)
- {
- iApplicationName.Copy(KEmptyString);
- Result = ETrue;
- }
- else
- {
- Result = EFalse;
- }
- return Result;
- }
-
-//-------------- CCSXHXMLParseHandler_Kywd -------------------
-
-void CCSXHXMLParseHandler_Kywd::SetHtmlContentParserPtr(CCSXHHTMLContentParser* aParser)
- {
- iParser = aParser;
- }
-
-CCSXHXMLParseHandler_Kywd* CCSXHXMLParseHandler_Kywd::NewL(CCoeEnv* aCoeEnv)
- {
- CCSXHXMLParseHandler_Kywd* self = new (ELeave)CCSXHXMLParseHandler_Kywd(aCoeEnv);
- return self;
- }
-
-CCSXHXMLParseHandler_Kywd::CCSXHXMLParseHandler_Kywd(CCoeEnv* aCoeEnv)
-:CCSXHXMLParseHandler(aCoeEnv)
- {
- iCurrentHtmlToc1 = NULL;
- iIsTargetName = EFalse;
- }
-
-TInt CCSXHXMLParseHandler_Kywd::StartElement (const TDesC8& /*iURI*/ , const TDesC8&
-alocalName, const TDesC8& /*iqualname*/, const RAttributeArray& aAttributes)
- {
- if(iFeatureIds)
- {
- delete iFeatureIds;
- iFeatureIds = NULL;
- }
-
-
- TRAP_IGNORE(iFeatureIds = HBufC::NewL(2));
- TPtr FIdValue = iFeatureIds->Des();
- FIdValue.Copy(_L("-1"));
-
- if(iIsTOC2View)
- {
- CreateTOC2ObjectsforKeywordSearch(alocalName,aAttributes);
- }
- else
- {
- iIsAppName = SetAppNameFlag(alocalName,KSearchViewTOC1Tag);
-
- TInt nElements = aAttributes.Count();
- TBuf<KMaxFileName> TagName;
- RAttribute AttributeInfo;
- RTagInfo TagInformation;
- CnvUtfConverter::ConvertToUnicodeFromUtf8(TagName,alocalName);
-
- for(TInt i=0; i<nElements; i++)
- {
- AttributeInfo = aAttributes.operator[](i);
- TagInformation = AttributeInfo.Attribute();
-
- TBuf<KMaxUnits> LocalName;
- //Read from resource file
- CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalName,TagInformation.LocalName().DesC());
- if(LocalName.Compare(_L("FeatureID")) == 0 && TagName.Compare(_L("text")) == 0)
- {
- if(iFeatureIds)
- {
- delete iFeatureIds;
- iFeatureIds = NULL;
- }
-
- TRAP_IGNORE(iFeatureIds = HBufC::NewL(AttributeInfo.Value().DesC().Length()));
- TPtr FIdValue = iFeatureIds->Des();
- CnvUtfConverter::ConvertToUnicodeFromUtf8(FIdValue,AttributeInfo.Value().DesC());
- }
- }
- }
- return KErrNone;
- }
-
-TInt CCSXHXMLParseHandler_Kywd::EndElement ( const TDesC8& ,const TDesC8& ,const TDesC8& )
- {
- TRAP_IGNORE(CreateAndInsertKywdL());//Result can be ignored
- iIsTargetName = EFalse;
- iIsAppName = EFalse;
- return KErrNone;
- }
-
-TInt CCSXHXMLParseHandler_Kywd::Characters (const TDesC8& aBuff, const TInt /*aStart*/, const TInt /*aLength*/)
- {
- TBuf<KMaxFileName> TitleName;
- if(iIsAppName)
- {
- CnvUtfConverter::ConvertToUnicodeFromUtf8(TitleName,aBuff);
- iApplicationName.Append(TitleName);
- }
- else if(iIsTargetName)
- {
- CnvUtfConverter::ConvertToUnicodeFromUtf8(TitleName,aBuff);
- iKeywordSearchTOC2TitleName.Append(TitleName);
- }
- return KErrNone;
- }
-
-void CCSXHXMLParseHandler_Kywd::CreateTOC2ObjectsforKeywordSearch(const TDesC8&
- alocalName, const RAttributeArray& aAttributes)
- {
- iIsAppName = SetAppNameFlag(alocalName,KSearchViewTOC1Tag);
-
- TInt nElements = aAttributes.Count();
- TBuf<KMaxFileName>TagValue;
- RAttribute AttributeInfo;
- RTagInfo TagInformation;
-
- TBuf<KMaxFileName> AppName;
- CnvUtfConverter::ConvertToUnicodeFromUtf8(AppName,alocalName);
- if(AppName.Compare(KSearchViewTOC2Tag) == 0)
- {
- iKeywordSearchTOC2TitleName.Copy(KEmptyString);
- iIsTargetName = ETrue;
- }
- else
- {
- iIsTargetName = EFalse;
- }
-
- if(!iIsTOC2View)
- return;
-
- for(TInt i=0; i<nElements; i++)
- {
- AttributeInfo = aAttributes.operator[](i);
- TagInformation = AttributeInfo.Attribute();
-
- TBuf<KMaxUnits> LocalName;
- //Read from resource file
- CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalName,TagInformation.LocalName().DesC());
- if(LocalName.Compare(KHtmlPageTag) == 0)
- {
- CnvUtfConverter::ConvertToUnicodeFromUtf8(iHTMLPageName,
- AttributeInfo.Value().DesC());
- }
- else if(LocalName.Compare(_L("FeatureID")) == 0)
- {
- if(iFeatureIds)
- {
- delete iFeatureIds;
- iFeatureIds = NULL;
- }
- TRAP_IGNORE(iFeatureIds = HBufC::NewL(AttributeInfo.Value().DesC().Length()));
- TPtr FIdValue = iFeatureIds->Des();
- CnvUtfConverter::ConvertToUnicodeFromUtf8(FIdValue,AttributeInfo.Value().DesC());
-
- }
- }
-
- }
-
-void CCSXHXMLParseHandler_Kywd::CreateAndInsertKywdL()
- {
- if(iParser->CheckFeatureIDL(iFeatureIds->Des()))
- {
- if(iIsAppName && !iIsTOC2View)
- {
- iDataBase->InsertKeywordL(iApplicationName,iCurrentHtmlToc1);
- }
- else if(iIsTargetName && iApplicationName.Compare(iTOC1Name)==0)
- {
- CCSXHHtmlTOC2* PXHTMLObject =
- CCSXHHtmlTOC2::NewL(iCurrentHtmlToc1,iKeywordSearchTOC2TitleName,iHTMLPageName,ETrue);
- PXHTMLObject->SetKywdParent(STATIC_CAST(CCSXHKywdTopics*,iDataBase->GetKywdTopics())
- ->GetSelectedTopic());
- STATIC_CAST(CCSXHHtmlTOC2*,PXHTMLObject)->SetHtmlFilePath(iFilePath);
- iDataBase->InsertKeywordTopicL(/*iTOC1Name,*/PXHTMLObject);
- }
- }
- }
-
-void CCSXHXMLParseHandler_Kywd::SetTOC1Title(const TDesC& aName)
- {
- iTOC1Name = aName;
- }
-
-void CCSXHXMLParseHandler_Kywd::SetCurrentHtmlToc1(CCSXHHtmlTOC1* aCurrentHtmlToc1)
- {
- iCurrentHtmlToc1 = aCurrentHtmlToc1;
- }
-
-void CCSXHXMLParseHandler_Kywd::SetIsTOC2(TBool aFlag)
- {
- iIsTOC2View = aFlag;
- }
-
-void CCSXHXMLParseHandler_Kywd::SetPath(const TDesC& aFilePath)
- {
- iFilePath.Copy(KEmptyString);
- iFilePath.Append(aFilePath);
- }
-
-//-------------- CCSXHXMLParseHandler_MetaFile -------------------
-
-CCSXHXMLParseHandler_MetaFile* CCSXHXMLParseHandler_MetaFile::NewL(CCoeEnv* aCoeEnv)
- {
- CCSXHXMLParseHandler_MetaFile* self = new (ELeave)CCSXHXMLParseHandler_MetaFile(aCoeEnv);
- return self;
- }
-
-CCSXHXMLParseHandler_MetaFile::CCSXHXMLParseHandler_MetaFile(CCoeEnv* aCoeEnv)
-:CCSXHXMLParseHandler(aCoeEnv)
- {
-
- }
-TInt CCSXHXMLParseHandler_MetaFile::StartElement (const TDesC8& , const TDesC8&
-alocalName, const TDesC8& , const RAttributeArray& aAttributes)
- {
- iIsAppName = SetAppNameFlag(alocalName,KAppNameTag);
-
- TInt nElements = aAttributes.Count();
- TBuf<KMaxFileName> LocalTagName;
- RAttribute AttributeInfo;
- RTagInfo TagInformation;
-
- CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalTagName,alocalName);
- for(TInt i=0; i<nElements; i++)
- {
- AttributeInfo = aAttributes.operator[](i);
- TagInformation = AttributeInfo.Attribute();
-
- if(iFeatureIds)
- {
- delete iFeatureIds;
- iFeatureIds = NULL;
- }
-
- TRAP_IGNORE(iFeatureIds = HBufC::NewL(AttributeInfo.Value().DesC().Length()));
- TPtr FIdValue = iFeatureIds->Des();
- CnvUtfConverter::ConvertToUnicodeFromUtf8(FIdValue,AttributeInfo.Value().DesC());
- }
-
- if(LocalTagName.Compare(KAppNameTag) == 0 && nElements == 0)
- {
- if(iFeatureIds)
- {
- delete iFeatureIds;
- iFeatureIds = NULL;
- }
-
- TRAP_IGNORE(iFeatureIds = HBufC::NewL(2));
- TPtr FIdValue = iFeatureIds->Des();
- FIdValue.Copy(_L("-1"));
- }
-
- if ( LocalTagName.Compare(KPriorityTag) == 0 && nElements == 0 )
- {
- iIsPriority = ETrue;
- iPriority.Copy(KEmptyString);
- }
- else
- {
- iIsPriority = EFalse;
- }
-
- return KErrNone;
- }
-
-TInt CCSXHXMLParseHandler_MetaFile::EndElement ( const TDesC8& ,const TDesC8& ,const TDesC8& )
- {
- iIsAppName = EFalse;
- iIsPriority = EFalse;
- return KErrNone;
- }
-
-TInt CCSXHXMLParseHandler_MetaFile::Characters (const TDesC8& aBuff, const TInt /*aStart*/, const TInt /*aLength*/)
- {
- if (iIsAppName)
- {
- TBuf<KMaxFileName> TitleName;
- CnvUtfConverter::ConvertToUnicodeFromUtf8(TitleName,aBuff);
- iApplicationName.Append(TitleName);
- }
-
- if (iIsPriority)
- {
- TBuf<8> Priority;
- CnvUtfConverter::ConvertToUnicodeFromUtf8(Priority,aBuff);
- iPriority.Append(Priority);
- }
-
- return KErrNone;
- }
-
-TInt32 CCSXHXMLParseHandler_MetaFile::Priority()
- {
- //The default priority is set to 0
- TInt priority = 0;
-
- if (iPriority.Length() != 0)
- {
- TLex lex( iPriority );
- lex.Val( priority );
- iPriority.Copy(KEmptyString);
- }
-
- return priority;
- }
-
-
-//-------------- CCSXHXMLParseHandler_MasterMetaFile -------------------
-CCSXHXMLParseHandler_MasterMetaFile* CCSXHXMLParseHandler_MasterMetaFile::NewL(CCoeEnv* aCoeEnv)
- {
- CCSXHXMLParseHandler_MasterMetaFile* self = new (ELeave)CCSXHXMLParseHandler_MasterMetaFile(aCoeEnv);
- return self;
- }
-
-CCSXHXMLParseHandler_MasterMetaFile::CCSXHXMLParseHandler_MasterMetaFile(CCoeEnv* aCoeEnv)
-:CCSXHXMLParseHandler(aCoeEnv)
- {
-
- }
-
-TInt CCSXHXMLParseHandler_MasterMetaFile::StartElement (const TDesC8& , const TDesC8&
-, const TDesC8& , const RAttributeArray& aAttributes)
- {
- TRAP_IGNORE(CreateTOC1ObjectsL(aAttributes));
- return KErrNone;
- }
-
-
-
-void CCSXHXMLParseHandler_MasterMetaFile::CreateTOC1ObjectsL(const
- RAttributeArray& aAttributes)
- {
- TInt nElements = aAttributes.Count();
- TBuf<KMaxFileName> appUid;
- TBuf<KMaxFileName> appName;
- TBuf<8> priorityBuf;
- TInt32 appPriority;
- RAttribute AttributeInfo;
- RTagInfo TagInformation;
- TLinearOrder<CCSXHHelpContentBase> anOrder(Orderer<CCSXHHelpContentBase>);
-
- for(TInt i=0; i<nElements; i++)
- {
- AttributeInfo = aAttributes.operator[](i);
- TagInformation = AttributeInfo.Attribute();
-
- TBuf<KMaxUnits> LocalName;
- //Read from resource file
- CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalName,TagInformation.LocalName().DesC());
-
- if ( LocalName.Compare( KDriveInfo ) == 0 )
- {
- TChar driveLetter(AttributeInfo.Value().DesC()[0]);
- RFs::CharToDrive( driveLetter, iDrive );
- }
-
- if(LocalName.Compare(KMasterCollection_idTag) == 0)
- {
- CnvUtfConverter::ConvertToUnicodeFromUtf8(appUid,AttributeInfo.Value().DesC());
- }
-
- if (LocalName.Compare(KPriorityTag) == 0)
- {
- CnvUtfConverter::ConvertToUnicodeFromUtf8(priorityBuf,AttributeInfo.Value().DesC());
- TLex lex( priorityBuf );
- lex.Val( appPriority );
- }
-
- if(LocalName.Compare(KTOC2NameTag) == 0)
- {
- CnvUtfConverter::ConvertToUnicodeFromUtf8(appName,AttributeInfo.Value().DesC());
- if(2 == nElements)
- {
- if(iFeatureIds)
- {
- delete iFeatureIds;
- iFeatureIds = NULL;
- }
-
- iFeatureIds = HBufC::NewL(2);
- TPtr FIdValue = iFeatureIds->Des();
- FIdValue.Copy(_L("-1"));
- }
-
-
- iParser->InsertHTMLToc1L( appUid, appName, iDrive, iDataBase, iFeatureIds->Des(), appPriority );
- }
-
- if(LocalName.Compare(_L("FeatureID")) == 0)
- {
- if(iFeatureIds)
- {
- delete iFeatureIds;
- iFeatureIds = NULL;
- }
-
- iFeatureIds = HBufC::NewL(AttributeInfo.Value().DesC().Length());
- TPtr FIdValue = iFeatureIds->Des();
- CnvUtfConverter::ConvertToUnicodeFromUtf8(FIdValue,AttributeInfo.Value().DesC());
- }
- }
- }
-
-void CCSXHXMLParseHandler_MasterMetaFile::SetHtmlContentParserPtr(CCSXHHTMLContentParser* aParser)
- {
- iParser = aParser;
- }
-
-
-//-------------- CCSXHXMLParseHandler_IndexFile -------------------
-
-CCSXHXMLParseHandler_IndexFile* CCSXHXMLParseHandler_IndexFile::NewL(CCoeEnv* aCoeEnv)
- {
- CCSXHXMLParseHandler_IndexFile* self = new (ELeave)CCSXHXMLParseHandler_IndexFile(aCoeEnv);
- return self;
- }
-
-CCSXHXMLParseHandler_IndexFile::CCSXHXMLParseHandler_IndexFile(CCoeEnv* aCoeEnv)
-:CCSXHXMLParseHandler(aCoeEnv)
- {
-
- }
-
-TInt CCSXHXMLParseHandler_IndexFile::StartElement (const TDesC8& , const TDesC8&
-, const TDesC8& , const RAttributeArray& aAttributes)
- {
- if(iFeatureIds)
- {
- delete iFeatureIds;
- iFeatureIds = NULL;
- }
-
- TRAP_IGNORE(iFeatureIds = HBufC::NewL(2));
- TPtr FIdValue = iFeatureIds->Des();
- FIdValue.Copy(_L("-1"));
-
- TRAP_IGNORE(CreateTOC2ObjectsL(aAttributes));
- return KErrNone;
- }
-
-void CCSXHXMLParseHandler_IndexFile::SetArray(RPointerArray<CCSXHHelpContentBase>* aHTMLlist)
- {
- iTOC2Array = aHTMLlist;
- }
-
-void CCSXHXMLParseHandler_IndexFile::SetGenericTOC1Object(CCSXHGenericTOC1& aParent)
- {
- iParent = &aParent;
- }
-
-void CCSXHXMLParseHandler_IndexFile::SetHtmlContentParserPtr(CCSXHHTMLContentParser* aParser)
- {
- iParser = aParser;
- }
-
-
-void CCSXHXMLParseHandler_IndexFile::CreateTOC2ObjectsL(const
- RAttributeArray& aAttributes)
- {
- TInt nElements = aAttributes.Count();
- TBuf<KMaxFileName>TagValue;
- RAttribute AttributeInfo;
- RTagInfo TagInformation;
- TLinearOrder<CCSXHHelpContentBase> anOrder(Orderer<CCSXHHelpContentBase>);
-
- for(TInt i=0; i<nElements; i++)
- {
- AttributeInfo = aAttributes.operator[](i);
- TagInformation = AttributeInfo.Attribute();
-
- TBuf<KMaxUnits> LocalName;
- //Read from resource file
- CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalName,TagInformation.LocalName().DesC());
-
- if(LocalName.Compare(KTOC2NameTag) == 0)
- {
- if(iParser->CheckFeatureIDL(iFeatureIds->Des()) || 2 == nElements)
- {
- CnvUtfConverter::ConvertToUnicodeFromUtf8(TagValue,AttributeInfo.Value().DesC());
-
- CCSXHGenericTOC2* PXHTMLObject = CCSXHHtmlTOC2::NewL(iParent,
- TagValue,iHTMLPageName);
-
- STATIC_CAST(CCSXHHtmlTOC2*,PXHTMLObject)->SetHtmlFilePath(iFilePath);
-
- if (KErrNone != iTOC2Array->InsertInOrder(PXHTMLObject,anOrder))
- delete PXHTMLObject;
- }
- }
- else if(LocalName.Compare(KHtmlPageTag) == 0)
- {
- CnvUtfConverter::ConvertToUnicodeFromUtf8(iHTMLPageName,
- AttributeInfo.Value().DesC());
- }
- else if(LocalName.Compare(KCompressedTag) == 0)
- {
- CnvUtfConverter::ConvertToUnicodeFromUtf8(iCompressString,
- AttributeInfo.Value().DesC());
- }
- else if(LocalName.Compare(_L("FeatureID")) == 0)
- {
- if(iFeatureIds)
- {
- delete iFeatureIds;
- iFeatureIds = NULL;
- }
-
- iFeatureIds = HBufC::NewL(AttributeInfo.Value().DesC().Length());
- TPtr FIdValue = iFeatureIds->Des();
- CnvUtfConverter::ConvertToUnicodeFromUtf8(FIdValue,AttributeInfo.Value().DesC());
- }
- }
- }
-
-void CCSXHXMLParseHandler_IndexFile::SetPath(const TDesC& aFilePath)
- {
- iFilePath.Copy(KEmptyString);
- iFilePath.Append(aFilePath);
- }
-
-//-------------- CCSXHXMLParseHandler_MasterKeywordFile -------------------
-
-CCSXHXMLParseHandler_MasterKywd* CCSXHXMLParseHandler_MasterKywd::NewL(CCoeEnv* aCoeEnv)
- {
- CCSXHXMLParseHandler_MasterKywd* self = new (ELeave)CCSXHXMLParseHandler_MasterKywd(aCoeEnv);
- return self;
- }
-
-CCSXHXMLParseHandler_MasterKywd::CCSXHXMLParseHandler_MasterKywd(CCoeEnv* aCoeEnv)
-:CCSXHXMLParseHandler(aCoeEnv)
- {
-
- }
-
-TInt CCSXHXMLParseHandler_MasterKywd::StartElement (const TDesC8& , const TDesC8&
-, const TDesC8& , const RAttributeArray& aAttributes)
- {
- TRAP_IGNORE(CreateTOC1ObjectsL(aAttributes));
- return KErrNone;
- }
-
-void CCSXHXMLParseHandler_MasterKywd::SetHtmlContentParserPtr(CCSXHHTMLContentParser* aParser)
- {
- iParser = aParser;
- }
-
-void CCSXHXMLParseHandler_MasterKywd::SetCurrentHtmlToc1(CCSXHHtmlTOC1* aCurrentHtmlToc1)
- {
- iCurrentHtmlToc1 = aCurrentHtmlToc1;
- }
-
-void CCSXHXMLParseHandler_MasterKywd::CreateTOC1ObjectsL(const
- RAttributeArray& aAttributes)
- {
- TInt nElements = aAttributes.Count();
- TBuf<KMaxFileName> appUid;
- TBuf<KMaxFileName> KeywordName;
- RAttribute AttributeInfo;
- RTagInfo TagInformation;
-
- TLinearOrder<CCSXHHelpContentBase> anOrder(Orderer<CCSXHHelpContentBase>);
-
- for(TInt i=0; i<nElements; i++)
- {
- AttributeInfo = aAttributes.operator[](i);
- TagInformation = AttributeInfo.Attribute();
-
- TBuf<KMaxUnits> LocalName;
- //Read from resource file
- CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalName,TagInformation.LocalName().DesC());
-
- if(LocalName.Compare(KMasterSearchTag) == 0)
- {
- CnvUtfConverter::ConvertToUnicodeFromUtf8(KeywordName,AttributeInfo.Value().DesC());
- }
-
- if(LocalName.Compare(KMasterCollectionTag) == 0)
- {
- CnvUtfConverter::ConvertToUnicodeFromUtf8(appUid,AttributeInfo.Value().DesC());
- if(2 == nElements)
- {
- if(iParser->GetHTMLToc1(appUid,this))
- iDataBase->InsertKeywordL(KeywordName,iCurrentHtmlToc1);
- }
- }
-
- if(LocalName.Compare(_L("FeatureID")) == 0)
- {
- if(iFeatureIds)
- {
- delete iFeatureIds;
- iFeatureIds = NULL;
- }
-
- iFeatureIds = HBufC::NewL(AttributeInfo.Value().DesC().Length());
- TPtr FIdValue = iFeatureIds->Des();
- CnvUtfConverter::ConvertToUnicodeFromUtf8(FIdValue,AttributeInfo.Value().DesC());
-
- if(iParser->CheckFeatureIDL(iFeatureIds->Des()))
- {
- if(iParser->GetHTMLToc1(appUid,this))
- iDataBase->InsertKeywordL(KeywordName,iCurrentHtmlToc1);
- }
- }
- }
- }
-
-//-------------- CCSXHXMLParseHandler_RedirectFile -------------------
-
-CCSXHXMLParseHandler_RedirectFile* CCSXHXMLParseHandler_RedirectFile::NewL( CCoeEnv *aCoeEnv,
- const TUid &aSourceUid, const TCoeContextName &aSourceContextName )
- {
- CCSXHXMLParseHandler_RedirectFile* self =
- new (ELeave)CCSXHXMLParseHandler_RedirectFile( aCoeEnv, aSourceUid, aSourceContextName );
- return self;
- }
-
-CCSXHXMLParseHandler_RedirectFile::CCSXHXMLParseHandler_RedirectFile( CCoeEnv *aCoeEnv,
- const TUid &aSourceUid, const TCoeContextName &aSourceContextName )
-:CCSXHXMLParseHandler( aCoeEnv ), iSourceContextName( aSourceContextName ), iTargetUid( aSourceUid )
- {
- }
-TInt CCSXHXMLParseHandler_RedirectFile::StartElement (const TDesC8& ,
- const TDesC8 &alocalName, const TDesC8& , const RAttributeArray &aAttributes)
- {
- if ( !iIsTargetPathFound )
- {
- TBuf<KMaxFileName> LocalTagName;
-
- CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalTagName,alocalName);
-
- if ( LocalTagName.Compare(KFromTag) == 0 )
- {
- iIsFromTag = ETrue;
- iIsToTag = EFalse;
- }
- else if (LocalTagName.Compare(KToTag) == 0 )
- {
- iIsToTag = ETrue;
- iIsFromTag = EFalse;
- }
- else
- {
- iIsFromTag = EFalse;
- iIsToTag = EFalse;
- }
- iFromContent.Copy(KEmptyString);
- }
-
- return KErrNone;
- }
-
-TInt CCSXHXMLParseHandler_RedirectFile::EndElement ( const TDesC8& ,const TDesC8& ,const TDesC8& )
- {
- if ( iIsFromTag && iFromContent.Compare( iSourceContextName ) == 0 )
- {
- iIsSourceContextNameFound = ETrue;
- }
- else
- {
- iIsSourceContextNameFound = EFalse;
- }
-
- iIsFromTag = EFalse;
- iIsToTag = EFalse;
-
- return KErrNone;
- }
-
-TInt CCSXHXMLParseHandler_RedirectFile::Characters (const TDesC8& aBuff, const TInt /*aStart*/, const TInt /*aLength*/)
- {
- if ( iIsFromTag )
- {
- TCoeContextName file;
- CnvUtfConverter::ConvertToUnicodeFromUtf8(file,aBuff);
- iFromContent.Append(file);
- }
-
- else if ( iIsSourceContextNameFound && iIsToTag )
- {
- TBuf<KMaxFileName> targetPath;
- CnvUtfConverter::ConvertToUnicodeFromUtf8(targetPath,aBuff);
- iTargetPath.Append(targetPath);
-
- iIsTargetPathFound = ETrue;
- }
-
- return KErrNone;
- }
-
-TUid CCSXHXMLParseHandler_RedirectFile::TargetUid()
- {
- TInt loc = iTargetPath.Find( KHexPrefix );
- if ( loc != KErrNotFound )
- {
- TLex lex( iTargetPath.Mid( loc+KHexPrefixLength, KHexUidLength ) );
- TUint appId = 0;
- lex.Val( appId, EHex );
-
- if ( appId )
- {
- iTargetUid = TUid::Uid( (TInt)appId );
- }
- }
-
- return iTargetUid;
- }
-
-TBuf<KMaxFileName>& CCSXHXMLParseHandler_RedirectFile::TargetContextName()
- {
- TInt loc = iTargetPath.Find( KHexPrefix );
- if ( loc != KErrNotFound )
- {
- iTargetContextName = iTargetPath.Mid( loc + KOffsetFromUidToContext );
- }
- else
- {
- iTargetContextName = iTargetPath;
- }
-
- return iTargetContextName;
- }
-
-TBool CCSXHXMLParseHandler_RedirectFile::IsTargetPathFound()
- {
- return iIsTargetPathFound;
- }
-