3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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
9 // http://floralicense.org/license/
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.
19 /*@file: IntBookmarkPresentationModel.cpp
20 *@brief: Used to define BookmarkPresentationModel
25 #include "IntBookmarkData.h"
26 #include "IntBookmarkPresentationModel.h"
29 using namespace Tizen::App;
30 using namespace Tizen::Base;
31 using namespace Tizen::Base::Collection;
32 using namespace Tizen::Base::Utility;
33 using namespace Tizen::Io;
34 using namespace Tizen::Locales;
35 using namespace Tizen::System;
37 extern const wchar_t* BOOKMARK_URL_TABLE;
38 //extern const wchar_t* BOOKMARK_FOLDER_TABLE;
39 extern const wchar_t* DEFAULT_VALUE_PARENTID ;
41 BookmarkPresentationModel* BookmarkPresentationModel::__pBookmarkPresentationModel = null;
43 BookmarkPresentationModel::BookmarkPresentationModel(void)
48 BookmarkPresentationModel::~BookmarkPresentationModel(void)
53 BookmarkPresentationModel::BookmarkPresentationModel(const BookmarkPresentationModel& settingModelObj)
58 BookmarkPresentationModel& BookmarkPresentationModel::operator=(const BookmarkPresentationModel& settingModelObj)
64 BookmarkPresentationModel::Construct(void)
67 DB_FILE_PATH = L"/opt/usr/dbspace/.internet_bookmark.db";
69 r = PresentationModelBase::Initialize();
70 TryCatch( !IsFailed(r),,"Failed to intitialize bookmarkPresentation Model %s",GetErrorMessage(r));
75 BookmarkPresentationModel::CreateInstance(void)
77 if (__pBookmarkPresentationModel == null)
78 __pBookmarkPresentationModel = new(std::nothrow) BookmarkPresentationModel();
79 result r = __pBookmarkPresentationModel->Construct();
82 delete __pBookmarkPresentationModel;
83 __pBookmarkPresentationModel = null;
86 std::atexit(DestroyInstance);
90 void BookmarkPresentationModel::DestroyInstance(void)
92 if (__pBookmarkPresentationModel)
94 delete __pBookmarkPresentationModel;
95 __pBookmarkPresentationModel = null;
100 BookmarkPresentationModel*
101 BookmarkPresentationModel::GetInstance(void)
103 if(__pBookmarkPresentationModel == null)
107 return __pBookmarkPresentationModel;
111 BookmarkPresentationModel::SaveFolder(BookmarkData& bookmark)
113 bookmark.SetParentId("0");
114 return SaveTempBookmark(bookmark);
118 BookmarkPresentationModel::SaveBookmark(BookmarkData& bookmark)
120 result r = E_FAILURE;
121 String bookmarkTable(BOOKMARK_URL_TABLE);
125 int resultCount = -1;
129 String bookmarkTitle = bookmark.GetBookmarkTitle();
130 bookmarkTitle.Replace(L"'", L"''");
131 String bookmarkUrl = bookmark.GetUrl();
132 bookmarkUrl.Replace(L"'", L"''");
134 AppLog("BookmarkPresentationModel::SaveBookmark");
137 ByteBuffer* pFavBuffer = bookmark.GetFavIconBuffer();
138 if(pFavBuffer != null)
140 AppLog("Buffer found");
145 AppLog("BookmarkPresentationModel::SaveBookmark 0 ");
147 while(pFavBuffer->HasRemaining())
149 pFavBuffer->GetWchar(value);
150 pFavArray.Append(value);
154 AppLog("BookmarkPresentationModel::SaveBookmark 1 pFavArray(%d) is %ls",pFavArray.GetLength(), pFavArray.GetPointer());
156 PresentationModelBase::GetCurrentDateTime(dt);
157 if (bookmark.GetBookmarkId() == "")
159 columnNames.Append(L"TYPE, ");
160 columnNames.Append(L"PARENT, ");
161 columnNames.Append(L"ADDRESS, ");
162 columnNames.Append(L"TITLE, ");
163 columnNames.Append(L"CREATIONDATE, ");
164 columnNames.Append(L"UPDATEDATE, ");
165 columnNames.Append(L"FAVICON, ");
166 // columnNames.Append(L"FAVICON_LENGTH, ");
167 columnNames.Append(L"FAVICON_W, ");
168 columnNames.Append(L"FAVICON_H");
169 //columnNames.Append(L"FAVICON_ID"
170 //columnNames.Append(L"FAVICON_ID");
172 query.Append(L"INSERT INTO ");
173 query.Append(bookmarkTable);
175 query.Append(columnNames);
177 query.Append("VALUES(");
178 query.Append(bookmark.GetBookmarkType());
180 query.Append(bookmark.GetParentId());
183 query.Append(bookmarkUrl);
186 query.Append(bookmarkTitle);
189 query.Append(dt.ToString());
192 query.Append(dt.ToString());
195 query.Append(pFavArray);
197 query.Append(bookmark.GetFavIconWidth());
199 query.Append(bookmark.GetFavIconHeight());
200 /*query.Append("', ");
202 query.Append(bookmark.GetIconPath());
206 query.Append(bookmark.GetFaviconId());*/
211 query.Append(L"UPDATE ");
212 query.Append(bookmarkTable);
213 query.Append(" SET PARENT = ");
214 query.Append(bookmark.GetParentId());
215 query.Append(", ADDRESS = ");
217 query.Append(bookmarkUrl);
219 query.Append(", TITLE = ");
221 query.Append(bookmarkTitle);
223 query.Append(", UPDATEDATE = ");
225 query.Append(dt.ToString());
227 query.Append(" WHERE ID = ");
228 query.Append(bookmark.GetBookmarkId());
229 /*query.Append(L"UPDATE ");
230 query.Append(bookmarkTable);
231 query.Append(" SET TITLE = ");
233 query.Append(bookmarkTitle);
235 query.Append(", URL = ");
237 query.Append(bookmarkUrl);
239 query.Append(", PARENT_BOOKMARK_ID = ");
240 query.Append(bookmark.GetParentId());
241 query.Append(", MODIFIED_TIME = ");
243 query.Append(dt.ToString());
245 query.Append(", ICON_PATH = ");
247 query.Append(bookmark.GetIconPath());
249 query.Append(", FAVICON_ID = ");
251 query.Append(bookmark.GetFaviconId());
253 query.Append(" WHERE ID = ");
254 query.Append(bookmark.GetBookmarkId());*/
257 r = PresentationModelBase::ExecuteQuery(query, resultCount);
258 AppLog("BookmarkPresentationModel::SaveBookmark query is %S",query.GetPointer());
262 AppLog("BookmarkPresentationModel::SaveBookmark query is success");
266 AppLog("BookmarkPresentationModel::SaveBookmark query is failure");
269 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark query failed %s",GetErrorMessage(r));
271 r = PresentationModelBase::CommitDb();
273 r = GetLastInsertedId(bookmarkTable, rowId);
274 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark GetLastInsertedId failed %s",GetErrorMessage(r));
279 bookmarkId.Append(rowId);
281 //Set the generated ID to Bookmark
282 bookmark.SetBookmarkId(bookmarkId);
288 BookmarkPresentationModel::SaveTempBookmark(BookmarkData& bookmark)
290 result r = E_FAILURE;
291 String bookmarkTable(BOOKMARK_URL_TABLE);
295 int resultCount = -1;
299 String bookmarkTitle = bookmark.GetBookmarkTitle();
300 bookmarkTitle.Replace(L"'", L"''");
301 String bookmarkUrl = bookmark.GetUrl();
302 bookmarkUrl.Replace(L"'", L"''");
304 PresentationModelBase::GetCurrentDateTime(dt);
306 if (bookmark.GetBookmarkId() == "")
308 columnNames.Append(L"TYPE, ");
309 columnNames.Append(L"PARENT, ");
310 columnNames.Append(L"ADDRESS, ");
311 columnNames.Append(L"TITLE, ");
312 columnNames.Append(L"CREATIONDATE, ");
313 columnNames.Append(L"UPDATEDATE, ");
315 columnNames.Append(L"FAVICON, ");
316 columnNames.Append(L"FAVICON_W, ");
317 columnNames.Append(L"FAVICON_H");
319 query.Append(L"INSERT INTO ");
320 query.Append(bookmarkTable);
322 query.Append(columnNames);
324 query.Append("VALUES");
325 query.Append(" (?,?,?,?,?,?,?,?,?)");
326 r = PresentationModelBase::ExecuteBookmarkQuery(query, resultCount, bookmark);
330 query.Append(L"UPDATE ");
331 query.Append(bookmarkTable);
332 query.Append(" SET PARENT = ");
333 query.Append(bookmark.GetParentId());
334 query.Append(", ADDRESS = ");
336 query.Append(bookmarkUrl);
338 query.Append(", TITLE = ");
340 query.Append(bookmarkTitle);
342 query.Append(", UPDATEDATE = ");
344 query.Append(dt.ToString());
346 query.Append(" WHERE ID = ");
347 query.Append(bookmark.GetBookmarkId());
348 r = PresentationModelBase::ExecuteQuery(query, resultCount);
352 AppLog("BookmarkPresentationModel::SaveBookmark query is %S",query.GetPointer());
356 AppLog("BookmarkPresentationModel::SaveBookmark query is success");
360 AppLog("BookmarkPresentationModel::SaveBookmark query is failure");
363 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark query failed %s",GetErrorMessage(r));
365 r = PresentationModelBase::CommitDb();
367 r = GetLastInsertedId(bookmarkTable, rowId);
368 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark GetLastInsertedId failed %s",GetErrorMessage(r));
373 bookmarkId.Append(rowId);
375 //Set the generated ID to Bookmark
376 bookmark.SetBookmarkId(bookmarkId);
383 BookmarkPresentationModel::DeleteFolder(int folderId)
385 result r = E_SUCCESS;
387 String bookmarkTable(BOOKMARK_URL_TABLE);
388 int resultCount = -1;
392 return E_INVALID_ARG;
395 //strQuery.Format(MAX_DB_QUERY_SIZE, L"DELETE FROM %ls WHERE ID = %d", strBookmarkTable.GetPointer(), bookmarkId);
396 query.Append(L"DELETE FROM ");
397 query.Append(bookmarkTable);
398 query.Append(" WHERE ID = ");
399 query.Append(folderId);
401 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
402 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
403 r = BookmarkPresentationModel::CommitDb();
404 DeleteBookmarkByFolderId(folderId);
410 BookmarkPresentationModel::DeleteBookmark(int bookmarkId)
412 result r = E_SUCCESS;
414 String bookmarkTable(BOOKMARK_URL_TABLE);
415 int resultCount = -1;
419 return E_INVALID_ARG;
422 //strQuery.Format(MAX_DB_QUERY_SIZE, L"DELETE FROM %ls WHERE ID = %d", strBookmarkTable.GetPointer(), bookmarkId);
423 query.Append(L"DELETE FROM ");
424 query.Append(bookmarkTable);
425 query.Append(" WHERE ID = ");
426 query.Append(bookmarkId);
428 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
429 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
430 r = BookmarkPresentationModel::CommitDb();
436 BookmarkPresentationModel::DeleteBookmarkByFolderId(int folderId)
438 result r = E_SUCCESS;
440 String bookmarkTable(BOOKMARK_URL_TABLE);
441 int resultCount = -1;
445 return E_INVALID_ARG;
448 //strQuery.Format(MAX_DB_QUERY_SIZE, L"DELETE FROM %ls WHERE ID = %d", strBookmarkTable.GetPointer(), bookmarkId);
449 query.Append(L"DELETE FROM ");
450 query.Append(bookmarkTable);
451 query.Append(" WHERE PARENT = ");
452 query.Append(folderId);
454 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
455 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
456 r = BookmarkPresentationModel::CommitDb();
463 BookmarkPresentationModel::GetFolderBookmarkCount(const String& parentID, int& Count)
465 result r = E_SUCCESS;
466 int bookmarkCount = 0;
468 r = GetBookmarkCount(parentID,bookmarkCount);
469 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
471 r = GetFolderCount(parentID,folderCount);
472 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
473 Count = folderCount+ bookmarkCount;
480 BookmarkPresentationModel::GetBookmarkCount(const String& parentID, int& bookmarkCount)
485 String bookmarkTable(BOOKMARK_URL_TABLE);
486 result r = E_FAILURE;
487 bool nextRowPresent = false;
489 //query.Format(MAX_DB_QUERY_SIZE, L"SELECT COUNT(ID) FROM %ls WHERE PARENT_ID = %ls", strTable.GetPointer(),notebookId.GetPointer());
490 query.Append(L"SELECT COUNT(ID) FROM ");
491 query.Append(bookmarkTable);
492 query.Append(" WHERE PARENT = ");
493 query.Append(parentID);
494 query.Append(" AND ADDRESS != ''");
497 r = PresentationModelBase::ExecuteQuery(query, count);
498 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
499 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
500 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DbIsNextRowPresent query failed %s",GetErrorMessage(r));
501 if (nextRowPresent == true)
503 r = PresentationModelBase::GetColumn(0, intVal);
506 AppLogDebug("Error:BookmarkPresentationModel::GetColumn:%s", GetErrorMessage(r));
510 bookmarkCount = intVal;
511 AppLog("Count:%d", bookmarkCount);
517 BookmarkPresentationModel::GetFolderCount(const String& parentID, int& folderCount)
523 String bookmarkTable(BOOKMARK_URL_TABLE);
524 result r = E_FAILURE;
525 bool nextRowPresent = false;
527 //query.Format(MAX_DB_QUERY_SIZE, L"SELECT COUNT(ID) FROM %ls WHERE PARENT_ID = %ls", strTable.GetPointer(),notebookId.GetPointer());
528 query.Append(L"SELECT COUNT(ID) FROM ");
529 query.Append(bookmarkTable);
530 query.Append(" WHERE PARENT = ");
531 query.Append(parentID);
532 query.Append(" AND ADDRESS = ''");
534 r = PresentationModelBase::ExecuteQuery(query, count);
535 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
536 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
537 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DbIsNextRowPresent query failed %s",GetErrorMessage(r));
538 if (nextRowPresent == true)
540 r = PresentationModelBase::GetColumn(0, intVal);
543 AppLogDebug("Error:BookmarkPresentationModel::GetColumn:%s", GetErrorMessage(r));
547 folderCount = intVal;
548 AppLog("Count:%d", folderCount);
557 String bookmarkFolderTable(BOOKMARK_FOLDER_TABLE);
558 result r = E_FAILURE;
559 bool nextRowPresent = false;
561 if (parentID.CompareTo(DEFAULT_VALUE_PARENTID) != 0)
566 query.Append(L"SELECT COUNT(ID) FROM ");
567 query.Append(bookmarkFolderTable);
569 r = PresentationModelBase::ExecuteQuery(query, count);
570 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetFolderCount query failed %s",GetErrorMessage(r));
572 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
574 if (nextRowPresent == true)
576 r = PresentationModelBase::GetColumn(0, intVal);
578 folderCount = intVal;
584 BookmarkPresentationModel::GetFoldersBookmarks(const String& parentID, int startIndex, int limit, ArrayList& pBookmarkList)
587 arrayList.Construct();
588 GetFolder(parentID,startIndex,limit,arrayList);
589 for(int index = arrayList.GetCount()-1; index >= 0; index--)
591 pBookmarkList.Add(*arrayList.GetAt(index));
593 arrayList.RemoveAll(false);
594 GetBookmark(parentID,startIndex,limit,arrayList);
595 for(int index = arrayList.GetCount()-1; index >= 0; index--)
597 pBookmarkList.Add(*arrayList.GetAt(index));
603 BookmarkPresentationModel::GetBookmark(const String& parentID, int startIndex, int limit, ArrayList& pBookmarkList)
607 String bookmarkTable(BOOKMARK_URL_TABLE);
608 result r = E_FAILURE;
610 query.Append(L"SELECT * FROM ");
611 query.Append(bookmarkTable);
612 query.Append(" WHERE PARENT = ");
613 query.Append(parentID);
614 query.Append(" AND ADDRESS != ''");
619 query.Append(" LIMIT ");
625 query.Append(" OFFSET ");
626 query.Append(startIndex);
629 r = PresentationModelBase::ExecuteQuery(query, count);
630 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmark query failed %s",GetErrorMessage(r));
632 r = CreateBookmarkList(count, pBookmarkList);
633 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
638 result BookmarkPresentationModel::GetBookmarkForHistory(int startIndex, Tizen::Base::Collection::ArrayList& pBookmarkList)
642 String bookmarkTable(BOOKMARK_URL_TABLE);
643 result r = E_FAILURE;
645 query.Append(L"SELECT * FROM ");
646 query.Append(bookmarkTable);
647 query.Append(" WHERE ADDRESS != ''");
649 r = PresentationModelBase::ExecuteQuery(query, count);
650 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmark query failed %s",GetErrorMessage(r));
652 r = CreateBookmarkList(count, pBookmarkList);
653 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
659 BookmarkPresentationModel::GetFolder(const String& parentID, int startIndex, int limit, ArrayList& folderList)
663 String bookmarkTable(BOOKMARK_URL_TABLE);
664 result r = E_FAILURE;
666 if (parentID.CompareTo(DEFAULT_VALUE_PARENTID ) != 0)
670 query.Append(L"SELECT * FROM ");
671 query.Append(bookmarkTable);
672 query.Append(" WHERE ADDRESS = ''");
677 query.Append(" LIMIT ");
683 query.Append(" OFFSET ");
684 query.Append(startIndex);
688 r = PresentationModelBase::ExecuteQuery(query, count);
689 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetFolder query failed %s",GetErrorMessage(r));
691 r = CreateFolderList(count, folderList);
692 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
698 BookmarkPresentationModel::GetSearchFolderBookmarkCount(int& searchBookmarkCount, String& text)
700 int searchUrlCount = 0;
701 int searchFolderCount = 0;
702 GetSearchBookmarkCount(searchUrlCount,text);
703 GetSearchFolderCount(searchFolderCount,text);
704 searchBookmarkCount = searchUrlCount + searchFolderCount;
709 BookmarkPresentationModel::GetSearchBookmarkCount(int& searchBookmarkCount, String& text)
715 String bookmarkTable(BOOKMARK_URL_TABLE);
716 result r = E_FAILURE;
717 bool nextRowPresent = false;
718 text.Replace(L"'", L"''");
720 query.Append(L"SELECT COUNT(ID) FROM ");
721 query.Append(bookmarkTable);
722 query.Append(L" WHERE (TITLE LIKE '%");
725 query.Append(" OR ");
726 query.Append(L"ADDRESS LIKE '%");
729 query.Append(" AND ADDRESS != ''");
731 r = BookmarkPresentationModel::ExecuteQuery(query, count);
732 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmarkCount query failed %s",GetErrorMessage(r));
734 r = BookmarkPresentationModel::DbIsNextRowPresent(nextRowPresent);
736 if (nextRowPresent == true)
738 r = BookmarkPresentationModel::GetColumn(0, intVal);
739 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetColumn failed %s",GetErrorMessage(r));
741 searchBookmarkCount = intVal;
748 BookmarkPresentationModel::GetSearchFolderCount(int& searchFolderCount, String& text)
754 String bookmarkTable(BOOKMARK_URL_TABLE);
755 result r = E_FAILURE;
756 bool nextRowPresent = false;
757 text.Replace(L"'", L"''");
759 query.Append(L"SELECT COUNT(ID) FROM ");
760 query.Append(bookmarkTable);
761 query.Append(L" WHERE TITLE LIKE '%");
764 query.Append(" AND ADDRESS = ''");
766 r = BookmarkPresentationModel::ExecuteQuery(query, count);
767 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmarkCount query failed %s",GetErrorMessage(r));
769 r = BookmarkPresentationModel::DbIsNextRowPresent(nextRowPresent);
771 if (nextRowPresent == true)
773 r = BookmarkPresentationModel::GetColumn(0, intVal);
774 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetColumn failed %s",GetErrorMessage(r));
776 searchFolderCount = intVal;
783 BookmarkPresentationModel::GetSearchFoldersBookmarks(int startIndex, int limit, ArrayList& pFolderList, String& text)
786 arrayList.Construct();
787 GetSearchFolder(startIndex, limit, arrayList,text);
788 for(int index = arrayList.GetCount()-1; index >= 0; index--)
790 pFolderList.Add(*arrayList.GetAt(index));
792 arrayList.RemoveAll(false);
793 GetSearchBookmark(startIndex, limit, arrayList,text);
794 for(int index = arrayList.GetCount()-1; index >= 0; index--)
796 pFolderList.Add(*arrayList.GetAt(index));
802 BookmarkPresentationModel::GetSearchBookmark(int startIndex, int limit, ArrayList& pBookmarkList, String& text)
806 String bookmarkTable(BOOKMARK_URL_TABLE);
807 result r = E_FAILURE;
809 text.Replace(L"'", L"''");
810 query.Append(L"SELECT * FROM ");
811 query.Append(bookmarkTable);
812 query.Append(L" WHERE ((TITLE LIKE '%");
815 query.Append(" OR ");
816 query.Append(L"(ADDRESS LIKE '%");
818 query.Append("%'))");
819 query.Append(" AND (ADDRESS != '')");
823 query.Append(" LIMIT ");
829 query.Append(" OFFSET ");
830 query.Append(startIndex);
833 AppLog("Query is %ls", query.GetPointer());
834 r = BookmarkPresentationModel::ExecuteQuery(query, count);
835 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmark query failed %s",GetErrorMessage(r));
837 r = CreateBookmarkList(count, pBookmarkList);
838 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
844 BookmarkPresentationModel::GetSearchFolder(int startIndex, int limit, ArrayList& pFolderList, String& text)
848 String bookmarkTable(BOOKMARK_URL_TABLE);
849 result r = E_FAILURE;
850 text.Replace(L"'", L"''");
852 query.Append(L"SELECT * FROM ");
853 query.Append(bookmarkTable);
854 query.Append(L" WHERE TITLE LIKE '%");
856 //query.Append("%')");
858 query.Append(" AND ADDRESS = ''");
863 query.Append(" LIMIT ");
869 query.Append(" OFFSET ");
870 query.Append(startIndex);
874 r = BookmarkPresentationModel::ExecuteQuery(query, count);
875 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmark query failed %s",GetErrorMessage(r));
877 r = CreateFolderList(count, pFolderList);
878 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
884 BookmarkPresentationModel::CreateFolderList(int bookmarkCount, ArrayList& folderList)
886 BookmarkData* pBookmark = null;
890 result r = E_FAILURE;
894 DateTime createdTime;
895 DateTime modifiedTime;
897 bool nextRowPresent = false;
899 if (bookmarkCount < 1)
903 for (int l_bookmarkCount = 0; l_bookmarkCount < bookmarkCount; l_bookmarkCount++)
905 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
908 if (nextRowPresent == true)
910 pBookmark = new(std::nothrow) BookmarkData;
914 for (int columnCount = 0; columnCount < MAX_NOTE_TABLE_COLUMN; columnCount++)
920 r = PresentationModelBase::GetColumn(columnCount, intVal);
926 bookmarkId.Append(intVal);
927 if (bookmarkId.GetLength() > 0)
928 pBookmark->SetBookmarkId(bookmarkId);
933 case BOOKMARK_PARENT:
934 r = PresentationModelBase::GetColumn(columnCount, intVal);
940 parentId.Append(intVal);
941 if (parentId.GetLength() > 0)
942 pBookmark->SetParentId(parentId);
946 case BOOKMARK_ADDRESS:
947 r = PresentationModelBase::GetColumn(columnCount, value);
950 pBookmark->SetUrl(value);
954 r = PresentationModelBase::GetColumn(columnCount, value);
957 pBookmark->SetBookmarkTitle(value);
960 case BOOKMARK_CREATIONDATE:
961 r = PresentationModelBase::GetColumn(columnCount, dateValue);
964 createdTime = dateValue;
965 pBookmark->SetCreatedTime(createdTime);
969 case BOOKMARK_UPDATEDATA:
970 r = PresentationModelBase::GetColumn(columnCount, dateValue);
973 modifiedTime = dateValue;
974 pBookmark->SetModifiedTime(modifiedTime);
979 r = PresentationModelBase::GetColumn(columnCount, value);
983 pBookmark->SetIconPath(iconPath);
988 r = PresentationModelBase::GetColumn(columnCount, intVal);
994 faviconId.Append(intVal);
995 if (faviconId.GetLength() > 0)
997 pBookmark->SetFaviconId(faviconId);
1009 r = folderList.Add(*pBookmark);
1022 BookmarkPresentationModel::CreateBookmarkList(int bookmarkCount, ArrayList& bookmarkList)
1024 AppLog("BookmarkPresentationModel::CreateBookmarkList start");
1025 BookmarkData* pBookmark = null;
1029 result r = E_FAILURE;
1033 DateTime createdTime;
1034 DateTime modifiedTime;
1035 ByteBuffer *pFavIconBuffer = null;
1038 bool nextRowPresent = false;
1040 if (bookmarkCount < 1)
1045 for (int l_bookmarkCount = 0; l_bookmarkCount < bookmarkCount; l_bookmarkCount++)
1047 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
1050 if (nextRowPresent == true)
1052 pBookmark = new(std::nothrow) BookmarkData;
1055 for (int columnCount = 0; columnCount < MAX_NOTE_TABLE_COLUMN; columnCount++)
1058 switch (columnCount)
1061 r = PresentationModelBase::GetColumn(columnCount, intVal);
1067 bookmarkId.Append(intVal);
1068 if (bookmarkId.GetLength() > 0)
1069 pBookmark->SetBookmarkId(bookmarkId);
1074 case BOOKMARK_PARENT:
1075 r = PresentationModelBase::GetColumn(columnCount, intVal);
1081 parentId.Append(intVal);
1082 if (parentId.GetLength() > 0)
1083 pBookmark->SetParentId(parentId);
1087 case BOOKMARK_ADDRESS:
1088 r = PresentationModelBase::GetColumn(columnCount, value);
1091 pBookmark->SetUrl(value);
1094 case BOOKMARK_TITLE:
1095 r = PresentationModelBase::GetColumn(columnCount, value);
1098 pBookmark->SetBookmarkTitle(value);
1101 case BOOKMARK_CREATIONDATE:
1102 r = PresentationModelBase::GetColumn(columnCount, dateValue);
1105 createdTime = dateValue;
1106 pBookmark->SetCreatedTime(createdTime);
1109 case BOOKMARK_SEQUENCE:
1114 case BOOKMARK_UPDATEDATA:
1115 r = PresentationModelBase::GetColumn(columnCount, dateValue);
1118 modifiedTime = dateValue;
1119 pBookmark->SetModifiedTime(modifiedTime);
1122 case BOOKMARK_VISITDATE:
1127 case BOOKMARK_EDITABLE:
1132 case BOOKMARK_ACCESSACCOUNT:
1137 case BOOKMARK_FAVICON:
1139 AppLog("BookmarkPresentationModel::CreateBookmarkList BOOKMARK_FAVICON 0");
1140 pFavIconBuffer = new ByteBuffer();
1141 r = PresentationModelBase::GetColumn(columnCount, *pFavIconBuffer);
1142 AppLog("BookmarkPresentationModel::CreateBookmarkList BOOKMARK_FAVICON 1");
1143 if (pFavIconBuffer->GetCapacity() > 0)
1145 AppLog("BookmarkPresentationModel::CreateBookmarkList favIconBuffer not null");
1149 AppLog("BookmarkPresentationModel::CreateBookmarkList favIconBuffer is null");
1155 pBookmark->SetFavIconBuffer(*pFavIconBuffer);
1159 case BOOKMARK_FAVICON_LENGTH:
1164 case BOOKMARK_FAVICON_W:
1166 r = PresentationModelBase::GetColumn(columnCount, intVal);
1171 pBookmark->SetFavIconWidth(intVal);
1176 case BOOKMARK_FAVICON_H:
1178 r = PresentationModelBase::GetColumn(columnCount, intVal);
1183 pBookmark->SetFavIconHeight(intVal);
1190 r = PresentationModelBase::GetColumn(columnCount, value);
1194 pBookmark->SetIconPath(iconPath);
1199 r = PresentationModelBase::GetColumn(columnCount, intVal);
1205 faviconId.Append(intVal);
1206 if (faviconId.GetLength() > 0)
1208 pBookmark->SetFaviconId(faviconId);
1220 r = bookmarkList.Add(*pBookmark);
1229 AppLog("BookmarkPresentationModel::CreateBookmarkList end");
1234 BookmarkPresentationModel::DoesBookmarkExist(const Tizen::Base::String& Url, bool &exist, const String& parentId, bool checkParentId)
1236 int bookmarkCount = -1;
1239 String bookmarkTable(BOOKMARK_URL_TABLE);
1240 result r = E_FAILURE;
1241 bool nextRowPresent = false;
1244 query.Append(L"SELECT COUNT(ID) FROM ");
1245 query.Append(bookmarkTable);
1246 query.Append(" WHERE ADDRESS = '");
1248 if(checkParentId == true)
1250 query.Append(L"' AND PARENT = '");
1251 query.Append(parentId);
1255 AppLog("BookmarkPresentationModel::DoesBookmarkExist query is %S",query.GetPointer());
1257 r = PresentationModelBase::ExecuteQuery(query, bookmarkCount);
1258 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DoesBookmarkExist query failed %s",GetErrorMessage(r));
1260 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
1262 if (nextRowPresent == true)
1264 r = PresentationModelBase::GetColumn(0, intVal);
1281 BookmarkPresentationModel::DeleteBookmark(const Tizen::Base::String& url)
1283 result r = E_SUCCESS;
1285 String bookmarkTable(BOOKMARK_URL_TABLE);
1286 int resultCount = -1;
1288 query.Append(L"DELETE FROM ");
1289 query.Append(bookmarkTable);
1290 query.Append(" WHERE ADDRESS = '");
1294 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
1295 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
1297 r = BookmarkPresentationModel::CommitDb();