www

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

commit c51f612098b68640e685042807737166b7df7eb7
parent 5fb98853bcd0a43c42e76cba963327252ecf24cb
Author: David Norton <david@nortoncrew.com>
Date:   Tue, 16 May 2006 19:33:44 +0000

Hierarchical display works!! Need a way to check to see if a container is empty.

Diffstat:
Mchrome/chromeFiles/content/scholar/sidebar.js | 80++++++++++++++++++++++++++++++++++++-------------------------------------------
Mchrome/chromeFiles/content/scholar/sidebar.xul | 14++++++++------
2 files changed, 44 insertions(+), 50 deletions(-)

diff --git a/chrome/chromeFiles/content/scholar/sidebar.js b/chrome/chromeFiles/content/scholar/sidebar.js @@ -14,9 +14,7 @@ Scholar.TreeView.prototype.setTree = function(treebox) var newRows = Scholar.Objects.getTreeRows(); for(var i = 0; i < newRows.length; i++) - { - this._dataObjects.push( [ newRows[i],false ] ); - } + this._dataObjects.push( [ newRows[i], false, 0 ] ); //object ref, isContainerOpen, level this.rowCount = this._dataObjects.length; } @@ -35,63 +33,50 @@ Scholar.TreeView.prototype.getCellText = function(row, column) else { if(column.id == "title_column") - { return obj.getField("title"); - } else if(column.id == "creator_column") - { return obj.getField("firstCreator"); - } else - { return obj.getField("source"); - } } } -Scholar.TreeView.prototype.isContainer = function(row) -{ - return this._getObjectAtRow(row).isFolder(); -} - -Scholar.TreeView.prototype.isContainerOpen = function(row) -{ - return this._dataObjects[row][1]; -} - +Scholar.TreeView.prototype.isContainer = function(row) { return this._getObjectAtRow(row).isFolder(); } +Scholar.TreeView.prototype.isContainerOpen = function(row) { return this._dataObjects[row][1]; } Scholar.TreeView.prototype.isContainerEmpty = function(row) { return false; } - -Scholar.TreeView.prototype.getLevel = function(row) -{ - return this._getObjectAtRow(row).getLevel(); -} +Scholar.TreeView.prototype.getLevel = function(row) { return this._dataObjects[row][2]; } Scholar.TreeView.prototype.getParentIndex = function(row) { - thisLevel = this._getObjectAtRow(row).getLevel(); + var thisLevel = this.getLevel(row); + if(thisLevel == 0) return -1; for(var i = row - 1; i >= 0; i--) - if(this._getObjectAtRow(i).getLevel() < thisLevel) + if(this.getLevel(i) < thisLevel) return i; + return -1; } Scholar.TreeView.prototype.hasNextSibling = function(row, afterIndex) { - thisLevel = this._getObjectAtRow(row).getLevel(); -// for(var i = afterIndex + 1; i < this.rowCount; i++) - return (this._getObjectAtRow(afterIndex+1).getLevel() == thisLevel) - //return false; - //return true; + var thisLevel = this.getLevel(row); + for(var i = afterIndex + 1; i < this.rowCount; i++) + { + var nextLevel = this.getLevel(i); + if(nextLevel == thisLevel) return true; + else if(nextLevel < thisLevel) return false; + } } Scholar.TreeView.prototype.toggleOpenState = function(row) { var count = 0; + var thisLevel = this.getLevel(row); + if(this.isContainerOpen(row)) { - var thisLevel = this._getObjectAtRow(row).getLevel(); - while(this._getObjectAtRow(row + 1).getLevel() > thisLevel) + while((row + 1 < this._dataObjects.length) && (this.getLevel(row + 1) > thisLevel)) { this._dataObjects.splice(row+1,1); count--; @@ -99,18 +84,19 @@ Scholar.TreeView.prototype.toggleOpenState = function(row) } else { - var newRows = Scholar.Objects.getTreeRows(this._getObjectAtRow(row).getID()); //Get children of + var newRows = Scholar.Objects.getTreeRows(this._getObjectAtRow(row).getID()); //Get children + for(var i = 0; i < newRows.length; i++) { - count++ - this._dataObjects.splice(row+i+1,0,[ newRows[i], false ]); + count++; + this._dataObjects.splice(row+i+1,0,[ newRows[i], false, thisLevel+1 ]); //insert new row } } this._dataObjects[row][1] = !this._dataObjects[row][1]; this.rowCount = this._dataObjects.length; - this._treebox.rowCountChanged(row, count); + this._treebox.rowCountChanged(row, count); //tell treebox to repaint these } Scholar.TreeView.prototype.selectionChanged = function() @@ -135,6 +121,7 @@ Scholar.TreeView.prototype.selectionChanged = function() } +/* Scholar.TreeView.prototype._insertRow = function(item, beforeRow) { return false; @@ -144,18 +131,24 @@ Scholar.TreeView.prototype._deleteRow = function(row) { return false; } +*/ Scholar.TreeView.prototype._getObjectAtRow = function(row) { return this._dataObjects[row][0]; } -Scholar.TreeView.prototype.isSorted = function() { return false; } -Scholar.TreeView.prototype.isSeparator = function(row) { return false; } -Scholar.TreeView.prototype.getRowProperties = function(row, prop) { return null; } -Scholar.TreeView.prototype.getColumnProperties = function(col, prop) { return null; } -Scholar.TreeView.prototype.getCellProperties = function(row, col, prop) { return null; } -Scholar.TreeView.prototype.getImageSrc = function(row, col) { return null; } +Scholar.TreeView.prototype.isSorted = function() { return false; } +Scholar.TreeView.prototype.isSeparator = function(row) { return false; } +Scholar.TreeView.prototype.isEditable = function(row, idx) { return false; } + +Scholar.TreeView.prototype.getRowProperties = function(row, prop) { } +Scholar.TreeView.prototype.getColumnProperties = function(col, prop) { } +Scholar.TreeView.prototype.getCellProperties = function(row, col, prop) { } +Scholar.TreeView.prototype.getImageSrc = function(row, col) { } +Scholar.TreeView.prototype.performAction = function(action) { } +Scholar.TreeView.prototype.performActionOnCell = function(action, row, col) { } +Scholar.TreeView.prototype.getProgressMode = function(row, col) { } function setObjectPaneVisibility(vis) { @@ -213,7 +206,6 @@ function populateObjectPane(objectRow) dynamicBox.insertBefore(row, beforeField); } - } function selectionChanged() diff --git a/chrome/chromeFiles/content/scholar/sidebar.xul b/chrome/chromeFiles/content/scholar/sidebar.xul @@ -15,19 +15,17 @@ <tree id="scholar-sidebar-items" - seltype="multiple" onselect="selectionChanged()" - flex="1" enableColumnDrag="true" - datasources="rdf:null" - ref="" - flags="dont-build-content"> + seltype="multiple" + flex="1"> <treecols> <treecol id="title_column" label="&sidebar.items.title_column;" - flex="1"/> + flex="1" + primary="true"/> <splitter class="tree-splitter"/> <treecol id="creator_column" @@ -36,7 +34,11 @@ </treecols> <treechildren/> </tree> + + <label id="status-text" value="(No selection)"/> + + <grid id="scholar-sidebar-object-pane" hidden="true"> <columns> <column/>