/* * This object contains the various functions for the interface */ var ScholarPane = new function() { var foldersView; var itemsView; var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService); //Privileged methods this.onLoad = onLoad; this.onUnload = onUnload; this.toggleDisplay = toggleDisplay; this.newItem = newItem; this.newCollection = newCollection; this.folderSelected = folderSelected; this.itemSelected = itemSelected; this.deleteItemSelection = deleteItemSelection; this.deleteCollectionSelection = deleteCollectionSelection; this.search = search; this.toggleView = toggleView; /* * Called when the window is open */ function onLoad() { //Initialize folders view foldersView = new Scholar.FolderTreeView(); document.getElementById('folders-tree').view = foldersView; //select Library foldersView.selection.select(0); //Create the add menu with each item type var addMenu = document.getElementById('tb-add').firstChild; var itemTypes = Scholar.ItemTypes.getTypes(); for(var i = 0; i 0 && confirm("Are you sure you want to delete the selected items?")) itemsView.deleteSelection(); } function deleteCollectionSelection() { if(itemsView && foldersView.selection.count > 0 && confirm("Are you sure you want to delete the selected collections?")) foldersView.deleteSelection(); } function search() { if(itemsView) itemsView.searchText(document.getElementById('tb-search').value); } function toggleView(id) { var button = document.getElementById('tb-'+id); var elem = document.getElementById('scholar-'+id); button.checked = !button.checked; elem.hidden = !elem.hidden; } //Thanks: http://www.bigbold.com/snippets/posts/show/452 //TODO: move this out of overlay.js, into Scholar.js? function validURL(s) { var regexp = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/ return regexp.test(s); } } var ScholarItemsDragObserver = { onDragStart: function (evt,transferData,action) { transferData.data=new TransferData(); transferData.data.addDataForFlavour("text/unicode","finally"); } }; var ScholarCollectionsDragObserver = { getSupportedFlavours : function () { var flavours = new FlavourSet(); flavours.appendFlavour("text/unicode"); return flavours; }, onDragOver: function (evt,dropdata,session){}, onDrop: function (evt,dropdata,session) { alert(dropdata.data); } } window.addEventListener("load", function(e) { ScholarPane.onLoad(e); }, false); window.addEventListener("unload", function(e) { ScholarPane.onUnload(e); }, false);