/* * This object contains the various functions for the interface */ var ScholarPane = new function() { var collectionsView; 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.fullScreen = fullScreen; this.newItem = newItem; this.newCollection = newCollection; this.onCollectionSelected = onCollectionSelected; this.itemSelected = itemSelected; this.deleteSelectedItem = deleteSelectedItem; this.deleteSelectedCollection = deleteSelectedCollection; this.renameSelectedCollection = renameSelectedCollection; this.search = search; this.getCollectionsView = getCollectionsView; this.getItemsView = getItemsView; this.getSelectedCollection = getSelectedCollection; this.getSelectedItems = getSelectedItems; this.buildCollectionContextMenu = buildCollectionContextMenu; this.buildItemContextMenu = buildItemContextMenu; this.openNoteWindow = openNoteWindow; this.newNote = newNote; /* * Called when the window is open */ function onLoad() { if(Scholar.Prefs.get("scholarPaneOnTop")) { var oldPane = document.getElementById('scholar-pane'); var oldSplitter = document.getElementById('scholar-splitter'); var appContent = document.getElementById('appcontent'); var newPane = document.createElement('hbox'); newPane.setAttribute('id','scholar-pane'); newPane.setAttribute('collapsed',true); newPane.setAttribute('flex','1'); while(oldPane.hasChildNodes()) newPane.appendChild(oldPane.firstChild); appContent.removeChild(oldPane); appContent.insertBefore(newPane, document.getElementById('content')); var newSplitter = document.createElement('splitter'); newSplitter.setAttribute('id','scholar-splitter'); newSplitter.setAttribute('collapsed',true); newSplitter.setAttribute('resizebefore','closest'); newSplitter.setAttribute('resizeafter','closest'); appContent.removeChild(oldSplitter); appContent.insertBefore(newSplitter, document.getElementById('content')); } //Initialize collections view collectionsView = new Scholar.CollectionTreeView(); document.getElementById('collections-tree').view = collectionsView; //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(Scholar.getString('pane.items.delete'))) itemsView.deleteSelection(); } function deleteSelectedCollection() { if(collectionsView.selection.count > 0 && confirm(Scholar.getString('pane.collections.delete'))) collectionsView.deleteSelection(); } function renameSelectedCollection() { if(collectionsView.selection.count > 0) { var collection = collectionsView._getItemAtRow(collectionsView.selection.currentIndex); var newName = prompt(Scholar.getString('pane.collections.rename'),collection.getName()); if(newName) collection.ref.rename(newName); } } function search() { if(itemsView) { searchVal = document.getElementById('tb-search').value; itemsView.searchText(searchVal); //do something about granularity //document.getElementById('scholar-search-options').getElementsByAttribute('checked','true')[0].label document.getElementById('scholar-search-options').hidden = searchVal == ""; } } function getCollectionsView() { return collectionsView; } function getItemsView() { return itemsView; } function getSelectedCollection() { if(collectionsView.selection.count > 0 && collectionsView.selection.currentIndex != -1) { collection = collectionsView._getItemAtRow(collectionsView.selection.currentIndex); if(collection && collection.isCollection()) return collection.ref; } } function getSelectedItems() { if(itemsView) { var items = new Array(); var start = new Object(); var end = new Object(); for (var i=0, len=itemsView.selection.getRangeCount(); i 0) menu.childNodes[2].removeAttribute('disabled'); else menu.childNodes[2].setAttribute('disabled', true); if(itemsView && itemsView.selection.count > 1) menu.childNodes[2].setAttribute('label', Scholar.getString('pane.items.menu.remove.multiple')); else menu.childNodes[2].setAttribute('label', Scholar.getString('pane.items.menu.remove')); } function newNote() { var c = getSelectedCollection(); if(c) openNoteWindow(null, c.getID()); else openNoteWindow(); } function openNoteWindow(id, parent) { window.open('chrome://scholar/content/note.xul?v=1'+(id ? '&id='+id : '')+(parent ? '&coll='+parent : ''),'','chrome,resizable,centerscreen'); } } window.addEventListener("load", function(e) { ScholarPane.onLoad(e); }, false); window.addEventListener("unload", function(e) { ScholarPane.onUnload(e); }, false);