ginebra2/chrome/bedrockchrome/bookmarkview.superpage/bookmarkDialog.js
changeset 16 3c88a81ff781
parent 14 6aeb7a756187
--- a/ginebra2/chrome/bedrockchrome/bookmarkview.superpage/bookmarkDialog.js	Thu Sep 23 15:32:11 2010 -0400
+++ b/ginebra2/chrome/bedrockchrome/bookmarkview.superpage/bookmarkDialog.js	Fri Oct 15 17:30:59 2010 -0400
@@ -1,5 +1,7 @@
-var _dailogFlag = 0;
+var _dialogFlag = 0;
 var _OriginalTitle = 0;
+var selected_src = "/bookmarkview/yes_selected.png";
+var deselected_src = "/bookmarkview/yes_deselected.png";
 
 document.getElementsByClassName = function(class_name) {
     var docList = this.all || this.getElementsByTagName('*');
@@ -23,11 +25,20 @@
     // do setup
     this.write();
 
-    if (app.serviceFramework() == "mobility_service_framework")
-    {
-        document.getElementsByClassName("bookmarkCheckboxTextLabel")[0].style.display = "inline";
+    if (app.serviceFramework() == "mobility_service_framework") {
+        $("bookmarkCheckboxTextLabelContainer").css("display", "inline");
     }
-    
+
+    chrome.chromeComplete.connect(createDelegate(this,
+        function() {
+            var snippet = window.snippets["BookmarkDialogId"];
+            chrome.aspectChanged.connect(createDelegate(this,
+                    function(a) {
+                        centerBookmarkDialog();
+                    })
+            );
+        })
+    );
 }
 
 function writeBookmarkDialog()
@@ -38,15 +49,39 @@
                    '<div class="bookmarkTextLabel" id="bookmarkDialogTitle">Add Bookmark</div>'+
                    '<div class="GinebraSnippet" id="BookmarkDialogTitleId" data-GinebraNativeClass="TextEditSnippet" data-GinebraVisible="true"></div>'+ 
                    '<div class="GinebraSnippet" id="BookmarkDialogUrlId" data-GinebraNativeClass="TextEditSnippet" data-GinebraVisible="true"></div>'+
-                   '<div class="bookmarkCheckboxTextLabel"><input type="checkbox" id="bookmarkCheckboxId"/>Add shortcut to home screen</div>'+
-                   '<div><input type="hidden" id="BookmarkDialogBookmarkId" name="BookmarkDialogBookmarkId" value=""/></div>'+
+                   '<div class="bookmarkCheckboxTextLabelContainer">' +
+                   '	<input style="vertical-align:middle;" type="image" src="' + deselected_src + '" id="bookmarkCheckboxId" />' +
+                   '	<label id="bookmarkCheckboxTextLabel">Add shortcut to home screen</label>' +
+                   '</div>'+
+                   '<div>' + 
+                   '<input type="hidden" id="BookmarkDialogBookmarkId" name="BookmarkDialogBookmarkId" value=""/></div>'+
                    '<div class="controls">' +
-                      '<div type="button"  onmouseup="bookmarkOperation();" class="bookmarkDoneButton"></div>'+     
-                       '<div type="button" onmouseup="bookmarkDialogIdHide();" class="bookmarkCancelButton"></div>'+  
-                    '</div>'+ /*controls*/
+                   '	<div type="button"  onmouseup="bookmarkOperation();" class="bookmarkDoneButton"></div>'+     
+                   '	<div type="button" onmouseup="bookmarkDialogIdHide();" class="bookmarkCancelButton"></div>'+  
+                   '</div>'+ /*controls*/
                 '</div>'+  /*body*/
                 '<div class="bottom"></div>';
-  document.write(html);
+    document.write(html);
+    $('#bookmarkCheckboxId').click(function() {
+    	toggleCheckbox($(this));
+    });
+   
+    $('#bookmarkCheckboxTextLabel').click(function() {
+    	toggleCheckbox($('#bookmarkCheckboxId'));
+    });
+}
+
+function toggleCheckbox(elem) {
+    img_src = elem.getAttribute('src');
+    if ( img_src == deselected_src ) {
+
+        elem.src = selected_src;
+
+    } else {
+
+        elem.src = deselected_src;
+
+    }
 }
 
 function bookmarkDialogIdHide(){
@@ -56,9 +91,13 @@
     
     if (app.serviceFramework() == "mobility_service_framework") 
     {
-        if (document.getElementById("bookmarkCheckboxId").checked)
+        elem = $("#bookmarkCheckboxId");
+        if (elem)
         {
-            document.getElementById("bookmarkCheckboxId").checked = false;
+            if ( elem.src == selected_src )
+            {
+                elem.src = deselected_src;
+            }
         }
     }    
 }
@@ -67,25 +106,25 @@
 {
     try{
         snippets.BookmarkViewToolbarId.enabled = false;
+        snippets.BookmarkDialogId.zValue = 100;
         snippets.WebViewToolbarId.enabled = false;
 
         if (dialogFlag == 0) {
-            if (app.serviceFramework() == "mobility_service_framework")
-            {
-                document.getElementsByClassName("bookmarkCheckboxTextLabel")[0].style.display = "inline"; 
+            if (app.serviceFramework() == "mobility_service_framework") {
+                $(".bookmarkCheckboxTextLabelContainer").css("display", "inline"); 
             }
-            var dlgTitle = document.getElementById("bookmarkDialogTitle");
-            dlgTitle.firstChild.nodeValue= window.localeDelegate.translateText("txt_browser_input_dial_add_bm");
-            var chkboxTitle = document.getElementsByClassName("bookmarkCheckboxTextLabel")[0];
-            chkboxTitle.firstChild.nodeValue= window.localeDelegate.translateText("txt_browser_bookmarks_also_add_to_home_screen");
+            var dlgTitle = $("#bookmarkDialogTitle");
+            dlgTitle.text(window.localeDelegate.translateText("txt_browser_input_dial_add_bm"));
+            var chkboxTitle = $("#bookmarkCheckboxTextLabel");
+            chkboxTitle.val(window.localeDelegate.translateText("txt_browser_bookmarks_also_add_to_home_screen"));
         }
         else if (dialogFlag == 1) {
-             document.getElementsByClassName("bookmarkCheckboxTextLabel")[0].style.display = "none";
-             var dlgTitle = document.getElementById("bookmarkDialogTitle");
-             dlgTitle.firstChild.nodeValue= window.localeDelegate.translateText("txt_browser_input_dial_edit_bm");
+             $("bookmarkCheckboxTextLabelContainer").css("display", "none");
+             var dlgTitle = $("#bookmarkDialogTitle");
+             dlgTitle.text(window.localeDelegate.translateText("txt_browser_input_dial_edit_bm"));
         }
        
-        _dailogFlag = dialogFlag;
+        _dialogFlag = dialogFlag;
         _OriginalTitle = bmtitle;
         window.snippets.BookmarkDialogTitleId.lostFocus.connect(titleFieldLostFocus);
         window.snippets.BookmarkDialogUrlId.lostFocus.connect(urlFieldLostFocus);
@@ -107,14 +146,26 @@
            window.snippets.BookmarkDialogUrlId.text = bmurl;
         document.getElementById('BookmarkDialogBookmarkId').value = bmid;
 
-        window.snippets.BookmarkDialogId.show(false);
+        centerBookmarkDialog();
 
-        window.snippets.BookmarkDialogTitleId.selectAll();
+        window.snippets.BookmarkDialogId.show(false);
         
        }catch(e){ alert(e); }
 
 }
 
+function centerBookmarkDialog() {
+        
+        var statusBarHeight = window.snippets.StatusBarChromeId.visible ? window.snippets.StatusBarChromeId.geometry.height : 0;
+        
+        var snippet = window.snippets["BookmarkDialogId"];
+        var x = (window.chrome.displaySize.width - snippet.geometry.width) / 2;
+        
+        // Center the menu in the space between status bar and tool bar
+        var y = (window.chrome.displaySize.height - statusBarHeight - window.snippets.WebViewToolbarId.geometry.height - document.getElementById("BookmarkDialogId").offsetHeight)/2;
+        snippet.setPosition(x, (y+statusBarHeight));
+}
+
 function bookmarkOperation()
 {
     snippets.BookmarkViewToolbarId.enabled = true;
@@ -127,7 +178,7 @@
     //Update the database
     var errCode = 0;
 
-    if (_dailogFlag == 0) {
+    if (_dialogFlag == 0) {
         var bmid = window.bookmarksController.addBookmark(bmtitle,bmurl);
         if (bmid < 0) {
             alert("Unknown error adding bookmark");
@@ -135,14 +186,18 @@
         }
         if (app.serviceFramework() == "mobility_service_framework") 
         {
-            if (document.getElementById("bookmarkCheckboxId").checked)
+            elem = document.getElementById("bookmarkCheckboxId");
+            if (elem)
             {
-                errCode = window.hsBookmarkPublishClient.addWidget(bmtitle, bmurl);
-                document.getElementById("bookmarkCheckboxId").checked = false;
+                if ( elem.src == selected_src )
+                {
+                    errCode = window.hsBookmarkPublishClient.addWidget(bmtitle, bmurl);
+                    elem.src = deselected_src;
+                }
             }
         } 
     }
-    else if (_dailogFlag == 1) {
+    else if (_dialogFlag == 1) {
         var bmid = document.getElementById('BookmarkDialogBookmarkId').value;
         errCode = window.bookmarksController.modifyBookmark(bmid,bmtitle,bmurl);
     }
@@ -176,12 +231,12 @@
 
 function titleFieldGainedFocus()
 {
-    window.snippets.BookmarkDialogUrlId.unselect();
+    //window.snippets.BookmarkDialogUrlId.unselect();
 }
 
 function urlFieldGainedFocus()
 {
-    window.snippets.BookmarkDialogTitleId.unselect();
+    //window.snippets.BookmarkDialogTitleId.unselect();
 }