diff -r 819e59dfc032 -r 2d9cac8919d3 utilityapps/loadgen/ui/avkon/src/loadgen_editors.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/utilityapps/loadgen/ui/avkon/src/loadgen_editors.cpp Mon Oct 18 16:30:05 2010 +0300 @@ -0,0 +1,1437 @@ +/* +* Copyright (c) 2010 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: +* +*/ + + +// INCLUDE FILES +#include "loadgen_editors.h" +#include "loadgen_loadattributes.h" +#include "loadgen.hrh" +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// ===================================== MEMBER FUNCTIONS ===================================== + +// -------------------------------------------------------------------------------------------- + +CLoadGenLoadTypeEditorBase::CLoadGenLoadTypeEditorBase(TBool aEditingExisting): + iEditingExisting(aEditingExisting) + { + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenLoadTypeEditorBase::ConstructL(const TDesC& aTitleText) + { + CAknForm::ConstructL(); + + // set title text + CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane(); + CAknTitlePane* tp = static_cast( sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ); + tp->SetTextL( aTitleText ); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenLoadTypeEditorBase::PreLayoutDynInitL() + { + CAknForm::PreLayoutDynInitL(); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenLoadTypeEditorBase::OkToExitL(TInt /*aButtonId*/) + { + return ETrue; + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenLoadTypeEditorBase::HandleControlStateChangeL(TInt aControlId) + { + CAknForm::HandleControlStateChangeL(aControlId); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenLoadTypeEditorBase::RunQueryLD() + { + User::Panic(_L("Unk.form"), 222); + + return ETrue; + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenLoadTypeEditorBase::DoRunQueryLD(TInt aResource) + { + return ExecuteLD(aResource); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenLoadTypeEditorBase::InsertFieldAfterL(TInt aResourceId, TInt aControlId, TInt aPrevControlId) + { + CCoeControl* prevControl = Control(aPrevControlId); + __ASSERT_DEBUG(prevControl, User::Panic(_L("Form.Ctrl.Null"), 111)); + TInt pos = FindLineIndex(*prevControl); + pos = pos + 1; + InsertLineL(pos, aResourceId); + Line(aControlId)->ActivateL(); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenLoadTypeEditorBase::UpdateFormL() + { + UpdatePageL(ETrue); + } + +// -------------------------------------------------------------------------------------------- +// -------------------------------------------------------------------------------------------- + +CLoadGenCPULoadEditor* CLoadGenCPULoadEditor::NewL(TCPULoadAttributes& aAttributes, TBool aEditingExisting) + { + CLoadGenCPULoadEditor* self = new(ELeave) CLoadGenCPULoadEditor(aAttributes, aEditingExisting); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenCPULoadEditor::~CLoadGenCPULoadEditor() + { + delete iCpuQueryValText; + delete iCpuTextArray; + delete iCPUsArray; + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenCPULoadEditor::CLoadGenCPULoadEditor(TCPULoadAttributes& aAttributes, TBool aEditingExisting) : + CLoadGenLoadTypeEditorBase(aEditingExisting), iAttributes(aAttributes) + { + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenCPULoadEditor::ConstructL() + { + CLoadGenLoadTypeEditorBase::ConstructL(_L("CPU load")); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenCPULoadEditor::PreLayoutDynInitL() + { + CLoadGenLoadTypeEditorBase::PreLayoutDynInitL(); + + // load values to static editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenCPULoadQueryPriority)); + CAknPopupFieldText* edMode = static_cast(Control(ELoadGenCPULoadQueryMode)); + CAknPopupFieldText* edType = static_cast(Control(ELoadGenCPULoadQueryType)); + edPriority->SetCurrentValueIndex(iAttributes.iPriority); + edMode->SetCurrentValueIndex(iAttributes.iMode); + edType->SetCurrentValueIndex(iAttributes.iType); + + LoadCPUsL(); + + UpdateVisibilitiesOfFieldsL(ETrue); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenCPULoadEditor::LoadCPUsL() + { + // if we are running in SMP environment + if (iAttributes.iCpuCount > 1) + { + // insert possibility to select which cpu the load is generated to + InsertFieldAfterL(R_CPULOAD_DLG_LINE_CPU, ELoadGenCPULoadQueryCpu, ELoadGenCPULoadQueryType); + + iCPUsArray = new (ELeave) CDesCArrayFlat( 5 ); + + // "Free scheduling" means that no specific cpu is selected. Scheduler desides + // which CPUu runs load thread at which time. + iCPUsArray->AppendL(_L("Free scheduling")); + + // add CPUs + for (int i = 0; i < iAttributes.iCpuCount; i++) + { + TBuf<10> cpu; + _LIT(KCPU, "CPU%d"); + cpu.Format(KCPU, i); + iCPUsArray->AppendL(cpu); + } + + // "All CPUs" means that one thread is started for each CPU. + iCPUsArray->AppendL(_L("All CPUs")); + + iCpuTextArray = CAknQueryValueTextArray::NewL(); + iCpuTextArray->SetArray( *iCPUsArray ); + iCpuQueryValText = CAknQueryValueText::NewL(); + iCpuQueryValText->SetArrayL( iCpuTextArray ); + // CPU is not defined, set "Free scheduling" as default selection in query list + if (iAttributes.iCpu < 0) + { + iCpuQueryValText->SetCurrentValueIndex(0); + } + // "All CPUs" selected. It is last choise in the selection list. + else if (iAttributes.iCpu == KCPUSelection_AllCPUs) + { + iCpuQueryValText->SetCurrentValueIndex(iCpuTextArray->MdcaCount()-1); + } + // CPU is defined, set the correct CPU as default selection in query list + else + { + // iCpu starts from zero (i.e. CPU0 is first CPU), but index zero + // in iCpuQueryValText is "Free scheduling", hence iCpu+1. + iCpuQueryValText->SetCurrentValueIndex(iAttributes.iCpu+1); + } + + CAknPopupField* popup = static_cast(Control( ELoadGenCPULoadQueryCpu)); + popup->SetQueryValueL( iCpuQueryValText ); + } + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenCPULoadEditor::OkToExitL(TInt aButtonId) + { + if (aButtonId == EAknSoftkeyOk) + { + // store values from editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenCPULoadQueryPriority)); + CAknPopupFieldText* edMode = static_cast(Control(ELoadGenCPULoadQueryMode)); + CAknPopupFieldText* edType = static_cast(Control(ELoadGenCPULoadQueryType)); + CEikNumberEditor* edPeak = static_cast(ControlOrNull(ELoadGenCPULoadQueryLength)); + CEikNumberEditor* edIdle = static_cast(ControlOrNull(ELoadGenCPULoadQueryIdle)); + CEikNumberEditor* edVariance = static_cast(ControlOrNull(ELoadGenCPULoadQueryVariance)); + + // we are running in SMP environment + if (iAttributes.iCpuCount > 1) + { + TInt currentValueIndex = iCpuQueryValText->CurrentValueIndex(); + // user selected a specific CPU in which the load thread should be run in. + if (currentValueIndex == 0) + { + // User selected "Free scheduling" + iAttributes.iCpu = KCPUSelection_FreeScheduling; + } + else if( currentValueIndex == iCpuTextArray->MdcaCount()-1 ) + { + // User selected "All CPUs", which is the last item in the selection list + iAttributes.iCpu = KCPUSelection_AllCPUs; + } + else + { + // iCpu should start from zero (CPU0 is the first cpu) + // but zero in currentValueIndex means "Free scheduling". CPU0 in + // currentValueIndex is at index 1, hence -1. + iAttributes.iCpu = currentValueIndex - 1; + } + } + + iAttributes.iPriority = edPriority->CurrentValueIndex(); + iAttributes.iMode = edMode->CurrentValueIndex(); + iAttributes.iType = edType->CurrentValueIndex(); + if (edPeak) iAttributes.iLength = edPeak->Number(); + if (edIdle) iAttributes.iIdle = edIdle->Number(); + if (edVariance) iAttributes.iRandomVariance = edVariance->Number(); + } + + return ETrue; + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenCPULoadEditor::UpdateVisibilitiesOfFieldsL(TBool aFormInit) + { + // filter based on selected cpu load type + CAknPopupFieldText* edType = static_cast( Control( ELoadGenCPULoadQueryType ) ); + + if ( !aFormInit && edType->CurrentValueIndex() == ECpuLoadTypeContinuous ) + { + // save values before deleting the items + CCoeControl* control = ControlOrNull( ELoadGenCPULoadQueryLength ); + if ( control ) + { + CEikNumberEditor* edPeak = static_cast( control ); + iAttributes.iLength = edPeak->Number(); + DeleteLine( ELoadGenCPULoadQueryLength ); + control = NULL; + } + control = ControlOrNull( ELoadGenCPULoadQueryIdle ); + if ( control ) + { + CEikNumberEditor* edIdle = static_cast( control ); + iAttributes.iIdle = edIdle->Number(); + DeleteLine( ELoadGenCPULoadQueryIdle ); + control = NULL; + } + control = ControlOrNull( ELoadGenCPULoadQueryVariance ); + if ( control ) + { + CEikNumberEditor* edVariance = static_cast( control ); + iAttributes.iRandomVariance = edVariance->Number(); + DeleteLine( ELoadGenCPULoadQueryVariance ); + } + } + else if ( edType->CurrentValueIndex() == ECpuLoadTypePeriodic ) + { + // insert new fields + InsertFieldAfterL(R_CPULOAD_DLG_LINE_PERIODIC_LENGTH, ELoadGenCPULoadQueryLength, ELoadGenCPULoadQueryType); + InsertFieldAfterL(R_CPULOAD_DLG_LINE_PERIODIC_IDLE, ELoadGenCPULoadQueryIdle, ELoadGenCPULoadQueryLength); + InsertFieldAfterL(R_CPULOAD_DLG_LINE_PERIODIC_VARIANCE, ELoadGenCPULoadQueryVariance, ELoadGenCPULoadQueryIdle); + + // load values to just created editors + CEikNumberEditor* edPeak = static_cast(Control(ELoadGenCPULoadQueryLength)); + CEikNumberEditor* edIdle = static_cast(Control(ELoadGenCPULoadQueryIdle)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenCPULoadQueryVariance)); + edPeak->SetNumber(iAttributes.iLength); + edIdle->SetNumber(iAttributes.iIdle); + edVariance->SetNumber(iAttributes.iRandomVariance); + } + + UpdateFormL(); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenCPULoadEditor::HandleControlStateChangeL(TInt aControlId) + { + CLoadGenLoadTypeEditorBase::HandleControlStateChangeL(aControlId); + + // update visibilities of fields + if (aControlId == ELoadGenCPULoadQueryType) + { + UpdateVisibilitiesOfFieldsL(); + } + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenCPULoadEditor::RunQueryLD() + { + return CLoadGenLoadTypeEditorBase::DoRunQueryLD(R_CPULOAD_FORM_DIALOG); + } + +// -------------------------------------------------------------------------------------------- +// -------------------------------------------------------------------------------------------- + +CLoadGenMemoryEatEditor* CLoadGenMemoryEatEditor::NewL(TMemoryEatAttributes& aAttributes, TBool aEditingExisting) + { + CLoadGenMemoryEatEditor* self = new(ELeave) CLoadGenMemoryEatEditor(aAttributes, aEditingExisting); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenMemoryEatEditor::~CLoadGenMemoryEatEditor() + { + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenMemoryEatEditor::CLoadGenMemoryEatEditor(TMemoryEatAttributes& aAttributes, TBool aEditingExisting) : + CLoadGenLoadTypeEditorBase(aEditingExisting), iAttributes(aAttributes) + { + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenMemoryEatEditor::ConstructL() + { + CLoadGenLoadTypeEditorBase::ConstructL(_L("Memory eat")); + + // convert int64 vals to descs + iAttributes.iAmountDes.Copy(KNullDesC); + iAttributes.iRandomMinDes.Copy(KNullDesC); + iAttributes.iRandomMaxDes.Copy(KNullDesC); + + iAttributes.iAmountDes.AppendNum(iAttributes.iAmount); + iAttributes.iRandomMinDes.AppendNum(iAttributes.iRandomMin); + iAttributes.iRandomMaxDes.AppendNum(iAttributes.iRandomMax); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenMemoryEatEditor::PreLayoutDynInitL() + { + CLoadGenLoadTypeEditorBase::PreLayoutDynInitL(); + + // load values to static editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenMemoryEatQueryPriority)); + CAknPopupFieldText* edSource = static_cast(Control(ELoadGenMemoryEatQuerySource)); + CAknPopupFieldText* edType = static_cast(Control(ELoadGenMemoryEatQueryType)); + CEikNumberEditor* edBuffer = static_cast(Control(ELoadGenMemoryEatQueryBuffer)); + CEikNumberEditor* edIdle = static_cast(Control(ELoadGenMemoryEatQueryIdle)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenMemoryEatQueryVariance)); + + edPriority->SetCurrentValueIndex(iAttributes.iPriority); + edSource->SetCurrentValueIndex(iAttributes.iSource); + edType->SetCurrentValueIndex(iAttributes.iType); + edBuffer->SetNumber(iAttributes.iBuffer); + edIdle->SetNumber(iAttributes.iIdle); + edVariance->SetNumber(iAttributes.iRandomVariance); + + UpdateVisibilitiesOfFieldsL(ETrue); + UpdateAvailableMemoryL(); + + // set source as dimmed if editing existing item + if (iEditingExisting) + { + SetLineDimmedNow(ELoadGenMemoryEatQuerySource, ETrue); + } + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenMemoryEatEditor::OkToExitL(TInt aButtonId) + { + if (aButtonId == EAknSoftkeyOk) + { + // store values from editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenMemoryEatQueryPriority)); + CAknPopupFieldText* edSource = static_cast(Control(ELoadGenMemoryEatQuerySource)); + CAknPopupFieldText* edType = static_cast(Control(ELoadGenMemoryEatQueryType)); + CEikNumberEditor* edBuffer = static_cast(Control(ELoadGenMemoryEatQueryBuffer)); + CEikNumberEditor* edIdle = static_cast(Control(ELoadGenMemoryEatQueryIdle)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenMemoryEatQueryVariance)); + + iAttributes.iPriority = edPriority->CurrentValueIndex(); + iAttributes.iSource = edSource->CurrentValueIndex(); + iAttributes.iType = edType->CurrentValueIndex(); + iAttributes.iBuffer = edBuffer->Number(); + iAttributes.iIdle = edIdle->Number(); + iAttributes.iRandomVariance = edVariance->Number(); + + + CEikEdwin* edAmount = static_cast(ControlOrNull(ELoadGenMemoryEatQueryAmount)); + CEikEdwin* edRandomMin = static_cast(ControlOrNull(ELoadGenMemoryEatQueryRandomMin)); + CEikEdwin* edRandomMax = static_cast(ControlOrNull(ELoadGenMemoryEatQueryRandomMax)); + + // get desc values and convert to int64 + if (edAmount) + { + edAmount->GetText(iAttributes.iAmountDes); + + TLex converter; + converter.Assign(iAttributes.iAmountDes); + User::LeaveIfError(converter.Val(iAttributes.iAmount)); + } + + if (edRandomMin) + { + edRandomMin->GetText(iAttributes.iRandomMinDes); + + TLex converter; + converter.Assign(iAttributes.iRandomMinDes); + User::LeaveIfError(converter.Val(iAttributes.iRandomMin)); + } + + if (edRandomMax) + { + edRandomMax->GetText(iAttributes.iRandomMaxDes); + + TLex converter; + converter.Assign(iAttributes.iRandomMaxDes); + User::LeaveIfError(converter.Val(iAttributes.iRandomMax)); + + // swap min max values if they in wrong order + if (iAttributes.iRandomMin > iAttributes.iRandomMax) + { + TInt64 temp(iAttributes.iRandomMin); + iAttributes.iRandomMin = iAttributes.iRandomMax; + iAttributes.iRandomMax = temp; + } + + } + } + + return ETrue; + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenMemoryEatEditor::UpdateVisibilitiesOfFieldsL(TBool aFormInit) + { + // filter based on selected memory eat type + CAknPopupFieldText* edType = static_cast(Control(ELoadGenMemoryEatQueryType)); + + if (!aFormInit && (edType->CurrentValueIndex() == EMemoryEatTypeMemoryToEat || edType->CurrentValueIndex() == EMemoryEatTypeMemoryToBeLeft)) + { + // no need for changes if amount field is already active + CEikNumberEditor* edAmount = static_cast(ControlOrNull(ELoadGenMemoryEatQueryAmount)); + if (edAmount) return; + + // save values before deleting the items + CEikEdwin* edRandomMin = static_cast(Control(ELoadGenMemoryEatQueryRandomMin)); + CEikEdwin* edRandomMax = static_cast(Control(ELoadGenMemoryEatQueryRandomMax)); + edRandomMin->GetText(iAttributes.iRandomMinDes); + edRandomMax->GetText(iAttributes.iRandomMaxDes); + + DeleteLine(ELoadGenMemoryEatQueryRandomMin); + DeleteLine(ELoadGenMemoryEatQueryRandomMax); + } + else if (!aFormInit && edType->CurrentValueIndex() == EMemoryEatTypeWavy) + { + // save values before deleting the items + CEikEdwin* edAmount = static_cast(Control(ELoadGenMemoryEatQueryAmount)); + edAmount->GetText(iAttributes.iAmountDes); + + DeleteLine(ELoadGenMemoryEatQueryAmount); + } + + if (edType->CurrentValueIndex() == EMemoryEatTypeMemoryToEat || edType->CurrentValueIndex() == EMemoryEatTypeMemoryToBeLeft) + { + // insert new fields + InsertFieldAfterL(R_MEMORYEAT_DLG_LINE_AMOUNT, ELoadGenMemoryEatQueryAmount, ELoadGenMemoryEatQueryType); + + // load values to just created editors + CEikEdwin* edAmount = static_cast(Control(ELoadGenMemoryEatQueryAmount)); + edAmount->SetTextL(&iAttributes.iAmountDes); + } + else if (edType->CurrentValueIndex() == EMemoryEatTypeWavy) + { + // insert new fields + InsertFieldAfterL(R_MEMORYEAT_DLG_LINE_RANDOM_MIN, ELoadGenMemoryEatQueryRandomMin, ELoadGenMemoryEatQueryType); + InsertFieldAfterL(R_MEMORYEAT_DLG_LINE_RANDOM_MAX, ELoadGenMemoryEatQueryRandomMax, ELoadGenMemoryEatQueryRandomMin); + + // load values to just created editors + CEikEdwin* edRandomMin = static_cast(Control(ELoadGenMemoryEatQueryRandomMin)); + CEikEdwin* edRandomMax = static_cast(Control(ELoadGenMemoryEatQueryRandomMax)); + edRandomMin->SetTextL(&iAttributes.iRandomMinDes); + edRandomMax->SetTextL(&iAttributes.iRandomMaxDes); + } + + UpdateFormL(); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenMemoryEatEditor::UpdateAvailableMemoryL() + { + // this feature is used only when not editing existing load + if (!iEditingExisting) + { + CAknPopupFieldText* edSource = static_cast(ControlOrNull(ELoadGenMemoryEatQuerySource)); + CEikEdwin* edAmount = static_cast(ControlOrNull(ELoadGenMemoryEatQueryAmount)); + + if (edAmount && edSource) + { + iAttributes.iAmountDes.Copy(KNullDesC); + + if (edSource->CurrentValueIndex() == EMemoryEatSourceTypeRAM) + { + // RAM + TMemoryInfoV1Buf ramMemory; + UserHal::MemoryInfo(ramMemory); + + iAttributes.iAmountDes.AppendNum(ramMemory().iFreeRamInBytes); + } + else + { + // get drive + TVolumeInfo volumeInfo; + if (CEikonEnv::Static()->FsSession().Volume(volumeInfo, edSource->CurrentValueIndex()+1) == KErrNone) + { + iAttributes.iAmountDes.AppendNum(volumeInfo.iFree); + } + else + { + iAttributes.iAmountDes.AppendNum(0); + } + } + + edAmount->SetTextL(&iAttributes.iAmountDes); + } + } + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenMemoryEatEditor::HandleControlStateChangeL(TInt aControlId) + { + CLoadGenLoadTypeEditorBase::HandleControlStateChangeL(aControlId); + + // update visibilities of fields + if (aControlId == ELoadGenMemoryEatQueryType) + { + UpdateVisibilitiesOfFieldsL(); + } + + // update memory when source changes + else if (aControlId == ELoadGenMemoryEatQuerySource) + { + UpdateAvailableMemoryL(); + } + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenMemoryEatEditor::RunQueryLD() + { + return CLoadGenLoadTypeEditorBase::DoRunQueryLD(R_MEMORYEAT_FORM_DIALOG); + } + + +// -------------------------------------------------------------------------------------------- +// -------------------------------------------------------------------------------------------- + +CLoadGenPhoneCallEditor* CLoadGenPhoneCallEditor::NewL(TPhoneCallAttributes& aAttributes, TBool aEditingExisting) + { + CLoadGenPhoneCallEditor* self = new(ELeave) CLoadGenPhoneCallEditor(aAttributes, aEditingExisting); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenPhoneCallEditor::~CLoadGenPhoneCallEditor() + { + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenPhoneCallEditor::CLoadGenPhoneCallEditor(TPhoneCallAttributes& aAttributes, TBool aEditingExisting) : + CLoadGenLoadTypeEditorBase(aEditingExisting), iAttributes(aAttributes) + { + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenPhoneCallEditor::ConstructL() + { + CLoadGenLoadTypeEditorBase::ConstructL(_L("Phone calls")); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenPhoneCallEditor::PreLayoutDynInitL() + { + CLoadGenLoadTypeEditorBase::PreLayoutDynInitL(); + + // load values to static editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenPhoneCallQueryPriority)); + CEikEdwin* edDestination = static_cast(Control(ELoadGenPhoneCallQueryDestination)); + CEikNumberEditor* edLength = static_cast(Control(ELoadGenPhoneCallQueryLength)); + CEikNumberEditor* edIdle = static_cast(Control(ELoadGenPhoneCallQueryIdle)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenPhoneCallQueryVariance)); + + edPriority->SetCurrentValueIndex(iAttributes.iPriority); + edDestination->SetTextL(&iAttributes.iDestination); + edLength->SetNumber(iAttributes.iLength); + edIdle->SetNumber(iAttributes.iIdle); + edVariance->SetNumber(iAttributes.iRandomVariance); + + UpdateVisibilitiesOfFieldsL(ETrue); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenPhoneCallEditor::OkToExitL(TInt aButtonId) + { + if (aButtonId == EAknSoftkeyOk) + { + // store values from editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenPhoneCallQueryPriority)); + CEikEdwin* edDestination = static_cast(Control(ELoadGenPhoneCallQueryDestination)); + CEikNumberEditor* edLength = static_cast(Control(ELoadGenPhoneCallQueryLength)); + CEikNumberEditor* edIdle = static_cast(Control(ELoadGenPhoneCallQueryIdle)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenPhoneCallQueryVariance)); + + iAttributes.iPriority = edPriority->CurrentValueIndex(); + edDestination->GetText(iAttributes.iDestination); + iAttributes.iLength = edLength->Number(); + iAttributes.iIdle = edIdle->Number(); + iAttributes.iRandomVariance = edVariance->Number(); + } + + return ETrue; + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenPhoneCallEditor::UpdateVisibilitiesOfFieldsL(TBool /*aFormInit*/) + { + UpdateFormL(); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenPhoneCallEditor::HandleControlStateChangeL(TInt aControlId) + { + CLoadGenLoadTypeEditorBase::HandleControlStateChangeL(aControlId); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenPhoneCallEditor::RunQueryLD() + { + return CLoadGenLoadTypeEditorBase::DoRunQueryLD(R_PHONECALL_FORM_DIALOG); + } + +// -------------------------------------------------------------------------------------------- +// -------------------------------------------------------------------------------------------- + +CLoadGenNetConnEditor* CLoadGenNetConnEditor::NewL(TNetConnAttributes& aAttributes, TBool aEditingExisting) + { + CLoadGenNetConnEditor* self = new(ELeave) CLoadGenNetConnEditor(aAttributes, aEditingExisting); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenNetConnEditor::~CLoadGenNetConnEditor() + { + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenNetConnEditor::CLoadGenNetConnEditor(TNetConnAttributes& aAttributes, TBool aEditingExisting) : + CLoadGenLoadTypeEditorBase(aEditingExisting), iAttributes(aAttributes) + { + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenNetConnEditor::ConstructL() + { + CLoadGenLoadTypeEditorBase::ConstructL(_L("Network conn.")); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenNetConnEditor::PreLayoutDynInitL() + { + CLoadGenLoadTypeEditorBase::PreLayoutDynInitL(); + + // load values to static editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenNetConnQueryPriority)); + CEikEdwin* edDestination = static_cast(Control(ELoadGenNetConnQueryDestination)); + CEikNumberEditor* edIdle = static_cast(Control(ELoadGenNetConnQueryIdle)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenNetConnQueryVariance)); + + edPriority->SetCurrentValueIndex(iAttributes.iPriority); + edDestination->SetTextL(&iAttributes.iDestination); + edIdle->SetNumber(iAttributes.iIdle); + edVariance->SetNumber(iAttributes.iRandomVariance); + + UpdateVisibilitiesOfFieldsL(ETrue); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenNetConnEditor::OkToExitL(TInt aButtonId) + { + if (aButtonId == EAknSoftkeyOk) + { + // store values from editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenNetConnQueryPriority)); + CEikEdwin* edDestination = static_cast(Control(ELoadGenNetConnQueryDestination)); + CEikNumberEditor* edIdle = static_cast(Control(ELoadGenNetConnQueryIdle)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenNetConnQueryVariance)); + + iAttributes.iPriority = edPriority->CurrentValueIndex(); + edDestination->GetText(iAttributes.iDestination); + iAttributes.iIdle = edIdle->Number(); + iAttributes.iRandomVariance = edVariance->Number(); + } + + return ETrue; + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenNetConnEditor::UpdateVisibilitiesOfFieldsL(TBool /*aFormInit*/) + { + UpdateFormL(); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenNetConnEditor::HandleControlStateChangeL(TInt aControlId) + { + CLoadGenLoadTypeEditorBase::HandleControlStateChangeL(aControlId); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenNetConnEditor::RunQueryLD() + { + return CLoadGenLoadTypeEditorBase::DoRunQueryLD(R_NETCONN_FORM_DIALOG); + } + +// -------------------------------------------------------------------------------------------- + +// -------------------------------------------------------------------------------------------- +// -------------------------------------------------------------------------------------------- + +CLoadGenKeyPressEditor* CLoadGenKeyPressEditor::NewL(TKeyPressAttributes& aAttributes, TBool aEditingExisting) + { + CLoadGenKeyPressEditor* self = new(ELeave) CLoadGenKeyPressEditor(aAttributes, aEditingExisting); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenKeyPressEditor::~CLoadGenKeyPressEditor() + { + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenKeyPressEditor::CLoadGenKeyPressEditor(TKeyPressAttributes& aAttributes, TBool aEditingExisting) : + CLoadGenLoadTypeEditorBase(aEditingExisting), iAttributes(aAttributes) + { + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenKeyPressEditor::ConstructL() + { + CLoadGenLoadTypeEditorBase::ConstructL(_L("Key presses")); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenKeyPressEditor::PreLayoutDynInitL() + { + CLoadGenLoadTypeEditorBase::PreLayoutDynInitL(); + + // load values to static editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenKeyPressQueryPriority)); + CEikNumberEditor* edHeartBeat = static_cast(Control(ELoadGenKeyPressQueryHeartBeat)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenKeyPressQueryVariance)); + + edPriority->SetCurrentValueIndex(iAttributes.iPriority); + edHeartBeat->SetNumber(iAttributes.iHeartBeat); + edVariance->SetNumber(iAttributes.iRandomVariance); + + UpdateVisibilitiesOfFieldsL(ETrue); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenKeyPressEditor::OkToExitL(TInt aButtonId) + { + if (aButtonId == EAknSoftkeyOk) + { + // store values from editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenKeyPressQueryPriority)); + CEikNumberEditor* edHeartBeat = static_cast(Control(ELoadGenKeyPressQueryHeartBeat)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenKeyPressQueryVariance)); + + iAttributes.iPriority = edPriority->CurrentValueIndex(); + iAttributes.iHeartBeat = edHeartBeat->Number(); + iAttributes.iRandomVariance = edVariance->Number(); + } + + return ETrue; + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenKeyPressEditor::UpdateVisibilitiesOfFieldsL(TBool /*aFormInit*/) + { + UpdateFormL(); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenKeyPressEditor::HandleControlStateChangeL(TInt aControlId) + { + CLoadGenLoadTypeEditorBase::HandleControlStateChangeL(aControlId); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenKeyPressEditor::RunQueryLD() + { + return CLoadGenLoadTypeEditorBase::DoRunQueryLD(R_KEYPRESS_FORM_DIALOG); + } + +// -------------------------------------------------------------------------------------------- +// -------------------------------------------------------------------------------------------- + +CLoadGenMessagesEditor* CLoadGenMessagesEditor::NewL( TMessageAttributes& aAttributes, + TBool aEditingExisting ) + { + CLoadGenMessagesEditor* self = new(ELeave) CLoadGenMessagesEditor( aAttributes, + aEditingExisting ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenMessagesEditor::~CLoadGenMessagesEditor() + { + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenMessagesEditor::CLoadGenMessagesEditor( TMessageAttributes& aAttributes, + TBool aEditingExisting ) : + CLoadGenLoadTypeEditorBase( aEditingExisting ), + iAttributes( aAttributes ) + { + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenMessagesEditor::ConstructL() + { + CLoadGenLoadTypeEditorBase::ConstructL( _L("Messages") ); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenMessagesEditor::PreLayoutDynInitL() + { + CLoadGenLoadTypeEditorBase::PreLayoutDynInitL(); + + // load values to static editors + CAknPopupFieldText* edPriority = + static_cast( Control( ELoadGenMessagesQueryPriority ) ); + CAknPopupFieldText* edType = + static_cast( Control( ELoadGenMessagesQueryType ) ); + CEikEdwin* edDestination = + static_cast( Control( ELoadGenMessagesQueryDestination ) ); + CEikNumberEditor* edAmount = + static_cast( Control( ELoadGenMessagesQueryAmount ) ); + CEikNumberEditor* edLength = + static_cast( Control( ELoadGenMessagesQueryLength ) ); + CEikNumberEditor* edIdle = + static_cast( Control( ELoadGenMessagesQueryIdle ) ); + CEikNumberEditor* edVariance = + static_cast( Control( ELoadGenMessagesQueryVariance ) ); + + edPriority->SetCurrentValueIndex( iAttributes.iPriority ); + edType->SetCurrentValueIndex( iAttributes.iMessageType ); + edDestination->SetTextL( &iAttributes.iDestination ); + edAmount->SetNumber( iAttributes.iAmount ); + edLength->SetNumber( iAttributes.iLength ); + edIdle->SetNumber( iAttributes.iIdle ); + edVariance->SetNumber( iAttributes.iRandomVariance ); + + UpdateVisibilitiesOfFieldsL( ETrue ); + // set type selection as dimmed if editing existing item + if (iEditingExisting) + { + SetLineDimmedNow(ELoadGenMessagesQueryType, ETrue); + } + + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenMessagesEditor::OkToExitL( TInt aButtonId ) + { + if ( aButtonId == EAknSoftkeyOk ) + { + // store values from editors + CAknPopupFieldText* edPriority = + static_cast( Control( ELoadGenMessagesQueryPriority ) ); + CAknPopupFieldText* edType = + static_cast( Control( ELoadGenMessagesQueryType ) ); + CEikEdwin* edDestination = + static_cast( Control( ELoadGenMessagesQueryDestination ) ); + CEikNumberEditor* edLength = + static_cast( Control( ELoadGenMessagesQueryLength ) ); + CEikNumberEditor* edAmount = + static_cast( Control( ELoadGenMessagesQueryAmount ) ); + CEikNumberEditor* edIdle = + static_cast( Control( ELoadGenMessagesQueryIdle ) ); + CEikNumberEditor* edVariance = + static_cast( Control( ELoadGenMessagesQueryVariance ) ); + + iAttributes.iPriority = edPriority->CurrentValueIndex(); + iAttributes.iMessageType = edType->CurrentValueIndex(); + edDestination->GetText( iAttributes.iDestination ); + iAttributes.iAmount = edAmount->Number(); + iAttributes.iLength = edLength->Number(); + iAttributes.iIdle = edIdle->Number(); + iAttributes.iRandomVariance = edVariance->Number(); + } + + return ETrue; + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenMessagesEditor::UpdateVisibilitiesOfFieldsL( TBool /*aFormInit*/ ) + { + UpdateFormL(); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenMessagesEditor::HandleControlStateChangeL( TInt aControlId ) + { + CLoadGenLoadTypeEditorBase::HandleControlStateChangeL( aControlId ); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenMessagesEditor::RunQueryLD() + { + return CLoadGenLoadTypeEditorBase::DoRunQueryLD( R_MESSAGES_FORM_DIALOG ); + } + +// -------------------------------------------------------------------------------------------- +// -------------------------------------------------------------------------------------------- + +CLoadGenApplicationsEditor* CLoadGenApplicationsEditor::NewL( TApplicationsAttributes& aAttributes, + TBool aEditingExisting ) + { + CLoadGenApplicationsEditor* self = new(ELeave) CLoadGenApplicationsEditor( aAttributes, + aEditingExisting ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenApplicationsEditor::~CLoadGenApplicationsEditor() + { + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenApplicationsEditor::CLoadGenApplicationsEditor( TApplicationsAttributes& aAttributes, + TBool aEditingExisting ) : + CLoadGenLoadTypeEditorBase( aEditingExisting ), + iAttributes( aAttributes ) + { + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenApplicationsEditor::ConstructL() + { + CLoadGenLoadTypeEditorBase::ConstructL( _L("Applications") ); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenApplicationsEditor::PreLayoutDynInitL() + { + CLoadGenLoadTypeEditorBase::PreLayoutDynInitL(); + + // load values to static editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenApplicationsQueryPriority)); + CEikNumberEditor* edLaunchingInterval = static_cast(Control(ELoadGenApplicationsLaunchingInterval)); + CAknPopupFieldText* edKeyPressType = static_cast(Control(ELoadGenApplicationsKeyPressType)); + CEikNumberEditor* edMaxOpen = static_cast(Control(ELoadGenApplicationsMaxOpen)); + CEikNumberEditor* edHeartBeat = static_cast(Control(ELoadGenApplicationsKeyPressQueryHeartBeat)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenApplicationsQueryVariance)); + + edPriority->SetCurrentValueIndex( iAttributes.iPriority ); + edLaunchingInterval->SetNumber( iAttributes.iLaunchingInterval ); + edKeyPressType->SetCurrentValueIndex( iAttributes.iKeyPressType ); + edMaxOpen->SetNumber( iAttributes.iMaxOpen ); + edHeartBeat->SetNumber( iAttributes.iHeartBeat ); + edVariance->SetNumber( iAttributes.iRandomVariance ); + + UpdateVisibilitiesOfFieldsL(ETrue); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenApplicationsEditor::OkToExitL(TInt aButtonId) + { + if (aButtonId == EAknSoftkeyOk) + { + // store values from editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenApplicationsQueryPriority)); + CEikNumberEditor* edLaunchingInterval = static_cast(Control(ELoadGenApplicationsLaunchingInterval)); + CAknPopupFieldText* edKeyPressType = static_cast(Control(ELoadGenApplicationsKeyPressType)); + CEikNumberEditor* edMaxOpen = static_cast(Control(ELoadGenApplicationsMaxOpen)); + CEikNumberEditor* edHeartBeat = static_cast(Control(ELoadGenApplicationsKeyPressQueryHeartBeat)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenApplicationsQueryVariance)); + + iAttributes.iPriority = edPriority->CurrentValueIndex(); + iAttributes.iLaunchingInterval = edLaunchingInterval->Number(); + iAttributes.iKeyPressType = edKeyPressType->CurrentValueIndex(); + iAttributes.iMaxOpen = edMaxOpen->Number(); + iAttributes.iHeartBeat = edHeartBeat->Number(); + iAttributes.iRandomVariance = edVariance->Number(); + } + + return ETrue; + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenApplicationsEditor::UpdateVisibilitiesOfFieldsL( TBool /*aFormInit*/ ) + { + UpdateFormL(); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenApplicationsEditor::HandleControlStateChangeL( TInt aControlId ) + { + CLoadGenLoadTypeEditorBase::HandleControlStateChangeL( aControlId ); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenApplicationsEditor::RunQueryLD() + { + return CLoadGenLoadTypeEditorBase::DoRunQueryLD( R_APPLICATIONS_FORM_DIALOG ); + } + +// -------------------------------------------------------------------------------------------- + +// -------------------------------------------------------------------------------------------- + +CLoadGenPhotoCaptureEditor* CLoadGenPhotoCaptureEditor::NewL(TPhotoCaptureAttributes& aAttributes, TBool aEditingExisting) + { + CLoadGenPhotoCaptureEditor* self = new(ELeave) CLoadGenPhotoCaptureEditor(aAttributes, aEditingExisting); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenPhotoCaptureEditor::~CLoadGenPhotoCaptureEditor() + { + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenPhotoCaptureEditor::CLoadGenPhotoCaptureEditor(TPhotoCaptureAttributes& aAttributes, TBool aEditingExisting) : + CLoadGenLoadTypeEditorBase(aEditingExisting), iAttributes(aAttributes) + { + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenPhotoCaptureEditor::ConstructL() + { + CLoadGenLoadTypeEditorBase::ConstructL(_L("Photo captures")); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenPhotoCaptureEditor::PreLayoutDynInitL() + { + CLoadGenLoadTypeEditorBase::PreLayoutDynInitL(); + + // load values to static editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenPhotoCaptureQueryPriority)); + //CAknPopupFieldText* edDevice = static_cast(Control(ELoadGenPhotoCaptureQueryDevice)); + CEikNumberEditor* edIdle = static_cast(Control(ELoadGenPhotoCaptureQueryIdle)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenPhotoCaptureQueryVariance)); + + edPriority->SetCurrentValueIndex(iAttributes.iPriority); + //edDevice->SetCurrentValueIndex(0); + edIdle->SetNumber(iAttributes.iIdle); + edVariance->SetNumber(iAttributes.iRandomVariance); + + LoadCamerasL(); + + UpdateVisibilitiesOfFieldsL(ETrue); + } + +void CLoadGenPhotoCaptureEditor::LoadCamerasL() + { + if (iAttributes.iCameraCount > 0) + { + // insert possibility to select which cpu the load is generated to + InsertFieldAfterL(R_PHOTOCAPTURE_DLG_LINE_DEVICE, ELoadGenPhotoCaptureQueryDevice, ELoadGenPhotoCaptureQueryPriority); + + iCamerasArray = new (ELeave) CDesCArrayFlat( iAttributes.iCameraCount ); + + // add Cameras + for (int i = 0; i < iAttributes.iCameraCount; i++) + { + TBuf<16> cam; + _LIT(KCam, "Camera %d"); + cam.Format(KCam, i); + iCamerasArray->AppendL(cam); + } + + iCameraTextArray = CAknQueryValueTextArray::NewL(); + iCameraTextArray->SetArray( *iCamerasArray ); + iCameraQueryValText = CAknQueryValueText::NewL(); + iCameraQueryValText->SetArrayL( iCameraTextArray ); + if( iAttributes.iCameraCount > 0 ) + { + iCameraQueryValText->SetCurrentValueIndex(iAttributes.iCamera); + } + CAknPopupField* popup = static_cast(Control( ELoadGenPhotoCaptureQueryDevice)); + popup->SetQueryValueL( iCameraQueryValText ); + } + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenPhotoCaptureEditor::OkToExitL(TInt aButtonId) + { + if (aButtonId == EAknSoftkeyOk) + { + // store values from editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenPhotoCaptureQueryPriority)); + CEikNumberEditor* edIdle = static_cast(Control(ELoadGenPhotoCaptureQueryIdle)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenPhotoCaptureQueryVariance)); + + iAttributes.iPriority = edPriority->CurrentValueIndex(); + iAttributes.iIdle = edIdle->Number(); + iAttributes.iRandomVariance = edVariance->Number(); + + if (iAttributes.iCameraCount > 1) + { + iAttributes.iCamera = iCameraQueryValText->CurrentValueIndex(); + } + } + + return ETrue; + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenPhotoCaptureEditor::UpdateVisibilitiesOfFieldsL(TBool /*aFormInit*/) + { + UpdateFormL(); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenPhotoCaptureEditor::HandleControlStateChangeL(TInt aControlId) + { + CLoadGenLoadTypeEditorBase::HandleControlStateChangeL(aControlId); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenPhotoCaptureEditor::RunQueryLD() + { + return CLoadGenLoadTypeEditorBase::DoRunQueryLD(R_PHOTOCAPTURE_FORM_DIALOG); + } + + +// -------------------------------------------------------------------------------------------- + +CLoadGenBluetoothEditor* CLoadGenBluetoothEditor::NewL(TBluetoothAttributes& aAttributes, TBool aEditingExisting) + { + CLoadGenBluetoothEditor* self = new(ELeave) CLoadGenBluetoothEditor(aAttributes, aEditingExisting); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenBluetoothEditor::~CLoadGenBluetoothEditor() + { + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenBluetoothEditor::CLoadGenBluetoothEditor(TBluetoothAttributes& aAttributes, TBool aEditingExisting) : + CLoadGenLoadTypeEditorBase(aEditingExisting), iAttributes(aAttributes) + { + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenBluetoothEditor::ConstructL() + { + CLoadGenLoadTypeEditorBase::ConstructL(_L("Bluetooth")); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenBluetoothEditor::PreLayoutDynInitL() + { + CLoadGenLoadTypeEditorBase::PreLayoutDynInitL(); + + // load values to static editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenBluetoothQueryPriority)); + CEikNumberEditor* edIdle = static_cast(Control(ELoadGenBluetoothQueryIdle)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenBluetoothQueryVariance)); + + edPriority->SetCurrentValueIndex(iAttributes.iPriority); + edIdle->SetNumber(iAttributes.iIdle); + edVariance->SetNumber(iAttributes.iRandomVariance); + + UpdateVisibilitiesOfFieldsL(ETrue); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenBluetoothEditor::OkToExitL(TInt aButtonId) + { + if (aButtonId == EAknSoftkeyOk) + { + // store values from editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenBluetoothQueryPriority)); + CEikNumberEditor* edIdle = static_cast(Control(ELoadGenBluetoothQueryIdle)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenBluetoothQueryVariance)); + + iAttributes.iPriority = edPriority->CurrentValueIndex(); + iAttributes.iIdle = edIdle->Number(); + iAttributes.iRandomVariance = edVariance->Number(); + } + + return ETrue; + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenBluetoothEditor::UpdateVisibilitiesOfFieldsL(TBool /*aFormInit*/) + { + UpdateFormL(); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenBluetoothEditor::HandleControlStateChangeL(TInt aControlId) + { + CLoadGenLoadTypeEditorBase::HandleControlStateChangeL(aControlId); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenBluetoothEditor::RunQueryLD() + { + return CLoadGenLoadTypeEditorBase::DoRunQueryLD(R_BLUETOOTH_FORM_DIALOG); + } + +// -------------------------------------------------------------------------------------------- +// -------------------------------------------------------------------------------------------- + +CLoadGenPointerEventEditor* CLoadGenPointerEventEditor::NewL(TPointerEventAttributes& aAttributes, TBool aEditingExisting) + { + CLoadGenPointerEventEditor* self = new(ELeave) CLoadGenPointerEventEditor(aAttributes, aEditingExisting); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenPointerEventEditor::~CLoadGenPointerEventEditor() + { + } + +// -------------------------------------------------------------------------------------------- + +CLoadGenPointerEventEditor::CLoadGenPointerEventEditor(TPointerEventAttributes& aAttributes, TBool aEditingExisting) : + CLoadGenLoadTypeEditorBase(aEditingExisting), iAttributes(aAttributes) + { + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenPointerEventEditor::ConstructL() + { + CLoadGenLoadTypeEditorBase::ConstructL(_L("Pointer events")); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenPointerEventEditor::PreLayoutDynInitL() + { + CLoadGenLoadTypeEditorBase::PreLayoutDynInitL(); + + // load values to static editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenPointerEventQueryPriority)); + CEikNumberEditor* edHeartBeat = static_cast(Control(ELoadGenPointerEventQueryHeartBeat)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenPointerEventQueryVariance)); + + edPriority->SetCurrentValueIndex(iAttributes.iPriority); + edHeartBeat->SetNumber(iAttributes.iHeartBeat); + edVariance->SetNumber(iAttributes.iRandomVariance); + + UpdateVisibilitiesOfFieldsL(ETrue); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenPointerEventEditor::OkToExitL(TInt aButtonId) + { + if (aButtonId == EAknSoftkeyOk) + { + // store values from editors + CAknPopupFieldText* edPriority = static_cast(Control(ELoadGenPointerEventQueryPriority)); + CEikNumberEditor* edHeartBeat = static_cast(Control(ELoadGenPointerEventQueryHeartBeat)); + CEikNumberEditor* edVariance = static_cast(Control(ELoadGenPointerEventQueryVariance)); + + iAttributes.iPriority = edPriority->CurrentValueIndex(); + iAttributes.iHeartBeat = edHeartBeat->Number(); + iAttributes.iRandomVariance = edVariance->Number(); + } + + return ETrue; + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenPointerEventEditor::UpdateVisibilitiesOfFieldsL(TBool /*aFormInit*/) + { + UpdateFormL(); + } + +// -------------------------------------------------------------------------------------------- + +void CLoadGenPointerEventEditor::HandleControlStateChangeL(TInt aControlId) + { + CLoadGenLoadTypeEditorBase::HandleControlStateChangeL(aControlId); + } + +// -------------------------------------------------------------------------------------------- + +TBool CLoadGenPointerEventEditor::RunQueryLD() + { + return CLoadGenLoadTypeEditorBase::DoRunQueryLD(R_POINTEREVENT_FORM_DIALOG); + } + +// End of File