Fixed Nabi Issues
[apps/osp/Internet.git] / inc / IntHistoryListForm.h
1 //
2
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://floralicense.org/license/
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 //!Internet HistoryListForm class
19 /*@file: HistoryListForm.h
20  *@brief:       This class defines HistoryListForm used define history
21  *
22  */
23
24 #ifndef _INT_HISTORY_LIST_FORM_H_
25 #define _INT_HISTORY_LIST_FORM_H_
26
27 #include <FBase.h>
28 #include <FUi.h>
29
30 /**
31  * @class HistoryListForm
32  * @brief This class declares functions which displays history of browsed items, also one can search for items
33  */
34 class HistoryListForm
35         : public Tizen::Ui::Controls::Form
36         , public Tizen::Ui::IActionEventListener
37         , public Tizen::Ui::Controls::IFormBackEventListener
38         , public Tizen::Ui::Controls::IGroupedListViewItemProvider
39         , public Tizen::Ui::Controls::IGroupedListViewItemEventListener
40         , public Tizen::Ui::IKeypadEventListener
41         , public Tizen::Ui::IOrientationEventListener
42         , public Tizen::Ui::Controls::ISearchBarEventListener
43         , public Tizen::Ui::Scenes::ISceneEventListener
44 {
45 public:
46         /**
47          * @brief The Default Constructor
48          */
49         HistoryListForm(void);
50         /**
51          * @brief The Default Destructor
52          */
53         virtual ~HistoryListForm(void);
54
55         /**
56          * @brief Initializes this HistoryListForm.
57          */
58         bool Initialize(void);
59
60         /**
61          * @brief creates group items and store them in arraylist for later use.
62          */
63         void CreateGroupItems(void);
64
65         /**
66          * @brief converts the integer value of month to string value for that corresponding month.
67          */
68         Tizen::Base::String GetMonth(int month);
69
70         // IActionEventListener
71         virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
72
73         // IFormBackEventListener
74         virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
75
76         //IGroupedListViewItemEventListener
77         void OnGroupedListViewContextItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
78         void OnGroupedListViewItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListItemStatus status);
79         void OnGroupedListViewItemSwept(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, Tizen::Ui::Controls::SweepDirection direction);
80
81         /**
82          * brief Initializes the controls of the UI for HistoryListForm.
83          */
84         virtual result OnInitializing(void);
85
86         virtual result OnTerminating(void);
87
88         //IOrientationEventListener
89         virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus);
90
91         //IGroupedListViewItemProvider
92         Tizen::Ui::Controls::GroupItem* CreateGroupItem(int groupIndex, int itemWidth);
93         Tizen::Ui::Controls::ListItemBase* CreateItem(int groupIndex, int itemIndex, int itemWidth);
94         bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth);
95         bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
96         int GetGroupCount(void);
97         int GetItemCount(int groupIndex);
98
99         //IKeypadEventListener
100         virtual void OnKeypadWillOpen(Tizen::Ui::Control& source);
101         virtual void OnKeypadOpened(Tizen::Ui::Control& source);
102         virtual void OnKeypadClosed(Tizen::Ui::Control& source);
103         virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction);
104
105         //ISceneEventListener
106         virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
107         virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);
108
109         //ISearchBarEventListener
110         virtual void OnSearchBarModeChanged(Tizen::Ui::Controls::SearchBar& source, Tizen::Ui::Controls::SearchBarMode mode);
111
112
113 protected:
114         static const int IDA_TABBAR_ITEM_1;
115         static const int IDA_TABBAR_ITEM_2;
116         static const int IDA_EDIT_HISTORY_LIST_FORM;
117         static const int IDA_FORMAT_ICON;
118         static const int IDA_FORMAT_TITLE;
119         static const int IDA_FORMAT_URL;
120         static const int IDA_FORMAT_BOOKMARK;
121
122 private:
123         bool __isNoHistoryPresent;
124         Tizen::Base::Collection::ArrayList*     __pBookmarkList;
125         Tizen::Base::Collection::ArrayList* __pGroupData;
126         Tizen::Ui::Controls::GroupedListView* __pGroupedListView; // The GroupedListView which contains the history lists
127         Tizen::Ui::Controls::SearchBar* __pSearchBar;
128         Tizen::Base::Collection::ArrayList* __pSearchedData;
129         Tizen::Ui::Controls::GroupedListView* __pSearchListView; // The GroupedListView which contains the Search history lists
130         bool __searchHistory;
131         Tizen::Base::String __searchText;
132         Tizen::Ui::Scenes::SceneId __previousSceneId;
133 };
134
135 /**
136  * @class GroupItemClass
137  * @brief This class helps in storing group item data
138  */
139 class GroupItemClass
140         :public Tizen::Base::Object
141 {
142 private:
143         Tizen::Base::DateTime __startTime;
144         Tizen::Base::DateTime __endTime;
145         Tizen::Base::String __titleText;
146         Tizen::Base::Collection::ArrayList* __pData;
147
148 public:
149         GroupItemClass(void);
150         ~GroupItemClass(void);
151         GroupItemClass(const GroupItemClass& groupItem);
152         GroupItemClass& operator =(const GroupItemClass& groupItem);
153         /**
154          * This function gets the GetEndTime of History
155          *
156          * @return      A DateTime
157          * @param               No parameter
158          */
159         Tizen::Base::DateTime GetEndTime(void);
160
161         /**
162          * This function gets the GetHistoryData of History
163          *
164          * @return      A Pointer to ArrayList
165          * @param               No parameter
166          */
167         Tizen::Base::Collection::ArrayList* GetHistoryData(void);
168
169         /**
170          * This function gets the GetStartTime of History
171          *
172          * @return      A DateTime
173          * @param               No parameter
174          */
175         Tizen::Base::DateTime GetStartTime(void);
176
177         /**
178          * This function gets the GetTitleText of History
179          *
180          * @return      A String
181          * @param               No parameter
182          */
183         Tizen::Base::String GetTitleText(void);
184
185         /**
186          * This function sets the StartTime for the History object
187          *
188          * @return      No return type
189          * @param               startTime                               The StartTime for the History
190          */
191         void SetStartTime(Tizen::Base::DateTime& startTime);
192
193         /**
194          * This function sets the endTime for the History object
195          *
196          * @return      No return type
197          * @param               endTime                         The endTime for the History
198          */
199         void SetEndTime(Tizen::Base::DateTime& endTime);
200
201         /**
202          * This function sets the titleText for the History object
203          *
204          * @return      No return type
205          * @param               titleText                               The titleText for the History
206          */
207         void SetTitleText(Tizen::Base::String& titleText);
208
209         /**
210          * This function sets the data for the History object
211          *
212          * @return      No return type
213          * @param               pData                           The data for the History
214          */
215         void SetHistoryData(Tizen::Base::Collection::ArrayList* pData);
216
217 };
218 #endif /* _INT_HISTORY_LIST_FORM_H_ */