Files
webthink/menuBarControl.js
2020-04-27 15:35:11 -05:00

101 lines
3.2 KiB
JavaScript
Executable File

function menuBarControl() {
var m_displayDom=document.createElement("div");
m_displayDom.setAttribute("class","menuBar");
m_displayDom.setAttribute("id","menuBar");
var m_fsControl=new fileSelectorControl(getFileList());
var m_fileName=new textControl("FILENAME",true);
var m_userName=new textControl("USER",true,true);
return(construct());
function construct() {
m_fileName.setDisplayMode();
m_displayDom.appendChild(m_fileName);
m_userName.setDisplayMode();
m_userName.setAttribute('id','userName');
m_userName.setAttribute('class','userName');
m_userName.setText(getUserInfo("name"));
var profileLink=document.createElement("span");
profileLink.setAttribute("class","link");
profileLink.appendChild(document.createTextNode("[Profile]"));
profileLink.onclick=function(){ window.open("profile.html"); }
m_userName.appendChild(document.createTextNode(" "));
m_userName.appendChild(profileLink);
m_displayDom.appendChild(m_userName);
var menuItems = new Array();
menuItems[menuItems.length]=new textMenuItem("Files",onFilesClick,"menuBarRootItem");
menuItems[menuItems.length]=new textMenuItem("Save",onSaveClick,"menuBarRootItem");
menuItems[menuItems.length]=new textMenuItem("More",onMoreClick,"menuBarRootItem");
menuItems[menuItems.length]=new textMenuItem("Log Out",logOutUser,"menuBarRootItem");
m_displayDom.menu=new menuControl(menuItems,0);
m_displayDom.menu.setAttribute("class","menuBarMenu");
m_displayDom.appendChild(m_displayDom.menu);
m_fsControl.hide();
m_displayDom.appendChild(m_fsControl);
document.addSubscriber(m_fsControl.hide,"clicked");
m_displayDom.setFileDescription=setFileDescription;
m_displayDom.show=show;
m_displayDom.hide=hide;
return(m_displayDom);
function onMoreClick(){
if (!this.menu){
var menuItems = new Array();
menuItems[menuItems.length]=new textMenuItem("New Map/Clear",onNewClick,"menuBarSubItem");
menuItems[menuItems.length]=new textMenuItem("Save Copy As",onSaveAsClick,"menuBarSubItem");
menuItems[menuItems.length]=new textMenuItem("Add Rootnode",onNewRootNodeClick,"menuBarSubItem");
menuItems[menuItems.length]=new textMenuItem("Reposition Nodes",autoRepositionNodes,"menuBarSubItem");
this.menu= new menuControl(menuItems,1);
this.menu.setAttribute("class","menuBarMenu");
this.appendChild(this.menu);
document.addSubscriber(this.menu.hide,"clicked");
} else {
this.menu.toggleVisible();
}
}
}
function onNewRootNodeClick(){
rootNode[rootNode.length]=new node(dataTools.getNewPKey(),"(enter text)");
}
function onNewClick() {
g_filePKey=null;
setFileDescription("FILENAME");
deleteAllRootNodes();
rootNode[0]=new node(dataTools.getNewPKey(),"(enter text)");
}
function onSaveClick() {
saveMap(m_fileName.getText());
m_fsControl.update(getFileList());
}
function onSaveAsClick() {
g_filePKey=null;
saveMap(m_fileName.getText());
m_fsControl.update(getFileList());
}
function onFilesClick() {
if (m_fsControl.isVisible) {
m_fsControl.hide();
} else {
m_fsControl.show();
}
}
function setFileDescription(description) {
m_fileName.setText(description);
}
function hide() {
this.style.display="none";
}
function show() {
this.style.display="block";
}
}