blob: 4e147e75bf97c1ef878903dd9d195cdb87e6b714 [file] [log] [blame]
ContentPageToolbar = function(){
this.expandAllImage = null;
this.collapseAllImage = null;
this.bookmarkImage = null;
this.printImage = null;
this.backImage = null;
this.forwardImage = null;
this.dividerImage = null;
// hold the toolbar item ids
this.toolbarItems = [];
this.barItemIdPrefix = "contentbar_";
}
ContentPageToolbar.prototype.init = function(imgPath) {
this.expandAllImage = contentPage.resolveUrl(imgPath + 'expand_all.gif');
this.collapseAllImage = contentPage.resolveUrl(imgPath + 'collapse_all.gif');
this.bookmarkImage = contentPage.resolveUrl(imgPath + 'bookmark.gif');
this.printImage = contentPage.resolveUrl(imgPath + 'print.gif');
this.backImage = contentPage.resolveUrl(imgPath + 'back.gif');
this.forwardImage = contentPage.resolveUrl(imgPath + 'forward.gif');
this.dividerImage = contentPage.resolveUrl(imgPath + 'divider.gif');
//this.shimImage = contentPage.resolveUrl(imgPath + 'shim.gif');
this._createToolbar();
};
ContentPageToolbar.prototype._createToolbar = function() {
var container = document.getElementById("contentPageToolbar");
if ( container == null ) {
return;
}
var html = ["<table border='0' cellspacing='0' cellpadding='0' >", "<tr>"];
// local file can't be added as bookmark
if ( !contentPage.isFileUrl(location.href) ) {
html = html.concat(this._getToolbarItemHtml(this.bookmarkImage, contentPage.res.toolbar_bookmark));
}
html = html.concat(this._getToolbarItemHtml(this.backImage, contentPage.res.toolbar_back));
html = html.concat(this._getToolbarItemHtml(this.forwardImage, contentPage.res.toolbar_forward));
html = html.concat(this._getToolbarItemHtml(this.expandAllImage , contentPage.res.toolbar_expand_all));
html = html.concat(this._getToolbarItemHtml(this.collapseAllImage, contentPage.res.toolbar_collapse_all));
html = html.concat(["<td width='10px'><img alt='' src='", this.dividerImage, "' title=''/></td>"]);
html = html.concat(this._getToolbarItemHtml(this.printImage, contentPage.res.toolbar_print));
html = html.concat(["</tr>", "</table>"]);
container.innerHTML = html.join("");
// attach events
for (var i = 0; i < this.toolbarItems.length; i++ ) {
var id = this.toolbarItems[i];
var bar = document.getElementById(id);
//alert(bar.tagName);
// note: all handler functions should return false to avoid the url action
var handler = null;
if ( id.indexOf(this.bookmarkImage) >= 0 ) {
handler = function() {
contentPage.saveAsBookmark();
return false;
};
} else if ( id.indexOf(this.backImage) >= 0 ) {
handler = function() {
//alert("back");
var app = contentPage.getApp();
if ( app != null ) {
app.browser.back();
}
return false;
};
} else if ( id.indexOf(this.forwardImage) >= 0 ) {
handler = function() {
var app = contentPage.getApp();
if ( app != null ) {
app.browser.forward();
}
return false;
};
} else if ( id.indexOf(this.expandAllImage) >= 0 ) {
handler = function() {
contentPage.section.expandAll();
return false;
};
} else if ( id.indexOf(this.collapseAllImage) >= 0 ) {
handler = function() {
contentPage.section.collapseAll();
return false;
};
} else if ( id.indexOf(this.printImage) >= 0 ) {
handler = function() {
window.print();
return false;
};
}
if ( handler != null ) {
bar.onclick = handler;
}
// handle the key stroke
}
/*
var table = document.createElement("table");
table.border = "2";
table.cellspacing = "0";
table.cellpadding = "0";
container.appendChild(table);
var tr = document.createElement("tr");
table.appendChild(tr);
*/
// create the bar items
//tr.appendChild(this._createToolbarItem(this.bookmarkImage, "Bookmark this page", "20px"));
/*
tr.appendChild(this.createToolbarItem(this.backImage, "back", "20px"));
tr.appendChild(this.createToolbarItem(this.forwardImage, "forward", "20px"));
tr.appendChild(this.createToolbarItem(this.expandAllImage, "expand All", "20px"));
tr.appendChild(this.createToolbarItem(this.collapseAllImage, "collapse All", "20px"));
tr.appendChild(this.createToolbarItem(this.dividerImage, "", "10px"));
tr.appendChild(this.createToolbarItem(this.printImage, "Print", "20px"));
*/
};
ContentPageToolbar.prototype._getToolbarItemHtml = function(imgSrc, text) {
var index = this.toolbarItems.length;
var id = this.barItemIdPrefix + imgSrc;
this.toolbarItems[index] = id;
var html = ["<td width='20px' class='contentToolbarIcon'><a href='' id='", id, "'>",
"<img alt='", text, "' src='", imgSrc, "' title='", text, "'/></a>", "</td>"];
return html;
};
ContentPageToolbar.prototype._createToolbarItem = function(imgSrc, text, width) {
var td = document.createElement("td");
td.width = width;
var img = document.createElement("img");
img.id = this.barItemIdPrefix + imgSrc;
img.src = imgSrc;
img.title = text;
img.alt = text;
img.width = '16';
img.height = '16';
img.border = '0';
//img.align = 'absmiddle';
td.appendChild(img);
//alert("td: " + td);
return td;
};