--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ccservices/cmsservices/cmscontactor/inc/cmsoperationhandlerbase.h Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,225 @@
+/*
+* Copyright (c) 2007 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: Base class for all CMS contactor's operations.
+*
+*/
+
+
+#ifndef C_CMSOPERATIONHANDLERBASE_H
+#define C_CMSOPERATIONHANDLERBASE_H
+
+#include <e32base.h>
+
+#include "cmscontactfield.h"
+
+/**
+ * CCMSOperationHandlerBaseBase
+ * Base class for all CMS contactor's operations.
+ *
+ * @code
+ *
+ * @endcode
+ *
+ * @since S60 v5.0
+ */
+class CCMSOperationHandlerBase : public CBase
+ {
+
+public:
+
+ /**
+ * Constructor.
+ */
+ CCMSOperationHandlerBase(
+ const RArray<CCmsContactFieldItem::TCmsContactField>& aContactFieldTypesFilter,
+ const RPointerArray<CCmsContactField>& aItemArray,
+ const TCmsContactor::TCMSCommLaunchFlag aCommLaunchFlag );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CCMSOperationHandlerBase();
+
+ /**
+ * Interface method.
+ * Every operation must have a ExecuteLD to get started execute of operation.
+ *
+ * @since S60 v5.0
+ */
+ virtual void ExecuteLD() = 0;
+
+protected:
+ // Interface
+
+ /**
+ * Second phase constructor
+ */
+ void BaseConstructL();
+
+ /**
+ * Initiaties operation.
+ *
+ * @since S60 v5.0
+ * @param aContactFieldItem: Selected field item to complete operation.
+ */
+ virtual void
+ StartOperationL( const CCmsContactFieldItem& aContactFieldItem) = 0;
+
+ /**
+ * Method for preparing given data for operation.
+ * Must run before calling LaunchDialogL.
+ *
+ * @since S60 v5.0
+ * @param aCbaResourceId: Resource Id of softkey buttons.
+ * @param aHeaderResourceId: Resource Id of header string.
+ */
+ virtual void PrepareDataL( TInt aCbaResourceId, TInt aHeaderResourceId, CCmsContactFieldItem::TCmsDefaultAttributeTypes aDefaultType);
+
+ /**
+ * Launches actual dialog if needed. (more than 1 items to select from)
+ *
+ * @since S60 v5.0
+ * @return reference of selected field item.
+ */
+ const CCmsContactFieldItem& LaunchDialogL();
+
+ /**
+ * Returns the full name string of contact. (firstname + lastname)
+ * Ownership transferred to caller.
+ *
+ * @since S60 v5.0
+ * @return the name string.
+ */
+ TDesC* GetNameStringLC();
+
+private:
+ // Own implement
+
+ /**
+ * Helper function for preparing data.
+ * Leaves with KErrArgument if there is no data at all.
+ *
+ * @since S60 v5.0
+ */
+ void PrepareDialogL();
+
+ /**
+ * Helper function for filtering correct contactfields.
+ *
+ * @since S60 v5.0
+ * @param aType: type of required contact field type.
+ */
+ TBool IsNeededType( CCmsContactFieldItem::TCmsContactField aType);
+
+ /**
+ * Helper function for preparing header data.
+ *
+ * @since S60 v5.0
+ * @param aHeaderResourceId: Resource Id of header string.
+ */
+ void PrepareHeaderL( TInt aHeaderResourceId);
+
+ /**
+ * Helper function for allocating name strings.
+ *
+ * @since S60 v5.0
+ */
+ void SetNameStringL();
+
+ /**
+ * Helper function for solving default number
+ * Leaves with KErrNotFound
+ *
+ * @since S60 v5.0
+ * @return CCmsContactFieldItem
+ */
+ const CCmsContactFieldItem* GetDefaultNumberItemL();
+
+protected:
+ // data
+
+ /**
+ * Contact fields given.
+ * Not Own.
+ */
+ const RPointerArray<CCmsContactField>& iItemArray;
+
+private:
+ // data
+
+ /**
+ * For filtering correct contact field types.
+ * Not Own.
+ */
+ const RArray<CCmsContactFieldItem::TCmsContactField>
+ & iContactFieldTypesFilter;
+
+ /**
+ * Modified array for making listbox query.
+ * Own.
+ */
+ RPointerArray<CCmsContactField> iQueryArray;
+
+ /**
+ * Environment.
+ * Not Own.
+ */
+ CCoeEnv& iCoeEnv;
+
+ /**
+ * Resource id of used softkeys.
+ * Own.
+ */
+ TInt iCbaResourceId;
+
+ /**
+ * Heading text of dialog.
+ * Own.
+ */
+ HBufC* iHeading;
+
+ /**
+ * Fullname
+ * Own.
+ */
+ TDesC* iFullName;
+
+ /**
+ * Offset of loaded resource file.
+ * Own.
+ */
+ TInt iResourceOffset;
+
+ /**
+ * Found items.
+ * Own.
+ */
+ TInt iContactFieldItemsFound;
+
+ /**
+ * Communication launching related information
+ * Own.
+ */
+ TCmsContactor::TCMSCommLaunchFlag iCommLaunchFlag;
+
+ /**
+ * Default type
+ * Own.
+ */
+ CCmsContactFieldItem::TCmsDefaultAttributeTypes iDefaultType;
+ };
+
+#endif // C_CMSOPERATIONHANDLERBASE_H
+
+// End of File