X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=doc%2Fsalome%2Fgui%2FSMESH%2Fwhtopic.js;fp=doc%2Fsalome%2Fgui%2FSMESH%2Fwhtopic.js;h=3adaa251e1eded56d4fc3ff9a3c3573ea8e7e1d3;hb=bc37f0b49f9713347749b6325e1c7062de8857ae;hp=0000000000000000000000000000000000000000;hpb=c3bf92bd87b770fd81631a3853f7f5bb1ac6a4e8;p=modules%2Fsmesh.git diff --git a/doc/salome/gui/SMESH/whtopic.js b/doc/salome/gui/SMESH/whtopic.js new file mode 100755 index 000000000..3adaa251e --- /dev/null +++ b/doc/salome/gui/SMESH/whtopic.js @@ -0,0 +1,662 @@ +var gsPPath = ""; +var gaPaths = new Array(); +var gaAvenues = new Array(); + +var goFrame = null; +var gsStartPage = ""; +var gsRelCurPagePath = ""; +var gsSearchFormHref = ""; +var gnTopicOnly = -1; +var gnOutmostTopic = -1; + +var BTN_TEXT=1; +var BTN_IMG=2; + +var goSync = null; + +var goShow = null; +var goHide = null; + +var goPrev = null; +var goNext = null; +var gnForm = 0; +var goShowNav = null; +var goHideNav = null; + +var goWebSearch = null; + +var gsBtnStyle = ""; +var gaButtons = new Array(); +var gaTypes = new Array(); +var whtopic_foldUnload = null; +var gbWhTopic=false; +var gbCheckSync=false; +var gbSyncEnabled=false; + +function setButtonFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration) +{ + var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration); + gsBtnStyle += ".whtbtn" + sType + "{"+getFontStyle(vFont) + "}"; +} + +function writeBtnStyle() +{ + if (gaButtons.length > 0) + { + if (gsBtnStyle.length > 0) + { + var sStyle = ""; + document.write(sStyle); + } + } +} + +function button(sText, nWidth, nHeight) +{ + this.sText = sText; + this.nWidth = nWidth; + this.nHeight = nHeight; + + this.aImgs = new Array(); + var i = 0; + while (button.arguments.length > i + 3) + { + this.aImgs[i] = button.arguments[3 + i]; + i ++; + } +} + +// project info +function setRelStartPage(sPath) +{ + if (gsPPath.length == 0) + { + gsPPath = _getFullPath(_getPath(document.location.href), _getPath(sPath)); + gsStartPage = _getFullPath(_getPath(document.location.href), sPath); + gsRelCurPagePath = _getRelativeFileName(gsStartPage, document.location.href); + } +} + +function getImage(oImage, sType) +{ + var sImg=""; + if (oImage && oImage.aImgs && (oImage.aImgs.length > 0)) + { + sImg+="\""+ 0) + sImg+=" width=" + oImage.nWidth; + if (oImage.nHeight > 0) + sImg+=" height=" + oImage.nHeight; + sImg+=" border=no>"; + } + return sImg; +} + +function addTocInfo(sTocPath) +{ + gaPaths[gaPaths.length] = sTocPath; +} + +function addAvenueInfo(sName, sPrev, sNext) +{ + gaAvenues[gaAvenues.length] = new avenueInfo(sName, sPrev, sNext); +} + +function addButton(sType, nStyle, sText, sHref, sOnClick, sOnMouseOver, sOnLoad, nWidth, nHeight, sImg1, sImg2, sImg3) +{ + var sButton = ""; + var nBtn=gaButtons.length; + if (sType == "prev") + { + if (canGo(false)) + { + var sTitle = "Previous Topic"; + goPrev = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goPrev.sText; + else + sButton += getImage(goPrev, sTitle); + sButton += ""; + } + } + else if (sType == "next") + { + if (canGo(true)) + { + var sTitle = "Next Topic"; + goNext = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goNext.sText; + else + sButton += getImage(goNext, sTitle); + sButton += ""; + } + } + else if (sType == "show") + { + if (isTopicOnly()) + { + var sTitle = "Show Navigation Component"; + goShow = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goShow.sText; + else + sButton += getImage(goShow, sTitle); + sButton += ""; + } + } + else if (sType == "hide") + { + if (!isTopicOnly()) + { + var sTitle = "Hide Navigation Component"; + goHide = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goHide.sText; + else + sButton += getImage(goHide, sTitle); + sButton += ""; + } + } + else if (sType == "shownav") + { + + if (isShowHideEnable()) + { + var sTitle = "Show Navigation Component"; + goShowNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goShowNav.sText; + else + sButton += getImage(goShowNav, sTitle); + sButton += ""; + } + } + else if (sType == "hidenav") + { + if (isShowHideEnable()) + { + var sTitle = "Hide Navigation Component"; + goHideNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goHideNav.sText; + else + sButton += getImage(goHideNav, sTitle); + sButton += ""; + } + } + else if (sType == "synctoc") + { + if (gaPaths.length > 0) + { + var sTitle = "Sync TOC"; + goSync = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goSync.sText; + else + sButton += getImage(goSync, sTitle); + sButton += ""; + } + } + else if (sType == "websearch") + { + if (gsSearchFormHref.length > 0) + { + var sTitle = "WebSearch"; + goWebSearch = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goWebSearch.sText; + else + sButton += getImage(goWebSearch, sTitle); + sButton += ""; + } + } + else if (sType == "searchform") + { + gaButtons[nBtn] = "NeedSearchForm"; + gaTypes[nBtn] = sType; + } + if (sButton.length != 0) + { + if (nStyle == BTN_TEXT) + sButton += " "; + gaButtons[nBtn] = "" + sButton + ""; + gaTypes[nBtn] = sType; + } +} + +function isSyncEnabled() +{ + if (!gbCheckSync) + { + var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null); + if(SendMessage(oMsg)) + { + gbSyncEnabled=oMsg.oParam; + } + gbCheckSync=true; + } + return gbSyncEnabled; +} + +function isInPopup() +{ + return (window.name.indexOf("BSSCPopup") != -1); +} + +function getIntopicBar(sAlign) +{ + var sHTML = ""; + if (gaButtons.length > 0) + { + sHTML += "
"; + + sHTML += ""; + for (var i = 0; i < gaButtons.length; i++) + { + if (gaTypes[i]!="synctoc" || isSyncEnabled()) + { + if (gaButtons[i] == "NeedSearchForm") + sHTML += getSearchFormHTML(); + else + sHTML += gaButtons[i]; + } + } + sHTML += "
"; + + sHTML += "
"; + } + return sHTML; +} + + +function writeIntopicBar(nAligns) +{ + if (isInPopup()) return; + if (gaButtons.length > 0) + { + var sHTML = ""; + if (nAligns != 0) + { + sHTML += "" + if (nAligns & 1) + sHTML += ""; + if (nAligns & 2) + sHTML += ""; + if (nAligns & 4) + sHTML += ""; + sHTML += "
" + getIntopicBar("left") + "" + getIntopicBar("center") + "" + getIntopicBar("right") + "
"; + document.write(sHTML); + } + } +} + +function sendAveInfoOut() +{ + if (!isInPopup()) + setTimeout("sendAveInfo();", 100); +} + +function sendAveInfo() +{ + var oMsg = new whMessage(WH_MSG_AVENUEINFO, this, 1, gaAvenues); + SendMessage(oMsg); +} + + +function onNext() +{ + var oMsg = new whMessage(WH_MSG_NEXT, this, 1, null); + SendMessage(oMsg); +} + +function onPrev() +{ + var oMsg = new whMessage(WH_MSG_PREV, this, 1, null); + SendMessage(oMsg); +} + +function createSyncInfo() +{ + var oParam = new Object(); + if (gsPPath.length == 0) + gsPPath = _getPath(document.location.href); + oParam.sPPath = gsPPath; + oParam.sTPath = document.location.href; + oParam.aPaths = gaPaths; + return oParam; +} + +function syncWithShow() +{ + if (isTopicOnly()) + show(); + else + { + sync(); + showTocPane(); + } +} + +function showTocPane() +{ + var oMsg = new whMessage(WH_MSG_SHOWTOC, this, 1, null); + SendMessage(oMsg); +} + +function sendSyncInfo() +{ + if (!isInPopup()) + { + var oParam = null; + if (gaPaths.length > 0) + { + oParam = createSyncInfo(); + } + var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, oParam); + SendMessage(oMsg); + } +} + +function sendInvalidSyncInfo() +{ + if (!isInPopup()) + { + var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, null); + SendMessage(oMsg); + } +} + +function enableWebSearch(bEnable) +{ + if (!isInPopup()) + { + var oMsg = new whMessage(WH_MSG_ENABLEWEBSEARCH, this, 1, bEnable); + SendMessage(oMsg); + } +} + +function autoSync(nSync) +{ + if (nSync == 0) return; + if (isInPopup()) return; + if (isOutMostTopic()) + sync(); +} + +function isOutMostTopic() +{ + if (gnOutmostTopic == -1) + { + var oMessage = new whMessage(WH_MSG_ISINFRAMESET, this, 1 , null); + if (SendMessage(oMessage)) + gnOutmostTopic = 0; + else + gnOutmostTopic = 1; + } + return (gnOutmostTopic == 1); +} + +function sync() +{ + if (gaPaths.length > 0) + { + var oParam = createSyncInfo(); + var oMessage = new whMessage(WH_MSG_SYNCTOC, this, 1, oParam); + SendMessage(oMessage); + } +} + + +function avenueInfo(sName, sPrev, sNext) +{ + this.sName = sName; + this.sPrev = sPrev; + this.sNext = sNext; +} + +function getCurrentAvenue() +{ + var oParam = new Object(); + oParam.sAvenue = null; + var oMessage = new whMessage(WH_MSG_GETCURRENTAVENUE, this, 1, oParam); + SendMessage(oMessage); + return oParam.sAvenue; +} + +function unRegisterListener() +{ + sendInvalidSyncInfo(); + enableWebSearch(false); + if (whtopic_foldUnload) + whtopic_foldUnload(); +} + +function onSendMessage(oMsg) +{ + var nMsgId = oMsg.nMessageId; + if (nMsgId == WH_MSG_GETAVIAVENUES) + { + oMsg.oParam.aAvenues = gaAvenues; + return false; + } + else if (nMsgId == WH_MSG_GETTOCPATHS) + { + if (isOutMostTopic()) + { + oMsg.oParam.oTocInfo = createSyncInfo(); + return false; + } + else + return true; + } + else if (nMsgId == WH_MSG_NEXT) + { + goAvenue(true); + } + else if (nMsgId == WH_MSG_PREV) + { + goAvenue(false); + } + else if (nMsgId == WH_MSG_WEBSEARCH) + { + websearch(); + } + return true; +} + +function goAvenue(bNext) +{ + var sTopic = null; + var sAvenue = getCurrentAvenue(); + var nAvenue = -1; + if (sAvenue != null && sAvenue != "") + { + for (var i = 0; i < gaAvenues.length ; i ++) + { + if (gaAvenues[i].sName == sAvenue) + { + nAvenue = i; + break; + } + } + if (nAvenue != -1) + { + if (bNext) + sTopic = gaAvenues[nAvenue].sNext; + else + sTopic = gaAvenues[nAvenue].sPrev; + } + } + else + { + for (var i = 0; i < gaAvenues.length ; i ++) + { + if (gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext) + { + sTopic = gaAvenues[i].sNext; + break; + } + else if (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext) + { + sTopic = gaAvenues[i].sPrev; + break; + } + } + } + + if (sTopic != null && sTopic != "") + { + if (gsPPath != null && gsPPath != "") + { + sFullTopicPath = _getFullPath(gsPPath, sTopic); + document.location = sFullTopicPath; + } + } +} + +function canGo(bNext) +{ + for (var i = 0; i < gaAvenues.length ; i ++) + { + if ((gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext) || + (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext)) + return true; + } + return false; +} + +function show() +{ + if (gsStartPage != "") + window.location = gsStartPage + "#" + gsRelCurPagePath; +} + +function hide() +{ + if (goFrame != null) + { + goFrame.location = window.location; + } +} + +function isTopicOnly() +{ + if (gnTopicOnly == -1) + { + var oParam = new Object(); + oParam.oFrame = null; + var oMsg = new whMessage(WH_MSG_GETSTARTFRAME, this, 1, oParam); + if (SendMessage(oMsg)) + { + goFrame = oParam.oFrame; + gnTopicOnly = 0; + } + else + gnTopicOnly = 1; + } + if (gnTopicOnly == 1) + return true; + else + return false; +} + +function websearch() +{ + if (gbNav4) + { + if (document.ehelpform) + document.ehelpform.submit(); + } + else + { + if (window.ehelpform) + window.ehelpform.submit(); + } +} + +function addSearchFormHref(sHref) +{ + gsSearchFormHref = sHref; + enableWebSearch(true); +} + +function searchB(nForm) +{ + var sValue = eval("document.searchForm" + nForm + ".searchString.value"); + var oMsg = new whMessage(WH_MSG_SEARCHTHIS, this, 1, sValue); + SendMessage(oMsg); +} + +function getSearchFormHTML() +{ + var sHTML = ""; + gnForm ++; + var sFormName = "searchForm" + gnForm; + var sButton = "
" + sButton += ""; + if ("" == "text") + { + sButton+=""; + } + else if ("" == "image") + { + sButton+="" + sButton+=""; + } + sButton += "
"; + sHTML ="" + sButton + ""; + return sHTML; +} + +function showHidePane(bShow) +{ + var oMsg=null; + if (bShow) + oMsg=new whMessage(WH_MSG_SHOWPANE, this, 1, null); + else + oMsg=new whMessage(WH_MSG_HIDEPANE, this, 1, null); + SendMessage(oMsg); +} + +function isShowHideEnable() +{ + if (gbIE4) + return true; + else + return false; +} + +if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy) +{ + RegisterListener("bsscright", WH_MSG_GETAVIAVENUES); + RegisterListener("bsscright", WH_MSG_GETTOCPATHS); + RegisterListener("bsscright", WH_MSG_NEXT); + RegisterListener("bsscright", WH_MSG_PREV); + RegisterListener("bsscright", WH_MSG_WEBSEARCH); + if (gbMac && gbIE4) + { + if (typeof(window.onunload) != "unknown") + whtopic_foldUnload = window.onunload; + } + else + { + if (window.onunload) + whtopic_foldUnload = window.onunload; + } + window.onunload = unRegisterListener; + setButtonFont("show","","10pt","","","",""); + + gbWhTopic=true; +} +else + document.location.reload(); \ No newline at end of file