diff -r 12f60d9a73b3 -r cbffe13eac63 csxhelp/HelpEngine/src/CSXHKywdTopics.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/csxhelp/HelpEngine/src/CSXHKywdTopics.cpp Wed Sep 01 12:30:56 2010 +0100 @@ -0,0 +1,179 @@ +/* +* 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: CCSXHKywdTopics class definition +* +*/ + +#include "CSXHKywdTopics.h" +#include "CSXHHTMLContentParser.h" +#include "CSXHHelpDataBase.h" +#include "CSXHViewIDs.h" +#include "csxhconstants.h" +#include "CSXHKywdTOC1.h" + +#include +#include + +//Implementation class. This class will be used when all the keywords has to be displayed +class MCSXHKywdTopicsBuilder : public MCSXHKywdBuilder + { + public: + static MCSXHKywdTopicsBuilder* NewL() + { + MCSXHKywdTopicsBuilder* self = MCSXHKywdTopicsBuilder::NewLC(); + CleanupStack::Pop(self); + return self; + } + static MCSXHKywdTopicsBuilder* NewLC() + { + MCSXHKywdTopicsBuilder* self = new(ELeave) MCSXHKywdTopicsBuilder(); + CleanupStack::PushL(self); + return self; + } + + void InsertKeywordL(CCSXHKywdTopics* aKwdTopics, const TDesC& aKwd,CCSXHHtmlTOC1*) + {aKwdTopics->InsertKywdL(aKwd);} + + void InsertKeywordL(CCSXHKywdTopics* aKwdTopics, const TDesC& aKwd,const TInt&) + {aKwdTopics->InsertKywdL(aKwd);} + + private: + MCSXHKywdTopicsBuilder(){} + }; + + +//Implementation class. This class will be used when user has selected a keyword and +// wants to navigate to the search result view +class MCSXHKywdSelectedItemBuilder : public MCSXHKywdBuilder + { + public: + static MCSXHKywdSelectedItemBuilder* NewL(CCSXHKywdTOC1* aCurrentTopic) + { + MCSXHKywdSelectedItemBuilder* self = MCSXHKywdSelectedItemBuilder::NewLC(aCurrentTopic); + CleanupStack::Pop(self); + return self; + } + static MCSXHKywdSelectedItemBuilder* NewLC(CCSXHKywdTOC1* aCurrentTopic) + { + MCSXHKywdSelectedItemBuilder* self = new(ELeave) + MCSXHKywdSelectedItemBuilder(aCurrentTopic); + CleanupStack::PushL(self); + return self; + } + void InsertKeywordL(CCSXHKywdTopics*, const TDesC& aKwd,CCSXHHtmlTOC1* aToc1) + { + if(iCurrentTopic->GetName().Compare(aKwd) == 0) + iCurrentTopic->AppendHtmlTOC1L(aToc1); + } + void InsertKeywordL(CCSXHKywdTopics*, const TDesC& aKwd,const TInt& aLegacyIndex) + { + if(iCurrentTopic->GetName().Compare(aKwd) == 0) + iCurrentTopic->LegacyIndex() = aLegacyIndex; + } + + private: + MCSXHKywdSelectedItemBuilder(CCSXHKywdTOC1* aCurrentTopic) + :iCurrentTopic(aCurrentTopic){} + CCSXHKywdTOC1* iCurrentTopic; + }; + +// --------------------------------------------------------- +// Items commented in header. +// --------------------------------------------------------- +CCSXHKywdTopics* CCSXHKywdTopics::NewL(const TApaAppCaption& aAppCaption) + { + CCSXHKywdTopics* self = CCSXHKywdTopics::NewLC(aAppCaption); + CleanupStack::Pop(self); + return self; + } +// --------------------------------------------------------- +// Items commented in header. +// --------------------------------------------------------- +CCSXHKywdTopics* CCSXHKywdTopics::NewLC(const TApaAppCaption& aAppCaption) + { + CCSXHKywdTopics* self = new(ELeave) CCSXHKywdTopics(aAppCaption); + CleanupStack::PushL(self); + return self; + } +// --------------------------------------------------------- +// Items commented in header. +// --------------------------------------------------------- +CCSXHKywdTopics::CCSXHKywdTopics(const TDesC& aName) : CCSXHGenericTOC1(aName) + {} +// --------------------------------------------------------- +// Items commented in header. +// --------------------------------------------------------- +CCSXHKywdTopics::~CCSXHKywdTopics() + { + if(iCurrentTopic) + delete iCurrentTopic; + } +// --------------------------------------------------------- +// Items commented in header. +// --------------------------------------------------------- +TUid CCSXHKywdTopics::GetViewID() const + { + return KCSXHKywdToc1ViewID; + } +// --------------------------------------------------------- +// Items commented in header. +// --------------------------------------------------------- +void CCSXHKywdTopics::CopyChildListL(CDesCArray* aArray) + { + iKywdTopics = aArray; + MCSXHKywdTopicsBuilder* builder = NULL; + builder = MCSXHKywdTopicsBuilder::NewL(); + CCSXHHelpDataBase::GetInstance()->FillKeywordTopicsL(builder); + delete builder; + } +// --------------------------------------------------------- +// Items commented in header. +// --------------------------------------------------------- +void CCSXHKywdTopics::InsertKywdL(const TDesC& aKywd) + { + TBuf child(KTabSpace); + child.Append(aKywd); + iKywdTopics->InsertIsqL(child); + } +// --------------------------------------------------------- +// Items commented in header. +// --------------------------------------------------------- +CCSXHHelpContentBase* CCSXHKywdTopics::GetChildL(const TDesC& aName) + { + if(iCurrentTopic) + { + delete iCurrentTopic; + iCurrentTopic = NULL; + } + + iCurrentTopic = CCSXHKywdTOC1::NewL(aName); + + MCSXHKywdSelectedItemBuilder* builder = NULL; + builder = MCSXHKywdSelectedItemBuilder::NewL(iCurrentTopic); + + CCSXHHelpDataBase::GetInstance()->FillKeywordTopicsL(builder); + + delete builder; + return iCurrentTopic; + } +// --------------------------------------------------------- +// Items commented in header. +// --------------------------------------------------------- +CCSXHKywdTOC1* CCSXHKywdTopics::GetSelectedTopic() + { + return iCurrentTopic; + } + + +