diff -r 76a2435edfd4 -r de1630741fbe phonebookui/pbkcommonui/src/cntdefaultviewfactory.cpp --- a/phonebookui/pbkcommonui/src/cntdefaultviewfactory.cpp Fri Apr 16 14:53:18 2010 +0300 +++ b/phonebookui/pbkcommonui/src/cntdefaultviewfactory.cpp Mon May 03 12:24:20 2010 +0300 @@ -16,70 +16,113 @@ */ #include "cntabstractviewfactory.h" -#include "cntviewparameters.h" +#include "cntdetaileditor.h" #include "cntmainwindow.h" - +#include +#include +#include +#include // views #include "cntnamesview.h" #include "cntmycardview.h" #include "cntfavoritesview.h" #include "cntimageeditorview.h" #include "cntcollectionview.h" +#include "cntgroupmemberview.h" +#include "cntfavoritesmemberview.h" +#include "cntcontactcardview.h" +#include "cntgroupactionsview.h" +#include "cnthistoryview.h" +#include "cnteditview.h" +#include "cntmycardselectionview.h" +#include "cntextensionmanager.h" -CntDefaultViewFactory::CntDefaultViewFactory( ) +CntDefaultViewFactory::CntDefaultViewFactory(): + mExtensionManager(NULL) { + mExtensionManager = new CntExtensionManager(); + HbStyleLoader::registerFilePath( ":/style" ); } CntDefaultViewFactory::~CntDefaultViewFactory() { + delete mExtensionManager; } CntAbstractView* CntDefaultViewFactory::createView( int aId ) { switch ( aId ) { - case CntViewParameters::namesView: - case CntViewParameters::defaultView: - return new CntNamesView(); - case CntViewParameters::noView: - case CntViewParameters::commLauncherView: - case CntViewParameters::serviceContactCardView: - case CntViewParameters::serviceAssignContactCardView: + case namesView: + return new CntNamesView(*mExtensionManager); + case noView: + case commLauncherView: + return new CntContactCardView(); + case serviceContactCardView: + case serviceAssignContactCardView: break; - case CntViewParameters::myCardView: + case myCardView: return new CntMyCardView(); - case CntViewParameters::myCardSelectionView: - case CntViewParameters::serviceContactSelectionView: + case myCardSelectionView: + return new CntMyCardSelectionView(); + case serviceContactSelectionView: break; - case CntViewParameters::collectionView: - return new CntCollectionView(); - case CntViewParameters::collectionFavoritesView: + case collectionView: + return new CntCollectionView(*mExtensionManager); + case collectionFavoritesView: return new CntFavoritesView(); - case CntViewParameters::FavoritesMemberView: - case CntViewParameters::editView: - case CntViewParameters::serviceEditView: - case CntViewParameters::serviceSubEditView: - case CntViewParameters::emailEditorView: - case CntViewParameters::namesEditorView: - case CntViewParameters::urlEditorView: - case CntViewParameters::companyEditorView: - case CntViewParameters::phoneNumberEditorView: - case CntViewParameters::onlineAccountEditorView: - case CntViewParameters::noteEditorView: - case CntViewParameters::familyDetailEditorView: - case CntViewParameters::addressEditorView: - case CntViewParameters::dateEditorView: + case FavoritesMemberView: + return new CntFavoritesMemberView(); + case editView: + return new CntEditView(); + case onlineAccountEditorView: + case serviceEditView: + case serviceSubEditView: + break; + + case emailEditorView: + case namesEditorView: + case urlEditorView: + case companyEditorView: + case phoneNumberEditorView: + case noteEditorView: + case familyDetailEditorView: + case addressEditorView: + case dateEditorView: + case groupEditorView: + return new CntDetailEditor(aId); + + case imageEditorView: + return new CntImageEditorView(); + case serviceContactFetchView: break; - case CntViewParameters::imageEditorView: - return new CntImageEditorView(); - case CntViewParameters::serviceContactFetchView: - case CntViewParameters::groupEditorView: - case CntViewParameters::groupMemberView: - case CntViewParameters::groupActionsView: - case CntViewParameters::historyView: - break; + case groupMemberView: + return new CntGroupMemberView(); + case groupActionsView: + return new CntGroupActionsView(); + case historyView: + return new CntHistoryView(); default: - break; + return createPluginView(aId); + } + return NULL; +} + +CntAbstractView* CntDefaultViewFactory::createPluginView( int aId ) +{ + for(int i = 0;i < mExtensionManager->pluginCount();i++) + { + CntViewSupplier* viewSupplier = mExtensionManager->pluginAt(i)->viewSupplier(); + if (viewSupplier) + { + for(int j = 0;j < viewSupplier->viewCount();j++) + { + if (viewSupplier->viewIdAt(j) == aId) + { + return viewSupplier->viewAt(j); + } + } + } } return NULL; }