ginebra2/chrome/bedrockchrome/bookmarkview.superpage/bookmarkview.js
changeset 12 afcd8e6d025b
parent 9 b39122337a00
child 14 6aeb7a756187
equal deleted inserted replaced
11:786160610b4d 12:afcd8e6d025b
     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.appendChild(li);
   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     window.bookmarksController.showBookmarkEditDialog(bmtitle,bmurl,id);
   205         	 	break;
   244 }
   206         	 }
   245 
   207         	 
   246 function _deleteBookmark(r,bmid)
   208          }
       
   209     __bookmarkEditElement.childNodes[1].childNodes[0].innerText  = bmtitle;
       
   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 { 
   247 { 
   221   window.bookmarksManager.deleteBookmark(bmtitle);
   248   window.bookmarksController.deleteBookmark(bmid);
   222     //ToDo : check for error code
   249   $('#'+bmid).remove();
   223     r.parentNode.parentNode.parentNode.removeChild(r.parentNode.parentNode);
       
   224   
       
   225 }
   250 }
   226 
   251 
   227 
   252 
   228 function _openUrl(ele, newUrl) {
   253 function _openUrl(ele, newUrl) {
   229         // DragStart & DragEnd listeners are defined at bottom
   254     if(__timerId != "")
   230         if (__sortingEnabled && (ele.parentNode!=__previousSortEle))
   255     {
   231         {
   256        window.clearTimeout(__timerId);
   232             _disableSorting(__previousSortEle)
   257         __timerId = "";
   233             return false;
   258     }
   234         }
   259     // DragStart & DragEnd listeners are defined at bottom
   235         else if (__sortingEnabled && (ele.parentNode==__previousSortEle))
   260     if (__sortingEnabled && (ele.parentNode!=__previousSortEle))
   236             {
   261     {
   237                 return false;
   262         _disableSorting(__previousSortEle)
   238             }
   263         return false;
   239         else if (__dragendFlag)
   264     }
   240         {
   265     else if (__sortingEnabled && (ele.parentNode==__previousSortEle))
   241             __dragendFlag = false;
   266         {
   242             return false;
   267             return false;
   243         }
   268         }
   244         else if(__cancelLinkOpening)
   269     else if (__dragendFlag)
   245         {
   270     {
   246         	__cancelLinkOpening = false;
   271         __dragendFlag = false;
   247         	return false;
   272         return false;
   248         }
   273     }
       
   274     else if(__cancelLinkOpening)
       
   275     {
       
   276     	__cancelLinkOpening = false;
       
   277     	return false;
       
   278     }
   249 
   279 
   250     window.views.WebView.showNormalPage();
   280     window.views.WebView.showNormalPage();
   251     window.ViewStack.switchView( "WebView","BookmarkTreeView");
   281     window.ViewStack.switchView( "WebView","BookmarkTreeView");
   252 
   282 
   253         // Laod a page to chrome view
   283     // Laod a page to chrome view
   254         window.views.WebView.loadUrlToCurrentPage(newUrl);
   284     window.views.WebView.loadUrlToCurrentPage(newUrl);
   255         views.WebView.gesturesEnabled = true;
   285     views.WebView.gesturesEnabled = true;
   256 }
   286 }
   257 
   287 
   258 function _updateBookmarkViewGoemetry(displayMode)
   288 function _updateBookmarkViewGoemetry(displayMode)
   259 {
   289 {
   260     try{
   290     // 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');
   291     $('.dogEarBox.closed').next('.bookmarkItem').css('width', (parseInt(window.innerWidth)-70)+"px");
   262         for (var i=0; i<_list.length; i++){
   292     $('.dogEarBox').not('.closed').next('.bookmarkItem').css('width', (parseInt(window.innerWidth)-220)+"px");
   263              if (_list[i].parentNode.childNodes[0].className == 'controlIn'){
   293 }
   264                 _list[i].style.width = (parseInt(window.innerWidth)-70)+"px";
   294 
   265             }
   295 function _setDogear()
   266              else{
   296 {
   267                     _list[i].style.width = (parseInt(window.innerWidth)-220)+"px";
   297 	__dogearSelected = true;
   268              }
   298 }
   269         }
   299 
   270     }catch(e){ alert(e); }
   300 function _unsetDogear()
   271 
   301 {
       
   302 	__dogearSelected = false;
   272 }
   303 }
   273 
   304 
   274 function _createBookmarkElement(bmtitle,bmfullurl,idValue)
   305 function _createBookmarkElement(bmtitle,bmfullurl,idValue)
   275 {
   306 {
   276         var _width = parseInt(window.innerWidth)-70;
   307         var _width = parseInt(window.innerWidth)-70;
   277         var escapedTitle = bmtitle.replace(/&#39/g, "\\'"); 
   308         var escapedTitle = bmtitle.replace(/&#39/g, "\\'"); 
   278         var li=document.createElement('li');
   309         var li=document.createElement('li');
   279         li.id = idValue;
   310         li.id = idValue;
   280         li.innerHTML =
   311         li.innerHTML =
   281         '<div class="controlIn">'+
   312         '<div class="dogEarBox closed">'+ // bookmarkBox
   282           '<div class="collapsed" onClick="javascript:_bookmarkToggleControls(this);"></div>'+
   313           '<div class="dogEar closed"></div>'+
   283             '<img src="icons/edit_btn.png" width="56" height="56" vspace="7" hspace="5" '+
   314           '<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,'+
   315           '<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>'+
   316         '</div>'+
   289         '<div class="Title" style="width:'+_width+'px;" onclick="_openUrl(this,this.childNodes[2].innerText);">'+
   317         '<div class="bookmarkItem" style="width:'+_width+'px;">'+
   290             '<span class="aTitle">'+bmtitle+'</span>'+
   318           '<span class="aTitle">'+bmtitle+'</span>'+
   291             '<br/>'+
   319           '<br/>'+
   292             '<span class="aUrl">'+bmfullurl+'</span>'+
   320           '<span class="aUrl">'+bmfullurl+'</span>'+
   293         '</div>';
   321         '</div>';
       
   322         $(li).find(".dogEar")
       
   323                .click(_bookmarkToggleControls)
       
   324                .mouseover(_setDogear)
       
   325                .mouseout(_unsetDogear);
       
   326         $(li).find(".bookmarkItem").
       
   327                click(function (event) {_openUrl(event.target, bmfullurl);});
       
   328         $(li).find(".bookmarkEditBtn").
       
   329                click(function (event) {_launchEditBookmark(event.target, bmtitle, bmfullurl, idValue);});
       
   330         $(li).find(".bookmarkDeleteBtn").
       
   331                click(function (event) {_deleteBookmark(event.target, idValue);});
   294 
   332 
   295         return li;
   333         return li;
   296 }
   334 }
   297 
   335 
   298 function _createBookmarkView()
   336 function _createBookmarkView()
   299 {
   337 {
   300         try
   338         try
   301         {
   339         {
   302             __currentLongPress = undefined;
   340             __currentLongPress = undefined;
   303             //Get bookmarks data from database
   341             //Get bookmarks data from database
   304             var bookmakrData = window.bookmarksManager.getBookmarksJSON();
   342             window.bookmarksController.findAllBookmarks();
   305             var myObject = eval('(' + bookmakrData + ')');
       
   306             var ul=document.getElementById('bookmarkListTree');
   343             var ul=document.getElementById('bookmarkListTree');
   307             for (x=0; x<myObject.length; x++)
   344             while (window.bookmarksController.hasMoreBookmarks())
   308             {
   345             {
   309                 var bmurl = myObject[x].urlvalue;
   346                 var bm = window.bookmarksController.nextBookmark();
   310                 var bmtitle = myObject[x].title;
   347                 var bmurl = bm.url;
       
   348                 var bmtitle = bm.title;
       
   349                 var id = bm.id;
   311 
   350 
   312                 //create element and add it to bookmark view
   351                 //create element and add it to bookmark view
   313                 var li = _createBookmarkElement(bmtitle,bmurl, x);
   352                 var li = _createBookmarkElement(bmtitle,bmurl,id);
   314                 li.className = 'no-sort';
   353                 $(li).addClass('no-sort');
   315                 ul.appendChild(li);
   354                 ul.appendChild(li);
   316                 ul.childNodes[0].focus();
   355                 ul.childNodes[0].focus();
   317                 if (!window.views.WebView.bedrockTiledBackingStoreEnabled())
   356                 if (!window.views.WebView.bedrockTiledBackingStoreEnabled())
   318                     new LongPress(li.id, _longPress, _longPressStarted, 250);
   357                     new LongPress(li.id, _longPress, _longPressStarted, 250);
   319                 else
   358                 else
   320                     new LongPress(li.id, _longPress, _longPressStarted, 550);
   359                     new LongPress(li.id, _longPress, _longPressStarted, 550);
   321                 		
   360                 		
   322                 __bookmarkCount = x;
   361                 __bookmarkCount++;
   323             }
   362             }
   324         } catch(E) { alert(E); }
   363         } catch(E) { alert(E); }
   325 
   364 
   326         _dragInit();
   365         _dragInit();
   327 }
   366 }
   328 
   367 
   329 function launchBookmarkView()
   368 function launchBookmarkView()
   330 {
   369 {
   331     try{
   370     try{
   332         window.chrome.aspectChanged.connect(_updateBookmarkViewGoemetry);
   371         window.chrome.aspectChanged.connect(_updateBookmarkViewGoemetry);
   333         window.bookmarksManager.bookmarkEntryAdded.connect(_addNewBookmark);
   372         window.bookmarksController.bookmarkAdded.connect(_addNewBookmark);
   334         window.bookmarksManager.bookmarkEntryModified.connect(_editBookmark);
   373         window.bookmarksController.bookmarkModified.connect(_editBookmark);
   335 
   374 
   336         // Get Bookmarks from the database
   375         // Get Bookmarks from the database
   337         _createBookmarkView();
   376         _createBookmarkView();
   338 
   377 
   339         // Watch for the start of scrolling in the view so we can cancel the
   378         // Watch for the start of scrolling in the view so we can cancel the