diff -r f5050f1da672 -r 04becd199f91 javaextensions/pim/agnadapter/inc.s60/cpimagntodoadapter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javaextensions/pim/agnadapter/inc.s60/cpimagntodoadapter.h Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,258 @@ +/* +* 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: Handles PIM API todo item <-> Agenda Model todo conversions + * +*/ + + +#ifndef CPIMAGNTODOADAPTER_H +#define CPIMAGNTODOADAPTER_H + +// INCLUDES +#include "cpimagnitemadapter.h" +#include "pimtodo.h" + +// FORWARD DECLARATIONS +class MPIMToDoItem; +class MPIMItemData; +class CCalEntry; + +// CLASS DECLARATION + +/** + * ToDo Item Adapter + * Does conversion of Todo items between framework representation and + * Agenda Model representation. + */ +NONSHARABLE_CLASS(CPIMAgnToDoAdapter): public CPIMAgnItemAdapter +{ +public: // Constructor and destructor + /** + * Two-phased constructor. + */ + static CPIMAgnToDoAdapter* NewL(java::util::FunctionServer* aFuncServer); + + /** + * Destructor. + */ + virtual ~CPIMAgnToDoAdapter(); + +public: // new methods + /** + * Constructs a Agenda Model entry from the framework PIM item. + * + * @param aItem The item to convert + * + * @return A CCalEntry constructed according to framework item. + * The \b ownership of the card is transferred to the caller. + * + * @par Leaving: + * This method may leave. + */ + CCalEntry* CreateItemToAgnL(const MPIMToDoItem& aItem); + + /** + * Converts from Agenda Model entry to the framework PIM item. + * + * @param aItem PIM Item data container store the entry data. + * @param aEntry Agenda Model entry to convert. + * + * @par Leaving: + * This method may leave. + */ + void ReadAgnToItemL(MPIMToDoItem& aItem, + CCalEntry& aEntry); + + /** + * Updates the Agenda Model entry according to the framework PIM item. + * + * @param aItem PIM Item with the current data. + * @param aEntry Agenda Model entry to update. + * + * @par Leaving: + * This method may leave. + */ + void UpdateItemToAgnL(const MPIMToDoItem& aItem, + CCalEntry& aEntry); + +private: + + /** + * ExportItemL + * Exports PIM ToDo item to native Calendar ToDo entry + * + * @param aItem The exported PIM item + * @param aEntry The native entry in which the data is exported + * @param aResetEntry Indicates that should the native entry + * be reseted or not + */ + void ExportItemL( + const MPIMToDoItem& aItem, + CCalEntry& aEntry, + TBool aResetEntry); + + /** + * AddDefaultValuesToEntryL + * Adds default values to the native entry which are required + * by the native Calendar application + * + * @param aData PIM Item data + * @param aEntry The native entry in which the data is exported + */ + void AddDefaultValuesToEntryL( + const MPIMItemData& aData, + CCalEntry& aEntry) const; + + /** + * ReadStringFieldsL + * Read string fields from native Calendar ToDo entry and imports + * the data to PIM API ToDo item + * + * @param aData PIM Item data + * @param aEntry Calendar entry from which the data is imported + */ + void ReadStringFieldsL(MPIMItemData& aData, CCalEntry& aEntry); + + /** + * ReadIntFieldsL + * Read int fields from native Calendar ToDo entry and imports + * the data to PIM API ToDo item + * + * @param aData PIM Item data + * @param aEntry Calendar entry from which the data is imported + */ + void ReadIntFieldsL(MPIMItemData& aData, CCalEntry& aEntry); + + /** + * ReadDateFieldsL + * Read date fields from native Calendar ToDo entry and imports + * the data to PIM API ToDo item + * + * @param aData PIM Item data + * @param aEntry Calendar entry from which the data is imported + */ + void ReadDateFieldsL(MPIMItemData& aData, CCalEntry& aEntry); + + /** + * Converts the field of the framework PIM item into the field of + * an Agenda Model entry + * + * @param aField PIM Item field. + * @param aEntry Agenda Model entry. + * @param aItem PIM Item with the current data. + * + * @par Leaving: + * This method may leave. + */ + void ConvertToAgnL( + TPIMToDoField aField, + CCalEntry& aEntry, + const MPIMItemData& aItem); + + /** + * Converts the date field of the framework PIM item into the field of + * an Agenda Model entry + * + * @param aField PIM Item field. + * @param aIndex Index of the field. + * @param aTodo Agenda Model entry typecasted to a todo. + * @param aItem PIM Item with the current data. + * + * @par Leaving: + * This method may leave. + */ + void ConvertDateToAgnL( + TPIMToDoField aField, + TInt aIndex, + CCalEntry& aEntry, + const MPIMItemData& aItem); + + /** + * Converts the string field of the framework PIM item into the field of + * an Agenda Model entry + * + * @param aField PIM Item field. + * @param aIndex Index of the field. + * @param aEntry Agenda Model entry. + * @param aItem PIM Item with the current data. + * + * @par Leaving: + * This method may leave. + */ + void ConvertStringToAgnL( + TPIMToDoField aField, + TInt aIndex, + CCalEntry& aEntry, + const MPIMItemData& aItem); + + /** + * Converts the int field of the framework PIM item into the field of + * an Agenda Model entry + * + * @param aField PIM Item field. + * @param aIndex Index of the field. + * @param aTodo Agenda Model entry typecasted to a todo. + * @param aItem PIM Item with the current data. + * + * @par Leaving: + * This method may leave. + */ + void ConvertIntToAgnL( + TPIMToDoField aField, + TInt aIndex, + CCalEntry& aEntry, + const MPIMItemData& aItem); + + /** + * Converts the boolean field of the framework PIM item into the field + * of an Agenda Model entry + * + * @param aField PIM Item field. + * @param aIndex Index of the field. + * @param aTodo Agenda Model entry typecasted to a todo. + * @param aItem PIM Item with the current data. + * + * @par Leaving: + * This method may leave. + */ + void ConvertBooleanToAgnL( + TPIMToDoField aField, + TInt aIndex, + CCalEntry& aEntry, + const MPIMItemData& aItem); + + /** + * Returns native alarm field offset in TTimeIntervalMinutes. The value + * is calculated from PIM API alarm field value and from the difference + * between that value and due date + * + * @param aItemData Rererence to item data + * @param aEntry Native ToDo Calendar entry + * @return Native alarm offset in minutes + */ + TTimeIntervalMinutes AlarmOffsetL( + const MPIMItemData& aItemData, + CCalEntry& aEntry); + +private: + + /** + * C++ constructor. + */ + CPIMAgnToDoAdapter(java::util::FunctionServer* aFuncServer); + +}; + +#endif // CPIMAGNTODOADAPTER_H +// End of file