--- a/fep/aknfep/src/dbmanagement.cpp Tue Jul 06 14:38:41 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,335 +0,0 @@
-/*
-* Copyright (c) 2008 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: DB Engine
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-//system include files
-#include <aknfep.rsg>
-#include <PtiUserDicEntry.h>
-#include <PtiEngine.h>
-#include <StringLoader.h>
-
-//user inlucde files
-#include "dbmanagement.h"
-#include "AknFepGlobalEnums.h"
-#include "AknFepManager.h"
-#include "AknFepSharedDataInterface.h"
-
-// CONSTANTS
-const TInt KInputPhraseMaxLength = 7;
-const TInt KInvalidPhrase = -103;
-const TInt KPhraseExisted = -104;
-const TInt KPhraseNotExisted = -105;
-const TInt KInputPhraseOutRange = -106;
-const TInt KDBHasNoSpace = -150;
-
-// ---------------------------------------------------------
-// Symbian constructor
-// ---------------------------------------------------------
-//
-CDBManagement* CDBManagement::NewL( CAknFepManager* aFepManager )
- {
- CDBManagement* self = new( ELeave ) CDBManagement();
- CleanupStack::PushL( self );
- self->ConstructL(aFepManager);
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------
-//
-CDBManagement::CDBManagement()
- {
- }
-
-// ---------------------------------------------------------
-// Second phase constructor
-// ---------------------------------------------------------
-//
-void CDBManagement::ConstructL( CAknFepManager* aFepManager )
- {
- iAknFepSharedDataInterface = CAknFepSharedDataInterface::NewL( aFepManager );
- iFepManager = aFepManager;
- iPtiEngineOfFep = iFepManager->PtiEngine();
- iPtiEngine = CPtiEngine::NewL(ETrue);
- }
-
-// ---------------------------------------------------------
-// destructor
-// ---------------------------------------------------------
-//
-CDBManagement::~CDBManagement()
- {
- delete iAknFepSharedDataInterface;
- delete iPtiEngine;
- }
-
-// ---------------------------------------------------------
-// Add phrase to DB.
-// ---------------------------------------------------------
-//
-TBool CDBManagement::AddPhraseToDB( const TDesC& aPhraseAdd )
- {
- TInt retCode;
- TPtiUserDictionaryEntry addUdbEntry(aPhraseAdd);
- TRAP_IGNORE( ActivateLanguageOfFepL() );
- //Add the phrase to the DB by PTI Engine
- iPtiEngineOfFep->AddUserDictionaryEntry( addUdbEntry );
- retCode = iPtiEngine->AddUserDictionaryEntry( addUdbEntry );
- if ( KErrNone != retCode )
- {
- GetDBErrMsg( retCode );
- return EFalse;
- }
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// Edit phrase from DB
-// ---------------------------------------------------------
-//
-TBool CDBManagement::EditPhraseFromDB( const TDesC& aPhraseOld,
- const TDesC& aPhraseNew )
- {
- TBool retCode;
- //Add the new phrase to the DB by PTI Engine
- retCode = AddPhraseToDB( aPhraseNew );
- if ( !retCode )
- {
- GetDBErrMsg( retCode );
- return EFalse;
- }
- retCode = RemovePhraseFromDB( aPhraseOld );
- if ( !retCode )
- {
- GetDBErrMsg( retCode );
- return EFalse;
- }
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// Remove phrase from DB
-// ---------------------------------------------------------
-//
-TBool CDBManagement::RemovePhraseFromDB(const TDesC& aPhraseRemove )
- {
- TInt retCode;
- TPtiUserDictionaryEntry removeUdbEntry( aPhraseRemove );
- //Remove the phrase from the DB by PTI Engine
- TRAP_IGNORE( ActivateLanguageOfFepL() );
- iPtiEngineOfFep->RemoveEntryFromUserDictionary( removeUdbEntry );
- retCode = iPtiEngine->RemoveEntryFromUserDictionary( removeUdbEntry );
- if( KErrNone != retCode )
- {
- GetDBErrMsg( retCode );
- return EFalse;
- }
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// Get phrases from DB
-// ---------------------------------------------------------
-//
-TBool CDBManagement::GetPhraseFromDBL( CDesCArray& aPhraseGet )
- {
- TPtiUserDictionaryEntry getUdbEntry;
- TInt retCode;
- TInt i = 0;
- ActivateLanguage();
-
- retCode = iPtiEngine->GetUserDictionaryEntry(i, getUdbEntry);
-
- while (retCode == KErrNone)
- {
- aPhraseGet.AppendL(getUdbEntry.Word());
- i++;
- retCode = iPtiEngine->GetUserDictionaryEntry(i, getUdbEntry);
- }
-
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// Get Error Message
-// ---------------------------------------------------------
-//
-void CDBManagement::GetErrMsg( TDes& aErrMsg )
- {
- aErrMsg.Copy(iErrMsg);
- }
-
-// ---------------------------------------------------------
-// Check the input phrase
-// ---------------------------------------------------------
-//
-TBool CDBManagement::InputPhraseCheck( TDes& aPhraseInput )
- {
- const TUint16 KChineseUnicodeMin = 0x4E00;
- const TUint16 KChineseUnicodeMax = 0x9FA5;
- const TUint16 KSpaceUnicode = 0x0020;
- const TUint16 KKeytroke2Unicode = 0x4E28;
- const TUint16 KKeytroke3Unicode = 0x4E3F;
- const TUint16 KKeytroke4Unicode = 0x4E36;
- const TUint16 KKeytroke5Unicode = 0x4E5B;
- TBuf<KInputPhraseMaxLength> inputText;
- aPhraseInput.TrimAll();
- TBool inValidFlg = EFalse;
- //the input phrase length more than the max length
- if ( aPhraseInput.Length() > KInputPhraseMaxLength )
- {
- return EFalse;
- }
- //check every character of input phrase
- for ( TInt i = 0; i < aPhraseInput.Length(); ++i )
- {
- if ( ( (TInt)aPhraseInput[i] >= KChineseUnicodeMin ) &&
- ( (TInt)aPhraseInput[i] <= KChineseUnicodeMax ) )
- {
- if ( ( KKeytroke2Unicode == (TInt)aPhraseInput[i] ) ||
- ( KKeytroke3Unicode == (TInt)aPhraseInput[i] ) ||
- ( KKeytroke4Unicode == (TInt)aPhraseInput[i] ) ||
- ( KKeytroke5Unicode == (TInt)aPhraseInput[i] ) )
- {
- inValidFlg = ETrue;
- }
- else
- {
- inputText.Append( aPhraseInput[i] );
- }
- }
- else
- {
- if ( KSpaceUnicode != (TInt)aPhraseInput[i] )
- {
- inValidFlg = ETrue;
- }
- }
- }
-
- //out the chinese phrase.
- aPhraseInput = inputText;
-
- if ( inValidFlg )
- {
- StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_NOTE_ONLY_CHINESE_TEXT );
- return EFalse;
- }
-
- if ( aPhraseInput.Length() < 2 )
- {
- StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_NOTE_TOO_SHORT_TEXT );
- return EFalse;
- }
-
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// Set language
-// ---------------------------------------------------------
-//
-void CDBManagement::ActivateLanguageL()
- {
- TInt epocLanguageID = iAknFepSharedDataInterface->InputTextLanguage();
- iPtiEngine->ActivateLanguageL((TLanguage)epocLanguageID);
- switch(epocLanguageID)
- {
- case ELangHongKongChinese:
- iPtiEngine->SetInputMode( EPtiEngineStrokeByPhrase );
- break;
- case ELangTaiwanChinese:
- iPtiEngine->SetInputMode( EPtiEngineZhuyinByPhrase );
- break;
- case ELangPrcChinese:
- iPtiEngine->SetInputMode( EPtiEnginePinyinByPhrase );
- break;
- }
- }
-
-// ---------------------------------------------------------
-// Set language
-// ---------------------------------------------------------
-//
-void CDBManagement::ActivateLanguageOfFepL()
- {
- TInt epocLanguageID = iAknFepSharedDataInterface->InputTextLanguage();
- iPtiEngineOfFep->ActivateLanguageL((TLanguage)epocLanguageID);
- switch(epocLanguageID)
- {
- case ELangHongKongChinese:
- iPtiEngineOfFep->SetInputMode( EPtiEngineStroke );
- break;
- case ELangTaiwanChinese:
- iPtiEngineOfFep->SetInputMode( EPtiEngineZhuyinByPhrase );
- break;
- case ELangPrcChinese:
- iPtiEngineOfFep->SetInputMode( EPtiEnginePinyin );
- break;
- }
- }
-
-// ---------------------------------------------------------
-// Set language
-// ---------------------------------------------------------
-//
-void CDBManagement::ActivateLanguage()
- {
- TRAP_IGNORE( ActivateLanguageL() );
- }
-
-// ---------------------------------------------------------
-// Get the ptiengine's error
-// ---------------------------------------------------------
-//
-void CDBManagement::GetDBErrMsg( TInt aErrCode )
- {
- switch( aErrCode )
- {
- case KInvalidPhrase:
- StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_NOTE_INVALID_PHRASE_TEXT );
- break;
- case KPhraseExisted:
- StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_NOTE_PHRASE_EXISTED_TEXT );
- break;
- case KPhraseNotExisted:
- StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_NOTE_NOT_EXISTED_TEXT );
- break;
- case KInputPhraseOutRange:
- StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_PHRASE_TOO_LONG_TEXT );
- break;
- case KDBHasNoSpace:
- StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_NOTE_DB_HAVE_NO_SPACE_TEXT );
- break;
- default:
- break;
- }
- }
-
-//End of File