TabbedContent.js
Summary
No overview generated for 'TabbedContent.js'
mapbuilder.loadScript(baseDir+"/widget/WidgetBaseXSL.js");
function TabbedContent(widgetNode, model) {
WidgetBaseXSL.apply(this,new Array(widgetNode, model));
this.selectedTab = null;
this.tabList = new Array();
this.textNodeXpath = "/mb:WidgetText/mb:widgets/mb:TabbedContent";
this.initTabs = function(objRef) {
var tabs = objRef.widgetNode.selectNodes("mb:tab");
for (var i=0; i<tabs.length; ++i) {
var tab = tabs[i];
var tabWidgetId = tab.firstChild.nodeValue;
var tabWidget = config.objects[tabWidgetId];
if (!tabWidget) {
alert(mbGetMessage("tabWidgetNotFound", tabWidgetId));
return;
}
objRef.tabList.push(tabWidget);
var tabLabel = tab.getAttribute("label");
if (!tabLabel) tabLabel = tabWidgetId;
var textNode = config.widgetText.selectSingleNode(objRef.textNodeXpath+"/mb:"+tabWidgetId);
if (textNode) tabLabel = textNode.firstChild.nodeValue;
tab.setAttribute("label",tabLabel);
tabWidget.model.addListener("refresh",objRef.paint,objRef);
tabWidget.model.addListener("refresh",objRef.selectTab,tabWidget);
}
}
this.model.addListener("init",this.initTabs,this);
this.addWidget = function(tabWidget,tabLabel) {
this.tabList.push(tabWidget);
if (!tabLabel) tabLabel = tabWidget.id;
var textNode = config.widgetText.selectSingleNode(this.textNodeXpath+"/mb:"+tabWidget.id);
if (textNode) tabLabel = textNode.firstChild.nodeValue;
var tabNode = this.model.doc.createElementNS(mbNS,"tab");
tabNode.appendChild(this.model.doc.createTextNode(tabWidget.id));
tabNode.setAttribute("label",tabLabel);
this.widgetNode.appendChild(tabNode);
this.paint(this);
this.selectTab(tabWidget);
}
this.selectTab = function(tabWidget) {
if (!tabWidget.model.doc) {
alert(mbGetMessage("noDataYet"));
return;
}
var tabBar = config.objects[tabWidget.tabBarId]
if (tabBar.selectedTab!=null) tabBar.selectedTab.className = '';
var newAnchor = document.getElementById(tabBar.id+"_"+tabWidget.id);
if (newAnchor) {
newAnchor.className = 'current';
tabBar.selectedTab = newAnchor;
tabWidget.paint(tabWidget,tabWidget.id);
}
if (tabWidget.tabAction) eval(tabWidget.tabAction);
}
this.prePaint = function(objRef){
objRef.resultDoc = objRef.widgetNode;
for (var i=0; i<objRef.tabList.length; ++i) {
var tabWidget = objRef.tabList[i];
tabWidget.tabBarId = this.id;
var tabNode = objRef.resultDoc.selectSingleNode("mb:tab[text()='"+tabWidget.id+"']");
if (!tabWidget.model.doc) {
tabNode.setAttribute("disabled", "true");
} else {
tabNode.removeAttribute("disabled");
}
var tabAction = tabWidget.widgetNode.selectSingleNode("mb:tabAction");
if (tabAction) tabWidget.tabAction = tabAction.firstChild.nodeValue;
}
}
}
Documentation generated by
JSDoc on Tue Aug 21 08:12:28 2007