www

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

commit 749ef47bbd0dc31041b1e0b9858bea21117c7ea3
parent 47d7525e80502cbb8bf2e0f8839ee6115cc0feff
Author: David Norton <david@nortoncrew.com>
Date:   Sat, 18 Mar 2006 22:51:05 +0000

I got the basic object pane working, so that it displays all the metadata.

I also started implementing some of the localization. There is a lot to do still, and I am still learning a lot of the Firefox extension technologies (XUL, adv. Javascript, etc.) but things are going great.



Diffstat:
Mchrome/chromeFiles/content/scholar/sidebar.js | 70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------
Mchrome/chromeFiles/content/scholar/sidebar.xul | 26++++++++++++++++++--------
Mchrome/chromeFiles/locale/en-US/scholar/scholar.dtd | 4++++
Achrome/chromeFiles/locale/en-US/scholar/scholar.properties | 17+++++++++++++++++
Mchrome/chromeFiles/skin/default/scholar/scholar.css | 4++++
5 files changed, 107 insertions(+), 14 deletions(-)

diff --git a/chrome/chromeFiles/content/scholar/sidebar.js b/chrome/chromeFiles/content/scholar/sidebar.js @@ -1,3 +1,5 @@ +var ScholarLocalizedStrings; + var treeView = { treebox: null, dataObjects: null, @@ -22,11 +24,6 @@ var treeView = { setTree: function(treebox){ this.treebox = treebox; this.dataObjects = Scholar_Objects.getAll(); - - //Dan S: Check out the debug output created by this - for(var i = 0; i < this.dataObjects.length; i++) - Scholar.debug(Scholar.varDump(this.dataObjects[i]),5); - }, isContainer: function(row){ return false; }, isSeparator: function(row){ return false; }, @@ -35,10 +32,71 @@ var treeView = { getImageSrc: function(row,col){ return null; }, getRowProperties: function(row,props){}, getCellProperties: function(row,col,props){}, - getColumnProperties: function(colid,col,props){} + getColumnProperties: function(colid,col,props){}, + selectionChanged: function(){ + if(this.selection.count == 0) + { + setObjectPaneVisibility(false); + document.getElementById('status-text').value = "(No selection)"; + } + else if(this.selection.count == 1) + { + document.getElementById('status-text').value = "Selected: " + this.selection.currentIndex; + setObjectPaneVisibility(true); + populateObjectPane(this.dataObjects[this.selection.currentIndex]); + } + else + { + setObjectPaneVisibility(false); + document.getElementById('status-text').value = "(Multiple selection)"; + } + } }; +function setObjectPaneVisibility(vis) +{ + document.getElementById('scholar-sidebar-object-pane').hidden = !vis; + document.getElementById('status-text').hidden = vis; +} + +function populateObjectPane(objectRow) +{ + var dynamicBox = document.getElementById('scholar-sidebar-object-pane-dynamic-fields'); + while(dynamicBox.hasChildNodes()) + dynamicBox.removeChild(dynamicBox.firstChild); + + var fields = Scholar_ObjectFields.getObjectTypeFields(objectRow.getField("objectTypeID")); + var fieldNames = new Array("title","dateAdded","dateModified","source","rights"); + for(var i = 0; i<fields.length; i++) + fieldNames.push(Scholar_ObjectFields.getName(fields[i])); + + for(var i = 0; i<fieldNames.length; i++) + { + if(objectRow.getField(fieldNames[i]) != "") + { + var label = document.createElement("label"); + label.setAttribute("value",ScholarLocalizedStrings.getString("objectFields."+fieldNames[i])+":"); + + var valueElement = document.createElement("description"); + valueElement.appendChild(document.createTextNode(objectRow.getField(fieldNames[i]))); + + var row = document.createElement("row"); + row.appendChild(label) + row.appendChild(valueElement) + + dynamicBox.appendChild(row); + } + } + +} + +function selectionChanged() +{ + treeView.selectionChanged(); +} + function setView() { + ScholarLocalizedStrings = document.getElementById('scholar-strings'); document.getElementById('scholar-sidebar-items').view=treeView; } \ No newline at end of file diff --git a/chrome/chromeFiles/content/scholar/sidebar.xul b/chrome/chromeFiles/content/scholar/sidebar.xul @@ -1,6 +1,8 @@ <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type"text/css"?> <?xml-stylesheet href="chrome://browser/skin/browser.css" type="text/css"?> +<?xml-stylesheet href="chrome://scholar/skin/scholar.css" type="text/css"?> +<!DOCTYPE window SYSTEM "chrome://scholar/locale/scholar.dtd"> <page id="scholar-sidebar" title="Scholar" onload="setView()" @@ -10,10 +12,12 @@ <script src="scholar.js"/> <script src="db.js"/> <script src="data_access.js"/> + <stringbundle id="scholar-strings" src="chrome://scholar/locale/scholar.properties"/> <tree id="scholar-sidebar-items" seltype="multiple" + onselect="selectionChanged()" flex="1" enableColumnDrag="true" datasources="rdf:null" @@ -23,25 +27,31 @@ <treecols> <treecol id="title_column" - label="Title" + label="&sidebar.items.title_column;" flex="1"/> <splitter class="tree-splitter"/> <treecol id="creator_column" - label="Creator" + label="&sidebar.items.creator_column;" flex="1"/> </treecols> <treechildren/> </tree> - <splitter collapse="before" resizeafter="grow"/> - - <vbox> - <label control="test1" value="Test1:"/> + <label id="status-text" value="(No selection)"/> + <grid id="scholar-sidebar-object-pane" hidden="true"> + <columns> + <column/> + <column flex="1"/> + </columns> + + <rows id="scholar-sidebar-object-pane-dynamic-fields"> + </rows> + </grid> + <!-- <textbox id="test1"/> <label control="test2" value="Test2:"/> <textbox id="test2"/> <label control="test3" value="Test3:"/> <textbox id="test3"/> - </vbox> - + --> </page> \ No newline at end of file diff --git a/chrome/chromeFiles/locale/en-US/scholar/scholar.dtd b/chrome/chromeFiles/locale/en-US/scholar/scholar.dtd @@ -1 +1,4 @@ <!ENTITY statusbarpanel.helloworld "Hello, World"> + +<!ENTITY sidebar.items.title_column "Title"> +<!ENTITY sidebar.items.creator_column "Creator"> +\ No newline at end of file diff --git a/chrome/chromeFiles/locale/en-US/scholar/scholar.properties b/chrome/chromeFiles/locale/en-US/scholar/scholar.properties @@ -0,0 +1,17 @@ +objectFields.title = Title +objectFields.dateAdded = Date Added +objectFields.dateModified = Modified +objectFields.source = Source +objectFields.rights = Rights + +objectFields.series = Series +objectFields.volume = Volume +objectFields.number = Number +objectFields.edition = Edition +objectFields.place = Place +objectFields.publisher = Publisher +objectFields.year = Year +objectFields.pages = Pages +objectFields.ISBN = ISBN +objectFields.publication = Publication +objectFields.ISSN = ISSN diff --git a/chrome/chromeFiles/skin/default/scholar/scholar.css b/chrome/chromeFiles/skin/default/scholar/scholar.css @@ -0,0 +1,3 @@ +#scholar-sidebar-object-pane-dynamic-fields label { + font-weight: bold; +} +\ No newline at end of file