]> SALOME platform Git repositories - modules/smesh.git/blobdiff - doc/salome/gui/SMESH/whstub.js
Salome HOME
DCQ : Merge with Ecole_Ete_a6.
[modules/smesh.git] / doc / salome / gui / SMESH / whstub.js
diff --git a/doc/salome/gui/SMESH/whstub.js b/doc/salome/gui/SMESH/whstub.js
new file mode 100755 (executable)
index 0000000..7a67691
--- /dev/null
@@ -0,0 +1,156 @@
+window.whname="wh_stub";\r
+function getframehandle(frames,framename)\r
+{\r
+       var frame=null;\r
+       if(null==frames) return null;\r
+       for(var i=0;i<frames.length;i++)\r
+       {\r
+               if(typeof(frames[i].name)!="unknown")\r
+               {\r
+                       if(frames[i].name==framename)\r
+                               return frames[i];\r
+                       if(frames[i].frames.length>0)\r
+                               frame=getframehandle(frames[i].frames,framename);\r
+                               if(null!=frame)\r
+                                       return frame;\r
+               }\r
+       }\r
+       return frame;\r
+}\r
+\r
+function AddToArray(arr,obj)\r
+{\r
+       var bFound=false;\r
+       for(var i=0;i<arr.length;i++){\r
+               if(arr[i]==obj){\r
+                       bFound=true;\r
+                       break;\r
+               }\r
+               else if(arr[i]==null){\r
+                       break;\r
+               }\r
+       }\r
+       if(!bFound) arr[i]=obj;\r
+}\r
+\r
+var gArrayRegistedMessage=new Array();\r
+var gArrayCompoentsArray=new Array();\r
+\r
+function GetComponentsArray(nMessageId)\r
+{\r
+       var len=gArrayRegistedMessage.length;\r
+       for(var i=0;i<len;i++)\r
+       {\r
+               if(gArrayRegistedMessage[i]==nMessageId){\r
+                       if(gArrayCompoentsArray.length>i)\r
+                               return gArrayCompoentsArray[i];\r
+                       else\r
+                               return null;\r
+               }\r
+       }\r
+       return null;\r
+}\r
+\r
+function CreateComponentsArray(nMessageId)\r
+{\r
+       var len=gArrayRegistedMessage.length;\r
+       gArrayRegistedMessage[len]=nMessageId;\r
+       gArrayCompoentsArray[len]=new Array();\r
+       return gArrayCompoentsArray[len];\r
+}\r
+\r
+function listener(sName,oWindow)\r
+{\r
+       this.sName=sName;\r
+       this.oWindow=oWindow;\r
+}\r
+\r
+function RegisterListener(windowName,nMessageId)\r
+{\r
+       var arrayComponents=GetComponentsArray(nMessageId);\r
+       if(arrayComponents==null)\r
+               arrayComponents=CreateComponentsArray(nMessageId);\r
+       \r
+       if(arrayComponents!=null)\r
+       {\r
+               for (var i=0;i<arrayComponents.length;i++)\r
+               {\r
+                       if (arrayComponents[i].sName == windowName)\r
+                               return false;\r
+               }\r
+               var oListener=new listener(windowName,null);\r
+               AddToArray(arrayComponents,oListener);\r
+               return true;\r
+       }\r
+       else\r
+               return false;\r
+}\r
+\r
+function RegisterListener2(oWindow,nMessageId)\r
+{\r
+       var arrayComponents=GetComponentsArray(nMessageId);\r
+       if(arrayComponents==null)\r
+               arrayComponents=CreateComponentsArray(nMessageId);\r
+       \r
+       if(arrayComponents!=null)\r
+       {\r
+               var oListener=new listener("",oWindow);\r
+               AddToArray(arrayComponents,oListener);\r
+               return true;\r
+       }\r
+       else\r
+               return false;\r
+}\r
+\r
+function UnRegisterListener2(oWindow,nMessageId)\r
+{\r
+       var arrayComponents=GetComponentsArray(nMessageId);\r
+       if(arrayComponents!=null)\r
+       {\r
+               for(var i=0;i<arrayComponents.length;i++)\r
+               {\r
+                       if(arrayComponents[i].oWindow==oWindow)\r
+                       {\r
+                               removeItemFromArray(arrayComponents,i);\r
+                               return true;\r
+                       }\r
+               }\r
+       }\r
+       else\r
+               return false;\r
+}\r
+\r
+function SendMessage(oMessage)\r
+{\r
+       var bDelivered=false;\r
+       var arrayComponents=GetComponentsArray(oMessage.nMessageId);\r
+       if(arrayComponents!=null&&arrayComponents.length>0){\r
+               for(var i=0;i<arrayComponents.length;i++)\r
+               {\r
+                       if(null!=arrayComponents[i])\r
+                       {\r
+                               var pFrame;\r
+                               if(arrayComponents[i].oWindow==null)\r
+                                       pFrame=getframehandle(frames,arrayComponents[i].sName);\r
+                               else\r
+                                       pFrame=arrayComponents[i].oWindow;\r
+                               if(null!=pFrame)\r
+                               {\r
+                                       if(pFrame.onSendMessageX)\r
+                                       {\r
+                                               bDelivered=true;\r
+                                               if(!pFrame.onSendMessageX(oMessage))\r
+                                                       break;\r
+                                       }\r
+                                       if(pFrame.onSendMessage)\r
+                                       {\r
+                                               bDelivered=true;\r
+                                               if(!pFrame.onSendMessage(oMessage))\r
+                                                       break;\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+       return bDelivered;\r
+}
\ No newline at end of file