Salome HOME
DCQ : Merge with Ecole_Ete_a6.
[modules/smesh.git] / doc / salome / gui / SMESH / whstub.js
1 window.whname="wh_stub";\r
2 function getframehandle(frames,framename)\r
3 {\r
4         var frame=null;\r
5         if(null==frames) return null;\r
6         for(var i=0;i<frames.length;i++)\r
7         {\r
8                 if(typeof(frames[i].name)!="unknown")\r
9                 {\r
10                         if(frames[i].name==framename)\r
11                                 return frames[i];\r
12                         if(frames[i].frames.length>0)\r
13                                 frame=getframehandle(frames[i].frames,framename);\r
14                                 if(null!=frame)\r
15                                         return frame;\r
16                 }\r
17         }\r
18         return frame;\r
19 }\r
20 \r
21 function AddToArray(arr,obj)\r
22 {\r
23         var bFound=false;\r
24         for(var i=0;i<arr.length;i++){\r
25                 if(arr[i]==obj){\r
26                         bFound=true;\r
27                         break;\r
28                 }\r
29                 else if(arr[i]==null){\r
30                         break;\r
31                 }\r
32         }\r
33         if(!bFound) arr[i]=obj;\r
34 }\r
35 \r
36 var gArrayRegistedMessage=new Array();\r
37 var gArrayCompoentsArray=new Array();\r
38 \r
39 function GetComponentsArray(nMessageId)\r
40 {\r
41         var len=gArrayRegistedMessage.length;\r
42         for(var i=0;i<len;i++)\r
43         {\r
44                 if(gArrayRegistedMessage[i]==nMessageId){\r
45                         if(gArrayCompoentsArray.length>i)\r
46                                 return gArrayCompoentsArray[i];\r
47                         else\r
48                                 return null;\r
49                 }\r
50         }\r
51         return null;\r
52 }\r
53 \r
54 function CreateComponentsArray(nMessageId)\r
55 {\r
56         var len=gArrayRegistedMessage.length;\r
57         gArrayRegistedMessage[len]=nMessageId;\r
58         gArrayCompoentsArray[len]=new Array();\r
59         return gArrayCompoentsArray[len];\r
60 }\r
61 \r
62 function listener(sName,oWindow)\r
63 {\r
64         this.sName=sName;\r
65         this.oWindow=oWindow;\r
66 }\r
67 \r
68 function RegisterListener(windowName,nMessageId)\r
69 {\r
70         var arrayComponents=GetComponentsArray(nMessageId);\r
71         if(arrayComponents==null)\r
72                 arrayComponents=CreateComponentsArray(nMessageId);\r
73         \r
74         if(arrayComponents!=null)\r
75         {\r
76                 for (var i=0;i<arrayComponents.length;i++)\r
77                 {\r
78                         if (arrayComponents[i].sName == windowName)\r
79                                 return false;\r
80                 }\r
81                 var oListener=new listener(windowName,null);\r
82                 AddToArray(arrayComponents,oListener);\r
83                 return true;\r
84         }\r
85         else\r
86                 return false;\r
87 }\r
88 \r
89 function RegisterListener2(oWindow,nMessageId)\r
90 {\r
91         var arrayComponents=GetComponentsArray(nMessageId);\r
92         if(arrayComponents==null)\r
93                 arrayComponents=CreateComponentsArray(nMessageId);\r
94         \r
95         if(arrayComponents!=null)\r
96         {\r
97                 var oListener=new listener("",oWindow);\r
98                 AddToArray(arrayComponents,oListener);\r
99                 return true;\r
100         }\r
101         else\r
102                 return false;\r
103 }\r
104 \r
105 function UnRegisterListener2(oWindow,nMessageId)\r
106 {\r
107         var arrayComponents=GetComponentsArray(nMessageId);\r
108         if(arrayComponents!=null)\r
109         {\r
110                 for(var i=0;i<arrayComponents.length;i++)\r
111                 {\r
112                         if(arrayComponents[i].oWindow==oWindow)\r
113                         {\r
114                                 removeItemFromArray(arrayComponents,i);\r
115                                 return true;\r
116                         }\r
117                 }\r
118         }\r
119         else\r
120                 return false;\r
121 }\r
122 \r
123 function SendMessage(oMessage)\r
124 {\r
125         var bDelivered=false;\r
126         var arrayComponents=GetComponentsArray(oMessage.nMessageId);\r
127         if(arrayComponents!=null&&arrayComponents.length>0){\r
128                 for(var i=0;i<arrayComponents.length;i++)\r
129                 {\r
130                         if(null!=arrayComponents[i])\r
131                         {\r
132                                 var pFrame;\r
133                                 if(arrayComponents[i].oWindow==null)\r
134                                         pFrame=getframehandle(frames,arrayComponents[i].sName);\r
135                                 else\r
136                                         pFrame=arrayComponents[i].oWindow;\r
137                                 if(null!=pFrame)\r
138                                 {\r
139                                         if(pFrame.onSendMessageX)\r
140                                         {\r
141                                                 bDelivered=true;\r
142                                                 if(!pFrame.onSendMessageX(oMessage))\r
143                                                         break;\r
144                                         }\r
145                                         if(pFrame.onSendMessage)\r
146                                         {\r
147                                                 bDelivered=true;\r
148                                                 if(!pFrame.onSendMessage(oMessage))\r
149                                                         break;\r
150                                         }\r
151                                 }\r
152                         }\r
153                 }\r
154         }\r
155         return bDelivered;\r
156 }