This commit is contained in:
David Norton 2006-05-15 21:45:07 +00:00
parent ec010c8b07
commit 8f84eaad7a

View File

@ -1,59 +1,108 @@
var ScholarLocalizedStrings; var ScholarLocalizedStrings;
var myTreeView;
var treeView = { Scholar.TreeView = function()
treebox: null, {
dataObjects: null, this._treebox = null;
this._dataObjects = new Array();
this.rowCount = 0;
}
Scholar.TreeView.prototype.setTree = function(treebox)
{
this._treebox = treebox;
this._dataObjects = Scholar.Objects.getTreeRows();
this.rowCount = this._dataObjects.length;
}
Scholar.TreeView.prototype.getCellText = function(row, column)
{
var obj = this._dataObjects[row];
get rowCount() { return this.dataObjects.length; }, if(column.id == "title_column")
getCellText: function(row,column) {
{ return obj.getField("title");
obj = this.dataObjects[row]; }
else if(column.id == "creator_column")
if(column.id == "title_column") {
{ return obj.getField("firstCreator");
return obj.getField("title"); }
} else
else if(column.id == "creator_column") {
{ return obj.getField("source");
return obj.getField("firstCreator"); }
} }
else
{ Scholar.TreeView.prototype.isContainer = function(row)
return obj.getField("source"); {
} return this._dataObjects(row).isFolder();
}, }
setTree: function(treebox)
{ Scholar.TreeView.prototype.isContainerOpen = function(row)
this.treebox = treebox; {
this.dataObjects = Scholar.Objects.getTreeRows(); return false;
}, }
isContainer: function(row){ return false; },
isSeparator: function(row){ return false; }, Scholar.TreeView.prototype.isContainerEmpty = function(row)
isSorted: function(){ return false; }, {
getLevel: function(row){ return 0; }, }
getImageSrc: function(row,col){ return null; },
getRowProperties: function(row,props){}, Scholar.TreeView.prototype.getLevel = function(row)
getCellProperties: function(row,col,props){}, {
getColumnProperties: function(colid,col,props){}, return this._dataObjects(row).getLevel();
selectionChanged: function() }
{
if(this.selection.count == 0) Scholar.TreeView.prototype.toggleOpenState = function(row)
{
if(this.isContainerOpen(row))
{
var thisLevel = this._dataObjects[row].getLevel();
while(this._dataObjects[row + 1].getLevel > thisLevel)
{ {
document.getElementById('status-text').value = "(No selection)"; this._dataObjects.splice(row+1,1);
setObjectPaneVisibility(false);
}
else if(this.selection.count == 1)
{
populateObjectPane(this.dataObjects[this.selection.currentIndex]);
setObjectPaneVisibility(true);
}
else
{
document.getElementById('status-text').value = "(Multiple selection)";
setObjectPaneVisibility(false);
} }
} }
}; else
{
var newRows = Scholar.Objects.getTreeRows(this._dataObjects[row].getID()); //Get children of
for(i in newRows)
{
this._dataObjects.splice(row+i+1,0,newRows[i]);
}
}
this.rowCount = this._dataObjects.length;
}
Scholar.TreeView.prototype.selectionChanged = function()
{
if(this.selection.count == 0)
{
document.getElementById('status-text').value = "(No selection)";
setObjectPaneVisibility(false);
}
else if(this.selection.count == 1)
{
populateObjectPane(this._dataObjects[this.selection.currentIndex]);
setObjectPaneVisibility(true);
}
else
{
document.getElementById('status-text').value = "(Multiple selection)";
setObjectPaneVisibility(false);
}
}
Scholar.TreeView.prototype.isSorted = function()
{
return false;
}
Scholar.TreeView.prototype.getColumnProperties = function(col, prop)
{
return null;
}
function setObjectPaneVisibility(vis) function setObjectPaneVisibility(vis)
{ {
@ -116,13 +165,14 @@ function populateObjectPane(objectRow)
function selectionChanged() function selectionChanged()
{ {
treeView.selectionChanged(); myTreeView.selectionChanged();
} }
function setView() function setView()
{ {
myTreeView = new Scholar.TreeView();
ScholarLocalizedStrings = document.getElementById('scholar-strings'); ScholarLocalizedStrings = document.getElementById('scholar-strings');
document.getElementById('scholar-sidebar-items').view=treeView; document.getElementById('scholar-sidebar-items').view=myTreeView;
} }
Scholar.testString = 'Sidebar is registered.'; Scholar.testString = 'Sidebar is registered.';