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.1 (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 #include <FSystem.h>
30
31 /**
32  * @class HistoryListForm
33  * @brief This class declares functions which displays history of browsed items, also one can search for items
34  */
35 class HistoryListForm
36         : public Tizen::Ui::Controls::Form
37         , public Tizen::Ui::IActionEventListener
38         , public Tizen::Ui::IFocusEventListener
39         , public Tizen::Ui::Controls::IFormBackEventListener
40         , public Tizen::Ui::Controls::IGroupedListViewItemProvider
41         , public Tizen::Ui::Controls::IGroupedListViewItemEventListener
42         , public Tizen::Ui::IKeypadEventListener
43         , public Tizen::Ui::IOrientationEventListener
44         , public Tizen::Ui::Controls::ISearchBarEventListener
45         , public Tizen::Ui::Scenes::ISceneEventListener
46         , public Tizen::System::ISettingEventListener
47 {
48 public:
49         /**
50          * @brief The Default Constructor
51          */
52         HistoryListForm(void);
53         /**
54          * @brief The Default Destructor
55          */
56         virtual ~HistoryListForm(void);
57
58         /**
59          * @brief Initializes this HistoryListForm.
60          */
61         bool Initialize(void);
62
63         /**
64          * @brief creates group items and store them in arraylist for later use.
65          */
66         void CreateGroupItems(void);
67
68         /**
69          * @brief converts the integer value of month to string value for that corresponding month.
70          */
71         Tizen::Base::String GetMonth(int month);
72
73         // IActionEventListener
74         virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
75
76         //IFocusEventListener
77         virtual void OnFocusGained(const Tizen::Ui::Control& source) ;
78         virtual void OnFocusLost(const Tizen::Ui::Control& source) ;
79
80         // IFormBackEventListener
81         virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
82
83         //IGroupedListViewItemEventListener
84         void OnGroupedListViewContextItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
85         void OnGroupedListViewItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListItemStatus status);
86         void OnGroupedListViewItemSwept(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, Tizen::Ui::Controls::SweepDirection direction);
87
88         /**
89          * brief Initializes the controls of the UI for HistoryListForm.
90          */
91         virtual result OnInitializing(void);
92
93         virtual result OnTerminating(void);
94
95         //IOrientationEventListener
96         virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus);
97
98         //IGroupedListViewItemProvider
99         Tizen::Ui::Controls::GroupItem* CreateGroupItem(int groupIndex, int itemWidth);
100         Tizen::Ui::Controls::ListItemBase* CreateItem(int groupIndex, int itemIndex, int itemWidth);
101         bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth);
102         bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
103         int GetGroupCount(void);
104         int GetItemCount(int groupIndex);
105
106         //IKeypadEventListener
107         virtual void OnKeypadWillOpen(Tizen::Ui::Control& source);
108         virtual void OnKeypadOpened(Tizen::Ui::Control& source);
109         virtual void OnKeypadClosed(Tizen::Ui::Control& source);
110         virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction);
111         virtual void OnKeypadBoundsChanged(Tizen::Ui::Control& source);
112
113         //ISceneEventListener
114         virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
115         virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);
116
117         //ISearchBarEventListener
118         virtual void OnSearchBarModeChanged(Tizen::Ui::Controls::SearchBar& source, Tizen::Ui::Controls::SearchBarMode mode);
119
120         void OnSettingChanged(Tizen::Base::String& key);
121
122 protected:
123         static const int IDA_TABBAR_ITEM_1;
124         static const int IDA_TABBAR_ITEM_2;
125         static const int IDA_EDIT_HISTORY_LIST_FORM;
126         static const int IDA_FORMAT_ICON;
127         static const int IDA_FORMAT_TITLE;
128         static const int IDA_FORMAT_URL;
129         static const int IDA_FORMAT_BOOKMARK;
130
131 private:
132         bool __isNoHistoryPresent;
133         Tizen::Base::Collection::ArrayList*     __pBookmarkList;
134         Tizen::Base::Collection::ArrayList* __pGroupData;
135         Tizen::Ui::Controls::GroupedListView* __pGroupedListView; // The GroupedListView which contains the history lists
136         Tizen::Ui::Controls::SearchBar* __pSearchBar;
137         Tizen::Base::Collection::ArrayList* __pSearchedData;
138         Tizen::Ui::Controls::GroupedListView* __pSearchListView; // The GroupedListView which contains the Search history lists
139         bool __searchHistory;
140         Tizen::Base::String __searchText;
141         Tizen::Ui::Scenes::SceneId __previousSceneId;
142         int __fontSize;
143 };
144
145 /**
146  * @class GroupItemClass
147  * @brief This class helps in storing group item data
148  */
149 class GroupItemClass
150         :public Tizen::Base::Object
151 {
152
153
154 public:
155         GroupItemClass(void);
156         ~GroupItemClass(void);
157         GroupItemClass(const GroupItemClass& groupItem);
158         GroupItemClass& operator =(const GroupItemClass& groupItem);
159         /**
160          * This function gets the GetEndTime of History
161          *
162          * @return      A DateTime
163          * @param               No parameter
164          */
165         Tizen::Base::DateTime GetEndTime(void);
166
167         /**
168          * This function gets the GetHistoryData of History
169          *
170          * @return      A Pointer to ArrayList
171          * @param               No parameter
172          */
173         Tizen::Base::Collection::ArrayList* GetHistoryData(void);
174
175         /**
176          * This function gets the GetStartTime of History
177          *
178          * @return      A DateTime
179          * @param               No parameter
180          */
181         Tizen::Base::DateTime GetStartTime(void);
182
183         /**
184          * This function gets the GetTitleText of History
185          *
186          * @return      A String
187          * @param               No parameter
188          */
189         Tizen::Base::String GetTitleText(void);
190
191         /**
192          * This function sets the StartTime for the History object
193          *
194          * @return      No return type
195          * @param               startTime                               The StartTime for the History
196          */
197         void SetStartTime(Tizen::Base::DateTime& startTime);
198
199         /**
200          * This function sets the endTime for the History object
201          *
202          * @return      No return type
203          * @param               endTime                         The endTime for the History
204          */
205         void SetEndTime(Tizen::Base::DateTime& endTime);
206
207         /**
208          * This function sets the titleText for the History object
209          *
210          * @return      No return type
211          * @param               titleText                               The titleText for the History
212          */
213         void SetTitleText(Tizen::Base::String& titleText);
214
215         /**
216          * This function sets the data for the History object
217          *
218          * @return      No return type
219          * @param               pData                           The data for the History
220          */
221         void SetHistoryData(Tizen::Base::Collection::ArrayList* pData);
222
223 private:
224         Tizen::Base::DateTime __startTime;
225         Tizen::Base::DateTime __endTime;
226         Tizen::Base::String __titleText;
227         Tizen::Base::Collection::ArrayList* __pData;
228
229 };
230 #endif /* _INT_HISTORY_LIST_FORM_H_ */