--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ginebra2/chrome/bedrockchrome/bookmarkview.superpage/bookmarkview.js Tue May 04 12:39:35 2010 +0300
@@ -0,0 +1,250 @@
+var _prevOpenedBookmarkControl = null;
+var previousSortEle = null;
+
+function BookmarkToggleControls(ele){
+ try {
+
+ if(_sortingEnabled && ele.parentNode.parentNode!=previousSortEle)
+ {
+ _sortingEnabled = false;
+ previousSortEle.className = 'li.no-sort';
+ views.WebView.gesturesEnabled = true;
+ return false;
+ }
+ else if(_sortingEnabled && (ele.parentNode.parentNode==previousSortEle))
+ {
+ return false;
+ }
+
+ ele.parentNode.className = (ele.parentNode.className == 'controlIn') ? 'controlOut' : 'controlIn';
+ if(ele.parentNode.className == 'controlIn') {
+ ele.className = 'collapsed';
+ ele.parentNode.childNodes[1].className = "collapsedIcons";
+ ele.parentNode.parentNode.childNodes[1].style.width = (parseInt(window.innerWidth)-115)+"px";
+ }
+ else {
+ ele.className = 'expanded';
+ ele.parentNode.childNodes[1].className = "expandedIcons";
+ ele.parentNode.parentNode.childNodes[1].style.width = (parseInt(window.innerWidth)-195)+"px";
+ }
+
+ if(_prevOpenedBookmarkControl != null && _prevOpenedBookmarkControl != ele)
+ BookmarkHideControl(_prevOpenedBookmarkControl);
+
+ }catch(e) { alert(e); }
+ _prevOpenedBookmarkControl = ele;
+}
+
+
+function BookmarkHideControl(ele){
+ ele.parentNode.className = 'controlIn';
+ ele.className = 'collapsed';
+}
+
+
+function deleteBookmark(r,bmtitle)
+{
+ window.bookmarksManager.deleteBookmark(bmtitle);
+ //ToDo : check for error code
+ r.parentNode.parentNode.parentNode.removeChild(r.parentNode.parentNode);
+}
+
+
+function openUrl(ele, newUrl) {
+ // DragStart & DragEnd listeners are defined at bottom
+ if(_sortingEnabled && (ele.parentNode!=previousSortEle))
+ {
+ _sortingEnabled = false;
+ previousSortEle.className = 'li.no-sort';
+ views.WebView.gesturesEnabled = true;
+ return false;
+ }
+ else if(_sortingEnabled && (ele.parentNode==previousSortEle))
+ {
+ return false;
+ }
+ else if(__dragendFlag)
+ {
+ __dragendFlag = false;
+ return false;
+ }
+
+ window.views.WebView.showNormalPage();
+ window.ViewStack.switchView( "WebView","BookmarkTreeView");
+
+ // Laod a page to chrome view
+ window.views.WebView.loadUrlToCurrentPage(newUrl);
+ views.WebView.gesturesEnabled = true;
+}
+
+
+//'<div class="Title" onclick="openUrl(\''+bmurl+'\')">'+
+//'<div class="collapsedIcons"><img src="icons/edit-icon.gif" width="56" height="56" class="controlIcon">'+
+//background-image: url(\''+bmfavicon+'\');
+
+function createBookmarkElement(bmtitle,bmfullurl,bmtrimmedurl, idValue)
+{
+ var _width = parseInt(window.innerWidth)-115;
+
+ var li=document.createElement('li');
+ li.id = idValue;
+ li.innerHTML =
+ '<div class="controlIn">'+
+ '<div class="collapsed" onClick="javascript:BookmarkToggleControls(this);"></div>'+
+ '<img class="controlIcon" src="icons/delete-icon.gif" width="56" height="56" vspace="7" hspace="5" onclick="deleteBookmark(this, \''+bmtitle+'\')">'+
+ '</div>'+
+ '<div class="Title" style="width:'+_width+'px;" onclick="openUrl(this,\''+bmfullurl+'\')">'+
+ '<span class="aTitle">'+bmtitle+'</span>'+
+ '<br/>'+
+ '<span class="aUrl">'+bmtrimmedurl+'</span>'+
+ '</div>';
+
+ return li;
+}
+
+function clearBookmarkList()
+{
+ var list = document.getElementById('bookmarkListTree');
+ while( list.hasChildNodes() ) {
+ list.removeChild( list.lastChild );
+ }
+}
+
+var __dragendFlag = false;
+
+function longtapbm(ele)
+{
+ if(_sortingEnabled)
+ {
+ _sortingEnabled = false;
+ previousSortEle.className = 'li.no-sort';
+ views.WebView.gesturesEnabled = true;
+ return false;
+ }
+
+ _sortingEnabled = true;
+ _sortEleOffsetTop = ele.offsetTop;
+ views.WebView.gesturesEnabled = false;
+ ele.className = 'sort';
+ previousSortEle = ele;
+ $("#bookmarkListTree").sortable('enable');
+
+}
+
+// Set to the LongPress object that is currently waiting for activation,
+// ie. it has gotten a mouse-down event and has its timer running.
+var __currentLongPress;
+
+function longPressStarted(lp)
+{
+ // Remember the current LongPress object so we can cancel it if scrolling
+ // starts.
+ __currentLongPress = lp;
+}
+
+function handlePanStarted(type)
+{
+ // Scrolling started, cancel the LongPress.
+ if(__currentLongPress != undefined) {
+ __currentLongPress.cancel();
+ __currentLongPress = undefined;
+ }
+}
+
+function createBookmarkView()
+{
+ try
+ {
+ __currentLongPress = undefined;
+ clearBookmarkList();
+ //Get bookmarks data from database
+ var bookmakrData = window.bookmarksManager.getBookmarksJSON();
+ var myObject = eval('(' + bookmakrData + ')');
+ var ul=document.getElementById('bookmarkListTree');
+ for(x=0; x<myObject.length; x++)
+ {
+ var bmurl = myObject[x].urlvalue;
+ var bmtitle = myObject[x].title;
+ var bmtrimmedurl = bmurl.replace('http://','');
+ bmtrimmedurl = bmtrimmedurl.replace('www.','');
+ bmtrimmedurl = bmtrimmedurl.replace('file:///','');
+
+ //create element and add it to bookmark view
+ var li = createBookmarkElement(bmtitle,bmurl,bmtrimmedurl, x);
+ li.className = 'no-sort';
+ ul.appendChild(li);
+ ul.childNodes[0].focus();
+
+ new LongPress(li.id, longtapbm, longPressStarted);
+ }
+ } catch(E) { alert(E); }
+ dragInit();
+}
+
+function _updateBookmarkViewGoemetry(displayMode)
+{
+ try{
+ var _list = document.getElementsByClassName('Title');
+ for(var i=0; i<_list.length; i++){
+ if(_list[i].parentNode.childNodes[0].className == 'controlIn'){
+ _list[i].style.width = (parseInt(window.innerWidth)-115)+"px";
+ }
+ else{
+ _list[i].style.width = (parseInt(window.innerWidth)-195)+"px";
+ }
+ }
+ }catch(e){ alert(e); }
+
+}
+
+function launchBookmarkView()
+{
+ try{
+ window.chrome.aspectChanged.connect(_updateBookmarkViewGoemetry);
+
+ // Get Bookmarks from the database
+ createBookmarkView();
+
+ // Watch for the start of scrolling in the view so we can cancel the
+ // long presses to prevent them from interfere with scrolling. Otherwise
+ // the long press callback will fire and trigger sortable mode.
+ views.WebView.startingPanGesture.connect(handlePanStarted);
+
+ }catch(e){ alert(e); }
+}
+
+function dragInit()
+{
+ $("#bookmarkListTree").sortable({
+ placeholder: 'ui-state-highlight',
+ axis:'y',
+ cancel : 'li.no-sort',
+ scrollSensitivity : 40,
+ scrollSpeed : 40,
+ start: function(event, ui) {
+ __dragendFlag = true;
+ },
+ update: function(event, ui) {
+ _sortingEnabled = false;
+ views.WebView.gesturesEnabled = true;
+ $("#bookmarkListTree").sortable('disable');
+
+ var sortedItemId = ui.item[0].id;
+ var _a = $('#bookmarkListTree').sortable('toArray');
+ for(var i=0; i<_a.length; i++)
+ {
+ if(sortedItemId == _a[i])
+ {
+ var li = document.getElementById(sortedItemId);
+ li.className = 'no-sort';
+ var div = li.childNodes[1];
+ window.bookmarksManager.reorderBokmarks(div.childNodes[0].firstChild.nodeValue,i);
+ }
+ }
+ }
+ });
+
+ $("#bookmarkListTree").sortable('disable');
+ $("#bookmarkListTree").disableSelection();
+
+}