www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit c345b90b9a798793bbb1d12126637613daa347ea
parent 4c34c592da283895e5d16b1b33ad3a5d975c2e0f
Author: David Norton <david@nortoncrew.com>
Date:   Mon, 19 Jun 2006 15:00:13 +0000

Contextual menus - Collections, Items.
Moved close button to a more sensible place.
On Item Add: Clear search text, and select Info tab.
Minor function renames.

Diffstat:
Mchrome/chromeFiles/content/scholar/overlay.js | 51++++++++++++++++++++++++++++++++++++++++++++++-----
Mchrome/chromeFiles/content/scholar/overlay.xul | 208+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Mchrome/chromeFiles/locale/en-US/scholar/scholar.properties | 8++++----
3 files changed, 164 insertions(+), 103 deletions(-)

diff --git a/chrome/chromeFiles/content/scholar/overlay.js b/chrome/chromeFiles/content/scholar/overlay.js @@ -15,12 +15,14 @@ var ScholarPane = new function() this.newCollection = newCollection; this.onCollectionSelected = onCollectionSelected; this.itemSelected = itemSelected; - this.deleteItemSelection = deleteItemSelection; - this.deleteCollectionSelection = deleteCollectionSelection; + this.deleteSelectedItem = deleteSelectedItem; + this.deleteSelectedCollection = deleteSelectedCollection; this.renameSelectedCollection = renameSelectedCollection; this.search = search; this.getCollectionsView = getCollectionsView; this.getItemsView = getItemsView; + this.buildCollectionContextMenu = buildCollectionContextMenu; + this.buildItemContextMenu = buildItemContextMenu; /* * Called when the window is open @@ -72,10 +74,18 @@ var ScholarPane = new function() */ function newItem(typeID) { + if(document.getElementById('tb-search').value != "") + { + document.getElementById('tb-search').value = ""; + document.getElementById('tb-search').doCommand(); + } + var item = new Scholar.Item(typeID); item.save(); if(itemsView && itemsView._itemGroup.isCollection()) itemsView._itemGroup.ref.addItem(item.getID()); + + document.getElementById('scholar-view-item').selectedIndex = 1; } function newCollection() @@ -123,18 +133,18 @@ var ScholarPane = new function() document.getElementById('scholar-view-item').hidden = true; var label = document.getElementById('scholar-view-selected-label'); label.hidden = false; - label.value = itemsView.selection.count + " items selected."; + label.value = itemsView.selection.count + " items selected"; } } - function deleteItemSelection() + function deleteSelectedItem() { if(itemsView && itemsView.selection.count > 0 && confirm(Scholar.getString('pane.items.delete'))) itemsView.deleteSelection(); } - function deleteCollectionSelection() + function deleteSelectedCollection() { if(collectionsView.selection.count > 0 && confirm(Scholar.getString('pane.collections.delete'))) collectionsView.deleteSelection(); @@ -167,6 +177,37 @@ var ScholarPane = new function() { return itemsView; } + + function buildCollectionContextMenu() + { + var menu = document.getElementById('scholar-collectionmenu'); + + if(collectionsView.selection.count == 1 && !collectionsView._getItemAtRow(collectionsView.selection.currentIndex).isLibrary()) + { + menu.childNodes[2].removeAttribute('disabled'); + menu.childNodes[3].removeAttribute('disabled'); + } + else + { + menu.childNodes[2].setAttribute('disabled', true); + menu.childNodes[3].setAttribute('disabled', true); + } + } + + function buildItemContextMenu() + { + var menu = document.getElementById('scholar-itemmenu'); + + if(itemsView && itemsView.selection.count > 0) + menu.childNodes[2].removeAttribute('disabled'); + else + menu.childNodes[2].setAttribute('disabled', true); + + if(itemsView && itemsView.selection.count > 1) + menu.childNodes[2].setAttribute('label', 'Remove Selected Items...'); + else + menu.childNodes[2].setAttribute('label', 'Remove Selected Item...'); + } } window.addEventListener("load", function(e) { ScholarPane.onLoad(e); }, false); diff --git a/chrome/chromeFiles/content/scholar/overlay.xul b/chrome/chromeFiles/content/scholar/overlay.xul @@ -20,100 +20,120 @@ </commandset> <vbox id="appcontent"> - <hbox id="scholar-pane" position="1" persist="height collapsed"> - <vbox persist="width" width="200" style="min-width: 150px;"> - <toolbar> - <toolbarbutton label="&toolbar.newCollection.label;" command="cmd_scholar_newCollection"/> - <toolbarbutton id="tb-rename" label="&toolbar.renameCollection.label;" oncommand="ScholarPane.renameSelectedCollection();" disabled="true"/> - </toolbar> - <tree id="collections-tree" hidecolumnpicker="true" - onselect="ScholarPane.onCollectionSelected();" seltype="single" - ondragdrop="nsDragAndDrop.drop(event,ScholarPane.getCollectionsView())" - ondraggesture="if (event.target.localName == 'treechildren') nsDragAndDrop.startDrag(event,ScholarPane.getCollectionsView());" - onkeypress="if(event.keyCode == event.DOM_VK_BACK_SPACE || event.keyCode == event.DOM_VK_DELETE){ ScholarPane.deleteCollectionSelection(); return false; }" - flex="1"> - <treecols> - <treecol - id="name_column" - label="&collections.name_column;" - flex="1" - primary="true"/> - </treecols> - <treechildren/> - </tree> - </vbox> - <splitter id="scholar-tree-splitter" resizebefore="closest" resizeafter="closest"/> - <vbox persist="width" flex="1" style="min-width: 300px;"> - <toolbar align="center"> - <toolbarbutton id="tb-add" label="&toolbar.newItem.label;" type="menu"> - <menupopup> - </menupopup> - </toolbarbutton> - <spacer flex="1"/> - <label value="&toolbar.search.label;" control="tb-search"/> - <textbox id="tb-search" type="timed" timeout="500" command="cmd_scholar_search"/> - <toolbarbutton class="tabs-closebutton" oncommand="ScholarPane.toggleDisplay()"/> - </toolbar> - <tree - id="items-tree" - enableColumnDrag="true" onkeypress="if(event.keyCode == event.DOM_VK_BACK_SPACE || event.keyCode == event.DOM_VK_DELETE){ ScholarPane.deleteItemSelection(); return false; }" - onselect="ScholarPane.itemSelected();" - ondraggesture="if (event.target.localName == 'treechildren') nsDragAndDrop.startDrag(event,ScholarPane.getItemsView());" - ondragover="nsDragAndDrop.dragOver(event,ScholarPane.getItemsView())" - ondragdrop="nsDragAndDrop.drop(event,ScholarPane.getItemsView())" - flex="1"> - <treecols> - <treecol - id="typeIcon" - label="&items.type_column;" - width="40" persist="width ordinal hidden sortActive sortDirection"/> - <splitter class="tree-splitter"/> - <treecol - id="title" - label="&items.title_column;" - flex="4" persist="width ordinal hidden sortActive sortDirection"/> - <splitter class="tree-splitter"/> - <treecol - id="firstCreator" - label="&items.creator_column;" - flex="1" persist="width ordinal hidden sortActive sortDirection"/> - <splitter class="tree-splitter"/> - <treecol - id="numNotes" - label="&items.numNotes_column;" - persist="width ordinal hidden sortActive sortDirection"/> - <splitter class="tree-splitter"/> - <treecol - id="source" hidden="true" - label="&items.source_column;" - flex="1" persist="width ordinal hidden sortActive sortDirection"/> - <splitter class="tree-splitter"/> - <treecol - id="rights" hidden="true" - label="&items.rights_column;" - flex="1" persist="width ordinal hidden sortActive sortDirection"/> - <splitter class="tree-splitter"/> - <treecol - id="dateAdded" hidden="true" - label="&items.dateAdded_column;" - flex="1" persist="width ordinal hidden sortActive sortDirection"/> - <splitter class="tree-splitter"/> - <treecol - id="dateModified" hidden="true" - label="&items.dateModified_column;" - flex="1" persist="width ordinal hidden sortActive sortDirection"/> - </treecols> - - <treechildren/> - </tree> - - </vbox> - <splitter id="scholar-view-splitter" collapse="after"><grippy/></splitter> - <box width="300" style="min-width: 300px;" pack="center" align="center"> - <label id="scholar-view-selected-label" style="text-align: center;"/> - <tabbox id="scholar-view-item" hidden="true" flex="1"/> - </box> - </hbox> + <vbox id="scholar-pane" position="1" persist="height collapsed"> + <popupset> + <popup id="scholar-collectionmenu" onpopupshowing="ScholarPane.buildCollectionContextMenu();"> + <menuitem label="&toolbar.newCollection.label;" command="cmd_scholar_newCollection"/> + <menuseparator/> + <menuitem label="&toolbar.renameCollection.label;" oncommand="ScholarPane.renameSelectedCollection();"/> + <menuitem label="Remove Project..." oncommand="ScholarPane.deleteSelectedCollection();"/> + </popup> + <popup id="scholar-itemmenu" onpopupshowing="ScholarPane.buildItemContextMenu();"> + <menuitem label="&toolbar.newItem.label;" command="cmd_scholar_newItem"/> + <menuseparator/> + <menuitem label="Remove Item..." oncommand="ScholarPane.deleteSelectedItem();"/> + </popup> + </popupset> + <toolbar align="end"> + <label value="Firefox Scholar" style="font-size: larger;"/> + <label value="1.0 Alpha"/> + <spacer flex="1"/> + <toolbarbutton class="tabs-closebutton" oncommand="ScholarPane.toggleDisplay()"/> + </toolbar> + <hbox flex="1"> + <vbox persist="width" width="200" style="min-width: 150px;"> + <toolbar> + <toolbarbutton label="&toolbar.newCollection.label;" command="cmd_scholar_newCollection"/> + <toolbarbutton id="tb-rename" label="&toolbar.renameCollection.label;" oncommand="ScholarPane.renameSelectedCollection();" disabled="true"/> + </toolbar> + <tree id="collections-tree" hidecolumnpicker="true" context="scholar-collectionmenu" + onselect="ScholarPane.onCollectionSelected();" seltype="single" + ondragdrop="nsDragAndDrop.drop(event,ScholarPane.getCollectionsView())" + ondraggesture="if (event.target.localName == 'treechildren') nsDragAndDrop.startDrag(event,ScholarPane.getCollectionsView());" + onkeypress="if(event.keyCode == event.DOM_VK_BACK_SPACE || event.keyCode == event.DOM_VK_DELETE){ ScholarPane.deleteSelectedCollection(); return false; }" + flex="1"> + <treecols> + <treecol + id="name_column" + label="&collections.name_column;" + flex="1" + primary="true"/> + </treecols> + <treechildren/> + </tree> + </vbox> + <splitter id="scholar-tree-splitter" resizebefore="closest" resizeafter="closest"/> + <vbox persist="width" flex="1" style="min-width: 300px;"> + <toolbar align="center"> + <toolbarbutton id="tb-add" label="&toolbar.newItem.label;" type="menu"> + <menupopup> + </menupopup> + </toolbarbutton> + <spacer flex="1"/> + <label value="&toolbar.search.label;" control="tb-search"/> + <textbox id="tb-search" type="timed" timeout="500" command="cmd_scholar_search"/> + </toolbar> + <tree + id="items-tree" context="scholar-itemmenu" + enableColumnDrag="true" onkeypress="if(event.keyCode == event.DOM_VK_BACK_SPACE || event.keyCode == event.DOM_VK_DELETE){ ScholarPane.deleteSelectedItem(); return false; }" + onselect="ScholarPane.itemSelected();" + ondraggesture="if (event.target.localName == 'treechildren') nsDragAndDrop.startDrag(event,ScholarPane.getItemsView());" + ondragover="nsDragAndDrop.dragOver(event,ScholarPane.getItemsView())" + ondragdrop="nsDragAndDrop.drop(event,ScholarPane.getItemsView())" + flex="1"> + <treecols> + <treecol + id="typeIcon" + label="&items.type_column;" + width="40" persist="width ordinal hidden sortActive sortDirection"/> + <splitter class="tree-splitter"/> + <treecol + id="title" + label="&items.title_column;" + flex="4" persist="width ordinal hidden sortActive sortDirection"/> + <splitter class="tree-splitter"/> + <treecol + id="firstCreator" + label="&items.creator_column;" + flex="1" persist="width ordinal hidden sortActive sortDirection"/> + <splitter class="tree-splitter"/> + <treecol + id="numNotes" + label="&items.numNotes_column;" + persist="width ordinal hidden sortActive sortDirection"/> + <splitter class="tree-splitter"/> + <treecol + id="source" hidden="true" + label="&items.source_column;" + flex="1" persist="width ordinal hidden sortActive sortDirection"/> + <splitter class="tree-splitter"/> + <treecol + id="rights" hidden="true" + label="&items.rights_column;" + flex="1" persist="width ordinal hidden sortActive sortDirection"/> + <splitter class="tree-splitter"/> + <treecol + id="dateAdded" hidden="true" + label="&items.dateAdded_column;" + flex="1" persist="width ordinal hidden sortActive sortDirection"/> + <splitter class="tree-splitter"/> + <treecol + id="dateModified" hidden="true" + label="&items.dateModified_column;" + flex="1" persist="width ordinal hidden sortActive sortDirection"/> + </treecols> + + <treechildren/> + </tree> + + </vbox> + <splitter id="scholar-view-splitter" collapse="after"><grippy/></splitter> + <box width="300" style="min-width: 300px;" pack="center" align="center"> + <label id="scholar-view-selected-label" style="text-align: center;"/> + <tabbox id="scholar-view-item" hidden="true" flex="1"/> + </box> + </hbox> + </vbox> <splitter id="scholar-splitter" resizebefore="closest" resizeafter="closest" position="2" persist="collapsed"/> </vbox> diff --git a/chrome/chromeFiles/locale/en-US/scholar/scholar.properties b/chrome/chromeFiles/locale/en-US/scholar/scholar.properties @@ -1,11 +1,11 @@ pane.items.delete = Are you sure you want to delete the selected item? pane.items.delete.multiple = Are you sure you want to delete the selected items? -pane.collections.delete = Are you sure you want to delete the selected collection? -pane.collections.delete.multiple = Are you sure you want to delete the selected collections? -pane.collections.rename = Rename collection: +pane.collections.delete = Are you sure you want to delete the selected project? +pane.collections.delete.multiple = Are you sure you want to delete the selected projects? +pane.collections.rename = Rename Project: pane.collections.library = Library -pane.collections.untitled = Untitled Collection +pane.collections.untitled = Untitled Project metadata.savechanges = Do you want to save changes to '%1'?