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 __pBookmarkPresentationModel->UnInitialize();
95 delete __pBookmarkPresentationModel;
96 __pBookmarkPresentationModel = null;
101 BookmarkPresentationModel*
102 BookmarkPresentationModel::GetInstance(void)
104 if(__pBookmarkPresentationModel == null)
108 return __pBookmarkPresentationModel;
112 BookmarkPresentationModel::SaveFolder(BookmarkData& bookmark)
114 bookmark.SetParentId("0");
115 return SaveTempBookmark(bookmark);
119 BookmarkPresentationModel::SaveBookmark(BookmarkData& bookmark)
121 result r = E_FAILURE;
122 String bookmarkTable(BOOKMARK_URL_TABLE);
126 int resultCount = -1;
130 String bookmarkTitle = bookmark.GetBookmarkTitle();
131 bookmarkTitle.Replace(L"'", L"\'");
132 String bookmarkUrl = bookmark.GetUrl();
133 bookmarkUrl.Replace(L"'", L"\'");
135 AppLog("BookmarkPresentationModel::SaveBookmark");
138 ByteBuffer* pFavBuffer = bookmark.GetFavIconBuffer();
139 if(pFavBuffer != null)
141 AppLog("Buffer found");
146 AppLog("BookmarkPresentationModel::SaveBookmark 0 ");
148 while(pFavBuffer->HasRemaining())
150 pFavBuffer->GetWchar(value);
151 pFavArray.Append(value);
155 AppLog("BookmarkPresentationModel::SaveBookmark 1 pFavArray(%d) is %ls",pFavArray.GetLength(), pFavArray.GetPointer());
157 PresentationModelBase::GetCurrentDateTime(dt);
158 if (bookmark.GetBookmarkId() == "")
160 columnNames.Append(L"TYPE, ");
161 columnNames.Append(L"PARENT, ");
162 columnNames.Append(L"ADDRESS, ");
163 columnNames.Append(L"TITLE, ");
164 columnNames.Append(L"CREATIONDATE, ");
165 columnNames.Append(L"UPDATEDATE, ");
166 columnNames.Append(L"FAVICON, ");
167 // columnNames.Append(L"FAVICON_LENGTH, ");
168 columnNames.Append(L"FAVICON_W, ");
169 columnNames.Append(L"FAVICON_H");
170 //columnNames.Append(L"FAVICON_ID"
171 //columnNames.Append(L"FAVICON_ID");
173 query.Append(L"INSERT INTO ");
174 query.Append(bookmarkTable);
176 query.Append(columnNames);
178 query.Append("VALUES(");
179 query.Append(bookmark.GetBookmarkType());
181 query.Append(bookmark.GetParentId());
184 query.Append(bookmarkUrl);
187 query.Append(bookmarkTitle);
190 query.Append(dt.ToString());
193 query.Append(dt.ToString());
196 query.Append(pFavArray);
198 query.Append(bookmark.GetFavIconWidth());
200 query.Append(bookmark.GetFavIconHeight());
201 /*query.Append("', ");
203 query.Append(bookmark.GetIconPath());
207 query.Append(bookmark.GetFaviconId());*/
212 query.Append(L"UPDATE ");
213 query.Append(bookmarkTable);
214 query.Append(" SET PARENT = ");
215 query.Append(bookmark.GetParentId());
216 query.Append(", ADDRESS = ");
218 query.Append(bookmarkUrl);
220 query.Append(", TITLE = ");
222 query.Append(bookmarkTitle);
224 query.Append(", UPDATEDATE = ");
226 query.Append(dt.ToString());
228 query.Append(" WHERE ID = ");
229 query.Append(bookmark.GetBookmarkId());
230 /*query.Append(L"UPDATE ");
231 query.Append(bookmarkTable);
232 query.Append(" SET TITLE = ");
234 query.Append(bookmarkTitle);
236 query.Append(", URL = ");
238 query.Append(bookmarkUrl);
240 query.Append(", PARENT_BOOKMARK_ID = ");
241 query.Append(bookmark.GetParentId());
242 query.Append(", MODIFIED_TIME = ");
244 query.Append(dt.ToString());
246 query.Append(", ICON_PATH = ");
248 query.Append(bookmark.GetIconPath());
250 query.Append(", FAVICON_ID = ");
252 query.Append(bookmark.GetFaviconId());
254 query.Append(" WHERE ID = ");
255 query.Append(bookmark.GetBookmarkId());*/
258 r = PresentationModelBase::ExecuteQuery(query, resultCount);
259 AppLog("BookmarkPresentationModel::SaveBookmark query is %S",query.GetPointer());
263 AppLog("BookmarkPresentationModel::SaveBookmark query is success");
267 AppLog("BookmarkPresentationModel::SaveBookmark query is failure");
270 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark query failed %s",GetErrorMessage(r));
272 r = PresentationModelBase::CommitDb();
274 r = GetLastInsertedId(bookmarkTable, rowId);
275 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark GetLastInsertedId failed %s",GetErrorMessage(r));
280 bookmarkId.Append(rowId);
282 //Set the generated ID to Bookmark
283 bookmark.SetBookmarkId(bookmarkId);
289 BookmarkPresentationModel::SaveTempBookmark(BookmarkData& bookmark)
291 result r = E_FAILURE;
292 String bookmarkTable(BOOKMARK_URL_TABLE);
296 int resultCount = -1;
300 String bookmarkTitle = bookmark.GetBookmarkTitle();
301 bookmarkTitle.Replace(L"'", L"''");
302 String bookmarkUrl = bookmark.GetUrl();
303 bookmarkUrl.Replace(L"'", L"''");
305 PresentationModelBase::GetCurrentDateTime(dt);
307 if (bookmark.GetBookmarkId() == "")
309 columnNames.Append(L"TYPE, ");
310 columnNames.Append(L"PARENT, ");
311 columnNames.Append(L"ADDRESS, ");
312 columnNames.Append(L"TITLE, ");
313 columnNames.Append(L"CREATIONDATE, ");
314 columnNames.Append(L"UPDATEDATE, ");
316 columnNames.Append(L"FAVICON, ");
317 columnNames.Append(L"FAVICON_W, ");
318 columnNames.Append(L"FAVICON_H");
320 query.Append(L"INSERT INTO ");
321 query.Append(bookmarkTable);
323 query.Append(columnNames);
325 query.Append("VALUES");
326 query.Append(" (?,?,?,?,?,?,?,?,?)");
327 r = PresentationModelBase::ExecuteBookmarkQuery(query, resultCount, bookmark);
331 query.Append(L"UPDATE ");
332 query.Append(bookmarkTable);
333 query.Append(" SET PARENT = ");
334 query.Append(bookmark.GetParentId());
335 query.Append(", ADDRESS = ");
337 query.Append(bookmarkUrl);
339 query.Append(", TITLE = ");
341 query.Append(bookmarkTitle);
343 query.Append(", UPDATEDATE = ");
345 query.Append(dt.ToString());
347 query.Append(" WHERE ID = ");
348 query.Append(bookmark.GetBookmarkId());
349 r = PresentationModelBase::ExecuteQuery(query, resultCount);
353 AppLog("BookmarkPresentationModel::SaveBookmark query is %S",query.GetPointer());
357 AppLog("BookmarkPresentationModel::SaveBookmark query is success");
361 AppLog("BookmarkPresentationModel::SaveBookmark query is failure");
364 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark query failed %s",GetErrorMessage(r));
366 r = PresentationModelBase::CommitDb();
368 r = GetLastInsertedId(bookmarkTable, rowId);
369 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::SaveBookmark GetLastInsertedId failed %s",GetErrorMessage(r));
374 bookmarkId.Append(rowId);
376 //Set the generated ID to Bookmark
377 bookmark.SetBookmarkId(bookmarkId);
384 BookmarkPresentationModel::DeleteFolder(int folderId)
386 result r = E_SUCCESS;
388 String bookmarkTable(BOOKMARK_URL_TABLE);
389 int resultCount = -1;
393 return E_INVALID_ARG;
396 //strQuery.Format(MAX_DB_QUERY_SIZE, L"DELETE FROM %ls WHERE ID = %d", strBookmarkTable.GetPointer(), bookmarkId);
397 query.Append(L"DELETE FROM ");
398 query.Append(bookmarkTable);
399 query.Append(" WHERE ID = ");
400 query.Append(folderId);
402 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
403 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
404 r = BookmarkPresentationModel::CommitDb();
405 DeleteBookmarkByFolderId(folderId);
411 BookmarkPresentationModel::DeleteBookmark(int bookmarkId)
413 result r = E_SUCCESS;
415 String bookmarkTable(BOOKMARK_URL_TABLE);
416 int resultCount = -1;
420 return E_INVALID_ARG;
423 //strQuery.Format(MAX_DB_QUERY_SIZE, L"DELETE FROM %ls WHERE ID = %d", strBookmarkTable.GetPointer(), bookmarkId);
424 query.Append(L"DELETE FROM ");
425 query.Append(bookmarkTable);
426 query.Append(" WHERE ID = ");
427 query.Append(bookmarkId);
429 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
430 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
431 r = BookmarkPresentationModel::CommitDb();
437 BookmarkPresentationModel::DeleteBookmarkByFolderId(int folderId)
439 result r = E_SUCCESS;
441 String bookmarkTable(BOOKMARK_URL_TABLE);
442 int resultCount = -1;
446 return E_INVALID_ARG;
449 //strQuery.Format(MAX_DB_QUERY_SIZE, L"DELETE FROM %ls WHERE ID = %d", strBookmarkTable.GetPointer(), bookmarkId);
450 query.Append(L"DELETE FROM ");
451 query.Append(bookmarkTable);
452 query.Append(" WHERE PARENT = ");
453 query.Append(folderId);
455 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
456 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
457 r = BookmarkPresentationModel::CommitDb();
464 BookmarkPresentationModel::GetFolderBookmarkCount(const String& parentID, int& Count)
466 result r = E_SUCCESS;
467 int bookmarkCount = 0;
469 r = GetBookmarkCount(parentID,bookmarkCount);
470 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
472 r = GetFolderCount(parentID,folderCount);
473 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
474 Count = folderCount+ bookmarkCount;
481 BookmarkPresentationModel::GetBookmarkCount(const String& parentID, int& bookmarkCount)
486 String bookmarkTable(BOOKMARK_URL_TABLE);
487 result r = E_FAILURE;
488 bool nextRowPresent = false;
490 //query.Format(MAX_DB_QUERY_SIZE, L"SELECT COUNT(ID) FROM %ls WHERE PARENT_ID = %ls", strTable.GetPointer(),notebookId.GetPointer());
491 query.Append(L"SELECT COUNT(ID) FROM ");
492 query.Append(bookmarkTable);
493 query.Append(" WHERE PARENT = ");
494 query.Append(parentID);
495 query.Append(" AND ADDRESS != ''");
498 r = PresentationModelBase::ExecuteQuery(query, count);
499 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
500 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
501 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DbIsNextRowPresent query failed %s",GetErrorMessage(r));
502 if (nextRowPresent == true)
504 r = PresentationModelBase::GetColumn(0, intVal);
507 AppLogDebug("Error:BookmarkPresentationModel::GetColumn:%s", GetErrorMessage(r));
511 bookmarkCount = intVal;
512 AppLog("Count:%d", bookmarkCount);
518 BookmarkPresentationModel::GetFolderCount(const String& parentID, int& folderCount)
524 String bookmarkTable(BOOKMARK_URL_TABLE);
525 result r = E_FAILURE;
526 bool nextRowPresent = false;
528 //query.Format(MAX_DB_QUERY_SIZE, L"SELECT COUNT(ID) FROM %ls WHERE PARENT_ID = %ls", strTable.GetPointer(),notebookId.GetPointer());
529 query.Append(L"SELECT COUNT(ID) FROM ");
530 query.Append(bookmarkTable);
531 query.Append(" WHERE PARENT = ");
532 query.Append(parentID);
533 query.Append(" AND ADDRESS = ''");
535 r = PresentationModelBase::ExecuteQuery(query, count);
536 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmarkCount query failed %s",GetErrorMessage(r));
537 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
538 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DbIsNextRowPresent query failed %s",GetErrorMessage(r));
539 if (nextRowPresent == true)
541 r = PresentationModelBase::GetColumn(0, intVal);
544 AppLogDebug("Error:BookmarkPresentationModel::GetColumn:%s", GetErrorMessage(r));
548 folderCount = intVal;
549 AppLog("Count:%d", folderCount);
558 String bookmarkFolderTable(BOOKMARK_FOLDER_TABLE);
559 result r = E_FAILURE;
560 bool nextRowPresent = false;
562 if (parentID.CompareTo(DEFAULT_VALUE_PARENTID) != 0)
567 query.Append(L"SELECT COUNT(ID) FROM ");
568 query.Append(bookmarkFolderTable);
570 r = PresentationModelBase::ExecuteQuery(query, count);
571 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetFolderCount query failed %s",GetErrorMessage(r));
573 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
575 if (nextRowPresent == true)
577 r = PresentationModelBase::GetColumn(0, intVal);
579 folderCount = intVal;
585 BookmarkPresentationModel::GetFoldersBookmarks(const String& parentID, int startIndex, int limit, ArrayList& pBookmarkList)
588 arrayList.Construct();
589 GetFolder(parentID,startIndex,limit,arrayList);
590 for(int index = arrayList.GetCount()-1; index >= 0; index--)
592 pBookmarkList.Add(*arrayList.GetAt(index));
594 arrayList.RemoveAll(false);
595 GetBookmark(parentID,startIndex,limit,arrayList);
596 for(int index = arrayList.GetCount()-1; index >= 0; index--)
598 pBookmarkList.Add(*arrayList.GetAt(index));
604 BookmarkPresentationModel::GetBookmark(const String& parentID, int startIndex, int limit, ArrayList& pBookmarkList)
608 String bookmarkTable(BOOKMARK_URL_TABLE);
609 result r = E_FAILURE;
611 query.Append(L"SELECT * FROM ");
612 query.Append(bookmarkTable);
613 query.Append(" WHERE PARENT = ");
614 query.Append(parentID);
615 query.Append(" AND ADDRESS != ''");
620 query.Append(" LIMIT ");
626 query.Append(" OFFSET ");
627 query.Append(startIndex);
630 r = PresentationModelBase::ExecuteQuery(query, count);
631 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmark query failed %s",GetErrorMessage(r));
633 r = CreateBookmarkList(count, pBookmarkList);
634 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
639 result BookmarkPresentationModel::GetBookmarkForHistory(int startIndex, Tizen::Base::Collection::ArrayList& pBookmarkList)
643 String bookmarkTable(BOOKMARK_URL_TABLE);
644 result r = E_FAILURE;
646 query.Append(L"SELECT * FROM ");
647 query.Append(bookmarkTable);
648 query.Append(" WHERE ADDRESS != ''");
650 r = PresentationModelBase::ExecuteQuery(query, count);
651 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetBookmark query failed %s",GetErrorMessage(r));
653 r = CreateBookmarkList(count, pBookmarkList);
654 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
660 BookmarkPresentationModel::GetFolder(const String& parentID, int startIndex, int limit, ArrayList& folderList)
664 String bookmarkTable(BOOKMARK_URL_TABLE);
665 result r = E_FAILURE;
667 if (parentID.CompareTo(DEFAULT_VALUE_PARENTID ) != 0)
671 query.Append(L"SELECT * FROM ");
672 query.Append(bookmarkTable);
673 query.Append(" WHERE ADDRESS = ''");
678 query.Append(" LIMIT ");
684 query.Append(" OFFSET ");
685 query.Append(startIndex);
689 r = PresentationModelBase::ExecuteQuery(query, count);
690 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetFolder query failed %s",GetErrorMessage(r));
692 r = CreateFolderList(count, folderList);
693 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
699 BookmarkPresentationModel::GetSearchFolderBookmarkCount(int& searchBookmarkCount, String& text)
701 int searchUrlCount = 0;
702 int searchFolderCount = 0;
703 GetSearchBookmarkCount(searchUrlCount,text);
704 GetSearchFolderCount(searchFolderCount,text);
705 searchBookmarkCount = searchUrlCount + searchFolderCount;
710 BookmarkPresentationModel::GetSearchBookmarkCount(int& searchBookmarkCount, String& text)
716 String bookmarkTable(BOOKMARK_URL_TABLE);
717 result r = E_FAILURE;
718 bool nextRowPresent = false;
719 text.Replace(L"'", L"\'");
721 query.Append(L"SELECT COUNT(ID) FROM ");
722 query.Append(bookmarkTable);
723 query.Append(L" WHERE (TITLE LIKE '%");
726 query.Append(" OR ");
727 query.Append(L"ADDRESS LIKE '%");
730 query.Append(" ESCAPE '/')");
731 query.Append(" AND ADDRESS != ''");
733 r = BookmarkPresentationModel::ExecuteQuery(query, count);
734 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmarkCount query failed %s",GetErrorMessage(r));
736 r = BookmarkPresentationModel::DbIsNextRowPresent(nextRowPresent);
738 if (nextRowPresent == true)
740 r = BookmarkPresentationModel::GetColumn(0, intVal);
741 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetColumn failed %s",GetErrorMessage(r));
743 searchBookmarkCount = intVal;
746 // text.Replace(L"''", L"'");
753 BookmarkPresentationModel::GetSearchFolderCount(int& searchFolderCount, String& text)
759 String bookmarkTable(BOOKMARK_URL_TABLE);
760 result r = E_FAILURE;
761 bool nextRowPresent = false;
762 text.Replace(L"'", L"\'");
764 query.Append(L"SELECT COUNT(ID) FROM ");
765 query.Append(bookmarkTable);
766 query.Append(L" WHERE TITLE LIKE '%");
769 query.Append(" ESCAPE '/'");
770 query.Append(" AND ADDRESS = ''");
772 r = BookmarkPresentationModel::ExecuteQuery(query, count);
773 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmarkCount query failed %s",GetErrorMessage(r));
775 r = BookmarkPresentationModel::DbIsNextRowPresent(nextRowPresent);
777 if (nextRowPresent == true)
779 r = BookmarkPresentationModel::GetColumn(0, intVal);
780 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetColumn failed %s",GetErrorMessage(r));
782 searchFolderCount = intVal;
785 // text.Replace(L"''", L"'");
791 BookmarkPresentationModel::GetSearchFoldersBookmarks(int startIndex, int limit, ArrayList& pFolderList, String& text)
794 arrayList.Construct();
795 GetSearchFolder(startIndex, limit, arrayList,text);
796 for(int index = arrayList.GetCount()-1; index >= 0; index--)
798 pFolderList.Add(*arrayList.GetAt(index));
800 arrayList.RemoveAll(false);
801 GetSearchBookmark(startIndex, limit, arrayList,text);
802 for(int index = arrayList.GetCount()-1; index >= 0; index--)
804 pFolderList.Add(*arrayList.GetAt(index));
810 BookmarkPresentationModel::GetSearchBookmark(int startIndex, int limit, ArrayList& pBookmarkList, String& text)
814 String bookmarkTable(BOOKMARK_URL_TABLE);
815 result r = E_FAILURE;
817 text.Replace(L"'", L"\'");
818 query.Append(L"SELECT * FROM ");
819 query.Append(bookmarkTable);
820 query.Append(L" WHERE ((TITLE LIKE '%");
822 query.Append("%' ESCAPE '/')");
823 query.Append(" OR ");
824 query.Append(L"(ADDRESS LIKE '%");
826 query.Append("%' ESCAPE '/') )");
827 query.Append(" AND (ADDRESS != '')");
831 query.Append(" LIMIT ");
837 query.Append(" OFFSET ");
838 query.Append(startIndex);
841 AppLog("Query is %ls", query.GetPointer());
842 r = BookmarkPresentationModel::ExecuteQuery(query, count);
843 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmark query failed %s",GetErrorMessage(r));
845 r = CreateBookmarkList(count, pBookmarkList);
846 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
849 // text.Replace(L"''", L"'");
854 BookmarkPresentationModel::GetSearchFolder(int startIndex, int limit, ArrayList& pFolderList, String& text)
858 String bookmarkTable(BOOKMARK_URL_TABLE);
859 result r = E_FAILURE;
860 text.Replace(L"'", L"\'");
862 query.Append(L"SELECT * FROM ");
863 query.Append(bookmarkTable);
864 query.Append(L" WHERE TITLE LIKE '%");
866 //query.Append("%')");
868 query.Append(" ESCAPE '/'");
869 query.Append(" AND ADDRESS = ''");
874 query.Append(" LIMIT ");
880 query.Append(" OFFSET ");
881 query.Append(startIndex);
885 r = BookmarkPresentationModel::ExecuteQuery(query, count);
886 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::GetSearchBookmark query failed %s",GetErrorMessage(r));
888 r = CreateFolderList(count, pFolderList);
889 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::CreateBookmarkList failed %s",GetErrorMessage(r));
892 // text.Replace(L"''", L"'");
897 BookmarkPresentationModel::CreateFolderList(int bookmarkCount, ArrayList& folderList)
899 BookmarkData* pBookmark = null;
903 result r = E_FAILURE;
907 DateTime createdTime;
908 DateTime modifiedTime;
910 bool nextRowPresent = false;
912 if (bookmarkCount < 1)
916 for (int l_bookmarkCount = 0; l_bookmarkCount < bookmarkCount; l_bookmarkCount++)
918 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
921 if (nextRowPresent == true)
923 pBookmark = new(std::nothrow) BookmarkData;
927 for (int columnCount = 0; columnCount < MAX_NOTE_TABLE_COLUMN; columnCount++)
933 r = PresentationModelBase::GetColumn(columnCount, intVal);
939 bookmarkId.Append(intVal);
940 if (bookmarkId.GetLength() > 0)
941 pBookmark->SetBookmarkId(bookmarkId);
946 case BOOKMARK_PARENT:
947 r = PresentationModelBase::GetColumn(columnCount, intVal);
953 parentId.Append(intVal);
954 if (parentId.GetLength() > 0)
955 pBookmark->SetParentId(parentId);
959 case BOOKMARK_ADDRESS:
960 r = PresentationModelBase::GetColumn(columnCount, value);
963 pBookmark->SetUrl(value);
967 r = PresentationModelBase::GetColumn(columnCount, value);
970 pBookmark->SetBookmarkTitle(value);
973 case BOOKMARK_CREATIONDATE:
974 r = PresentationModelBase::GetColumn(columnCount, dateValue);
977 createdTime = dateValue;
978 pBookmark->SetCreatedTime(createdTime);
982 case BOOKMARK_UPDATEDATA:
983 r = PresentationModelBase::GetColumn(columnCount, dateValue);
986 modifiedTime = dateValue;
987 pBookmark->SetModifiedTime(modifiedTime);
992 r = PresentationModelBase::GetColumn(columnCount, value);
996 pBookmark->SetIconPath(iconPath);
1001 r = PresentationModelBase::GetColumn(columnCount, intVal);
1007 faviconId.Append(intVal);
1008 if (faviconId.GetLength() > 0)
1010 pBookmark->SetFaviconId(faviconId);
1022 r = folderList.Add(*pBookmark);
1035 BookmarkPresentationModel::CreateBookmarkList(int bookmarkCount, ArrayList& bookmarkList)
1037 AppLog("BookmarkPresentationModel::CreateBookmarkList start");
1038 BookmarkData* pBookmark = null;
1042 result r = E_FAILURE;
1046 DateTime createdTime;
1047 DateTime modifiedTime;
1048 ByteBuffer *pFavIconBuffer = null;
1051 bool nextRowPresent = false;
1053 if (bookmarkCount < 1)
1058 for (int l_bookmarkCount = 0; l_bookmarkCount < bookmarkCount; l_bookmarkCount++)
1060 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
1063 if (nextRowPresent == true)
1065 pBookmark = new(std::nothrow) BookmarkData;
1068 for (int columnCount = 0; columnCount < MAX_NOTE_TABLE_COLUMN; columnCount++)
1071 switch (columnCount)
1074 r = PresentationModelBase::GetColumn(columnCount, intVal);
1080 bookmarkId.Append(intVal);
1081 if (bookmarkId.GetLength() > 0)
1082 pBookmark->SetBookmarkId(bookmarkId);
1087 case BOOKMARK_PARENT:
1088 r = PresentationModelBase::GetColumn(columnCount, intVal);
1094 parentId.Append(intVal);
1095 if (parentId.GetLength() > 0)
1096 pBookmark->SetParentId(parentId);
1100 case BOOKMARK_ADDRESS:
1101 r = PresentationModelBase::GetColumn(columnCount, value);
1104 pBookmark->SetUrl(value);
1107 case BOOKMARK_TITLE:
1108 r = PresentationModelBase::GetColumn(columnCount, value);
1111 pBookmark->SetBookmarkTitle(value);
1114 case BOOKMARK_CREATIONDATE:
1115 r = PresentationModelBase::GetColumn(columnCount, dateValue);
1118 createdTime = dateValue;
1119 pBookmark->SetCreatedTime(createdTime);
1122 case BOOKMARK_SEQUENCE:
1127 case BOOKMARK_UPDATEDATA:
1128 r = PresentationModelBase::GetColumn(columnCount, dateValue);
1131 modifiedTime = dateValue;
1132 pBookmark->SetModifiedTime(modifiedTime);
1135 case BOOKMARK_VISITDATE:
1140 case BOOKMARK_EDITABLE:
1145 case BOOKMARK_ACCESSACCOUNT:
1150 case BOOKMARK_FAVICON:
1152 AppLog("BookmarkPresentationModel::CreateBookmarkList BOOKMARK_FAVICON 0");
1153 pFavIconBuffer = new ByteBuffer();
1154 r = PresentationModelBase::GetColumn(columnCount, *pFavIconBuffer);
1155 AppLog("BookmarkPresentationModel::CreateBookmarkList BOOKMARK_FAVICON 1");
1156 if (pFavIconBuffer->GetCapacity() > 0)
1158 AppLog("BookmarkPresentationModel::CreateBookmarkList favIconBuffer not null");
1162 AppLog("BookmarkPresentationModel::CreateBookmarkList favIconBuffer is null");
1168 pBookmark->SetFavIconBuffer(*pFavIconBuffer);
1172 case BOOKMARK_FAVICON_LENGTH:
1177 case BOOKMARK_FAVICON_W:
1179 r = PresentationModelBase::GetColumn(columnCount, intVal);
1184 pBookmark->SetFavIconWidth(intVal);
1189 case BOOKMARK_FAVICON_H:
1191 r = PresentationModelBase::GetColumn(columnCount, intVal);
1196 pBookmark->SetFavIconHeight(intVal);
1203 r = PresentationModelBase::GetColumn(columnCount, value);
1207 pBookmark->SetIconPath(iconPath);
1212 r = PresentationModelBase::GetColumn(columnCount, intVal);
1218 faviconId.Append(intVal);
1219 if (faviconId.GetLength() > 0)
1221 pBookmark->SetFaviconId(faviconId);
1233 r = bookmarkList.Add(*pBookmark);
1242 AppLog("BookmarkPresentationModel::CreateBookmarkList end");
1247 BookmarkPresentationModel::DoesBookmarkExist(const Tizen::Base::String& Url, bool &exist, const String& parentId, bool checkParentId)
1249 int bookmarkCount = -1;
1252 String bookmarkTable(BOOKMARK_URL_TABLE);
1253 result r = E_FAILURE;
1254 bool nextRowPresent = false;
1256 String tempURL = Url;
1257 tempURL.Replace(L"'", L"''");
1259 query.Append(L"SELECT COUNT(ID) FROM ");
1260 query.Append(bookmarkTable);
1261 query.Append(" WHERE ADDRESS = '");
1262 query.Append(tempURL);
1263 if(tempURL.EndsWith(L"/"))
1265 query.Append("' OR ADDRESS = '");
1266 String newUrl = L"";
1267 tempURL.SubString(0,tempURL.GetLength()-1 ,newUrl);
1268 query.Append(newUrl);
1272 query.Append("' OR ADDRESS = '");
1273 String newUrl = tempURL;
1274 // Url.SubString(0,Url.GetLength()-1 ,newUrl);
1275 newUrl.Append(L"/");
1276 query.Append(newUrl);
1279 if(checkParentId == true)
1281 query.Append(L"' AND PARENT = '");
1282 query.Append(parentId);
1286 AppLog("BookmarkPresentationModel::DoesBookmarkExist query is %S",query.GetPointer());
1288 r = PresentationModelBase::ExecuteQuery(query, bookmarkCount);
1289 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DoesBookmarkExist query failed %s",GetErrorMessage(r));
1291 r = PresentationModelBase::DbIsNextRowPresent(nextRowPresent);
1293 if (nextRowPresent == true)
1295 r = PresentationModelBase::GetColumn(0, intVal);
1307 tempURL.Replace(L"''",L"'");
1312 BookmarkPresentationModel::DeleteBookmark(const Tizen::Base::String& url)
1314 result r = E_SUCCESS;
1316 String bookmarkTable(BOOKMARK_URL_TABLE);
1317 int resultCount = -1;
1319 query.Append(L"DELETE FROM ");
1320 query.Append(bookmarkTable);
1321 query.Append(" WHERE ADDRESS = '");
1324 if(url.EndsWith(L"/"))
1326 query.Append("' OR ADDRESS = '");
1327 String newUrl = L"";
1328 url.SubString(0,url.GetLength()-1 ,newUrl);
1329 query.Append(newUrl);
1333 query.Append("' OR ADDRESS = '");
1334 String newUrl = url;
1335 // Url.SubString(0,Url.GetLength()-1 ,newUrl);
1336 newUrl.Append(L"/");
1337 query.Append(newUrl);
1343 r = BookmarkPresentationModel::ExecuteQuery(query, resultCount);
1344 TryCatch( r == E_SUCCESS,,"BookmarkPresentationModel::DeleteBookmark query failed %s",GetErrorMessage(r));
1346 r = BookmarkPresentationModel::CommitDb();