e253cc1415ea18d58845ed3e47e7cb017544c5aa
[apps/osp/MyFiles.git] / inc / MfSearchForm.h
1 //\r
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
3 //\r
4 // Licensed under the Flora License, Version 1.0 (the License);\r
5 // you may not use this file except in compliance with the License.\r
6 // You may obtain a copy of the License at\r
7 //\r
8 //     http://floralicense.org/license/\r
9 //\r
10 // Unless required by applicable law or agreed to in writing, software\r
11 // distributed under the License is distributed on an AS IS BASIS,\r
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13 // See the License for the specific language governing permissions and\r
14 // limitations under the License.\r
15 //\r
16 \r
17 /**\r
18  * @file: MfSearchForm.h\r
19  * @brief: This file contains declaration of  of SearchForm class.\r
20  */\r
21 \r
22 #ifndef _MF_SEARCH_FORM_H_\r
23 #define _MF_SEARCH_FORM_H_\r
24 \r
25 #include <FApp.h>\r
26 #include <FAppPkg.h>\r
27 #include <FContent.h>\r
28 #include <FGraphics.h>\r
29 #include <FIo.h>\r
30 #include <FSysEnvironment.h>\r
31 #include <FUi.h>\r
32 \r
33 #include "MfBaseForm.h"\r
34 #include "MfFolderNavigationPresentationModel.h"\r
35 #include "MfContentListItem.h"\r
36 #include "MfCustomAppControl.h"\r
37 #include "MfDirectoryEntry.h"\r
38 #include "MfINotificationListener.h"\r
39 #include "MfMyFilesApp.h"\r
40 #include "MfSceneRegister.h"\r
41 #include "MfSearchPresentationModel.h"\r
42 #include "MfThumbnailManager.h"\r
43 #include "MfTypes.h"\r
44 #include "MfUtility.h"\r
45 \r
46 class SearchForm\r
47 : public BaseForm\r
48   , public Tizen::App::IAppControlResponseListener\r
49   , public Tizen::Ui::IKeypadEventListener\r
50   , public Tizen::Ui::ITextEventListener\r
51   , public Tizen::Ui::Controls::ISearchBarEventListener\r
52   , public Tizen::Io::IFileEventListener\r
53   {\r
54 public:\r
55         //Constructor of the class\r
56         SearchForm(void);\r
57 \r
58         //Destructor of the class.\r
59         virtual ~SearchForm(void);\r
60 \r
61         //Initializes the SearchForm\r
62         bool Initialize(void);\r
63 \r
64         result OnInitializing(void);\r
65         result OnTerminating(void);\r
66 \r
67         //IActionEventListener\r
68         void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
69 \r
70         //IFormBackEventListener\r
71         void OnFormBackRequested(Tizen::Ui::Controls::Form& source);\r
72 \r
73         // IListViewItemEventListener\r
74         virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state);\r
75         virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);\r
76         virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction);\r
77 \r
78         //IListViewItemProvider\r
79         virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);\r
80         virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);\r
81         virtual int GetItemCount(void);\r
82 \r
83         //ISceneEventListener\r
84         virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);\r
85         virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);\r
86 \r
87         //ISceneManagerEventListener\r
88         virtual void OnSceneTransitionCompleted (const Tizen::Ui::Scenes::SceneId &previousSceneId, const Tizen::Ui::Scenes::SceneId &currentSceneId);\r
89         virtual void OnSceneTransitionStarted (const Tizen::Ui::Scenes::SceneId &currentSceneId, const Tizen::Ui::Scenes::SceneId &nextSceneId);\r
90 \r
91         //IKeyPadActionEventListener\r
92         void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction);\r
93         void OnKeypadClosed(Tizen::Ui::Control& source);\r
94         void OnKeypadOpened(Tizen::Ui::Control& source);\r
95         void OnKeypadWillOpen(Tizen::Ui::Control& source);\r
96 \r
97         //ITextEventListener\r
98         void OnTextValueChangeCanceled(const Tizen::Ui::Control& source);\r
99         void OnTextValueChanged(const Tizen::Ui::Control& source);\r
100 \r
101         //SearchBar Control\r
102         void OnSearchBarModeChanged(Tizen::Ui::Controls::SearchBar& source, Tizen::Ui::Controls::SearchBarMode mode);\r
103 \r
104         //IAppControlEventListener\r
105         void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId, const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData);\r
106 \r
107         //IFileNotificationListener\r
108         void OnNotificationReceived(Tizen::Base::Collection::ArrayList* pArgs);\r
109 \r
110         //IContentSearchListener\r
111         virtual void OnFolderSearchStarted(Tizen::Base::String& folderName);\r
112         virtual void OnAllFoldersSearchCompleted(void);\r
113 \r
114         //IFileProcessingListener\r
115         void OnFileManagingStart(void);\r
116         void OnFileManagingStop(FileManagingResult fileManagingResult);\r
117 \r
118         virtual void OnListViewItemStateChangedNotify(ViewType viewType);\r
119 \r
120         virtual void OnThumbnailReceived(ThumbRequest* pThumbReq);\r
121 \r
122         //IDeviceEventListener\r
123         virtual void OnDeviceStateChanged(Tizen::System::DeviceType deviceType, const Tizen::Base::String& state);\r
124 \r
125         //IDeviceNotificationListener\r
126         void OnDeviceChange(ComponentType deviceType, const Tizen::Base::String& state);\r
127 \r
128         //IFileEventListener\r
129         virtual void OnFileEventOccured(const unsigned long events,const Tizen::Base::String &  path, const unsigned int        eventId);\r
130 \r
131 \r
132 private:\r
133 \r
134         // Copy Constructor of the class.\r
135         SearchForm(const SearchForm&);\r
136 \r
137         // Assignment operator of the class.\r
138         SearchForm& operator =(const SearchForm& pSearchForm);\r
139 \r
140         result CreateDeleteConfirmationPopup(void);\r
141         result CreateFileProgressingPopup(void);\r
142         void DeleteFile(Tizen::Base::String& filePath);\r
143         void HideDeleteConfirmationPopup(void);\r
144         void HideFileProgressingPopup(void);\r
145         void LoadDetailForm(Tizen::Base::String& Fullpath);\r
146         void LoadRenameForm(int index, DirectoryEntry* pDirectory);\r
147         void LoadSubDirectoryForm(Tizen::Base::String& fullPath, Tizen::Base::String& fileName);\r
148         void TransitionScene(void);\r
149         void ShowDeleteConfirmationPopup(void);\r
150         void ShowFileProgressingPopup(void);\r
151         void StartSearch(void);\r
152         void GetFolderName(void);\r
153 \r
154         void GetParentFolderPath(Tizen::Base::String* filePath);\r
155 \r
156 private:\r
157         bool __searchedAllFolders;\r
158         bool __isSearchCompleted;\r
159         bool __isSearchStarted;\r
160         bool __isCancelClicked;\r
161         bool __bCheckArgsNull;\r
162         bool __isCurrentDirectoryRenamed;\r
163         bool __bIsResultList;\r
164         int __itemCount;\r
165         int __searchItemIndex;\r
166         int __selectedItemIndexForRename;\r
167         int __selectedItemIndexForDelete;\r
168 \r
169         MemoryType __SelectedTab;\r
170         MemoryType __previouFormTab;\r
171 \r
172         Tizen::App::Package::PackageManager* __pPackageManager;\r
173 \r
174         Tizen::Base::Collection::ArrayList* __pContentListFromLastView;\r
175         Tizen::Base::Collection::ArrayList* __pSearchedContentList;\r
176         Tizen::Base::String __currentSearchDirectoryPath;\r
177         Tizen::Base::String __fileToDelete;\r
178         Tizen::Base::String __searchText;\r
179         Tizen::Base::String __previousFormPath;\r
180         Tizen::Base::String __previousSceneId;\r
181         Tizen::Base::String __pathOfSelectedFile;\r
182 \r
183         Tizen::Graphics::Bitmap* __pDummyImage;\r
184         Tizen::Graphics::Bitmap* __pFolderBitmap;\r
185         Tizen::Graphics::Rectangle __listViewRectangle;\r
186 \r
187         Tizen::Ui::Controls::Button* __pCancelDeletion;\r
188         Tizen::Ui::Controls::Button* __pCancelSearch;\r
189         Tizen::Ui::Controls::Button* __pDelete;\r
190         Tizen::Ui::Controls::Button* __pFileProgressingCancelButton;\r
191 \r
192 \r
193         Tizen::Ui::Controls::Label* __pDividerLabel;\r
194         Tizen::Ui::Controls::Label* __pFileProgressingHeaderLabel;\r
195         Tizen::Ui::Controls::Label* __pFileProgressingLabel;\r
196         Tizen::Ui::Controls::Label* __pPopUpLabel;\r
197 \r
198         Tizen::Ui::Controls::ListContextItem* __pItemContext;\r
199         Tizen::Ui::Controls::ListView* __pListView;\r
200 \r
201         Tizen::Ui::Controls::Panel* __pPopUpPanel;\r
202 \r
203         Tizen::Ui::Controls::Popup* __pDeleteConfirmationPopUp;\r
204         Tizen::Ui::Controls::Popup* __pFileProgressingPopup;\r
205 \r
206         Tizen::Ui::Controls::Progress* __pFileProgressingProgress;\r
207 \r
208         Tizen::Ui::Controls::SearchBar* __pSearchBar;\r
209         Tizen::Ui::Controls::SearchBarMode __searchBarMode;\r
210 \r
211         Tizen::Io::FileEventManager* __pFileEventManager;\r
212 \r
213 \r
214         SearchPresentationModel* __pSearchModel;\r
215         ThumbnailManager* __pThumbnailManager;\r
216         FolderEntryPresentationModel* __pFolderEntryPM;\r
217 \r
218         static int searchBackSelected;\r
219 \r
220         static const int ID_BACK = 100;\r
221 \r
222         static const int IDA_CONTEXT_DETAIL = 101;\r
223         static const int IDA_CONTEXT_RENAME = 102;\r
224         static const int IDA_CONTEXT_DELETE = 103;\r
225 \r
226         static const int IDA_BTN_POPUP_SEARCH_CANCEL = 200;\r
227         static const int IDA_CANCEL_INSTALLATION = 303;\r
228         static const int IDA_INSTALL_APP = 304;\r
229         static const int IDA_CANCEL_DELETION = 203;\r
230         static const int IDA_DELETE_FILE = 204;\r
231 \r
232         static const int IDA_BTN_ANIMATION_POPUP_CANCEL = 300;\r
233   };\r
234 \r
235 #endif //_MF_SEARCH_FORM_H_\r