ginebra2/chrome/bedrockchrome/bookmarkview.superpage/bookmarkview.js
changeset 15 73c48011b8c7
parent 10 232fbd5a2dcb
equal deleted inserted replaced
13:491a1d15372f 15:73c48011b8c7
     1 var __prevOpenedBookmarkControl = null;
     1 var __prevOpenedBookmarkControl = null;
     2 var __previousSortEle = null;
     2 var __previousSortEle = null;
     3 var __bookmarkCount= 0;
     3 var __bookmarkCount= 0;
     4 var __bookmarkEditElement= null;
       
     5 var __dragendFlag = false;
     4 var __dragendFlag = false;
       
     5 var __dogearSelected = false;
       
     6 var __timerValueLeft = 0;
       
     7 var __timerId = "";
       
     8 var __longPressEvent = false;
     6 // Set to the LongPress object that is currently waiting for activation,
     9 // Set to the LongPress object that is currently waiting for activation,
     7 // ie. it has gotten a mouse-down event and has its timer running.
    10 // ie. it has gotten a mouse-down event and has its timer running.
     8 var __currentLongPress;
    11 var __currentLongPress;
     9 var __cancelLinkOpening = false;
    12 var __cancelLinkOpening = false;
    10 
    13 
    11 function _enableSorting(ele) {
    14 function _enableSorting(ele) {
    12 
    15     // This is messy, why do we even need to do this sort/no-sort stuff???
    13     ele.className = 'sort';
    16     $(ele).removeClass('no-sort');
       
    17     $(ele).addClass('sort');
    14 		
    18 		
    15 		var evt = document.createEvent("MouseEvents");
    19 	var evt = document.createEvent("MouseEvents");
    16 		evt.initMouseEvent("mousedown", true, true, window,
    20 	evt.initMouseEvent("mousedown", true, true, window,
    17 		  0, 0, 0, gInitialX, gInitialY, false, false, false, false, 0, null);
    21 	  0, 0, 0, gInitialX, gInitialY, false, false, false, false, 0, null);
    18 		var canceled = !ele.dispatchEvent(evt);
    22 	var canceled = !ele.dispatchEvent(evt);
    19     
    23     
    20   	views.WebView.gesturesEnabled = false;
    24   	views.WebView.gesturesEnabled = false;
    21 
    25 
    22     ele.childNodes[0].className = 'controlInSort';
    26     $(ele).find(".dogEarBox").addClass('selected');
    23     ele.childNodes[0].childNodes[0].className = 'collapsedSort';
    27     $(ele).find(".dogEar").addClass('selected');
    24 
    28 
    25   __sortingEnabled = true;
    29   __sortingEnabled = true;
    26   __sortEleOffsetTop = ele.offsetTop;
    30   __sortEleOffsetTop = ele.offsetTop;
    27   __previousSortEle = ele;
    31   __previousSortEle = ele;
    28     
    32     $(ele).toggleClass('highlight');
    29     ele.className = 'highlight';
       
    30 
    33 
    31   }
    34   }
    32 
    35 
    33 function _disableSorting(ele) {
    36 function _disableSorting(ele) {
       
    37 //    app.debug('disablesorting:'); printProp(ele);
    34 
    38 
    35     views.WebView.gesturesEnabled = true;
    39     views.WebView.gesturesEnabled = true;
    36     
    40     
    37     ele.className = 'no-sort';
    41     $(ele).removeClass('sort');
    38     ele.childNodes[0].className = 'controlIn';
    42     $(ele).addClass('no-sort');
    39     ele.childNodes[0].childNodes[0].className = 'collapsed';
    43     $(ele).find('.dogEarBox').removeClass('selected').addClass('closed');
       
    44     $(ele).find('.dogEar').removeClass('selected').addClass('closed');
    40 
    45 
    41     __sortingEnabled = false;
    46     __sortingEnabled = false;
    42     __sortEleOffsetTop = 0;
    47     __sortEleOffsetTop = 0;
    43     __previousSortEle = null;
    48     __previousSortEle = null;
    44 }
    49 }
    53       scrollSpeed : 40,
    58       scrollSpeed : 40,
    54         start: function(event, ui) {
    59         start: function(event, ui) {
    55             __dragendFlag = true;
    60             __dragendFlag = true;
    56             },
    61             },
    57       update: function(event, ui) {
    62       update: function(event, ui) {
    58                 var sortedItemId = ui.item[0].id;
    63                 var sortedBookmark = ui.item[0];
    59                 var _a = $('#bookmarkListTree').sortable('toArray');
    64                 _disableSorting(sortedBookmark); // Unselect it
    60                 for (var i=0; i<_a.length; i++)
    65                 // If there's only one bookmark in the list, do nothing
    61                 {
    66                 if ($('#bookmarkListTree').children().length == 0)
    62                     if (sortedItemId == _a[i])
    67                     return;
    63                     {
    68                 var nextBookmark = $(sortedBookmark).next()[0];
    64                         var li = document.getElementById(sortedItemId);
    69                 var bm = window.bookmarksController.findBookmark(sortedBookmark.id);
    65                         _disableSorting(li);
    70                 // If it wasn't moved to the end, change the sortIndex to the next bookmark's sortIndex and the rest will propagate down
    66 
    71                 if (nextBookmark) {
    67                         var div = li.childNodes[1];
    72                     var nextbm = window.bookmarksController.findBookmark(nextBookmark.id);
    68                         window.bookmarksManager.reorderBokmarks(div.childNodes[0].firstChild.nodeValue,i);
    73                     window.bookmarksController.reorderBookmark(sortedBookmark.id, nextbm.sortIndex);
    69                     }
    74                 }
       
    75                 // It was moved to the end, so change the sortIndex to the prev bookmark's sortIndex + 1
       
    76                 else {
       
    77                     var prevBookmark = $(sortedBookmark).prev()[0];
       
    78                     var prevbm = window.bookmarksController.findBookmark(prevBookmark.id);
       
    79                     window.bookmarksController.reorderBookmark(sortedBookmark.id, prevbm.sortIndex+1);
    70                 }
    80                 }
    71             }
    81             }
    72     });
    82     });
    73 
    83 
    74     $("#bookmarkListTree").sortable('enable');
    84     $("#bookmarkListTree").sortable('enable');
    75     $("#bookmarkListTree").disableSelection();
    85     $("#bookmarkListTree").disableSelection();
    76 }
    86 }
    77 
    87 
    78 function _longPress(ele)
    88 function _longPress(ele)
    79 {
    89 {
       
    90    __longPressEvent = true;
       
    91    if(__timerId != "")
       
    92    {
       
    93        window.clearTimeout(__timerId);
       
    94        __timerId = "";
       
    95    }
    80   if (__sortingEnabled)
    96   if (__sortingEnabled)
    81   {
    97   {
    82             _disableSorting(__previousSortEle)
    98             _disableSorting(__previousSortEle)
    83             return false;
    99             return false;
    84   }
   100   }
    85 
   101 
    86   if(__prevOpenedBookmarkControl)
   102   if(__prevOpenedBookmarkControl)
    87   	_bookmarkHideControl(__prevOpenedBookmarkControl);
   103   	_bookmarkHideControl(__prevOpenedBookmarkControl);
    88   	
   104   	
    89     _enableSorting(ele);
   105     if(!__dogearSelected)
    90 }
   106      _enableSorting(ele);
    91 
   107 }
       
   108 
       
   109 function _timeLeft()
       
   110 {
       
   111    __timerValueLeft = 1;
       
   112 }
    92 function _longPressStarted(lp)
   113 function _longPressStarted(lp)
    93 {
   114 {
       
   115     __timerValueLeft = 0;
       
   116     __longPressEvent = false;
       
   117     if(!window.views.WebView.bedrockTiledBackingStoreEnabled())
       
   118     {
       
   119         __timerId = window.setTimeout("_timeLeft()",250);
       
   120     }
       
   121     else
       
   122     {
       
   123         __timerId = window.setTimeout("_timeLeft()",550);
       
   124     }
    94     // Remember the current LongPress object so we can cancel it if scrolling
   125     // Remember the current LongPress object so we can cancel it if scrolling
    95     // starts.
   126     // starts.
    96     __currentLongPress = lp;
   127     __currentLongPress = lp;
    97     __cancelLinkOpening = false;
   128     __cancelLinkOpening = false;
    98 }
   129 }
   108     }
   139     }
   109 }
   140 }
   110 
   141 
   111 
   142 
   112 function _bookmarkHideControl(ele){
   143 function _bookmarkHideControl(ele){
   113     ele.childNodes[0].className = 'controlIn';
   144     $(ele).find('.dogEarBox').addClass('closed');
   114     ele.childNodes[0].childNodes[0].className = 'collapsed';
   145     $(ele).find('.dogEar').addClass('closed');
   115     ele.childNodes[1].style.width = (parseInt(window.innerWidth)-70)+"px";
   146     $(ele).find('.bookmarkItem').css('width', (parseInt(window.innerWidth)-70)+"px");
   116 }
   147 }
   117 
   148 
   118 function _bookmarkToggleControls(ele){
   149 function _bookmarkToggleControls(event){
       
   150     var ele = event.target;
   119     try {
   151     try {
   120 
   152         if(__timerId != "")
   121             if (__sortingEnabled && ele.parentNode.parentNode!=__previousSortEle)
   153         {
   122             {
   154         	window.clearTimeout(__timerId);
   123                 _disableSorting(__previousSortEle)
   155         	__timerId = "";
   124                 return false;
   156         }
   125             }
   157         if (__sortingEnabled && ele.parentNode.parentNode!=__previousSortEle)
   126             else if (__sortingEnabled && (ele.parentNode.parentNode==__previousSortEle))
   158         {
   127             {
   159             _disableSorting(__previousSortEle)
   128                 return false;
   160             return false;
   129             }
   161         }
   130 
   162         else if (__sortingEnabled && (ele.parentNode.parentNode==__previousSortEle))
   131             ele.parentNode.className = (ele.parentNode.className == 'controlIn') ? 'controlOut' : 'controlIn';
   163         {
   132             if (ele.parentNode.className == 'controlIn') {
   164             return false;
   133                 ele.className = 'collapsed';
   165         }
   134                 ele.parentNode.parentNode.childNodes[1].style.width = (parseInt(window.innerWidth)-70)+"px";
   166         if(__timerValueLeft == 1 || __longPressEvent == true)
   135             }
   167         {
   136             else {
   168             __timerValueLeft = 0;
   137                 ele.className = 'expanded';
   169             __longPressEvent = false;
   138                 ele.parentNode.parentNode.childNodes[1].style.width = (parseInt(window.innerWidth)-220)+"px";
   170             return false;
   139             }
   171         }
   140 
   172         __timerValueLeft = 0;
       
   173 
       
   174         var li = $(ele).parents('li');
       
   175         var dogEarBox = li.find('.dogEarBox');
       
   176         dogEarBox.toggleClass('closed');
       
   177         dogEarBox.find('.dogEar').toggleClass('closed');
       
   178         // It's too bad we can't do this via margin-right because then we could just do it in the .css file coz it would be a static value
       
   179         if (dogEarBox.hasClass('closed')) {
       
   180             li.find('.bookmarkItem').css('width', (parseInt(window.innerWidth)-70)+"px");
       
   181         }
       
   182         else {
       
   183             li.find('.bookmarkItem').css('width', (parseInt(window.innerWidth)-220)+"px");
       
   184         }
   141         if (__prevOpenedBookmarkControl != null && __prevOpenedBookmarkControl != ele.parentNode.parentNode)
   185         if (__prevOpenedBookmarkControl != null && __prevOpenedBookmarkControl != ele.parentNode.parentNode)
   142             _bookmarkHideControl(__prevOpenedBookmarkControl);
   186             _bookmarkHideControl(__prevOpenedBookmarkControl);
   143 
   187 
   144     }catch(e) { alert(e); }
   188     }catch(e) { alert(e); }
   145 
   189 
   146     __prevOpenedBookmarkControl = ele.parentNode.parentNode;
   190     __prevOpenedBookmarkControl = ele.parentNode.parentNode;
   147 }
   191 }
   148 
   192 
   149 function _addNewBookmark(bmtitle,bmurl)
   193 function _addNewBookmark(bmtitle,bmurl,bmid)
   150 {
   194 {
   151 	  if(__prevOpenedBookmarkControl)
   195     // bookmark title/url may have been altered by the controller's add method (i.e. to include http://) so reload it
       
   196     var bm = window.bookmarksController.findBookmark(bmid);
       
   197     bmtitle = bm.title;
       
   198     bmurl = bm.url;
       
   199     if(__timerId != "")
       
   200     {
       
   201         window.clearTimeout(__timerId);
       
   202         __timerId = "";
       
   203     }
       
   204 	if(__prevOpenedBookmarkControl)
   152   		_bookmarkHideControl(__prevOpenedBookmarkControl);
   205   		_bookmarkHideControl(__prevOpenedBookmarkControl);
   153 
   206 
   154     var ul=document.getElementById('bookmarkListTree');
       
   155     for (x=0; x< ul.childNodes.length; x++)
       
   156         {
       
   157         	 var li_element= ul.childNodes[x];
       
   158         	 var bm_title= li_element.childNodes[1].childNodes[0].innerText; 
       
   159         	 
       
   160         	 if(bmtitle.toLowerCase() ==  bm_title.toLowerCase())
       
   161         	 {
       
   162         	 	ul.removeChild(li_element);
       
   163         	 	break;
       
   164         	 }
       
   165         	 
       
   166         }
       
   167     
       
   168     if(__previousSortEle    != null)
   207     if(__previousSortEle    != null)
   169         _disableSorting(__previousSortEle)
   208         _disableSorting(__previousSortEle)
   170 
   209 
   171     __bookmarkCount += 1;
   210     __bookmarkCount += 1;
   172     //create element and add it to bookmark view
   211     //create element and add it to bookmark view
   173     var ul=document.getElementById('bookmarkListTree');
   212     var ul=document.getElementById('bookmarkListTree');
   174     var dbgTitle = bmtitle.replace(/'/g, "&#39");
   213     var dbgTitle = bmtitle.replace(/'/g, "&#39");
   175   dbgTitle = dbgTitle.replace(/"/g, "&#34");
   214     dbgTitle = dbgTitle.replace(/"/g, "&#34");
   176     var li = _createBookmarkElement(dbgTitle,bmurl,__bookmarkCount);
   215     var li = _createBookmarkElement(dbgTitle,bmurl,bmid);
   177 		li.className = 'no-sort';
   216 	$(li).addClass('no-sort');
   178     ul.insertBefore(li, ul.childNodes[0]);
   217 	ul.insertBefore(li, ul.firstChild);
   179     ul.childNodes[0].focus();
   218     ul.childNodes[ul.childNodes.length-1].focus();
   180     
   219     
   181     if (!window.views.WebView.bedrockTiledBackingStoreEnabled())
   220     if (!window.views.WebView.bedrockTiledBackingStoreEnabled())
   182         new LongPress(li.id, _longPress, _longPressStarted, 250);
   221         new LongPress(li.id, _longPress, _longPressStarted, 250);
   183     else
   222     else
   184         new LongPress(li.id, _longPress, _longPressStarted, 550);
   223         new LongPress(li.id, _longPress, _longPressStarted, 550);
   185 
   224 
   186     $('html, body').animate({
   225     $('html, body').animate({
   187                         scrollTop: 0}, 1000);
   226                         scrollTop: 0}, 1000);
   188 }
   227 }
   189 
   228 
   190 function _editBookmark(bmtitle,bmurl)
   229 function _editBookmark(bmtitle,bmurl,bmid)
   191 {
   230 {
   192   if(__prevOpenedBookmarkControl)
   231     if(__prevOpenedBookmarkControl)
   193   	_bookmarkHideControl(__prevOpenedBookmarkControl);
   232         _bookmarkHideControl(__prevOpenedBookmarkControl);
   194 
   233 
   195 	var ul=document.getElementById('bookmarkListTree');
   234     // bookmark title/url may have been altered by the controller's edit method (i.e. to include http://) so reload it
   196 	for (x=0; x< ul.childNodes.length; x++)
   235     var bm = window.bookmarksController.findBookmark(bmid);
   197         {
   236 
   198         	 var li_element= ul.childNodes[x];
   237     $('#'+bmid).find('.aTitle').text(bm.title);
   199         	 var bm_title= li_element.childNodes[1].childNodes[0].innerText; 
   238     $('#'+bmid).find('.aUrl').text(bm.url);
   200         	 
   239 }
   201         	 if(bmtitle.toLowerCase() == bm_title.toLowerCase() &&
   240 
   202         	   __bookmarkEditElement.childNodes[1].childNodes[0].innerText.toLowerCase() != bmtitle.toLowerCase())
   241 function _launchEditBookmark(r,bmtitle,bmurl,id)
   203         	 {
   242 {
   204         	 	ul.removeChild(li_element);
   243 		// bookmark title/url may have been altered by the controller's edit method, so reload it
   205         	 	break;
   244     var bm = window.bookmarksController.findBookmark(id);
   206         	 }
   245     window.bookmarksController.showBookmarkEditDialog(bm.title,bm.url,id);
   207         	 
   246 }
   208          }
   247 
   209     __bookmarkEditElement.childNodes[1].childNodes[0].innerText  = bmtitle;
   248 function _deleteBookmark(r,bmid)
   210     __bookmarkEditElement.childNodes[1].childNodes[2].innerText  = bmurl;
       
   211 }
       
   212 
       
   213 function _launchEditBookmark(r,bmtitle,bmurl)
       
   214 {
       
   215     __bookmarkEditElement = r.parentNode.parentNode;
       
   216     window.bookmarksManager.launchEditBookmark(bmtitle,bmurl);
       
   217 }
       
   218 
       
   219 function _deleteBookmark(r,bmtitle)
       
   220 { 
   249 { 
   221   window.bookmarksManager.deleteBookmark(bmtitle);
   250   window.bookmarksController.deleteBookmark(bmid);
   222     //ToDo : check for error code
   251   $('#'+bmid).remove();
   223     r.parentNode.parentNode.parentNode.removeChild(r.parentNode.parentNode);
   252 }
   224   
   253 
   225 }
   254 
   226 
   255 function _openUrl(ele, bmid) {
   227 
   256     if(__timerId != "")
   228 function _openUrl(ele, newUrl) {
   257     {
   229         // DragStart & DragEnd listeners are defined at bottom
   258        window.clearTimeout(__timerId);
   230         if (__sortingEnabled && (ele.parentNode!=__previousSortEle))
   259         __timerId = "";
   231         {
   260     }
   232             _disableSorting(__previousSortEle)
   261     // DragStart & DragEnd listeners are defined at bottom
   233             return false;
   262     if (__sortingEnabled && (ele.parentNode!=__previousSortEle))
   234         }
   263     {
   235         else if (__sortingEnabled && (ele.parentNode==__previousSortEle))
   264         _disableSorting(__previousSortEle)
   236             {
   265         return false;
   237                 return false;
   266     }
   238             }
   267     else if (__sortingEnabled && (ele.parentNode==__previousSortEle))
   239         else if (__dragendFlag)
   268         {
   240         {
   269             return false;
   241             __dragendFlag = false;
   270         }
   242             return false;
   271     else if (__dragendFlag)
   243         }
   272     {
   244         else if(__cancelLinkOpening)
   273         __dragendFlag = false;
   245         {
   274         return false;
   246         	__cancelLinkOpening = false;
   275     }
   247         	return false;
   276     else if(__cancelLinkOpening)
   248         }
   277     {
       
   278     	__cancelLinkOpening = false;
       
   279     	return false;
       
   280     }
   249 
   281 
   250     window.views.WebView.showNormalPage();
   282     window.views.WebView.showNormalPage();
   251     window.ViewStack.switchView( "WebView","BookmarkTreeView");
   283     window.ViewStack.switchView( "WebView","BookmarkTreeView");
   252 
   284 
   253         // Laod a page to chrome view
   285     // Laod a page to chrome view
   254         window.views.WebView.loadUrlToCurrentPage(newUrl);
   286     // bookmark title/url may have been altered by the controller's edit method, so reload it
   255         views.WebView.gesturesEnabled = true;
   287     var bm = window.bookmarksController.findBookmark(bmid);
       
   288     window.views.WebView.loadUrlToCurrentPage(bm.url);
       
   289     views.WebView.gesturesEnabled = true;
   256 }
   290 }
   257 
   291 
   258 function _updateBookmarkViewGoemetry(displayMode)
   292 function _updateBookmarkViewGoemetry(displayMode)
   259 {
   293 {
   260     try{
   294     // It's too bad we couldn't use margin-right instead of width coz then we could just put a static value in the .css file and not even need to do anything
   261         var _list = document.getElementsByClassName('Title');
   295     $('.dogEarBox.closed').next('.bookmarkItem').css('width', (parseInt(window.innerWidth)-70)+"px");
   262         for (var i=0; i<_list.length; i++){
   296     $('.dogEarBox').not('.closed').next('.bookmarkItem').css('width', (parseInt(window.innerWidth)-220)+"px");
   263              if (_list[i].parentNode.childNodes[0].className == 'controlIn'){
   297 }
   264                 _list[i].style.width = (parseInt(window.innerWidth)-70)+"px";
   298 
   265             }
   299 function _setDogear()
   266              else{
   300 {
   267                     _list[i].style.width = (parseInt(window.innerWidth)-220)+"px";
   301 	__dogearSelected = true;
   268              }
   302 }
   269         }
   303 
   270     }catch(e){ alert(e); }
   304 function _unsetDogear()
   271 
   305 {
       
   306 	__dogearSelected = false;
   272 }
   307 }
   273 
   308 
   274 function _createBookmarkElement(bmtitle,bmfullurl,idValue)
   309 function _createBookmarkElement(bmtitle,bmfullurl,idValue)
   275 {
   310 {
   276         var _width = parseInt(window.innerWidth)-70;
   311         var _width = parseInt(window.innerWidth)-70;
   277         var escapedTitle = bmtitle.replace(/&#39/g, "\\'"); 
   312         var escapedTitle = bmtitle.replace(/&#39/g, "\\'"); 
   278         var li=document.createElement('li');
   313         var li=document.createElement('li');
   279         li.id = idValue;
   314         li.id = idValue;
   280         li.innerHTML =
   315         li.innerHTML =
   281         '<div class="controlIn">'+
   316         '<div class="dogEarBox closed">'+ // bookmarkBox
   282           '<div class="collapsed" onClick="javascript:_bookmarkToggleControls(this);"></div>'+
   317           '<div class="dogEar closed"></div>'+
   283             '<img src="icons/edit_btn.png" width="56" height="56" vspace="7" hspace="5" '+
   318           '<img class="bookmarkEditBtn" src="icons/edit_btn.png" width="56" height="56" vspace="7" hspace="5">'+
   284               'onclick="_launchEditBookmark(this,this.parentNode.parentNode.childNodes[1].childNodes[0].innerText,'+
   319           '<img class="bookmarkDeleteBtn" src="icons/delete_btn.png" width="56" height="56" vspace="7" hspace="5" >'+
   285                                                                      'this.parentNode.parentNode.childNodes[1].childNodes[2].innerText)">'+
       
   286             '<img src="icons/delete_btn.png" width="56" height="56" vspace="7" hspace="5" '+
       
   287                'onclick="_deleteBookmark(this, \''+escapedTitle+'\')">'+
       
   288         '</div>'+
   320         '</div>'+
   289         '<div class="Title" style="width:'+_width+'px;" onclick="_openUrl(this,this.childNodes[2].innerText);">'+
   321         '<div class="bookmarkItem" style="width:'+_width+'px;">'+
   290             '<span class="aTitle">'+bmtitle+'</span>'+
   322           '<span class="aTitle">'+bmtitle+'</span>'+
   291             '<br/>'+
   323           '<br/>'+
   292             '<span class="aUrl">'+bmfullurl+'</span>'+
   324           '<span class="aUrl">'+bmfullurl+'</span>'+
   293         '</div>';
   325         '</div>';
       
   326         $(li).find(".dogEar")
       
   327                .click(_bookmarkToggleControls)
       
   328                .mouseover(_setDogear)
       
   329                .mouseout(_unsetDogear);
       
   330         $(li).find(".bookmarkItem").
       
   331                click(function (event) {_openUrl(event.target, idValue);});
       
   332         $(li).find(".bookmarkEditBtn").
       
   333                click(function (event) {_launchEditBookmark(event.target, bmtitle, bmfullurl, idValue);});
       
   334         $(li).find(".bookmarkDeleteBtn").
       
   335                click(function (event) {_deleteBookmark(event.target, idValue);});
   294 
   336 
   295         return li;
   337         return li;
   296 }
   338 }
   297 
   339 
   298 function _createBookmarkView()
   340 function _createBookmarkView()
   299 {
   341 {
   300         try
   342         try
   301         {
   343         {
   302             __currentLongPress = undefined;
   344             __currentLongPress = undefined;
   303             //Get bookmarks data from database
   345             //Get bookmarks data from database
   304             var bookmakrData = window.bookmarksManager.getBookmarksJSON();
   346             window.bookmarksController.findAllBookmarks();
   305             var myObject = eval('(' + bookmakrData + ')');
       
   306             var ul=document.getElementById('bookmarkListTree');
   347             var ul=document.getElementById('bookmarkListTree');
   307             for (x=0; x<myObject.length; x++)
   348             while (window.bookmarksController.hasMoreBookmarks())
   308             {
   349             {
   309                 var bmurl = myObject[x].urlvalue;
   350                 var bm = window.bookmarksController.nextBookmark();
   310                 var bmtitle = myObject[x].title;
   351                 var bmurl = bm.url;
       
   352                 var bmtitle = bm.title;
       
   353                 var id = bm.id;
   311 
   354 
   312                 //create element and add it to bookmark view
   355                 //create element and add it to bookmark view
   313                 var li = _createBookmarkElement(bmtitle,bmurl, x);
   356                 var li = _createBookmarkElement(bmtitle,bmurl,id);
   314                 li.className = 'no-sort';
   357                 $(li).addClass('no-sort');
   315                 ul.appendChild(li);
   358                 ul.appendChild(li);
   316                 ul.childNodes[0].focus();
   359                 ul.childNodes[0].focus();
   317                 if (!window.views.WebView.bedrockTiledBackingStoreEnabled())
   360                 if (!window.views.WebView.bedrockTiledBackingStoreEnabled())
   318                     new LongPress(li.id, _longPress, _longPressStarted, 250);
   361                     new LongPress(li.id, _longPress, _longPressStarted, 250);
   319                 else
   362                 else
   320                     new LongPress(li.id, _longPress, _longPressStarted, 550);
   363                     new LongPress(li.id, _longPress, _longPressStarted, 550);
   321                 		
   364                 		
   322                 __bookmarkCount = x;
   365                 __bookmarkCount++;
   323             }
   366             }
   324         } catch(E) { alert(E); }
   367         } catch(E) { alert(E); }
   325 
   368 
   326         _dragInit();
   369         _dragInit();
   327 }
   370 }
   328 
   371 
   329 function launchBookmarkView()
   372 function launchBookmarkView()
   330 {
   373 {
   331     try{
   374     try{
   332         window.chrome.aspectChanged.connect(_updateBookmarkViewGoemetry);
   375         window.chrome.aspectChanged.connect(_updateBookmarkViewGoemetry);
   333         window.bookmarksManager.bookmarkEntryAdded.connect(_addNewBookmark);
   376         window.bookmarksController.bookmarkAdded.connect(_addNewBookmark);
   334         window.bookmarksManager.bookmarkEntryModified.connect(_editBookmark);
   377         window.bookmarksController.bookmarkModified.connect(_editBookmark);
   335 
   378 
   336         // Get Bookmarks from the database
   379         // Get Bookmarks from the database
   337         _createBookmarkView();
   380         _createBookmarkView();
   338 
   381 
   339         // Watch for the start of scrolling in the view so we can cancel the
   382         // Watch for the start of scrolling in the view so we can cancel the