Salome HOME
Fix for problem: SIGSEGV appears if to select group after opening "Edit Group" dialog...
[modules/smesh.git] / doc / salome / gui / SMESH / whghost.js
1 var gbXML=false;\r
2 var gaDef=new Array();\r
3 var gsBgColor="#ffffff";\r
4 var gsBgImage="";\r
5 var goFont=null;\r
6 var goHoverFont=null;\r
7 var gsMargin="2pt";\r
8 var gsIndent="2pt";\r
9 var gsActiveBgColor="#cccccc";\r
10 var gbWhGHost=false;\r
11 \r
12 function setBackground(sBgImage)\r
13 {\r
14         gsBgImage=sBgImage;\r
15 }\r
16 \r
17 function setBackgroundcolor(sBgColor)\r
18 {\r
19         gsBgColor=sBgColor;\r
20 }\r
21 \r
22 function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
23 {\r
24         var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
25         if(sType=="Normal")\r
26                 goFont=vFont;\r
27         else if(sType=="Hover")\r
28                 goHoverFont=vFont;\r
29 }\r
30 \r
31 function setActiveBgColor(sBgColor)\r
32 {\r
33         gsActiveBgColor=sBgColor;\r
34 }\r
35 \r
36 function setMargin(sMargin)\r
37 {\r
38         gsMargin=sMargin;\r
39 }\r
40 \r
41 function setIndent(sIndent)\r
42 {\r
43         gsIndent=sIndent;\r
44 }\r
45 \r
46 function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,n,aPos,nLevel)\r
47 {\r
48 \r
49         var sHTML="";\r
50         var nIdxSet=aCurIdxSet[n];\r
51         var nIIdx=aPos[nIdxSet];\r
52         var sRawKName = getItemName(aDataCon,nIdxSet,nIIdx);\r
53         var sKName=_textToHtml(sRawKName);\r
54         var nIndex=insertDef(sKName,_textToHtml_nonbsp(getDef(aDataCon,nIdxSet,nIIdx)));\r
55         if(nLevel==1){\r
56                 sHTML+="<p><nobr><a alt=\"" + sKName+"\" href=\"javascript:void(0);\" onclick=\"showDef("+nIndex;\r
57                 sHTML+=");return false;\">"+sKName+"</a></nobr></p>";\r
58         }\r
59         oHTML.addHTML(sHTML,1,bDown,true,sRawKName);\r
60 }\r
61 \r
62 function insertDef(sKName,sDef)\r
63 {\r
64         var nLength=gaDef.length\r
65         var oGlo=new nameDefPair(sKName,sDef);\r
66         gaDef[nLength]=oGlo;\r
67         return nLength;\r
68 }\r
69 \r
70 function showDef(nDef)\r
71 {\r
72         if(nDef<gaDef.length)\r
73         {       \r
74                 var oParam=gaDef[nDef];\r
75                 var oMsg=new whMessage(WH_MSG_SHOWGLODEF,this,1,oParam);\r
76                 SendMessage(oMsg);\r
77         }\r
78 }\r
79 \r
80 function nameDefPair(sName,sDef)\r
81 {\r
82         this.sName=sName;\r
83         this.sDef=sDef;\r
84 }\r
85 \r
86 function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)\r
87 {\r
88         for(var i=0;i<nLength;i++)\r
89                 writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,i,aPos,nLevel);\r
90 }\r
91 \r
92 function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)\r
93 {\r
94         if(bDown)\r
95         {\r
96                 for(var i=0;i<nLength;i++)\r
97                         aPos[aCurIdxSet[i]]++;\r
98         }\r
99         else{\r
100                 for(var i=0;i<nLength;i++)\r
101                         aPos[aCurIdxSet[i]]--;\r
102         }\r
103 }\r
104 \r
105 function getDef(aDataCon,nIdxSet,nIIdx)\r
106 {\r
107         if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
108                 return aDataCon[nIdxSet].aKs[nIIdx].sDef;\r
109         else\r
110                 return null;\r
111 }\r
112 \r
113 function getItemName(aDataCon,nIdxSet,nIIdx)\r
114 {\r
115         if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
116                 return aDataCon[nIdxSet].aKs[nIIdx].sName;\r
117         else\r
118                 return null;\r
119 }\r
120 \r
121 function window_OnLoad()\r
122 {\r
123         if(gsBgImage&&gsBgImage.length>0)\r
124                 document.body.background=gsBgImage;\r
125         if(gsBgColor&&gsBgColor.length>0)\r
126                 document.body.bgColor=gsBgColor;\r
127         document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());\r
128         loadGlo();\r
129         var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)\r
130         SendMessage(oMsg);\r
131 }\r
132 \r
133 function loadGlo()\r
134 {\r
135         if(!gbReady)\r
136         {\r
137                 var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
138                 if(SendMessage(oResMsg)&&oResMsg.oParam)\r
139                 {\r
140                         gbReady=true;\r
141                         var oProj=oResMsg.oParam;\r
142                         var aProj=oProj.aProj;\r
143                         gbXML=oProj.bXML;\r
144                         if(aProj.length>0)\r
145                         {\r
146                                 var sLangId=aProj[0].sLangId;\r
147                                 for(var i=0;i<aProj.length;i++)\r
148                                 {\r
149                                         if(aProj[i].sGlo!=null&&aProj[i].sGlo!=""&&aProj[i].sLangId==sLangId)\r
150                                                 addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sGlo);\r
151                                 }\r
152                         }\r
153                         writeDataIFrame();\r
154                         enEvt();\r
155                 }               \r
156         }\r
157 }\r
158 \r
159 function findCKInDom()\r
160 {\r
161         return true;\r
162 }\r
163 \r
164 function GloWriteClassStyle()\r
165 {\r
166         var sStyle="<STYLE TYPE='text/css'>\n";\r
167         if (gsBgImage)\r
168                 sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
169         else\r
170                 sStyle+="body {border-top:black 1px solid;}\n";\r
171         sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";margin-left:"+gsIndent+";}\n";\r
172         sStyle+="A:link {"+getFontStyle(goFont)+"}\n";\r
173         sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";\r
174         sStyle+="A:active {background-color:"+gsActiveBgColor+";}\n";\r
175         sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";\r
176         sStyle+="</STYLE>";     \r
177         document.write(sStyle);\r
178 }\r
179 \r
180 function window_Unload()\r
181 {\r
182         UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
183         UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
184 }\r
185 \r
186 function onSendMessage(oMsg)\r
187 {\r
188         if(oMsg)\r
189         {\r
190                 var nMsgId=oMsg.nMessageId;\r
191                 if(nMsgId==WH_MSG_SHOWGLO)\r
192                 {\r
193                         if(!gbNav6)\r
194                                 document.body.focus();\r
195                 }\r
196                 else if(nMsgId==WH_MSG_PROJECTREADY)\r
197                 {\r
198                         loadGlo();\r
199                 }\r
200         }\r
201         return true;\r
202 }\r
203 \r
204 if (window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhHost)\r
205 {\r
206         RegisterListener2(this,WH_MSG_PROJECTREADY);\r
207         RegisterListener2(this,WH_MSG_SHOWGLO);\r
208         goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
209         goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
210         window.onload=window_OnLoad;\r
211         window.onbeforeunload=window_BUnload;\r
212         window.onunload=window_Unload;\r
213         gbWhGHost=true;\r
214 }\r
215 else\r
216         document.location.reload();\r
217 \r