From: yfr Date: Fri, 18 Jun 2004 13:10:09 +0000 (+0000) Subject: DCQ : Merge with Ecole_Ete_a6. X-Git-Tag: Merge_with_Ecole_Ete_a6~2 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=f07c0c119f52ba2f400d7ea7dd6e1fe1ce7fa438;p=modules%2Fsuperv.git DCQ : Merge with Ecole_Ete_a6. --- diff --git a/doc/salome/gui/SUPERV/SUPERVISION.log b/doc/salome/gui/SUPERV/SUPERVISION.log new file mode 100755 index 0000000..d6ef9bf --- /dev/null +++ b/doc/salome/gui/SUPERV/SUPERVISION.log @@ -0,0 +1,253 @@ +|SourceProjectName:SUPERVISION.hpr +|DestinationProjectName:supervision.html +whhost.js +whmsg.js +whmozemu.js +whproxy.js +whstub.js +whutils.js +whver.js +whform.js +whphost.js +whstart.js +whtopic.js +whframes.js +whlang.js +whskin_info.htm +whskin_blank.htm +whnjs.htm +whthost.js +whtdhtml.htm +whihost.js +whibody.htm +whiform.htm +whfhost.js +whfbody.htm +whfform.htm +whghost.js +whgbody.htm +whgdhtml.htm +whgdef.htm +whproj.js +whproj.xml +whproj.htm +whdata\whtoc.js +whdata\whtoc.xml +whdata\whtoc.htm +whdata\whtdata.js +whdata\whidx.js +whdata\whidx.xml +whdata\whidx.htm +whdata\whidata.js +whdata\whfts.js +whdata\whfts.xml +whdata\whfts.htm +whdata\whglo.js +whdata\whglo.xml +whdata\whglo.htm +whdata\whgdata.js +whdata\whftdata.js +whdata\whfwdata.js +whres.xml +webhelp.jar +webhelp.cab +whgdata\whnvp30.htm +whgdata\whnvp31.htm +whgdata\whnvp32.htm +whgdata\whnvp33.htm +whgdata\whnvt30.htm +whgdata\whnvt31.htm +whgdata\whnvt32.htm +whgdata\whnvt33.htm +whgdata\whnvf30.htm +whgdata\whnvf31.htm +whgdata\whnvf32.htm +whgdata\whnvf33.htm +whgdata\whnvl31.htm +whgdata\whnvl32.htm +whgdata\whnvl33.htm +whgdata\whexpbar.gif +cshdat_webhelp.htm +cshdat_robohelp.htm +wht_tab0.gif +wht_tab1.gif +wht_tab2.gif +wht_tab3.gif +wht_tab4.gif +wht_tab5.gif +wht_tab6.gif +wht_tab7.gif +wht_tab8.gif +wht_glo_h.gif +wht_glo_n.gif +wht_fts_h.gif +wht_fts_n.gif +wht_idx_h.gif +wht_idx_n.gif +wht_toc_h.gif +wht_toc_n.gif +wht_ws.gif +wht_ws_g.gif +wht_logo1.gif +wht_logo2.gif +wht_abgw.jpg +wht_abgi.jpg +wht_abge.jpg +wht_abtw.jpg +wht_abte.jpg +wht_abti.jpg +wht_spac.gif +wht_next.gif +wht_next_g.gif +wht_prev.gif +wht_prev_g.gif +wht_sync.gif +wht_hide.gif +wht_go.gif +whstart.ico +whestart.ico +whrstart.ico +whidhtml.htm +whfdhtml.htm +whskin_banner.htm +whtbar.js +default.skn +whskin_pdhtml.htm +whskin_papplet.htm +whskin_plist.htm +whskin_tbars.htm +whskin_mbars.htm +wht_toc4.gif +wht_toc1.gif +wht_toc2.gif +wht_toc3.gif +whskin_frmset010.htm +whst_topics.xml +whskin_frmset01.htm +supervision_hha.hhk +supervision.hhc +supervision.hhk +files\about_nodes.htm +files\adding_information_about_graphs.htm +files\adding_links_from_an_output_port.htm +files\adding_node_ports.htm +files\adding_nodes.htm +files\changing_node_description.htm +files\changing_view_mode.htm +files\computation_nodes.htm +files\controlling_execution_of_the_graphs.htm +files\copying_graphs.htm +files\creating_a_new_graph.htm +files\deleting_links.htm +files\deleting_nodes.htm +files\directing_dataflow_between_nodes.htm +files\editing_imported_graphs.htm +files\editing_node_function.htm +files\exporting_graphs.htm +files\filtering_and_storing_output_messages.htm +files\goto_nodes.htm +files\importing_graphs_from_file.htm +files\inserting_graphs.htm +files\introduction_to_supervisor.htm +files\loop_nodes.htm +files\modifying_links.htm +files\opening_graphs_referenced_in_the_study.htm +files\placing_nodes_in_the_window.htm +files\points_in_links.htm +files\referencing_output_values_in_the_study.htm +files\reloading_dataflow.htm +files\renaming_nodes.htm +files\running_dataflow.htm +files\running_supervisor.htm +files\setting_input_parameters.htm +files\step-by-step_execution.htm +files\switch_nodes.htm +files\usage_of_supervisor_module.htm +files\viewing_output_vaues.htm +texture_horiz_ltbluebubbles.jpg +supervision.glo +default.css +comp1.jpg +pics\supwind.jpg +pics\full.jpg +pics\browseport.jpg +supervisor(eng)_image10.gif +pics\filter.jpg +i_blue.jpg +tip1.gif +pics\tablemode.jpg +switch.jpg +loop1.jpg +pics\nodestypes.jpg +pics\graphex.jpg +supervisor(eng)_image13.gif +pics\browsenode.jpg +pics\runicn.jpg +pics\kill.jpg +supervisor(eng)_image15.gif +pics\setval.jpg +pics\control.jpg +pics\reload.jpg +pics\nodedescription.jpg +pics\addnode1.jpg +pics\stepbystep.jpg +pics\addnode2.jpg +supervisor(eng)_image4.gif +pics\description.jpg +supervisor(eng)_image6.gif +note1.gif +pics\reference.jpg +pics\links.jpg +pics\loopfunctions.jpg +image3.gif +ehlpdhtm.js +supervision.ppf +ss_btn_related_topics.gif +default_ns.css +whdata\whtdata0.xml +whdata\whtdata0.htm +whdata\whftdata0.xml +whdata\whftdata0.htm +whdata\whfwdata0.xml +whdata\whfwdata0.htm +whdata\whgdata0.xml +whdata\whgdata0.htm +whgdata\whlstt0.htm +whgdata\whlstt1.htm +whgdata\whlstt2.htm +whgdata\whlstt3.htm +whgdata\whlstt4.htm +whgdata\whlstt5.htm +whgdata\whlsti0.htm +whgdata\whlstfl0.htm +whgdata\whlstfl1.htm +whgdata\whlstfl2.htm +whgdata\whlstfl3.htm +whgdata\whlstfl4.htm +whgdata\whlstfl5.htm +whgdata\whlstfl6.htm +whgdata\whlstfl7.htm +whgdata\whlstfl8.htm +whgdata\whlstfl9.htm +whgdata\whlstfl10.htm +whgdata\whlstfl11.htm +whgdata\whlstfl12.htm +whgdata\whlstfl13.htm +whgdata\whlstfl14.htm +whgdata\whlstfl15.htm +whgdata\whlstfl16.htm +whgdata\whlstfl17.htm +whgdata\whlstfl18.htm +whgdata\whlstfl19.htm +whgdata\whlstfl20.htm +whgdata\whlstfl21.htm +whgdata\whlstf0.htm +whgdata\whlstf1.htm +whgdata\whlstf2.htm +whgdata\whlstf3.htm +whgdata\whlstf4.htm +whgdata\whlstf5.htm +whgdata\whlstg0.htm +supervision.html +supervision_csh.html +supervision_rhc.html diff --git a/doc/salome/gui/SUPERV/comp1.jpg b/doc/salome/gui/SUPERV/comp1.jpg new file mode 100755 index 0000000..4ed3c93 Binary files /dev/null and b/doc/salome/gui/SUPERV/comp1.jpg differ diff --git a/doc/salome/gui/SUPERV/cshdat_robohelp.htm b/doc/salome/gui/SUPERV/cshdat_robohelp.htm new file mode 100755 index 0000000..6d945cc --- /dev/null +++ b/doc/salome/gui/SUPERV/cshdat_robohelp.htm @@ -0,0 +1,252 @@ + + +SUPERVISION reference manual + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/SUPERV/cshdat_webhelp.htm b/doc/salome/gui/SUPERV/cshdat_webhelp.htm new file mode 100755 index 0000000..518544c --- /dev/null +++ b/doc/salome/gui/SUPERV/cshdat_webhelp.htm @@ -0,0 +1,251 @@ + + +SUPERVISION reference manual + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/SUPERV/default.css b/doc/salome/gui/SUPERV/default.css new file mode 100755 index 0000000..d2d425a --- /dev/null +++ b/doc/salome/gui/SUPERV/default.css @@ -0,0 +1,209 @@ +/*=(===============================================================)*/ + +/*=(===============================================================)*/ +/*=(Created with RoboEditor.)=======================================*/ +/*=(===============================================================)*/ + +BODY { + background-color: #ffffff; + font-family: "Times New Roman", serif; +} + +H1 { + font-weight: bold; + font-size: 24.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H1 { + font-weight: bold; + font-size: 24.0pt; +} +/*}}end!kadov=======================================================*/ + + + +H2 { + font-weight: bold; + font-size: 18.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H2 { + font-weight: bold; + font-size: 18.0pt; +} +/*}}end!kadov=======================================================*/ + + + +H3 { + font-weight: bold; + font-size: 14.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H3 { + font-weight: bold; + font-size: 14.0pt; +} +/*}}end!kadov=======================================================*/ + + + +H4 { + font-weight: bold; + font-size: 12.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H4 { + font-weight: bold; + font-size: 12.0pt; +} +/*}}end!kadov=======================================================*/ + + + +H5 { + font-weight: bold; + font-size: 10.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H5 { + font-weight: bold; + font-size: 10.0pt; +} +/*}}end!kadov=======================================================*/ + + + +H6 { + font-weight: bold; + font-size: 8.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H6 { + font-weight: bold; + font-size: 8.0pt; +} +/*}}end!kadov=======================================================*/ + + + +P { + font-size: 12.0pt; + margin-top: 0pt; + margin-bottom: 0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-P { + font-size: 12.0pt; +} +/*}}end!kadov=======================================================*/ + + + +A.expandspot { + color: #008000; + cursor: hand; + font-style: italic; + x-text-underline: off; + x-text-overline: off; + x-text-line-through: off; + /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ +} + +SPAN.expandtext { + font-style: italic; + font-weight: normal; + color: #ff0000; +} + +A.dropspot { + cursor: hand; + color: #008000; + font-style: italic; + x-text-underline: off; + x-text-overline: off; + x-text-line-through: off; + /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ +} + +A.glossterm { + color: #800000; + cursor: hand; + font-style: italic; + x-text-underline: off; + x-text-overline: off; + x-text-line-through: off; + /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ +} + +SPAN.glosstext { + font-style: italic; + font-weight: normal; + color: #0000ff; +} + +OL, +UL { + margin-top: 0px; + margin-bottom: 0px; +} + +A:active { +} + +A:hover { + x-text-underline: Off; + /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ +} + +A:link { + x-text-underline: Off; + /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ +} + +A:visited { + x-text-underline: Off; + /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ +} + +P.TODO { + font-weight: normal; + font-style: italic; + font-family: "Arial Black", sans-serif; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-P-CTODO { + font-weight: normal; + font-style: italic; + font-family: "Arial Black", sans-serif; +} +/*}}end!kadov=======================================================*/ + + + + +/*=(===============================================================)*/ diff --git a/doc/salome/gui/SUPERV/default.skn b/doc/salome/gui/SUPERV/default.skn new file mode 100755 index 0000000..f162a66 --- /dev/null +++ b/doc/salome/gui/SUPERV/default.skn @@ -0,0 +1,262 @@ + + + + Default + Contents + font-family:Arial font-size:8pt font-weight:normal font-style:normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + background:#99ccff + font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black + + background:#639ace + font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:White + + left + + Contents + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Index + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Search + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Glossary + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + WebSearch + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Search Input + + + + + <text></text> + + + + + Logo + + eHelp Corporation + + + + + background:#99ccff + font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black + + background:#639ace + font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:White + + + Previous + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Next + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Sync TOC + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Hide + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + + + + + + + background:White alink:Silver hover-color:Navy + font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black + + + + background:White alink:Silver hover-color:Navy + font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black + + + background:White + + + <text>::??DefaultWebSkinText??::</text> + <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font> + + + + + + + background:White alink:Silver hover-color:Navy + font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black + + + background:White + + + <text>::??DefaultWebSkinText??::</text> + <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font> + + + + + + + background:White alink:Silver hover-color:Navy + font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black + + ::??DefaultWebSkinText??:: + font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy + background:White + + + + ::??DefaultWebSkinText??:: + + + + + ::??DefaultWebSkinText??:: + font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy + background:White + + + + ::??DefaultWebSkinText??:: + + + + + + + + none + + + diff --git a/doc/salome/gui/SUPERV/default_ns.css b/doc/salome/gui/SUPERV/default_ns.css new file mode 100755 index 0000000..020a671 --- /dev/null +++ b/doc/salome/gui/SUPERV/default_ns.css @@ -0,0 +1,122 @@ +BODY { + background-color:#ffffff; + font-family:"Times New Roman" , serif; } +H1 { + font-weight:bold; + font-size:24.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H1 { + font-weight:bold; + font-size:24.0pt; } +H2 { + font-weight:bold; + font-size:18.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H2 { + font-weight:bold; + font-size:18.0pt; } +H3 { + font-weight:bold; + font-size:14.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H3 { + font-weight:bold; + font-size:14.0pt; } +H4 { + font-weight:bold; + font-size:12.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H4 { + font-weight:bold; + font-size:12.0pt; } +H5 { + font-weight:bold; + font-size:10.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H5 { + font-weight:bold; + font-size:10.0pt; } +H6 { + font-weight:bold; + font-size:8.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H6 { + font-weight:bold; + font-size:8.0pt; } +P { + font-size:12.0pt; + margin-top:1; + margin-bottom:1; + font-family:"Times New Roman" , serif; } +LI.kadov-P { + font-size:12.0pt; } +A.expandspot { + color:#008000; + cursor:hand; + font-style:italic; + x-text-underline:off; + x-text-overline:off; + x-text-line-through:off; + text-decoration:none none none; } +SPAN.expandtext { + font-style:italic; + font-weight:normal; + color:#ff0000; } +A.dropspot { + cursor:hand; + color:#008000; + font-style:italic; + x-text-underline:off; + x-text-overline:off; + x-text-line-through:off; + text-decoration:none none none; } +A.glossterm { + color:#800000; + cursor:hand; + font-style:italic; + x-text-underline:off; + x-text-overline:off; + x-text-line-through:off; + text-decoration:none none none; } +SPAN.glosstext { + font-style:italic; + font-weight:normal; + color:#0000ff; } +OL { + margin-top:0px; + margin-bottom:0px; + font-family:"Times New Roman" , serif; } +UL { + margin-top:0px; + margin-bottom:0px; + font-family:"Times New Roman" , serif; } +A:active { } +A:hover { + x-text-underline:Off; + text-decoration:none; } +A:link { + x-text-underline:Off; + text-decoration:none; } +A:visited { + x-text-underline:Off; + text-decoration:none; } +P.TODO { + font-weight:normal; + font-style:italic; + font-family:"Arial Black" , sans-serif; } +LI.kadov-P-CTODO { + font-weight:normal; + font-style:italic; + font-family:"Arial Black" , sans-serif; } +ol ol { + margin-top:1; + margin-bottom:1; } +ol ul { + margin-top:1; + margin-bottom:1; } +ul ul { + margin-top:1; + margin-bottom:1; } +ul ol { + margin-top:1; + margin-bottom:1; } diff --git a/doc/salome/gui/SUPERV/ehlpdhtm.js b/doc/salome/gui/SUPERV/ehlpdhtm.js new file mode 100755 index 0000000..86d26ea --- /dev/null +++ b/doc/salome/gui/SUPERV/ehlpdhtm.js @@ -0,0 +1,4033 @@ +// eHelp® Corporation Dynamic HTML JavaScript +// Copyright© 1998-2001 eHelp® Corporation.All rights reserved. +// Version=4.57 + +// Warning:Do not modify this file.It is generated by RoboHELP® and changes will be overwritten. + +//// Segment Begin -- (JavaScript 1.0) + +/// Section Begin - General and relative topics(JavaScript 1.0) + +//{{HH_SYMBOL_SECTION +var HH_ChmFilename = ""; +var HH_WindowName = ""; +var HH_GlossaryFont = ""; +var HH_Glossary = ""; +var HH_Avenue = ""; +var HH_ActiveX = false; +//}}HH_SYMBOL_SECTION + +//Begin to support previous generic parameters +//Get the information about the browser. +var gstrBsAgent = navigator.userAgent.toLowerCase(); +var gnBsVer = parseInt(navigator.appVersion); + +var gbBsIE = (gstrBsAgent.indexOf('msie') != -1); +var gbBsNS = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1)); +var gbBsOpera = (gstrBsAgent.indexOf('opera') != -1); + +var gbBsIE3Before = ((gbBsIE) && (gnBsVer <= 2)); +var gbBsNS3Before = ((gbBsNS) && (gnBsVer <= 3)); + +var gbBsNS2 = ((gbBsNS) && (gnBsVer <= 2)); +var gbBsNS3 = ((gbBsNS) && (gnBsVer == 3)); +var gbBsIE300301 = ((gbBsIE) && (gnBsVer == 2) && ((gstrBsAgent.indexOf("3.00") != -1)||(gstrBsAgent.indexOf("3.0a") != -1)||(gstrBsAgent.indexOf("3.0b")!=-1)||(gstrBsAgent.indexOf("3.01")!=-1))); +var gbBsIE302 = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") != -1)); + +var gbBsNS4 = ((gbBsNS) && (gnBsVer >= 4)); +var gbBsNS6 = ((gbBsNS) && (gnBsVer >= 5)); + +var gbBsIE4 = ((gbBsIE) && (gnBsVer >= 4)); +var gbBsIE5 = false; +var gbBsIE55 = false; + +gbBsIE = (navigator.appName.indexOf("Microsoft") != -1); + +if (parseInt(navigator.appVersion) >= 4) { + gbBsIE4 = (navigator.appName.indexOf("Microsoft") != -1); + + if (gbBsIE4) { + var nPos = gstrBsAgent.indexOf("msie"); + var strIEversion = gstrBsAgent.substring(nPos + 5); + var nVersion = parseFloat(strIEversion); + if (nVersion >= 5) + gbBsIE5 = true; + if (nVersion >= 5.5) + gbBsIE55 = true; + } +} + +var gbBsMac = (gstrBsAgent.indexOf('mac') != -1); +var gbBsWindows = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1)); +var gbBsOp3 = (gstrBsAgent.indexOf('opera') != -1); + +// Utilities functions. +function BsscHasExtJs() +{ + if( gbBsIE3Before || gbBsNS3Before) + return false; + return true; +} + +// Register event handler +var gBsOnLoads = new Array(); // An array holds all the onload event handler. +var gBsOnClicks = new Array(); // An array holds all the onClick event handler. +var gBsOnUnLoads = new Array(); // An array holds all the OnUnLoad event handler. +var gBsOnMouseOvers = new Array(); // An array holds all the OnMouseOver event handler. +var gBsOnMouseOuts = new Array(); // An array holds all the OnMouseOut event handler. + +var gbOrignalOnMouseDown = null; + +function BsscRegisterOnLoad(funcHandler) +{ + var nLength = gBsOnLoads.length; + gBsOnLoads[nLength] = funcHandler; +} + +function BsscRegisterOnClick(funcHandler) +{ + var nLength = gBsOnClicks.length; + gBsOnClicks[nLength] = funcHandler; +} + +function BsscRegisterOnUnLoad(funcHandler) +{ + var nLength = gBsOnUnLoads.length; + gBsOnUnLoads[nLength] = funcHandler; +} + +function BsscRegisterOnMouseOver(funcHandler) +{ + var nLength = gBsOnMouseOvers.length; + gBsOnMouseOvers[nLength] = funcHandler; +} + +function BsscRegisterOnMouseOut(funcHandler) +{ + var nLength = gBsOnMouseOuts.length; + gBsOnMouseOuts[nLength] = funcHandler; +} + + +function BsGeneralOnLoad() +{ + if (!gbBsIE4 && !gbBsNS4) + return; + + // Make everything visible in navigator + if (gbBsNS4 && !gbBsNS6) { + // Make some special effects items visible + for (var iLayer = 0; iLayer < document.layers.length; iLayer++) { + document.layers[iLayer].visibility = "show"; + document.layers[iLayer].left = 0; + } + } +} + +// If resize the netscape browser, need to reload it. +function BsReDo() +{ + if (innerWidth != origWidth || innerHeight != origHeight) + location.reload(); +} +// End of the local functions. + +// The following functions are used by the html files. +function BSSCOnLoad() +{ + if( !BsscHasExtJs() ) + return; + for (var nElement = gBsOnLoads.length - 1; nElement >= 0; nElement--) + gBsOnLoads[nElement](); +} + +function BSSCOnClick() +{ + if (!BsscHasExtJs()) return; + + for (var nElement = gBsOnClicks.length - 1; nElement >= 0; nElement--) + gBsOnClicks[nElement](); +} + +function BSSCOnUnload() +{ + if (!BsscHasExtJs()) return; + for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--) + { + gBsOnUnLoads[nElement](); + } +} + +function BSSCOnMouseOver() +{ + if (!BsscHasExtJs()) return; + for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--) + { + gBsOnMouseOvers[nElement](); + } +} + +function BSSCOnMouseOut() +{ + if (!BsscHasExtJs()) return; + for (var nElement = gBsOnMouseOuts.length - 1; nElement >= 0; nElement--) + { + gBsOnMouseOuts[nElement](); + } +} +// End of invocation of the event handle functions. + + +// Add the GereralOnLoad to the onload array. +if (typeof(BsscRegisterOnLoad) != "undefined") +{ + BsscRegisterOnLoad(BsGeneralOnLoad); +} +if (gbBsNS4&&!gbBsNS6) { + origWidth = innerWidth; + origHeight = innerHeight; + onresize = BsReDo; +} +//End to support previous generic parameters + +//Begin to support previous HHActiveX invoking +function BsHHActivateComponents() +{ + if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0]))) + { + var objBody = document.all.tags("BODY")[0]; + if( typeof(objBody) == "object" ) + { + objBody.insertAdjacentHTML("beforeEnd", ''); + if (HHComponentActivator.object) + HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue); + } + } +} + +function BsHHActivXOnLoad() +{ + if( gbBsIE4 ) + BsHHActivateComponents(); +} + +if( typeof(BsscRegisterOnLoad) != "undefined" ) +{ + BsscRegisterOnLoad(BsHHActivXOnLoad); +} +//End to support previous HHActiveX invoking + +//Begin to support previous relative topics +//If webHelp needs Related Topics DHTMLcode, it's supposed to add it here +var gbPopupMenuTimeoutExpired = false; +var gbInPopupMenu = false; +var gbPopupMenuTopicList = null; +var gOlddocumentClick = null; + +////////////////////////////////////////////////////////////////////////////////////////// +// +// Popup Menu code +// +////////////////////////////////////////////////////////////////////////////////////////// + +var g_bIsPopupMenuInit = false; +function _WritePopupMenuLayer() +{ + if (!g_bIsPopupMenuInit) + { + if (gbBsNS4) { +//Do not try to write ininle styles for NS! NS can not handle it and will not stop downloading the html page... + if (gbBsNS6) + document.write(""); + else + document.write("
"); + } else{ + document.write(""); + if (gbBsIE4) { + document.write(""); + } + } + g_bIsPopupMenuInit = true; + } +} + +//Define variable arguments as: strTitle, strUrl +function MTE() +{ + this.strTitle = MTE.arguments[0]; + if (MTE.arguments.length > 1) + this.strURL = MTE.arguments[1]; + else + this.strURL = this.strTitle; +} + +// If the topic list is set, it is an array of TopicEntry objects (defined in WebHelp3.js) +function PopupMenu_SetTopicList(aPopupTopicArray) +{ + gbPopupMenuTopicList = aPopupTopicArray; +} + + +//Seek for the bsscright frame +function _SeekFrameByName( cRoot, strName ) +{ + if( cRoot == null ) return null; + if( cRoot.frames == null ) return null; + if( cRoot.frames[strName] != null ) return cRoot.frames[strName]; + for (var i=0; i"); + wndPopupLinks.document.write(""); + var strParaLine = ""; + for (var i = 0; i < (argLen - 2) / 2; i++) { + strParaLine = ""; + strParaLine += ""); + wndPopupLinks.document.close(); + window.gbInPopupMenu = true; + if (!gbBsIE) { + wndPopupLinks.focus(); + } + + return false; + } + + + if (((argLen < 5) && ((isNaN(fn_arguments[2])) || (gbPopupMenuTopicList == null))) || + ((argLen < 4) && ((!isNaN(fn_arguments[2])) && (gbPopupMenuTopicList != null)))) { + // Get the place that we will be putting the topic into + var strURL = ""; + if (isNaN(fn_arguments[2]) || (gbPopupMenuTopicList == null)) { + strURL = fn_arguments[3]; + } + else { + strURL = gbPopupMenuTopicList[fn_arguments[2]].strURL; + } + + if (targetDoc != null) { + targetDoc.location.href = strURL; + } + else { + if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined") + window.open(strURL, fn_arguments[1]); + else + window.open(strURL); + } + window.gbInPopupMenu = true; + return false; + } + + var strMenu = ""; + if (gbBsNS4) { + strMenu = ''; + } else { + strMenu = '
'; + } else { + strMenu += '' + gbPopupMenuTopicList[fn_arguments[i]].strTitle + ''; + } + strMenu += ''; + + if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) { + i += 2; + } else { + i += 1; + } + } + strMenu += "
"; + + if (gbBsMac) { + // totally hack. because ie5 in mac need something. is one of them. mac is mad. + strMenu +="
"; + } + + var layerPopup = null; + var stylePopup = null; + var nEventX = 0; + var nEventY = 0; + var nWindowWidth = 0; + if (gbBsIE4) { + + layerPopup = document.all["PopupMenu"]; + layerPopup.innerHTML = strMenu; + stylePopup = layerPopup.style; + + _BSPSGetClientSize(); + + // Get the position of the item causing the event (relative to its parent) + nEventX = window.event.clientX; + nEventY = window.event.clientY; + + if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) { + nEventY += document.body.scrollTop + 10; + } else { + nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20; + } + stylePopup.top = nEventY; + + var nPopupWidth = layerPopup.scrollWidth; + if (gbBsMac) { + nPopupWidth = 80; // we have no idea how to get the dynamic width of the popup. + } + if (nEventX + nPopupWidth + 20 > gBsClientWidth) { + if (gBsClientWidth - nPopupWidth < 5) { + stylePopup.left = 5; + } else { + stylePopup.left = gBsClientWidth - nPopupWidth - 5; + } + } else { + stylePopup.left = nEventX + document.body.scrollLeft + 20; + } + + stylePopup.visibility = "visible"; + if (!gOlddocumentClick && document.onclick) + gOlddocumentClick = document.onclick; + document.onclick = PopupMenu_HandleClick; + + } else if (gbBsNS6) { + layerPopup = document.getElementById("PopupMenu"); + layerPopup.style.visibility = "hidden"; + + var e = fn_arguments[0]; + nEventX = e.pageX; + nEventY = e.pageY; + _BSPSGetClientSize(); + layerPopup.innerHTML = strMenu; + + if (nEventY + layerPopup.offsetHeight + 20 < window.pageYOffset + gBsClientHeight) { + nEventY += 20; + } else { + nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20; + } + + if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) { + if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) { + nEventX = 5; + } else { + nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20; + } + } else { + nEventX += 20; + } + layerPopup.style.top = nEventY; + layerPopup.style.left = nEventX; + // set again to avoid the stupid frash in netscape 6. + layerPopup.innerHTML = strMenu; + layerPopup.style.visibility = "visible"; + //window.captureEvents(Event.MOUSEDOWN); + if (!gOlddocumentClick && document.onclick) + gOlddocumentClick = document.onclick; + window.onclick = PopupMenu_HandleClick; + } + else if (gbBsNS4) { + layerPopup = document.layers.PopupMenu; + layerPopup.visibility = "hide"; + stylePopup = layerPopup.document; + stylePopup.write(strMenu); + stylePopup.close(); + var e = fn_arguments[0]; + nEventX = e.pageX; + nEventY = e.pageY; + _BSPSGetClientSize(); + if (nEventY + layerPopup.clip.height + 20 < window.pageYOffset + gBsClientHeight) { + nEventY += 20; + } else { + nEventY = gBsClientHeight + window.pageYOffset- layerPopup.clip.height - 20; + } + layerPopup.top = nEventY; + + if (nEventX + layerPopup.clip.width + 20 > gBsClientWidth + window.pageXOffset) { + if (gBsClientWidth + window.pageXOffset - layerPopup.clip.width < 20) { + nEventX = 5; + } else { + nEventX = gBsClientWidth + window.pageXOffset - layerPopup.clip.width - 20; + } + } else { + nEventX += 20; + } + + layerPopup.left = nEventX; + + layerPopup.visibility = "show"; + + window.captureEvents(Event.MOUSEDOWN); + if (!gOlddocumentClick && document.onmousedown) + gOlddocumentClick = document.onmousedown; + window.onmousedown = PopupMenu_HandleClick; + } + + window.gbInPopupMenu = true; + window.gbPopupMenuTimeoutExpired = false; + setTimeout("PopupMenu_Timeout();", 100); + return false; +} + + +function PopupMenu_Timeout() +{ + window.gbPopupMenuTimeoutExpired = true; +} + +function PopupMenu_Over(e) +{ + if (gbBsIE4) { + e.srcElement.className = "PopupOver"; + } else if (gbBsNS4) { +// this.bgColor = "red"; +// e.target.document.className = "PopupOver"; + } + return; +} + +function PopupMenu_Out(e) +{ + if (gbBsIE4) { + e.srcElement.className = "PopupNotOver"; + } else if (gbBsNS4) { + this.bgColor = "#f0f0f0"; + } + return; +} + + +function PopupMenu_HandleClick(e) +{ + if (window.gbPopupMenuTimeoutExpired) { + + window.gbInPopupMenu = false; + + if (gbBsNS4 && !gbBsNS6) { + window.releaseEvents(Event.MOUSEDOWN); + } + + var layerPopup = null; + var stylePopup = null; + if (gbBsIE4) { + layerPopup = document.all["PopupMenu"]; + stylePopup = layerPopup.style; + stylePopup.visibility = "hidden"; + } else if (gbBsNS6) { + layerPopup = document.getElementById("PopupMenu"); + layerPopup.style.visibility = "hidden"; + } else if (gbBsNS4) { + layerPopup = document.layers.PopupMenu; + layerPopup.visibility = "hide"; + } + + if (gOlddocumentClick) + { + if (gbBsNS4 && !gbBsNS6) + document.onmousedown = gOlddocumentClick; + else + document.onclick = gOlddocumentClick; + } + } + return; +} + +// This function should be deleted when all old projects are cleaned up +function BSPSWritePopupFrameForIE4() +{ + return false; +} + +///////////////////////////////////////////////////////////////////// +function BSSCPopup_ClickMac() +{ + if ((!DHTMLPopupSupport()) && (gbBsIE4)) + { + var bClickOnAnchor = false; + var el; + if ((window.event != null) && + (window.event.srcElement != null)) + { + el = window.event.srcElement; + while (el != null) + { + if ((el.tagName == "A") || (el.tagName == "AREA")) { + bClickOnAnchor = true; + break; + } + if (el.tagName == "BODY") { + break; + } + el = el.parentElement; + } + } + if (BSSCPopup_IsPopup()) + { + if (!bClickOnAnchor) { + parent.window.gPopupWindow = null; + self.close(); + } + } + else + { + bClosePopupWindow = true; + if ((bClickOnAnchor) && + (el.href) && + ((el.href.indexOf("javascript:BSSCPopup") != -1) || (el.href.indexOf("javascript:null") != -1) || (el.href.indexOf("javascript:void(0)") != -1))) + { + bClosePopupWindow = false; + } + if (bClosePopupWindow) + { + if (window.gPopupWindow != null && !window.gPopupWindow.closed ) + { + window.gPopupWindow.close(); + } + } + } + } + } + +////////////////////////////////////////////////////////////////////// + +function BsPopupOnClick() +{ + if (!gbBsIE4) + return; + + BSSCPopup_ClickMac(); +} + +function _BSSCOnError(message) +{ + if(-1 != message.indexOf("denied") + || -1 != message.indexOf("Object required")) + return true; +} + +//End to support previous relative topics + + +/// Section End - General and relative topics (JavaScript 1.0) + +/// Section Begin - Popup (JavaScript 1.0) + +//Begin to support previous popup functions +////////////////////////////////////////////////////////////////////////////////////////////// +// +// Begin DHTML Popup Functions +// +////////////////////////////////////////////////////////////////////////////////////////////// +//variables used to isolate the browser type +var gBsDoc = null; +var gBsSty = null; +var gBsHtm = null; +var gBsStyVisShow = null; +var gBsStyVisHide = null; +var gBsClientWidth = 640; +var gBsClientHeight = 480; +var gBsBrowser = null; + +// here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others. +var gBRateH_W = 0.618; // 1.618 Golden cut. +var gBMaxXOfParent = 0.8; +var gBMaxYOfParent = 0.8; +var gBscrollHeight = 16; +var gBscrollWidth = 16; +var gBpermitXDelta = 3; +var gBpermitYDelta = 3; + + +var arrayPopupURL = new Array(); +var arrayAbsPopupURL = new Array(); + +var arrayDirty = new Array(); + +function setAbsPopupURL(nIndex, strURL) +{ + arrayAbsPopupURL[nIndex] = strURL; +} + +function getAbsPopupURL(nIndex) +{ + if (nIndex == -1 || arrayAbsPopupURL.length <= nIndex) return null; + else + return arrayAbsPopupURL[nIndex]; +} + +function getPopupURL(nIndex) +{ + if (nIndex == -1 || arrayPopupURL.length <= nIndex) return null; + else + return arrayPopupURL[nIndex]; +} + +function getPopupID(nIndex) +{ + return gstrPopupID + nIndex; +} + +function getPopupShadowID(nIndex) +{ + return gstrPopupShadowID + nIndex; +} + +function getPopupTopicID(nIndex) +{ + return gstrPopupTopicID + nIndex; +} + +function getPopupIFrameID(nIndex) +{ + return gstrPopupIFrameID + nIndex; +} + +function getPopupIFrameName(nIndex) +{ + return gstrPopupIFrameName + nIndex; +} + + +function getPopupTopicStyle(nIndex) +{ + return eval("document.all['" + getPopupTopicID(nIndex) + "']").style; +} + +function getPopupShadowStyle(nIndex) +{ + return eval("document.all['" + getPopupShadowID(nIndex) + "']").style; +} + +function getPopupIFrame(nIndex) +{ + + return eval("document.frames['" + getPopupIFrameName(nIndex) + "']"); +} + +function getPopupDivStyle(nIndex) +{ + return eval("document.all['" + getPopupID(nIndex) + "']").style; +} + +function getPopupIFrameStyle(nIndex) +{ + return eval("document.all['" + getPopupIFrameName(nIndex) + "'].style"); +} + + +function findDiv(strURL) +{ + var i = 0; + for (i = 0; i < arrayPopupURL.length; i ++ ) { + if (arrayPopupURL[i] == strURL) { + return i; + } + } + return -1; +} + +var gnToken = -1; +function takeToken() +{ + gnToken ++; + if (gnToken > 10000) gnToken = 0; + return gnToken; +} + +function IsValidToken(nToken) +{ + return (gnToken == nToken); +} + +function addDiv(strURL) +{ + var i = 0; + for (i = 0; i < arrayPopupURL.length; i ++) { + if (arrayPopupURL[i] == null) { + arrayPopupURL[i] = strURL; + return i; + } + } + arrayPopupURL[i] = strURL; + arrayDirty[i] = true; + return i; +} + +function setDirty() +{ + var i = 0; + for (i = 0; i < arrayPopupURL.length; i ++ ) + arrayDirty[i] = true; +} + +function IsDirty(nIndex) +{ + if (nIndex == -1) + return true; + else + if (arrayDirty.length > nIndex) + return arrayDirty[nIndex]; + else + return true; +} + +function hideAll() +{ + var i = 0; + for (i = 0; i < arrayPopupURL.length; i ++ ) + getPopupDivStyle(i).visibility = gBsStyVisHide; +} + +function getCurrentPopupIFrame() +{ + var i = 0; + for (i = 0; i < arrayPopupURL.length; i ++) + if (getPopupDivStyle(i).visibility == gBsStyVisShow) + return getPopupIFrame(i); + return null; +} + +function setClear(nIndex) +{ + if (nIndex != -1) + arrayDirty[nIndex] = false; +} + +function _BSSCCreatePopupDiv(strURL) +{ + var nIndex = findDiv(strURL); + if (nIndex == -1 ) { + nIndex = addDiv(strURL); + BsPopup_CreateDiv(nIndex); + } + else { + if (IsDirty(nIndex)) { + if("object" == typeof(getPopupIFrame(nIndex).document)) + getPopupIFrame(nIndex).document.location.href = strURL; + } + } + return nIndex; + +} + +//the browser information itself +function _BSPSBrowserItself() +{ + var agent = navigator.userAgent.toLowerCase(); + this.major = parseInt(navigator.appVersion); + this.minor = parseFloat(navigator.appVersion); + this.ns = ((agent.indexOf('mozilla') != -1) && ((agent.indexOf('spoofer') == -1) && (agent.indexOf('compatible') == -1))); + this.ns2 = ((this.ns) && (this.major == 2)); + this.ns3 = ((this.ns) && (this.major == 3)); + this.ns4 = ((this.ns) && (this.major >= 4)); + this.ns6 = ((this.ns) && (this.major >= 5)); + this.ie = (agent.indexOf("msie") != -1); + this.ie3 = ((this.ie) && (this.major == 2)); + this.ie4 = ((this.ie) && (this.major >= 4)); + this.op3 = (agent.indexOf("opera") != -1); + + if (this.ns4) + { + gBsDoc = "document"; + gBsSty = ""; + gBsHtm = ".document"; + gBsStyVisShow = "show"; + gBsStyVisHide = "hide"; + + } + else if (this.ie4) + { + gBsDoc = "document.all"; + gBsSty = ".style"; + gBsHtm = ""; + gBsStyVisShow = "visible"; + gBsStyVisHide = "hidden"; + } +} + +//Here is the browser type +function _BSPSGetBrowserInfo() +{ + gBsBrowser = new _BSPSBrowserItself(); +} + +_BSPSGetBrowserInfo(); + +//Get client size info +function _BSPSGetClientSize() +{ + if (gBsBrowser.ns4) + { + gBsClientWidth = innerWidth; + gBsClientHeight = innerHeight; + + } + else if (gBsBrowser.ie4) + { + gBsClientWidth = document.body.clientWidth; + gBsClientHeight = document.body.clientHeight; + } +} + + +var gstrPopupID = 'BSSCPopup'; +var gstrPopupShadowID = 'BSSCPopupShadow'; +var gstrPopupTopicID = 'BSSCPopupTopic'; +var gstrPopupIFrameID = 'BSSCPopupIFrame'; +var gstrPopupIFrameName = 'BSSCPopupIFrameName'; + +var gstrPopupSecondWindowName = 'BSSCPopup'; + +var gPopupWindow = null; +var gnPopupClickX = 0; +var gnPopupClickY = 0; + +var gnPopupScreenClickX = 0; +var gnPopupScreenClickY = 0; + +var gbPopupTimeoutExpired = false; + + +function DHTMLPopupSupport() +{ + if ((gbBsIE4) && (!gbBsMac)) { + return true; + } + return false; +} + + + +function BSSCPopup_IsPopup() +{ + if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) { + return true; + } else if ((gbBsNS4 || gbBsIE4) && (this.name.indexOf(gstrPopupID) != -1)) { + return true; + } else { + return false; + } +} + + +// If there is a hyperlink in a popup window, display the hyperlink in +// the original window. +if (BSSCPopup_IsPopup() && !gbBsIE4) { + document.write(""); +} + +// Local functions. +function BsPopup_CreateDiv(nIndex) +{ + if(!DHTMLPopupSupport()) + return; + // DO NOT SET Width and height for the div, otherwize it will make IE4 popup do not work when view the topic alone. + var strPopupDiv = ""; + + var objBody = document.all.tags("BODY")[0]; + if( typeof(objBody) != "object" ) + return; + + objBody.insertAdjacentHTML("beforeEnd", strPopupDiv); +} + +function BSSCPopup_Timeout(nIndex, nToken) +{ + if (!IsValidToken(nToken)) return; + + if ((getPopupIFrame(nIndex).document.readyState == "complete") && + (getPopupIFrame(nIndex).document.body != null)) { + window.getPopupDivStyle(nIndex).visibility = gBsStyVisShow; + setClear(nIndex); + window.gbPopupTimeoutExpired = true; + + BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document); + getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked; + + if (!gbOrignalOnMouseDown && document.onmousedown) + gbOrignalOnMouseDown = document.onmousedown; + + document.onmousedown = BSSCPopupParentClicked; + + } else { + setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100); + } +} + + +// VH 08/10/00 +// do not change target to parent if the href is using javascript +function BSSCPopup_ChangeTargettoParent(tagsObject) +{ + var collA = tagsObject.all.tags("A"); + BSSCPopup_ChangeTargettoParent2(collA); + + var collIMG = tagsObject.all.tags("IMG"); + BSSCPopup_ChangeTargettoParent2(collIMG); +} + +function BSSCPopup_ChangeTargettoParent2(colls) +{ + var j = 0; + if (colls != null) { + for (j = 0; j < colls.length; j ++ ) + { + var strtemp = colls[j].href; + strtemp = strtemp.toLowerCase(); + if (strtemp.indexOf("javascript:") == -1) + if (colls[j].target == "") + colls[j].target = "_parent"; + } + + } +} + +function BSPSPopupTopicWinHelp(strURL) +{ + _BSSCPopup(strURL); + return; +} + +function _BSSCPopup(strURL, width, height) +{ + var cuswidth = 0; + var cusheight = 0; + if ("undefined" != typeof(width) && "undefined" != typeof(height)) { + cuswidth = width; + cusheight= height; + } + + if (DHTMLPopupSupport()) { + // If we are already in a popup, replace the contents + // if (BSSCPopup_IsPopup()) { + // parent._BSSCPopup(strURL, cuswidth, cusheight); + // } else { + var nToken = takeToken(); // take token first. + var nIndex = _BSSCCreatePopupDiv(strURL); + window.gbPopupTimeoutExpired = false; + var ntWidth = gBsClientWidth; + var ntHeight = gBsClientHeight; + _BSPSGetClientSize(); + if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) { + setDirty(); + } + + + if (IsDirty(nIndex)) { + if (gbBsMac) { + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight +")", 400); + } else { + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100); + } + } + else { + MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight); + } + // } + + } else { + _BSSCPopup2(strURL, cuswidth, cusheight); + } + return; +} + +if (gbBsIE55) +{ + var ehlpdhtm_fOldBefureUnload = window.onbeforeunload; + window.onbeforeunload = window_BUnload; +} + +function window_BUnload() +{ + for (var i = 0; i < arrayPopupURL.length; i ++) + document.all(getPopupID(i)).outerHTML = ""; + arrayPopupURL.length = 0; + if (ehlpdhtm_fOldBefureUnload) + ehlpdhtm_fOldBefureUnload(); +} + +function _BSSCPopup2(strURL, width, height) +{ + if (window.name == gstrPopupSecondWindowName) { + window.location = strURL; + } else { + if (!gbBsMac || !gBsBrowser.ns4) { + BSSCHidePopupWindow(); + } + var nX = 0; + var nY = 0; + var nHeight = 300; + var nWidth = 400; + if (width > 0 && height > 0) { + nHeight = height; + nWidth = width; + } + _BSPSGetClientSize(); + + nX = window.gnPopupScreenClickX; + nY = window.gnPopupScreenClickY; + + if (nY + nHeight + 40 > screen.availHeight) { + nY = screen.availHeight - nHeight - 40; + } + if (nX + nWidth + 40 > screen.availWidth) { + nX = screen.availWidth - nWidth - 40; + } + // Launch a separate window + var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes"; + if (gBsBrowser.ns) { + if (gBsBrowser.ns6) { + strParam += ",Height=" + nHeight + ",Width=" + nWidth; + strParam += ",screenX=" + nX + ",screenY=" + nY; + } + else { + strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth; + strParam += ",screenX=" + nX + ",screenY=" + nY; + strParam += ",dependent=yes"; + } + } + else { + strParam += ",height=" + nHeight + ",width=" + nWidth; + strParam += ",left=" + nX + ",top=" + nY; + } + window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam); + + if (gBsBrowser.ns4) { + window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUE); + window.gPopupWindow.onclick = NonIEPopup_HandleClick; + window.gPopupWindow.onblur = NonIEPopup_HandleBlur; + } + else if (gBsBrowser.ie4) + { + setTimeout("setPopupFocus();", 100); + } + } + return; +} + +function setPopupFocus() +{ + window.gPopupWindow.focus(); +} + +function NonIEPopup_HandleBlur(e) +{ + window.gPopupWindow.focus(); +} + +function NonIEPopup_HandleClick(e) +{ + // Because navigator will give the event to the handler before the hyperlink, let's + // first route the event to see if we are clicking on a Popup menu in a popup. + document.routeEvent(e); + + // If a popup menu is active then don't do anything with the click + if (window.gPopupWindow.gbInPopupMenu) { + window.gPopupWindow.captureEvents(Event.CLICK); + window.gPopupWindow.onclick = NonIEPopup_HandleClick; + return false; + } + + // Close the popup window + if (e.target.href) { + if (e.target.target == "") + window.location.href = e.target.href; + else + window.open(e.target.href, e.target.target); + + if (e.target.href.indexOf("javascript:void(0)") == -1 && e.target.href.indexOf("javascript:null") == -1 && e.target.href.indexOf("BsscPopup") == -1) { + this.close(); + } + } else { + this.close(); + } + return false; + +} + +function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight) +{ + if (typeof(window.getPopupIFrame(nIndex).document) == "unknown") { + _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight); + return; + } + if (!IsValidToken(nToken)) return; + + if ((window.getPopupIFrame(nIndex).document.readyState == "complete") && + (window.getPopupIFrame(nIndex).document.body != null)) { + if (window.getPopupIFrame(nIndex).document.location.href.indexOf("about:blank") != -1) { // add this check. IE will use about:blank" as the default vaule for Iframe. + window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex); + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); + } + else + { + setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url. + BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight); + } + } else { + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); + } +} + + +function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight) +{ + if (window.gbPopupTimeoutExpired) return; + + if (!IsValidToken(nToken)) return; + + getPopupDivStyle(nIndex).visibility = gBsStyVisHide; + + // Determine the width and height for the window + //var size = new BSSCSize(0, 0); + //BSSCGetContentSize(window.getPopupIFrame(nIndex), size); + //var nWidth = size.x; + //var nHeight = size.y; + + _BSPSGetClientSize(); + + var size = new BSSCSize(0, 0); + + if (cuswidth <= 0 || cusheight <= 0) + BSSCGetContentSize(window.getPopupIFrame(nIndex), size); + else { + size.x = cuswidth; + size.y = cusheight; + } + + // Determine the width and height for the window + var nWidth = size.x; + var nHeight = size.y; + + // for small popup size, we should allow any size. + // The popup size should be ok if bigger than 0 + if (nWidth < 0 || nHeight < 0) return; // there must be something terribly wrong. + // if (nWidth < 40 || nHeight < 40) return; // there must be something terribly wrong. + + window.getPopupDivStyle(nIndex).pixelWidth = nWidth; + window.getPopupDivStyle(nIndex).pixelHeight = nHeight; + + window.getPopupShadowStyle(nIndex).pixelWidth = nWidth; + window.getPopupShadowStyle(nIndex).pixelHeight = nHeight; + window.getPopupTopicStyle(nIndex).pixelWidth = nWidth; + window.getPopupTopicStyle(nIndex).pixelHeight = nHeight; + if (gbBsIE55) + { + window.getPopupShadowStyle(nIndex).pixelWidth = nWidth + 2; + window.getPopupShadowStyle(nIndex).pixelHeight = nHeight + 2; + window.getPopupTopicStyle(nIndex).pixelWidth = nWidth + 2; + window.getPopupTopicStyle(nIndex).pixelHeight = nHeight + 2; + } + + window.getPopupIFrameStyle(nIndex).pixelWidth = nWidth; + window.getPopupIFrameStyle(nIndex).pixelHeight = nHeight; + if (gbBsIE55) + { + window.getPopupIFrameStyle(nIndex).top = 0; + window.getPopupIFrameStyle(nIndex).left = 0; + } + + var strURL = getPopupURL(nIndex); + if (strURL.indexOf("#") != -1) + getPopupIFrame(nIndex).location.href = strURL; // reload again, this will fix the bookmark misunderstand in IE5. + + MoveDivAndShow(nIndex, nToken, cuswidth, cusheight); +} + +function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight) +{ + if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again. + window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex); + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); + return; + } + + // Determine the position of the window + var nClickX = window.gnPopupClickX; + var nClickY = window.gnPopupClickY; + var nTop = 0; + var nLeft = 0; + + var nWidth = window.getPopupDivStyle(nIndex).pixelWidth; + var nHeight = window.getPopupDivStyle(nIndex).pixelHeight; + + if (nClickY + nHeight + 20 < gBsClientHeight + document.body.scrollTop) { + nTop = nClickY + 10; + } else { + nTop = (document.body.scrollTop + gBsClientHeight) - nHeight - 20; + } + if (nClickX + nWidth < gBsClientWidth + document.body.scrollLeft) { + nLeft = nClickX; + } else { + nLeft = (document.body.scrollLeft + gBsClientWidth) - nWidth - 8; + } + + if (nTop < document.body.scrollTop ) nTop = document.body.scrollTop + 1; + if (nLeft< document.body.scrollLeft) nLeft = document.body.scrollLeft + 1; + + + window.getPopupDivStyle(nIndex).left = nLeft; + window.getPopupDivStyle(nIndex).top = nTop; + + // Set the location of the background blocks + window.getPopupShadowStyle(nIndex).left = 6; + window.getPopupShadowStyle(nIndex).top = 6; + if (gbBsIE55) + { + window.getPopupShadowStyle(nIndex).left = 4; + window.getPopupShadowStyle(nIndex).top = 4; + } + + if (gbBsMac) { + // Total hack on the iMac to get the IFrame to position properly + window.getPopupIFrameStyle(nIndex).pixelLeft = 100; + window.getPopupIFrameStyle(nIndex).pixelLeft = 0; + // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it + window.getPopupIFrame(nIndex).window.BSSCOnLoad(); + } + + BSSCPopup_Timeout(nIndex , nToken ); + + return; +} + +function BSSCSize(x, y) +{ + this.x = x; + this.y = y; +} + +function BSSCGetContentSize(thisWindow, size) +{ + if (!((gBsBrowser.ie4) || (gBsBrowser.ns4))) + return; + + if (gbBsMac) { + size.x = 300; + size.y = 300; + return; + } + + // Resize the width until it is wide enough to handle the content + // The trick is to start wide and determine when the scrollHeight changes + // because then we know a scrollbar is necessary. We can then go back + // to the next widest size (for no scrollbar) + + var ClientRate = gBsClientHeight / gBsClientWidth; + + var GoldenSize = new BSSCSize(0,0); + GoldenSize.x = gBsClientWidth * gBMaxXOfParent; + GoldenSize.y = gBsClientHeight *gBMaxYOfParent ; + + if (ClientRate > gBRateH_W) { + GoldenSize.y = GoldenSize.x * gBRateH_W; + } + else { + GoldenSize.x = GoldenSize.y / gBRateH_W; + } + + // Try to using parent specified max x. + var x = 0; + var maxgoldx = GoldenSize.x; + var maxx = gBsClientWidth * gBMaxXOfParent; + + // This double resize causes the document to re-render (and we need it to) + if (!gbBsIE5) + thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4. + thisWindow.resizeTo(1, 1); + thisWindow.resizeTo(1, 1); + thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight); + thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight); + + var miny = thisWindow.document.body.scrollHeight + gBscrollHeight; + + if (miny > GoldenSize.y) // the popup does not fix in the parent wanted golden area. so try to expand itself as large as it can + { + thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight); + thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight); + + miny = thisWindow.document.body.scrollHeight + gBscrollHeight; + maxy = gBsClientHeight * gBMaxYOfParent; + + if (miny > maxy) { // the popup must have a scroll, OK let it be. + miny = maxy; + size.x = maxx; + size.y = maxy; + thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little. + } + else { // popup still can fit in the parent area by someway. now we choose the same h/w rate as parent. + size.y = miny; + + // downsize from maxx , now I try to using binary divide. + x = maxx; + deltax = -maxx/2; + //j = 0; + while (true) { + x = x + deltax; + thisWindow.resizeTo(x, miny); + thisWindow.resizeTo(x, miny); + diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * ClientRate; + if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter + deltax = Math.abs(deltax) /2; + else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter + deltax = -Math.abs(deltax) /2; + else + // the y is close enough to wanted. + break; + if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore. + break; + } + size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth; + size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight; + thisWindow.document.body.scroll = 'no'; + + // Handle absurd cases just in case IE flakes + // if (size.y < 100) { + // size.y = 100; + // } + } + } + else { + if (thisWindow.document.body.scrollWidth > maxgoldx) { + size.x = maxx; + size.y = miny; + thisWindow.document.body.scroll = 'yes'; + } + else { + // downsize from maxgoldx , now I try to using binary divide. + x = maxgoldx; + deltax = -maxgoldx/2; + //i = 0; + while (true) { + x = x + deltax; + thisWindow.resizeTo(x, miny); + thisWindow.resizeTo(x, miny); + diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * gBRateH_W; + if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter + deltax = Math.abs(deltax) /2; + else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter + deltax = -Math.abs(deltax) /2; + else + // the y is close enough to wanted. + break; + if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore. + break; + //i ++; + + } + //size.x = x - gBscrollWidth; + size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth; + size.y = thisWindow.document.body.scrollHeight ; + thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little. + thisWindow.resizeTo(size.x, size.y); + if (thisWindow.document.body.scrollWidth > size.x) + { + size.x = thisWindow.document.body.scrollWidth; + } + if (thisWindow.document.body.scrollHeight > size.y) + { + size.y = thisWindow.document.body.scrollHeight; + } + } + } + + // no reload no scrollbar. + //size.x = size.x + 16; //reserve a width for scrollbar (IE 4.0 only) + + thisWindow.resizeTo(size.x, size.y); + thisWindow.resizeTo(size.x, size.y); + return; +} + + + +function BSSCPopupParentClicked() +{ + if (!window.gbPopupTimeoutExpired) { + return false; + } + + document.onmousedown = gbOrignalOnMouseDown; + + // Simply hide the popup + hideAll(); + + window.gbPopupTimeoutExpired = false; + + return true; +} + + +function BSSCPopupClicked() +{ + if (!window.gbPopupTimeoutExpired) { + return false; + } + + + var popupIFrame = getCurrentPopupIFrame(); + if (popupIFrame == null) { + return true; + } + +/* + if ("undefined" != typeof(popupIFrame.gbInPopupMenu) && + popupIFrame.gbInPopupMenu) { + return true; + }*/ + + if (!((popupIFrame.window.event != null) && + (popupIFrame.window.event.srcElement != null) && + ((popupIFrame.window.event.srcElement.tagName == "A") || + (popupIFrame.window.event.srcElement.tagName == "IMG")))) { + document.onmousedown = gbOrignalOnMouseDown; + + // Simply hide the popup + hideAll(); + + window.gbPopupTimeoutExpired = false; + + return true; + } +} + + +//trace the mouse over's position for hotspot +function BSPSPopupOnMouseOver(event) +{ + if (gBsBrowser.ie4) { + window.gnPopupClickX = event.clientX + document.body.scrollLeft; + window.gnPopupClickY = event.clientY + document.body.scrollTop; + window.gnPopupScreenClickX = event.screenX; + window.gnPopupScreenClickY = event.screenY; + } else if (gBsBrowser.ns4) { + window.gnPopupClickX = event.pageX - window.pageXOffset; + window.gnPopupClickY = event.pageY - window.pageYOffset; + window.gnPopupScreenClickX = event.screenX - window.pageXOffset; + window.gnPopupScreenClickY = event.screenY - window.pageYOffset; + } +} + + +function BSSCHidePopupWindow() +{ + if (window.gPopupWindow != null) { + if (gBsBrowser.ns4) { + if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) { + window.gPopupWindow.close(); + window.gPopupWindow = null; + } + } + } + + return; +} + +// Add the PopupOnClick to the onclick array. +if (typeof(BsscRegisterOnClick) != "undefined") +{ + BsscRegisterOnClick(BsPopupOnClick); +} +//End to support previous popup functions + +/// Section End - Popup (JavaScript 1.0) + +/// Section Begin - Embedded Stub (JavaScript 1.0) + +var s_strAgent = navigator.userAgent.toLowerCase(); +var s_nVer = parseInt(navigator.appVersion); + +var s_bIE = (s_strAgent.indexOf('msie') != -1); +var s_bNS = (s_strAgent.indexOf('mozilla') != -1) && ((s_strAgent.indexOf('spoofer') == -1) && (s_strAgent.indexOf('compatible') == -1)); +var s_bOpera = (s_strAgent.indexOf('opera') != -1); + +var s_bIE3Before = ((s_bIE) && (s_nVer <= 2)); +var s_bNS3Before = ((s_bNS) && (s_nVer <= 3)); + +var s_bNS2 = ((s_bNS) && (s_nVer <= 2)); +var s_bNS3 = ((s_bNS) && (s_nVer == 3)); +var s_bIE300301 = ((s_bIE) && (s_nVer == 2) && ((s_strAgent.indexOf("3.00") != -1)||(s_strAgent.indexOf("3.0a") != -1)||(s_strAgent.indexOf("3.0b")!=-1)||(s_strAgent.indexOf("3.01")!=-1))); +var s_bIE302 = ((s_bIE) && (s_nVer == 2) && (s_strAgent.indexOf("3.02") != -1)); + + +function HasExtJs() +{ + if (s_bIE3Before) { return false;} + if (s_bNS3Before) { return false;} + if (typeof (BsGeneralOnLoad) == "undefined"){ return false; } + return true; +} + + +function BSSCCreatePopupDiv() +{ + return; +} + + +function WritePopupMenuLayer() +{ + if (HasExtJs()) {_WritePopupMenuLayer();} +} + +function BSSCPopup(strURL, width, height) +{ + if (HasExtJs()) { + _BSSCPopup(strURL, width, height); + }else{ + //Create a temporary window first to ensure the real popup comes up on top + var wndTemp = null; + if (!s_bNS3) { + wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4"); + } + // Create the real popup window + var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400"); + // Close the temporary + if (!s_bNS3) { + wndTemp.close(); + } else { + wndPopup.focus(); + } + } +} + +var gbWndTemp = null, gbWndPopupLinks = null; +var gbstrParaTotal = ""; + +function PopupMenu_Invoke() +{ + if (HasExtJs()) { + return _PopupMenu_Invoke(PopupMenu_Invoke.arguments); + } + if (s_bNS3Before || s_bIE3Before ) { + var argLen = PopupMenu_Invoke.arguments.length; + if (argLen < 5) { + window.document.location.href = PopupMenu_Invoke.arguments[3]; + return false; + } + gbWndTemp = null; + gbWndPopupLinks = null; + gbstrParaTotal = ""; + for (var i = 0; i < (argLen - 2) / 2; i++) { + var strParaLine = ""; + if (s_bNS2 || s_bOpera){ + strParaLine += "
" + strParaLine += PopupMenu_Invoke.arguments[2 * i + 2]; + strParaLine += ""; + } else { + strParaLine += ""); + if (s_bNS2 || s_bOpera) { + gbWndPopupLinks.document.write(""); + } else { + //YJ: IE301,302 and NS3.x works fine + gbWndPopupLinks.document.write("<"); + gbWndPopupLinks.document.write("script>"); + gbWndPopupLinks.document.write("function gotoUrl(aUrl) {opener.window.location=aUrl; close();}"); + gbWndPopupLinks.document.write("<"); + gbWndPopupLinks.document.write("/script>"); + } + gbWndPopupLinks.document.write(""); + gbWndPopupLinks.document.write(gbstrParaTotal); + gbWndPopupLinks.document.write(""); + gbWndPopupLinks.document.close(); + + // Close the temporary + if (!s_bNS3 && gbWndTemp != null) { + gbWndTemp.close(); + }else { + gbWndPopupLinks.focus(); + } + + return true; + } + return false; +} + +/// Section End - Embedded Stub (JavaScript 1.0) + +//// Segment End -- (JavaScript 1.0) + +//// Segment Begin -- (JavaScript 1.2) +/// Section Begin - kadov DHTM (JavaScript 1.2) + +//Begin to support extended and dropdown text effects. +function kadovIsParagraph(el) +{ + return( el.tagName == "P" || el.tagName.indexOf("H") == 0 ) ? true : false; +} + +function kadovInitEachChild(el) +{ + for(var i=0; i "") ) + child.style.setAttribute( "x-on-pageload", "" ); + + var href = child.getAttribute("href") + if( href != null && href > "" && href.indexOf( "BSSCPopup" ) >= 0 ) + kadovFilePopupInit(child.id); // Init for Popup + else if( child.className == "dropspot" || child.className == "expandspot" || + child.className == "glossterm" ) + kadovTextPopupInit(child.id);// Init for Expanding/Glossary or DropDown text + else if( child.className == "trigger") + kadovInitTrigger(child.id);// Init for Trigger + else + { + kadovInitEffects(child.id);// Init for DHTML effects + CEngine.SetOneTargetInitialState( child.id ); + } + } + + if( (child.tagName == "IMG") && (child.getAttribute("dynsrc") > "") ) + child.start = "mouseover";// to start a AVI file. fileopen doesn't work + + kadovInitEachChild(child); + } +} + +function kadovRetrieveTextInner(el) +{ + var x = ""; + if( (!el) || (el.tagName == "!") || (el.tagName == "SCRIPT" )) + return x; + + if( kadovIsParagraph(el) ) + { + var strNewID = " "; + if( el.id != "" ) + strNewID += "id=" + el.id + "_NewSpan "; + x = "" + el.innerHTML + ""; + } + else + { + for(var i=0; i 0 ) + if( (nTagClose - nTagOpen) != nDistance ) + return strRawHTML; + + var strCleanOnce = strRawHTML.substring(0, nTagOpen) + strRawHTML.substr(nTagClose + strTagClose.length) ; + return kadovRetrieveCleanHTML( strCleanOnce, strTagOpen, strTagClose ); +} + +function kadovAdjustObjectTag(strRawHTML, nStartPos) +{// adjust object tag for related topics HTML control, because innerHTML misses out the item settings + + //Is there any DTC? + var strDTCTagOpen = ''; + var nDTCTagOpen = strRawHTML.indexOf( strDTCTagOpen, nStartPos ); + if( nDTCTagOpen < 0 ) + return strRawHTML; + var nDTCTagClose = strRawHTML.indexOf( strDTCTagClose, nDTCTagOpen ); + if( nDTCTagClose < nDTCTagOpen) + return strRawHTML; // no Design Time Controls; + + //Is the DTC HTML Help Control? + var strRTObjTagOpen = 'classid=clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11'; + var strRTObjTagClose = ''; + var nRTObjTagOpen = strRawHTML.indexOf( strRTObjTagOpen, nDTCTagOpen ); + if( nRTObjTagOpen < nDTCTagOpen ) + return strRawHTML; + var nRTObjTagClose = strRawHTML.indexOf( strRTObjTagClose, nRTObjTagOpen ); + if( nRTObjTagClose < nRTObjTagOpen ) + return strRawHTML; // is not a HTML help control + + // Is it a related Topics html help control? + var strRTObjLabel = ''; + } + + // to insert the reconstructed item params into runtime object tag + var strAdjustedHTML = strRawHTML.substring(0,nRTObjTagClose) + strRunTimeItemParam + strRawHTML.substring(nRTObjTagClose, strRawHTML.length); + return kadovAdjustObjectTag(strAdjustedHTML, nDTCTagClose + strDTCTagClose.length); +} + +function kadovTextPopupOnLoad( el ) +{ + if( !CCSSP.bIsWinOS && !CCSSP.bIsSunOS) + return 0; + + if( typeof(el) == "string" ) + el = document.all.item(el); + + var src = el.getAttribute( "x-use-popup" ); + if(!src) + return 0; + + var name = src; + if( src.substr(0,1) == "#" ) + name = src.substr(1, src.length-1); + var srcDiv = document.all.item(name); + if( !srcDiv ) + return 1; + + var type = el.getAttribute( "x-popup-type" ); + var setup = el.getAttribute( "x-tmp-setup" ); + var newId = name; + if( newId.indexOf( "_tmp") <= 0 ) + newId += "_tmp"; + + if( !setup ) + { + el.setAttribute( "x-tmp-setup", 1 ); + + if( type == "pulldown" ) + { + var strAdjust = kadovAdjustObjectTag(srcDiv.innerHTML,0); + var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, ""); + strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, ""); + + //work around the bug in HH.exe that highlight the phrases when use Search tab + //this approach is just removing the tag inserted by Microsoft in the runtime + strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "", 52); + + var strStyle = " style='display:none; position:relative;"; + var newDiv = "
" + strCleanHTML + "
"; + + srcDiv.outerHTML = ""; // empty the original DIV tag + var elParentPra = kadovFindParentParagraph(el); + if( elParentPra ) + elParentPra.insertAdjacentHTML( "AfterEnd", newDiv ); + } + else if( type == "expanding" ) + { + var inner = kadovRetrieveTextInner(srcDiv); + if( inner == "" ) + inner = srcDiv.innerHTML; + var strAdjust = kadovAdjustObjectTag(inner,0); + var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, ""); + strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, ""); + var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext"; + var newSpan = ""; + srcDiv.outerHTML = ""; // empty the original DIV tag + el.insertAdjacentHTML( "AfterEnd", newSpan ); + } + } + return 0; +} + +function kadovTextPopup( el ) +{ + if( (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS) || (window.event == null) ) + return; + window.event.cancelBubble = true; + + if( typeof(el) == "string" ) + el = document.all.item(el); + + var src = el.getAttribute( "x-use-popup" ); + if(!src) + return; + + var name = src; + if( src.substr(0,1) == "#" ) + name = src.substr(1, src.length-1) + "_tmp"; + var srcDiv = document.all.item(name); + if( !srcDiv ) + return; + + var type = el.getAttribute( "x-popup-type" ); + var setup = el.getAttribute( "x-tmp-setup" ); + if( srcDiv ) + { + if( srcDiv.style.display == "" ) + srcDiv.style.display = "none"; + else + { + srcDiv.style.display = ""; + if( typeof(srcDiv.bInitialized) == "undefined" ) + { + srcDiv.bInitialized = true; + kadovInitEffects(name); + kadovInitEachChild(srcDiv); + } + } + } + return; +} + +function kadovFindParentParagraph( el ) +{ + if( typeof(el) == "string" ) + el = document.all.item(el); + if( (!el) || el.tagName == "BODY" ) + return null; + if( kadovIsParagraph(el.parentElement) ) + return el.parentElement; + else + return kadovFindParentParagraph( el.parentElement ); +} + +//Begin HTML code invoked function +function kadovRegisterEventHandler( obj, strEvent, strEventHandler ) +{ + if( !gbBsIE4 ) + return; + CCSSP.RegisterEventHandler( obj, strEvent, strEventHandler ); +} + +function kadovTextPopupInit( el ) +{ + if( (!gbBsIE4) || (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS)) + return; + + if( typeof(el) == "string" ) + el = document.all.item(el); + if( el != null ) + { + CCSSP.RegisterEventHandler( el, "onclick", "kadovTextPopup(" + el.id +");" ); + CCSSP.RegisterEventHandler( window, "onload", "kadovTextPopupOnLoad(" + el.id +");" ); + } +} +//End HTML code invoked function + +//End to support extended and dropdown text effects. + +//Begin to convert iWrite format to RoboEditor Format for DHTML effects +function kadovInitTriggersInHead( ) +{ + if( Object.xDelayedInitElements ) + { + var x = Object.xDelayedInitElements; + for(i=0; i= 0 && nNext < values.length ) + { + functions[nIdx] = values.substr( nStart, nNext-nStart+1); + nStart = nNext + 1; + nIdx++; + nNext = values.indexOf( "\)", nStart); + } + + for( var i=0; i= 0 ) + { + nPageClick = arrForClickCount[j].indexOf("="); + if( nPageClick > 0 ) + { + nClickTimes = arrForClickCount[j].substring( nPageClick + 1, arrForClickCount[j].length) * 1; + break; + } + } + } + var args = srcargs; + if( j < arrForClickCount.length ) + {// to strip out the "clicks=99" from the arguments string + args = ""; + for( var k = 0; k < arrForClickCount.length; k ++ ) + { + if( k != j ) + { + args += arrForClickCount[k]; + if( k < arrForClickCount.length - 1 ) + args += ","; + } + } + } + bsscFXInit( null, id, translatedProp, fnname, args, nClickTimes ); + } +} + +function kadovTranslateProp( prop ) +{ + switch( prop ) + { + case "x-on-hover" : return "bsschover"; + case "x-on-pageclick" : return "bsscpageclick"; + case "x-on-pageload" : return "bsscpageload"; + case "x-on-trigger-1" : return "bssctrigger1"; + case "x-on-trigger-2" : return "bssctrigger2"; + } + return null; +} +//End to convert iWrite format to RoboEditor Format for DHTML effects + +//Begin the definition of one entry to DHTML effects +function bsscFXInit( trigger_ID, target_ID, event_type, + action_type, action_setting, event_addional ) +{ + if( (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS ) || typeof(target_ID) != "string" )//MUST have a target_ID + return; // we don't support Navigator yet + + if( typeof(event_type) == "string" ) + event_type = event_type.toLowerCase(); + if( typeof(action_type) == "string" ) + action_type = action_type.toLowerCase(); + if( typeof(action_setting) == "string" ) + action_setting = action_setting.toLowerCase(); + + // to get the target element then add it to the target list + var eleTarget = CCSSP.GetObject( target_ID ); + if( (eleTarget != null) && (event_type != null) && (action_type != null) ) + { + CEngine.AddOneTarget( target_ID, eleTarget ); + CEngine.BuildTargetObject(target_ID, event_type, action_type, action_setting, event_addional); + } + + // to validate the trigger_ID parameter + if( typeof(trigger_ID) == "string" && trigger_ID != "" ) + CEngine.BuildTriggerObject( trigger_ID, target_ID ); +} +//End the definition of one entry to DHTML effects + + +/// Section End - kadov DHTM (JavaScript 1.2) + + +/// Section Begin - CCSSP DHTM (JavaScript 1.2) + +//Begin JavaScript libary for cross-platform positioning object. +function CCSSP(){} // constructor of CCSSP class + +CCSSP.strAgent = navigator.userAgent.toLowerCase(); +CCSSP.nAppVersion = parseInt(navigator.appVersion); + +CCSSP.bIsWinOS = ((CCSSP.strAgent.indexOf("win") >= 0) || (CCSSP.strAgent.indexOf("16bit") >= 0)); +CCSSP.bIsMacOS = (CCSSP.strAgent.indexOf("mac") >= 0); +CCSSP.bIsSunOS = (CCSSP.strAgent.indexOf("sunos") != -1); + +CCSSP.bIsIE = (navigator.appName.indexOf("Microsoft") >= 0); +CCSSP.bIsIE4 = (CCSSP.bIsIE && (CCSSP.nAppVersion >= 4)); +CCSSP.bIsIE5 = (CCSSP.bIsIE4 && (CCSSP.strAgent.indexOf("msie 5") != -1) ) + +CCSSP.bIsNav = (navigator.appName.indexOf("Netscape") >= 0); +CCSSP.bIsNav4 = (CCSSP.bIsNav && (CCSSP.nAppVersion >= 4)); +CCSSP.bIsNav6 = (CCSSP.bIsNav && (CCSSP.nAppVersion >= 5)); + +CCSSP.GetObject = function( obj ) +{//convert object name string or reference into a valid object reference + if( typeof(obj) == "object" ) + return obj; + else if( typeof(obj) == "string" && obj != "") + { + if( CCSSP.bIsNav4 ) + return eval("document." + obj); + else + return eval("document.all." + obj); + } + else + return null; +} + +CCSSP.MoveObjectTo = function(obj, x, y) +{//positioning an object at a specific pixel coordinate + if( CCSSP.bIsNav4 ) + obj.moveTo(x,y); + else + { + obj.style.pixelLeft = x; + obj.style.pixelTop = y; + } +} + +CCSSP.MoveObjectBy = function(obj, dx, dy) +{//moveing a object by x and/or y pixel + if( CCSSP.bIsNav4 ) + obj.moveBy(dx,dy); + else + { + obj.style.pixelLeft += dx; + obj.style.pixelTop += dy; + } +} + +CCSSP.SetObjectBGColor = function(obj, color) +{//set the background color of an object + if( CCSSP.bIsNav4 ) + obj.bgColor = color; + else + obj.style.backgroundColor = color; +} + +CCSSP.ShowObject = function(obj, bShow) +{// set the object to be visible or invisible + if( CCSSP.bIsNav4 ) + obj.visibility = (bShow == true) ? 'show' : 'hide'; + else + obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space. +} + +CCSSP.GetObjectLeft = function(obj) +{// retrieve the x coordinate of a posionable object + if( CCSSP.bIsNav4 ) + return obj.left; + else + return obj.style.pixelLeft; +} + +CCSSP.GetObjectTop = function(obj) +{// retrieve the y coordinate of a posionable object + if( CCSSP.bIsNav4 ) + return obj.top; + else + return obj.style.pixelTop; +} + +CCSSP.GetObjectContainLeft = function(obj) +{// retrieve the x coordinate of a posionable object relative to it's parent element + if( CCSSP.bIsNav4 ) + return obj.pageX; + else + { + if( obj == document.body ) + return obj.clientLeft; + else + return obj.offsetLeft; + } +} + +CCSSP.GetObjectWindowLeft = function(obj) +{// retrieve the x coordinate of a posionable object relative to browser window + if( CCSSP.bIsNav4 ) + return obj.pageX; + else + { + var nOffsetWindowLeft = 0; + for(var element = obj; element; element = element.offsetParent) + nOffsetWindowLeft += CCSSP.GetObjectContainLeft(element); + return nOffsetWindowLeft; + } +} + +CCSSP.GetObjectContainTop = function(obj) +{// retrieve the y coordinate of a posionable object relative to it's parent element + if( CCSSP.bIsNav4 ) + return obj.pageY; + else + { + if( obj == document.body ) + return obj.clientTop; + else + return obj.offsetTop; + } +} + +CCSSP.GetObjectWindowTop = function(obj) +{// retrieve the y coordinate of a posionable object relative to browser window + if( CCSSP.bIsNav4 ) + return obj.pageY; + else + { + var nOffsetWindowTop = 0; + for(var element = obj; element; element = element.offsetParent) + nOffsetWindowTop += CCSSP.GetObjectContainTop(element); + return nOffsetWindowTop; + } +} + +CCSSP.GetObjectHeight = function(obj) +{// retrieve the height of a posionable object + if( CCSSP.bIsNav4 ) + return obj.clip.height; + else + return obj.offsetHeight; +} + +CCSSP.GetObjectWidth = function(obj) +{// retrieve the width of a posionable object + if( CCSSP.bIsNav4 ) + return obj.clip.width; + else + return obj.offsetWidth; +} + +CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler ) +{ // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined + if (CCSSP.bIsNav4 && !CCSSP.bIsNav6) + return ; + var oldHandler = ""; + if (CCSSP.bIsMacOS && CCSSP.bIsIE4) + { + if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown") + { //search for + + + + + + + + + + + + + + + + +

About nodes

+ +

In general, + in SUPERVISION component Node  is + a graphical representation of a computation algorithm. The Data flow graph + consists of several nodes of control + and computation types. These nodes + have input and output data ports + for data transferring and control ports. + All data ports of a node correspond to input or output parameters of the + service executed on this node. Connecting of these ports by links means + transferring of the data from output port to input port of a next node. + So, only output and input ports of different nodes can be connected by + one link. All input ports which have not connection to output ports are + input of the Graph. Initial values of such ports can be defined as constant + value or taken from the current study. All output ports which have no + connection to input ports are output of the Graph. Values from these ports + can be stored in the study.

+ +

 

+ +

In SUPERVISION module + there are the following types of nodes: computation + node, loop node, switch node +  and GOTO node.

+ +

 

+ +

                    

+ +

 

+ +

 

+ +

 

+ +
+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/adding_information_about_graphs.htm b/doc/salome/gui/SUPERV/files/adding_information_about_graphs.htm new file mode 100755 index 0000000..2e0d2be --- /dev/null +++ b/doc/salome/gui/SUPERV/files/adding_information_about_graphs.htm @@ -0,0 +1,157 @@ + + + + + + + + + + +Changing graph description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Changing graph description

+ +

This + option is available only if your graph is modifiable. Otherwise you'll + be able only to view the description of the graph.

+ +

 

+ +

To change or just view the description of your graph:

+ +

 

+ +

Right-click on the SUPERVISION viewer window + containing your graph and from the pop-up menu choose Change + Informations option. The following dialog box will appear + where you can change the name of + your graph, enter the name of the author and additional comments concerning + your graph:

+ +

 

+ +

                        

+ +

 

+ +

To confirm the changes in this dialog box + click  OK.

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/adding_links_from_an_output_port.htm b/doc/salome/gui/SUPERV/files/adding_links_from_an_output_port.htm new file mode 100755 index 0000000..1f63817 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/adding_links_from_an_output_port.htm @@ -0,0 +1,167 @@ + + + + + + + + + + +Linking node ports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Linking node ports

+ +

In SUPERVISION you + can link ONLY Input ports with + Output ports and InGate ports with OutGate ports of different nodes. But + you can sketch several links going from one definite port to the ports + of other nodes.  

+ +

 

+ +

To add a link between two ports:

+ +

 

+ +

1. Right-click on this port and from + the pop-up menu choose Sketch Link + option. Move aside the cursor of your mouse - it will be followed by a + violet highlighted straight line.

+ +

 

+ +

2. Click on the port, which you'd like + to connect to the first port - your link will get default black color. +

+ +

 

+ +

On this picture you can + see an example of a graph with four linked nodes.

+ +

 

+ +

                      

+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/adding_node_ports.htm b/doc/salome/gui/SUPERV/files/adding_node_ports.htm new file mode 100755 index 0000000..cef2639 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/adding_node_ports.htm @@ -0,0 +1,143 @@ + + + + + + + + + + +Adding node ports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adding node ports

+ +

This option applies ONLY + to Inline nodes, not Factory and is + possible ONLY if the graph is modifiable, not a read-only + one.

+ +

 

+ +

To add Input or Output ports to your node:

+ +

 

+ +

Right-click on the Title + part of the node, and from Add node + submenu select the type of the port for addition to your node (Input or + Output).

+ +

 

+ +

 

+ +

+Related Topics

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/adding_nodes.htm b/doc/salome/gui/SUPERV/files/adding_nodes.htm new file mode 100755 index 0000000..bda3180 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/adding_nodes.htm @@ -0,0 +1,266 @@ + + + + + + + + + + +Adding nodes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adding nodes

+ +

To add a node into a graph in modification or edition:

+ +

 

+ +

Right-click on the background of the main + window of this graph and in the pop-up menu choose  Add + Node option or click icon in the SUPERVISION + toolbar. The following dialog box with two tabs will appear (the same + dialog box opens when trying to create a new graph):

+ +

 

+ +

 

+ +

             

+ +

 

+ +

             

+ +

 

+ +

 

+ +

This dialog box allows to add one or several + nodes to your graph.

+ +

 

+ +

This dialog box works as independent window. So you can move + it aside and simultaneously edit your graph in SUPERVISION viewer and + add new nodes into your graph.

+ +

 

+ +

FACTORY NODES.

+ +

Factory nodes tab window consists of one + column having the form of a tree with three open levels:

+ +

 

+ +

- The + first level corresponds to the list of components which are currently + integrated into SALOME platform

+ +

.

+ +

- The + second level corresponds to the interfaces of one of the components. +

+ +

 

+ +

- The + third level represents a list of services (methods) provide by + the component interface.

+ +

 

+ +

- The + fourth level contains the signature of a service - a list of parameters. + Opposite each parameter there are two indications: Port + type (data type of the parameter) and Port + way (type of the parameter - input or output).   

+ +

 

+ +

To add a factory node into your graph choose + one of the factory services and click Add + Factory Node.

+ +

 

+ +

 

+ +

INLINE NODES.

+ +

Inline + nodes tab window consists of the following fields:

+ +

 

+ +

- Node + type choose box: here you can select the type of your future node + (Computation, Switch, Loop, Goto)

+ +

 

+ +

- Main + field: here you can manually define a Python method which will + be executed on your node. This window functions like a standard document + - right-click on it gives access to Undo/Redo/Cut/Copy/Paste/SelectAll/Clear + options.  

+ +

 

+ +

- Load + from file: this button allows to load a definite Python method + from an existing *.py file. If your *.py file contains several defined + methods, Next function button + allows to list all methods of the upper level from this *.py file and + select the necessary function.    

+ +

 

+ +

To add + an inline node into your graph click Add + Node button.   

+ +

 

+ +

 

+ +

 

+ +

+Related Topics            

+ +

 

+ +

 

+ +

 

+ +

               

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/changing_node_description.htm b/doc/salome/gui/SUPERV/files/changing_node_description.htm new file mode 100755 index 0000000..0fe5d84 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/changing_node_description.htm @@ -0,0 +1,164 @@ + + + + + + + + + + +Changing node description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Changing + node description

+ +

This + option is available only if your graph is modifiable. Otherwise you'll + be able only to view the description of the node.

+ +

 

+ +

To change or just view the description of a node:

+ +

 

+ +

Right-click on the Title + part of the node and from the pop-up menu choose Change + Informations option. The following dialog box will appear + where you can edit the name of + your node, enter the name of the author and additional comments concerning + your graph, set the name of the container :

+ +

 

+ +

                        

+ +

 

+ +

To confirm the changes in this dialog box + click  OK.

+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/changing_view_mode.htm b/doc/salome/gui/SUPERV/files/changing_view_mode.htm new file mode 100755 index 0000000..7303fdf --- /dev/null +++ b/doc/salome/gui/SUPERV/files/changing_view_mode.htm @@ -0,0 +1,230 @@ + + + + + + + + + + +Changing view mode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Changing view mode

+ +

In SUPERVISION + there are several modes of representation of the whole graph, as well + as of each node of this graph.

+ +

 

+ +

To change view mode of a definite node:

+ +

 

+ +

Right-click on the Title + part of this node and from the associated pop-up menu choose Show + >

+ +

 

+ +

- Comments check + box - shows/hides description part of the node.

+ +

 

+ +

- Ports + check box -shows/hides all ports of the node.

+ +

 

+ +

To change view mode of the whole graph:

+ +

 

+ +

Right-click + on the background of the SUPERVISION viewer window containing your graph + and from the pop-up menu choose  View + >

+ +

 

+ +

- Full mode + (normal mode of graph representation):

+ +

 

+ +

+ +

 

+ +

- + Control mode (the nodes of the + graph are displayed without descriptions and ports):

+ +

 

+ +

+ +

 

+ +

Having applied this mode of graph representation, you can + change the view mode of each particular node using the above-mentioned + method.

+ +

 

+ +

- + Table mode (the nodes of the graph + are displayed without ports and they are ranged into a table according + the threads of dataflow):

+ +

 

+ +

+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/computation_nodes.htm b/doc/salome/gui/SUPERV/files/computation_nodes.htm new file mode 100755 index 0000000..d619f68 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/computation_nodes.htm @@ -0,0 +1,180 @@ + + + + + + + + + + +Computation nodes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Computation nodes

+ +

This node represents a computation algorithm in the graph + structure. Nodes of such type can present a service registered in the + Component Catalog (Factory Node) + or an external service defined in Python script by user (InLine + node). Python function of InLine node can be edited in Supervision + Graph edit mode.

+ +

 

+ +

                         

+ +

 Computation + nodes have the following attributes:

+ +

 

+ +
    + +
  • Title is the title of the node. By default + the name of the service is used, but user can change it.

  • + +
  • Description of the service - provides + a brief description of the service used in this node: the name of the + used service, the name of the component, which exports the used service

  • + +
  • Status of execution – this string indicates + the current status of the node. Could be one of the following: Running, + Suspended, Finished, Killed, Waiting, or Aborted.

  • + +
  • Time of execution is a time of node + execution in a launched dataflow.

  • + +
  • InGate/OutGate – control ports of the + node execution. The nodes with connected gates will execute consequently.

  • + +
  • Input / Output ports – ports + for input and output parameters. If Input or Output port has a predefined + value (constant) then this value will be shown and port will be highlighted + by rectangle. Node can have as many Input and Output ports as it is necessary + for the user.

  • +
+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/controlling_execution_of_the_graphs.htm b/doc/salome/gui/SUPERV/files/controlling_execution_of_the_graphs.htm new file mode 100755 index 0000000..3cdd730 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/controlling_execution_of_the_graphs.htm @@ -0,0 +1,194 @@ + + + + + + + + + + +Controlling execution of the graphs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Controlling execution + of the graphs

+ +

In SUPERVISION you can interactively control execution + of a graph.

+ +

 

+ +

To Suspend/Kill execution of the graph on a definite node:

+ +

 

+ +

1. + Launch execution of your graph.

+ +

 

+ +

2. + Right-click on the Title part + of the node, which hasn't yet + been executed and from the pop-up select Suspend/Kill + option.

+ +

 

+ +

You can't suspend + execution of a node in Running + state, only in Waiting state.

+ +

 

+ +

If execution of the graph has been suspended + (NOT killed) on a definite node, + it can be resumed.

+ +

 

+ +

To resume execution of a graph:

+ +

 

+ +

Right-click on the Title + part of the node, on which + execution of the graph has been suspended  and + from the pop-up select Resume option.

+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/copying_graphs.htm b/doc/salome/gui/SUPERV/files/copying_graphs.htm new file mode 100755 index 0000000..82dc94b --- /dev/null +++ b/doc/salome/gui/SUPERV/files/copying_graphs.htm @@ -0,0 +1,150 @@ + + + + + + + + + + +Copying graphs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Copying graphs

+ +

In SUPERVISION + there is another mean to get a new window of the SUPERVISION when you + copy an already open graph into a new window.

+ +

 

+ +

To copy a graph:

+ +

 

+ +

Right-click on the background of the SUPERVISION + viewer window containing your graph and from the pop-up menu choose Copy Dataflow option.

+ +

 

+ +

 

+ +

A new SUPERVISION window containing a copy + of the graph will be created.

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/creating_a_new_graph.htm b/doc/salome/gui/SUPERV/files/creating_a_new_graph.htm new file mode 100755 index 0000000..9314a90 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/creating_a_new_graph.htm @@ -0,0 +1,169 @@ + + + + + + + + + + +Creating a new graph + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Creating a new graph

+ +

 

+ +

To create a new graph:

+ +

 

+ +

Click icon  in + the SUPERVISION toolbar or form the main menu choose Edit + > New Dataflow. After it a new window with SUPERVISION viewer + will be automatically created and you will see the dialog box allowing + to add nodes into your graph. (see also: Adding + nodes)

+ +

 

+ +

On the following picture you can see an + example of a simple constructed graph containing four linked nodes:

+ +

 

+ +

                       

+ +

     

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/deleting_links.htm b/doc/salome/gui/SUPERV/files/deleting_links.htm new file mode 100755 index 0000000..6bb6cb1 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/deleting_links.htm @@ -0,0 +1,141 @@ + + + + + + + + + + +Deleting links + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Deleting links

+ +

To delete a link between two ports:

+ +

 

+ +

Right-click on this link and from the pop-up + menu choose Delete Link option.

+ +

 

+ +

To delete a link, which you have already begun to construct:

+ +

 

+ +

While creating this link right-click with + your mouse and from the pop-up menu choose Delete + Link option.  

+ +

 

+ +

 

+ +

+Related Topics

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/deleting_nodes.htm b/doc/salome/gui/SUPERV/files/deleting_nodes.htm new file mode 100755 index 0000000..410e24e --- /dev/null +++ b/doc/salome/gui/SUPERV/files/deleting_nodes.htm @@ -0,0 +1,143 @@ + + + + + + + + + + +Deleting nodes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Deleting nodes

+ +

This action of insertion is possible only if the main graph + is modifiable, not a read-only one.

+ +

 

+ +

To delete a node of a graph:

+ +

 

+ +

Right-click on the Title + part of the node and select Delete + option

+ +

 

+ +

The + node will be deleted from your graph.

+ +

 

+ +

 

+ +

+Related Topics

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/directing_dataflow_between_nodes.htm b/doc/salome/gui/SUPERV/files/directing_dataflow_between_nodes.htm new file mode 100755 index 0000000..0587089 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/directing_dataflow_between_nodes.htm @@ -0,0 +1,187 @@ + + + + + + + + + + +Directing dataflow between nodes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Directing dataflow between + nodes

+ +

SUPERVISION component + automatically defines for each node two special ports an Input + Gate  and + an Output Gate. They are managed + by  SUPERVISION + and are not arguments of services of nodes.

+ +

Sometimes the flow of + data in a graph allow parallel execution of nodes ; but the implementation + of the services of these nodes does not allow parallel execution ( services + which are not thread-safe, internal dependencies, etc… ). These ports +  give the + possibility to solve such problems.

+ +

 

+ +
    + +
  • If + there is no link on a Gate, the Gate is ignored at execution time.

  • +
+ +

 

+ +
    + +
  • The + internal type of these ports are boolean.

  • +
+ +

 

+ +
    + +
  •  If + there is a link from an output Gate of a node to an Input Gate, the node + of the input Gate will be executed after the other node.

  • +
+ +

 

+ +
    + +
  •  If + an output port of a switch node is connected to an input gate, the node + of the input gate will be executed only if the value of the output port + is “True”.

  • +
+ +

 

+ +
    + +
  •  But + an output gate may not be connected with a link to an input port.

  • +
+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/editing_imported_graphs.htm b/doc/salome/gui/SUPERV/files/editing_imported_graphs.htm new file mode 100755 index 0000000..06d476b --- /dev/null +++ b/doc/salome/gui/SUPERV/files/editing_imported_graphs.htm @@ -0,0 +1,135 @@ + + + + + + + + + + +Editing imported graphs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Editing imported graphs

+ +

To modify an existing graph:

+ +

Click  icon +  in the + toolbar of  SUPERVISION + module.

+ +

 

+ +

You will see the same + dialog box allowing to find and select a necessary file. After the selection + of a file, a new window containing a graph will appear.

+ +

 

+ +

There is no visual difference between read-only + graphs and modifiable graphs. + But the difference can be seen if you click in the main part of the window  + to open the pop-up menu: a modifiable graph has a pop-up menu containing + several supplementary items allowing edition of a graph.

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/editing_node_function.htm b/doc/salome/gui/SUPERV/files/editing_node_function.htm new file mode 100755 index 0000000..4527faa --- /dev/null +++ b/doc/salome/gui/SUPERV/files/editing_node_function.htm @@ -0,0 +1,161 @@ + + + + + + + + + + +Editing node function + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Editing node function

+ +

In SUPERVISION + there is a possibility to edit the service of an already created node. +

+ +

 

+ +

This option applies ONLY + to Inline nodes, not Factory and is + possible ONLY if the graph is modifiable, not a read-only + one.

+ +

 

+ +

To edit node function:

+ +

 

+ +

Right-click + on the Title + part of the node and select Edit + function item.

+ +

 

+ +

 

+ +

+Related Topics

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/exporting_graphs.htm b/doc/salome/gui/SUPERV/files/exporting_graphs.htm new file mode 100755 index 0000000..7c583b2 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/exporting_graphs.htm @@ -0,0 +1,165 @@ + + + + + + + + + + +Exporting graphs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Exporting graphs

+ +

The operation + of exportation of a created graph allows to save it as *. xml  + file, which can be reloaded in future into the window of  SUPERVISION. +

+ +

 

+ +

To export a graph:

+ +

1. Click on the window of the graph to + make it current and after it  click + icon  in + the toolbar of SUPERVISION component or form the main menu select File > Export Dataflow.  

+ +

 

+ +

2. In the standard Search File dialog + box choose the folder for storage of your graph or find and select an + existing file if you want to update it or enter a new file  name + for your graph in the field  File + name.

+ +

 

+ +

3. Click Save + to confirm exportation of the graph.

+ +

 

+ +

 

+ +

+Related Topics

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/filtering_and_storing_output_messages.htm b/doc/salome/gui/SUPERV/files/filtering_and_storing_output_messages.htm new file mode 100755 index 0000000..76eb438 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/filtering_and_storing_output_messages.htm @@ -0,0 +1,153 @@ + + + + + + + + + + +Filtering and storing output messages + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filtering and logging + output messages

+ +

In SUPERVISION + you can filter and save in a definite text file all output messages produced + by the component during execution of your graph:

+ +

 

+ +

To set filtering parameters:

+ +

 

+ +

Before execution of your graph right-click + on the background of the SUPERVISION viewer window containing your graph + and from the pop-up menu choose Filter + Notification option. The following dialog box will appear:

+ +

 

+ +

              

+ +

 

+ +

In + this dialog box you can specify a file, where all output messages will + be put, and choose the type of messages for logging by every node composing + your graph.

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/goto_nodes.htm b/doc/salome/gui/SUPERV/files/goto_nodes.htm new file mode 100755 index 0000000..d7c1038 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/goto_nodes.htm @@ -0,0 +1,139 @@ + + + + + + + + + + +GOTO nodes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

GOTO nodes

+ +

GOTO node represents a simple transmitter of data from + one port into another. This InLine node can be with service or without + it. In the first case the data received by a GOTO + node will be processed by this function and only after that it + will be transferred to another node. GOTO + nodes may have as many Input and Output ports as it's necessary. +  

+ +

 

+ +

But in comparison with a Computation + node it can't receive and transfer control flow    

+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/importing_graphs_from_file.htm b/doc/salome/gui/SUPERV/files/importing_graphs_from_file.htm new file mode 100755 index 0000000..dc9a83e --- /dev/null +++ b/doc/salome/gui/SUPERV/files/importing_graphs_from_file.htm @@ -0,0 +1,189 @@ + + + + + + + + + + +Importing graphs from file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Importing + graphs from file

+ +

In SUPERVISION component + graphs can be saved and stored in *.xml files.

+ +

 

+ +

To import a read-only graph from  *.xml file:

+ +

 

+ +

1.  Click +  icon in the SUPERVISION toolbar or from the main menu choose + File > Import Dataflow.

+ +

 

+ +

2.  From + the standard Search File dialog + box, select the required file containing your graph and click OK + to import it.

+ +

 

+ +

The graphs imported using this option will be read-only. You + will not be able to edit it: add nodes, modify links between ports, edit + nodes etc. This graphs can be ONLY +  initialized + and executed.

+ +

 

+ +

To import a graph for modification:

+ +

 

+ +

1.  Click +  icon in the SUPERVISION toolbar or from the main menu choose + Edit > Modify Dataflow.

+ +

 

+ +

2.  From + the standard Search File dialog + box, select the required file containing your graph and click OK + to import it.

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/inserting_graphs.htm b/doc/salome/gui/SUPERV/files/inserting_graphs.htm new file mode 100755 index 0000000..fe5983f --- /dev/null +++ b/doc/salome/gui/SUPERV/files/inserting_graphs.htm @@ -0,0 +1,145 @@ + + + + + + + + + + +Inserting graphs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Inserting graphs

+ +

To insert a graph from *.xml  file into another graph:

+ +

 

+ +

1. Right-click on the background of the + SUPERVISION viewer window containing your graph and from the pop-up menu + choose Insert File option.

+ +

 

+ +

2. In the standard Search File dialog box + choose *.xml containing the graph, you would like to insert  and + click Open.

+ +

 

+ +

This action of insertion is possible only if the main graph + is modifiable, not a read-only one.

+ +

 

+ +

 

+ +

+Related Topics

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/introduction_to_supervisor.htm b/doc/salome/gui/SUPERV/files/introduction_to_supervisor.htm new file mode 100755 index 0000000..120e4fc --- /dev/null +++ b/doc/salome/gui/SUPERV/files/introduction_to_supervisor.htm @@ -0,0 +1,208 @@ + + + + + + + + + + +Introduction to SUPERVISION + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Introduction to SUPERVISION

+ +

SUPERVISION module + of the SALOME platform allows to define and execute a chain of distributed + numeric components, as well as to control the progress of this chain. +

+ +

In SUPERVISION + module all calculations are executed with the help of graphs + representing a graphical presentation of the chain of operations. Each + graph consists of one or several linked nodes. + Each node represents a graphical presentation of one service (function) + provided by distributed numeric components (factory + nodes) or defined by the user (inline + nodes).     

+ +

 

+ +

 SUPERVISION module in SALOME platform is destined for :

+ +

 

+ +
    + +
  • Construction + of graphs linking the solvers
  • + +
  • Loading + solvers into divided containers
  • + +
  • Supervision + and control graph execution
  • + +

     

    +
+ +

 SUPERVISION + module allows to:

+ +

 

+ +
    + +
  • Edit + graphs in interactive mode
  • + +
  • Control + graphs in interactive mode
  • + +
  • Visualize + solver’s activity
  • + +
  • Visualize + execution of graphs with parallel branches
  • + +
  • Direct + data flow
  • + +
  • Publish, + filter and save output messages in a definite file
  • +
+ +

 

+ +

+Related Topics

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/loop_nodes.htm b/doc/salome/gui/SUPERV/files/loop_nodes.htm new file mode 100755 index 0000000..eb95583 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/loop_nodes.htm @@ -0,0 +1,351 @@ + + + + + + + + + + +Loop nodes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Loop nodes

+ +

Loop node is a + kind of Control nodes. In fact two nodes represent Loop: start + loop and end loop nodes. + Nodes of such type are always InLine nodes. User have to supply this type + of node by service, which will check conditions of end of loop.

+ +

With + that kind of nodes you may define all kinds of loops:

+ +

“for( + initial condition(s) ; end condition(s) ; end loop code )” or

+ +

“while( + end condition )”

+ +

etc…

+ +

 

+ +

+ +

 

+ +
    + +
  • Titles of the nodes. By default the + name of the service is used. You can change only the name of the Start + Loop node - the name of the End Loop node will be automatically created + as follows: EndOf + "Name of the Start Loop node" .

  • + +
  • Status of execution shows the state + of the loop. It can be: Not Started, + Running, Finished.

  • + +
  • InGate/OutGate - control ports of the + loop execution.

  • + +
  • Time of execution is a time of node + execution in a launched dataflow.

  • + +
  • Input/Output ports – are BusPorts, which + are processed by Python function. Input ports of the Start Loop node  will + get the initial values, which can be processed by underlying function + and will be transferred inside of the loop. Last calculation node of the + loop will put these values to the input port of the End Loop node. If + loop continues then this value will be copied to the Input port of the + Start Loop node, otherwise into output port of the End Loop node.

  • + +
  • Control loop ports – Control ports of + the loop nodes manage the functioning of the loop and they are not accessible + for the user. InitLoop port launches + the loop. DoLoop port of the Start + Loop node checks whether the end loop condition set in More + function of the Loop node has been achieved or not. + The value in this ports is of boolean type. It can be 0 or 1.

  • +
+ +

 

+ +

To create a Loop node you have to define three python functions + which will manage the loop with all input and output arguments (ports) + defined  in + the node :

+ +

 

+ +
    + +
  •  INIT: An + Initialization function which will be executed only when we enter in the + loop for the first time.

  • +
+ +

 

+ +
    + +
  •  MORE: A + “More” function which is executed at each execution of the LoopNode even + for the first time. That function will have to return as first output + argument a boolean before output arguments (ports) defined by the user + in the node. If that function value is true the body of the loop will + automatically be executed. If it is false SUPERVISION component will resume + execution after the end of the loop. That first output argument will not + be represented as an output port and will not be used in the graph.

  • +
+ +

 

+ +
    + +
  • NEXT: A “Next” function which is executed + each time that SUPERVISION component resume the execution from the end + of the loop to the beginning.

  • +
+ +

 

+ +

Setting of these functions + is possible from the standard Add Node + dialog box (see also Adding nodes):

+ +

 

+ +

                       

+ +

 

+ +

Here you can see a simple + example of Python functions set in a Loop node:

+ +

 

+ +

def Init(Index,Min,Max,Incr) + :  

+ +

    if + Min <= Max :  

+ +

        Index + = Min  

+ +

    else + :  

+ +

        Index + = Max  

+ +

    return + Index,Min,Max,Incr  

+ +

 

+ +

def More(Index,Min,Max,Incr) + :  

+ +

    if + Index < Max :  

+ +

        DoLoop + = 1  

+ +

    else + :  

+ +

        DoLoop + = 0  

+ +

    return + DoLoop,Index,Min,Max,Incr  

+ +

 

+ +

def Next(Index,Min,Max,Incr) + :  

+ +

    Index + = Index + Incr  

+ +

    return + Index,Min,Max,Incr

+ +

 

+ +

Loop nodes have the following particularities:

+ +

 

+ +
    + +
  • You + may create only input ports in + the Loop node.

  • + +
  • The + input ports, which have been created in the Start Loop node are automatically + duplicated by SUPERVISION component as output ports of this node.

  • + +
  • SUPERVISION + component automatically  adds + the same input and output ports in the  End + Loop node as in the Start Loop node.

  • + +
  • If + an output port of the Start Loop node has no link and if the corresponding + input port of the End Loop node has no link, SUPERVISION component automatically + transmits its value to the corresponding End Loop node during execution. + You shouldn't define such links.

  • + +
  • When + SUPERVISION component executes the End Loop node, it automatically transmits + the actual values of  the + output ports of the End Loop node to the input ports of the Start Loop + node.

  • + +
  • In + the body of a loop, an input port of a calculation node may not be linked + from an output port of a node which is not in the body of a loop. That + output port must be linked to + an input port of the Start Loop node. So its value will be available through + the corresponding output port of the Start Loop node.

  • +
+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/modifying_links.htm b/doc/salome/gui/SUPERV/files/modifying_links.htm new file mode 100755 index 0000000..8fe2a37 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/modifying_links.htm @@ -0,0 +1,185 @@ + + + + + + + + + + +Modifying links + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Modifying links

+ +

In SUPERVISION you can modify an already + constructed link to make it look better in the structure of the whole + graph.

+ +

 

+ +

To modify an already constructed link:

+ +

 

+ +

1. Add a + point to this link (see also: Points in + links)

+ +

 

+ +

2. With your mouse drag this point of your + link and move aside the cursor - the whole link will follow the movements + of your mouse.

+ +

 

+ +

Ortho + mode of links construction allows to place points of a link under construction + in random positions in the viewer window - SPERVISION will automatically + place this points in such a way that the broken line will consist of right + angle corners.

+ +

 

+ +

To set Ortho mode of link construction:

+ +

 

+ +

While constructing a link from any port + click on the background of the SUPERVISION viewer window and from the + pop-up menu mark Ortho option. + To return back to the normal mode of link construction in the same pop-menu + unmark Ortho option.

+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/opening_graphs_referenced_in_the_study.htm b/doc/salome/gui/SUPERV/files/opening_graphs_referenced_in_the_study.htm new file mode 100755 index 0000000..005059a --- /dev/null +++ b/doc/salome/gui/SUPERV/files/opening_graphs_referenced_in_the_study.htm @@ -0,0 +1,157 @@ + + + + + + + + + + +Changing graph description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Changing graph description

+ +

This + option is available only if your graph is modifiable. Otherwise you'll + be able only to view the description of the graph.

+ +

 

+ +

To change or just view the description of your graph:

+ +

 

+ +

Right-click on the SUPERVISION viewer window + containing your graph and from the pop-up menu choose Change + Informations option. The following dialog box will appear + where you can change the name of + your graph, enter the name of the author and additional comments concerning + your graph:

+ +

 

+ +

                        

+ +

 

+ +

To confirm the changes in this dialog box + click  OK.

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/placing_nodes_in_the_window.htm b/doc/salome/gui/SUPERV/files/placing_nodes_in_the_window.htm new file mode 100755 index 0000000..970f60a --- /dev/null +++ b/doc/salome/gui/SUPERV/files/placing_nodes_in_the_window.htm @@ -0,0 +1,145 @@ + + + + + + + + + + +Placing nodes in the window + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Locating + nodes in the window

+ +

In SUPERVISION you can locate + the nodes of your graph in any part of the SUPERVISION viewer window. +

+ +

 

+ +

To replace a node:

+ +

                        

+ +

With your mouse drag this node by its Title part, relocate it to the required + place in the window and drop it.

+ +

 

+ +

This option allows to achieve a better visual + presentation of  your + graph.

+ +

     

+ +

                          

+ +

+Related Topics

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/points_in_links.htm b/doc/salome/gui/SUPERV/files/points_in_links.htm new file mode 100755 index 0000000..521ecba --- /dev/null +++ b/doc/salome/gui/SUPERV/files/points_in_links.htm @@ -0,0 +1,145 @@ + + + + + + + + + + +Placing nodes in the window + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Locating + nodes in the window

+ +

In SUPERVISION + you can locate the nodes of your graph in any part of the SUPERVISION + viewer.

+ +

 

+ +

To replace a node:

+ +

                        

+ +

With your mouse drag this node by its Title part, relocate it to the required + place in the window and drop it.

+ +

 

+ +

This option allows to achieve a better visual + presentation of  your + graph.

+ +

     

+ +

                          

+ +

+Related Topics

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/referencing_output_values_in_the_study.htm b/doc/salome/gui/SUPERV/files/referencing_output_values_in_the_study.htm new file mode 100755 index 0000000..62e6773 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/referencing_output_values_in_the_study.htm @@ -0,0 +1,194 @@ + + + + + + + + + + +Referencing output values in the study + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Referencing output values + in the study

+ +

In SUPERVISION + you can reference  in + the study all data calculated in the nodes. This option allows to view + and store output values of the graph in the study.

+ +

 

+ +

To reference output values in the study:

+ +

 

+ +

Right-click on the required Output port of + the node and from the pop-up menu choose Put + in Study option. Next time you try to call this pop-up menu on + the same port, this option will change into Not + in Study. It allows to remove this reference from the study.

+ +

 

+ +

If the value of an Output port has a reference in the study, + this port in the node will get a bold frame.

+ +

 

+ +

In + SUPERVISION you can create as many references to output values as it's + necessary. If you haven't yet launched execution of your graph, SUPERVISION + will create in the Object Browser a reference only to your graph (see + also: Referencing graphs  in + the study) and store the references to the output parameters in this + folder. After execution of your graph all of them will be displayed in + the Object Browser in the following way:

+ +

 

+ +

+ +

In + the column Value of the Object + Browser you'll be able to get the value of the output parameter.  

+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/reloading_dataflow.htm b/doc/salome/gui/SUPERV/files/reloading_dataflow.htm new file mode 100755 index 0000000..9bfd06f --- /dev/null +++ b/doc/salome/gui/SUPERV/files/reloading_dataflow.htm @@ -0,0 +1,158 @@ + + + + + + + + + + +Reloading dataflow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Reloading dataflow

+ +

In SUPERVISION + component graphs can be edited from Python console. All these modifications + are at first automatically registered in SUPERVISION Engine and after + it in the Graphical User Interface (in the SUPERVISION viewer window) + of SUPERVISION component. If some modifications of your graph, made from + Python console, hasn't been realized in GUI, you can manually reload your + graph from SUPERVISION Engine.

+ +

 

+ +

To reload a dataflow:

+ +

 

+ +

In the SUPERVISION toolbar + click icon or from the main menu choose Supervision + > Reload item.

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/renaming_nodes.htm b/doc/salome/gui/SUPERV/files/renaming_nodes.htm new file mode 100755 index 0000000..a3f6339 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/renaming_nodes.htm @@ -0,0 +1,148 @@ + + + + + + + + + + +Renaming nodes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Renaming nodes

+ +

This action of insertion is possible only if the main graph + is modifiable, not a read-only one.

+ +

 

+ +

To rename a node of a graph:

+ +

 

+ +

1. Right-click on the Title + part of the node and select Rename + option

+ +

 

+ +

2. In the standard dialog box enter a new + name of your node and click OK button.

+ +

 

+ +

The + title of your node will change.

+ +

 

+ +

 

+ +

+Related Topics

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/running_dataflow.htm b/doc/salome/gui/SUPERV/files/running_dataflow.htm new file mode 100755 index 0000000..609d712 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/running_dataflow.htm @@ -0,0 +1,231 @@ + + + + + + + + + + +Running dataflow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Running dataflow

+ +

To launch execution of your graph:

+ +

 

+ +

In the Execution + toolbar click icon or from the Supervision + menu choose  Run. +

+ +

 

+ +

Execution + of your graph will be started from the first nodes with input parameters + to the last node with output parameters. In case of graphs with conditional + branches and loops execution of this graph may end on a definite intermediate + node.

+ +

 

+ +

While execution of your graph is running, you can't modify + the structure of your graph, set input parameters etc.

+ +

 

+ +

The + main states of the nodes are the following:

+ +

 

+ +
    + +
  • No Status  - + Initial state of the node.

  • + +
  • Running  - +  This + node is performing operations.

  • + +
  • Waiting  - +  This + node is waiting for input data from other nodes, which are executing operations + before him.

  • + +
  • Suspended -  Execution + of the graph has been suspended on this node. It can be resumed.

  • + +
  • Finished -  This + node has performed his operations.

  • + +
  • Killed  - +  Execution + of the graph has been stopped on this node. It can't resumed. (only restarted) +

  • + +
  • Aborted  - + This node has performed an illegal + operation. Execution of the whole graph has been killed.

  • +
+ +

 

+ +

To stop execution of the whole graph:

+ +

 

+ +

In the Execution toolbar click icon or from the Supervision + menu choose Kill.

+ +

 

+ +

Execution + of your graph will be stopped on the last operating node.

+ +

 

+ +

After the first execution of the graph you can restart it + with new input parameters using the same method. All intermediate data + calculated on the nodes will be automatically updated according a new + dataflow.

+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/running_supervisor.htm b/doc/salome/gui/SUPERV/files/running_supervisor.htm new file mode 100755 index 0000000..27444cb --- /dev/null +++ b/doc/salome/gui/SUPERV/files/running_supervisor.htm @@ -0,0 +1,147 @@ + + + + + + + + + + +Running SUPERVISION + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Running SUPERVISION

+ +

To start SUPERVISION module:

+ +

 

+ +

1.  Launch + SALOME application and create a new study.

+ +

2.  Choose + Supervision item in the choose + box or click icon, located among other icons at the bottom + of SALOME Desktop window. After it the following window will appear:

+ +

 

+ +

                        

+ +

 

+ +

In this window the menus + have been updated according the functionality of SUPERVISION module. All + these actions are available in the form of icons in SUPERVISION toolbar. +

+ +

 

+ +

+Related Topics

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/setting_input_parameters.htm b/doc/salome/gui/SUPERV/files/setting_input_parameters.htm new file mode 100755 index 0000000..2292c7e --- /dev/null +++ b/doc/salome/gui/SUPERV/files/setting_input_parameters.htm @@ -0,0 +1,187 @@ + + + + + + + + + + +Setting input parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Setting input parameters

+ +

Input parameters of a graph are set in the Input ports + of the nodes, which are not linked to Output ports of other nodes.

+ +

 

+ +

To set input parameters of a graph:

+ +

 

+ +

1. Right-click on the Input ports of the nodes + and from the pop-up menu choose Set Value + option. The following dialog box will appear:

+ +

 

+ +

+ +

 

+ +

In + this dialog box you can set a new input value (type of the value is given + in brackets) or use any object referenced in the study (double-click on + this object in the Object Browser) as input parameter  for + your Input port.

+ +

 

+ +

2. + To validate your setting click OK + button.

+ +

 

+ +

If the value of an Input port has been set, this port in + the node will get a bold frame.

+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/step-by-step_execution.htm b/doc/salome/gui/SUPERV/files/step-by-step_execution.htm new file mode 100755 index 0000000..a264203 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/step-by-step_execution.htm @@ -0,0 +1,169 @@ + + + + + + + + + + +Step-by-Step execution + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Step-by-Step execution

+ +

In SUPERVISION + there is an additional option allowing to launch Step-by-Step + execution of your graph. This type of execution is based on the operations + described in the chapter 'Controlling + execution of the graph'.

+ +

 

+ +

To launch Step-by-Step execution of your graph:

+ +

 

+ +

In the Execution toolbar click icon or from the main menu choose Supervision + > Step by Step option.

+ +

 

+ +

As + usual execution of your graph will start from the first node, but on this + node it will be suspended. So + you can choose the next node in your graph where execution will be suspended again and after it resume + dataflow on the first node.

+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/switch_nodes.htm b/doc/salome/gui/SUPERV/files/switch_nodes.htm new file mode 100755 index 0000000..8a5768d --- /dev/null +++ b/doc/salome/gui/SUPERV/files/switch_nodes.htm @@ -0,0 +1,277 @@ + + + + + + + + + + +Switch nodes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Switch nodes

+ +

Switch node is a kind of Control node. In fact two + nodes present Switch: start Switch and end Switch. Nodes of such type + are always InLine nodes. You have to supply this type of node by service, + which will perform switching. That's why nodes of such type can have at + least two or more switch ports (Boolean), but only one switch port can + have "True" value at a definite moment of graph execution. With + that kind of node you can define all kinds of tests or switches :

+ +

“if( condition ) ; + else if( condition ) … ; else” or

+ +

“switch( variable ) + ; case value …; default”.

+ +

Etc…

+ +

 

+ +

+ +

 

+ +

Titles + of the nodes. By default the name of the service is used. You can + change only the name of the Start Switch node - the name of the End Switch + node will be automatically created as follows: EndOf + "Name of the + Start Switch node" .

+ +

Status + of execution shows state of the loop. It can be: Not Started, Running, + Finished.

+ +

InGate/OutGate + - control ports of the loop execution.

+ +

SwitchPort + – ports for control management of the Switch. The values in this ports + are of boolean type and can be 0 or 1. They must be connected to InGate + ports of the correspondent computation nodes.

+ +

Input/Output + ports –  Input + port of the Start Switch node will get the initial value, which can be + processed by underlying Python function and will be transferred inside + of the switch. The last computation node of the switch will put this value + to the input port of the End Switch node.

+ +

 

+ +

The associated Python function will have + all input ports of the Switch node as input arguments. And that function + must return a value for all output ports. A simple example of this Python + function:

+ +

 

+ +

def + Switch(x):    

+ +

i1=0    

+ +

i2=0    

+ +

i3=0    

+ +

if x>13:    

+ +

i1=1    

+ +

elif x==13:    

+ +

i2=1    

+ +

else:    

+ +

i3=1    

+ +

return + i1,i2,i3

+ +

   

+ +

In this example i1, i2, i3 parameters of the function + correspond to Switch ports of the node. So, depending on the result of + execution of the initial condition (in our case it's a comparison of the + input parameter with an integer 13), one of the switch ports will get + the value 1. And this port will transmit further dataflow  to + the corresponding node.

+ +

 

+ +

Switch nodes have the following particularities:

+ +

 

+ +
    + +
  • You must define at + first boolean output ports which correspond to cases of the switch. They + must be connected to Input Gates of head nodes of each branch of switch. +

  • + +
  • A + branch of condition may begin with one or some nodes if there is parallelism + of execution of nodes.

  • + +
  • During execution + of the Switch there can be one and only + one such boolean output port with a “true” value.

  • + +
  • The input ports created + by the user in an End Switch node are automatically duplicated by the + SuperVision component as output ports of the End Switch node. That component + will fill the value of such output ports with the corresponding values + of such input ports at execution time.

  • + +
  • Each branch of the + switch must have links to all input ports of the End Switch node.

  • + +
  • But at execution + time, there will be only one branch executed.

  • + +
  • The end of branch + of a switch may have one or some nodes if there is parallelism of execution + of nodes.

  • +
+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/files/usage_of_supervisor_module.htm b/doc/salome/gui/SUPERV/files/usage_of_supervisor_module.htm new file mode 100755 index 0000000..f85c0d2 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/usage_of_supervisor_module.htm @@ -0,0 +1,284 @@ + + + + + + + + + + +Usage of SUPERVISION module + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

In SUPERVISION you can:

+ +

 

+ +

Usage + of  SUPERVISION + consists of 3 phases:

+ +

 

+ +
    + +
  1. Construction + and edition of a graph
  2. + +
  3. Initialization + of a graph
  4. + +
  5. Execution + and control the activity of a graph
  6. +
+ +  + +

 

+ +

STEP + 1 : Construction and edition + of a graph

+ +

Edition of a graph consists of several interactive + actions allowing to obtain this graph. The main actions are the following:

+ +

 

+ +
    + +
  • Launch + SUPERVISION
  • + +
  • Create + a new graph
  • + +
  • Import + an existing read-only or modifiable graph from a study or a file
  • + +
  • Copy, + export, rename an existing graph
  • + +
  • Insert + an existing graph into another graph
  • +
+ +
    + +
  • Add, + delete, locate, rename nodes
  • + +
  • Add, + delete, modify links connecting nodes
  • + +
  • Add, + delete, move a point associated to the link
  • + +
  • Add + particular information (author and comments) about graphs or nodes
  • + +
  • Create + loops and conditional connections
  • + +
  • Browse + the module catalogue
  • +
+ +

 

+ +

STEP 2 : Initialization of a graph

+ +

Initialization + of a graph is a procedure consisting of several interactive actions which + allow execution of this graph:

+ +

 

+ +
    + +
  • Necessary: + set into the Input ports of the graph  user-defined + constant values or values from the study
  • + +
  • Optional : + configure the nodes
  • + +
  • Facultative: + put the graph into the study
  • + +
  • Facultative: + indicate output data which will be referred to in the study
  • +
+ +  + +

STEP 3 : Execution and control the activity + of a graph

+ +After initialization of the graph the main actions concerning execution + and control the activity of a graph are the following : + +
 
    + +
  • Launch + execution of a graph
  • + +
  • Stop + execution of a graph or a node
  • + +
  • Suspend + or resume execution of a graph or a node
  • + +
  • Control + the activity of the graph using different views
  • + +
  • Filter + the output messages of the solvers
  • + +
  • Examine + the data calculated in the ports +
  • +
+ +  + +
  + + +
Related Topics
  + + +
  + + + + + + diff --git a/doc/salome/gui/SUPERV/files/viewing_output_vaues.htm b/doc/salome/gui/SUPERV/files/viewing_output_vaues.htm new file mode 100755 index 0000000..7b11332 --- /dev/null +++ b/doc/salome/gui/SUPERV/files/viewing_output_vaues.htm @@ -0,0 +1,183 @@ + + + + + + + + + + +Examiming calculated data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Examining calculated + data

+ +

All data calculated on the nodes or set as input parameters + for the services is displayed on the corresponding Output or Input ports. +

+ +

 

+ +

To examine the current value of a definite port:  

+ +

 

+ +

Right-click + on this port and from the pop-up menu choose Browse + option. The following window will appear:

+ +

 

+ +

+ +

 

+ +

To examine all current port values of a definite node:

+ +

 

+ +

Right-click on the Title part of this node + and from the pop-up menu choose Browse + option. The following window will appear:

+ +

 

+ +

+ +

 

+ +

This + dialog box serves also for setting input parameters of the node.

+ +

 

+ +

 

+ +

 

+ +

+Related Topics

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SUPERV/i_blue.jpg b/doc/salome/gui/SUPERV/i_blue.jpg new file mode 100755 index 0000000..ed3acfa Binary files /dev/null and b/doc/salome/gui/SUPERV/i_blue.jpg differ diff --git a/doc/salome/gui/SUPERV/image3.gif b/doc/salome/gui/SUPERV/image3.gif new file mode 100755 index 0000000..6f981c9 Binary files /dev/null and b/doc/salome/gui/SUPERV/image3.gif differ diff --git a/doc/salome/gui/SUPERV/loop1.jpg b/doc/salome/gui/SUPERV/loop1.jpg new file mode 100755 index 0000000..5ddd4f2 Binary files /dev/null and b/doc/salome/gui/SUPERV/loop1.jpg differ diff --git a/doc/salome/gui/SUPERV/note1.gif b/doc/salome/gui/SUPERV/note1.gif new file mode 100755 index 0000000..b53e21d Binary files /dev/null and b/doc/salome/gui/SUPERV/note1.gif differ diff --git a/doc/salome/gui/SUPERV/ss_btn_related_topics.gif b/doc/salome/gui/SUPERV/ss_btn_related_topics.gif new file mode 100755 index 0000000..5158bc4 Binary files /dev/null and b/doc/salome/gui/SUPERV/ss_btn_related_topics.gif differ diff --git a/doc/salome/gui/SUPERV/supervision.html b/doc/salome/gui/SUPERV/supervision.html new file mode 100755 index 0000000..e1f6e02 --- /dev/null +++ b/doc/salome/gui/SUPERV/supervision.html @@ -0,0 +1,150 @@ + + + + SUPERVISION reference manual + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/SUPERV/supervision_csh.html b/doc/salome/gui/SUPERV/supervision_csh.html new file mode 100755 index 0000000..e1fb127 --- /dev/null +++ b/doc/salome/gui/SUPERV/supervision_csh.html @@ -0,0 +1,100 @@ + + +SUPERVISION reference manual + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/SUPERV/supervision_rhc.html b/doc/salome/gui/SUPERV/supervision_rhc.html new file mode 100755 index 0000000..322782a --- /dev/null +++ b/doc/salome/gui/SUPERV/supervision_rhc.html @@ -0,0 +1,100 @@ + + +SUPERVISION reference manual + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/SUPERV/supervisor(eng)_image10.gif b/doc/salome/gui/SUPERV/supervisor(eng)_image10.gif new file mode 100755 index 0000000..b1c0299 Binary files /dev/null and b/doc/salome/gui/SUPERV/supervisor(eng)_image10.gif differ diff --git a/doc/salome/gui/SUPERV/supervisor(eng)_image13.gif b/doc/salome/gui/SUPERV/supervisor(eng)_image13.gif new file mode 100755 index 0000000..da0edff Binary files /dev/null and b/doc/salome/gui/SUPERV/supervisor(eng)_image13.gif differ diff --git a/doc/salome/gui/SUPERV/supervisor(eng)_image15.gif b/doc/salome/gui/SUPERV/supervisor(eng)_image15.gif new file mode 100755 index 0000000..923a727 Binary files /dev/null and b/doc/salome/gui/SUPERV/supervisor(eng)_image15.gif differ diff --git a/doc/salome/gui/SUPERV/supervisor(eng)_image4.gif b/doc/salome/gui/SUPERV/supervisor(eng)_image4.gif new file mode 100755 index 0000000..03f276c Binary files /dev/null and b/doc/salome/gui/SUPERV/supervisor(eng)_image4.gif differ diff --git a/doc/salome/gui/SUPERV/supervisor(eng)_image6.gif b/doc/salome/gui/SUPERV/supervisor(eng)_image6.gif new file mode 100755 index 0000000..0e99c16 Binary files /dev/null and b/doc/salome/gui/SUPERV/supervisor(eng)_image6.gif differ diff --git a/doc/salome/gui/SUPERV/switch.jpg b/doc/salome/gui/SUPERV/switch.jpg new file mode 100755 index 0000000..c884dc4 Binary files /dev/null and b/doc/salome/gui/SUPERV/switch.jpg differ diff --git a/doc/salome/gui/SUPERV/texture_horiz_ltbluebubbles.jpg b/doc/salome/gui/SUPERV/texture_horiz_ltbluebubbles.jpg new file mode 100755 index 0000000..a10d494 Binary files /dev/null and b/doc/salome/gui/SUPERV/texture_horiz_ltbluebubbles.jpg differ diff --git a/doc/salome/gui/SUPERV/tip1.gif b/doc/salome/gui/SUPERV/tip1.gif new file mode 100755 index 0000000..bb74c87 Binary files /dev/null and b/doc/salome/gui/SUPERV/tip1.gif differ diff --git a/doc/salome/gui/SUPERV/webhelp.cab b/doc/salome/gui/SUPERV/webhelp.cab new file mode 100755 index 0000000..1458608 Binary files /dev/null and b/doc/salome/gui/SUPERV/webhelp.cab differ diff --git a/doc/salome/gui/SUPERV/webhelp.jar b/doc/salome/gui/SUPERV/webhelp.jar new file mode 100755 index 0000000..d985cac Binary files /dev/null and b/doc/salome/gui/SUPERV/webhelp.jar differ diff --git a/doc/salome/gui/SUPERV/whestart.ico b/doc/salome/gui/SUPERV/whestart.ico new file mode 100755 index 0000000..110f183 Binary files /dev/null and b/doc/salome/gui/SUPERV/whestart.ico differ diff --git a/doc/salome/gui/SUPERV/whfbody.htm b/doc/salome/gui/SUPERV/whfbody.htm new file mode 100755 index 0000000..300d23b --- /dev/null +++ b/doc/salome/gui/SUPERV/whfbody.htm @@ -0,0 +1,37 @@ + + +Search Result + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/SUPERV/whfdhtml.htm b/doc/salome/gui/SUPERV/whfdhtml.htm new file mode 100755 index 0000000..ec6c521 --- /dev/null +++ b/doc/salome/gui/SUPERV/whfdhtml.htm @@ -0,0 +1,30 @@ + + +Search Frame + + + + + + + + + diff --git a/doc/salome/gui/SUPERV/whfform.htm b/doc/salome/gui/SUPERV/whfform.htm new file mode 100755 index 0000000..e40b10b --- /dev/null +++ b/doc/salome/gui/SUPERV/whfform.htm @@ -0,0 +1,136 @@ + + +Search Form + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/SUPERV/whfhost.js b/doc/salome/gui/SUPERV/whfhost.js new file mode 100755 index 0000000..a30564d --- /dev/null +++ b/doc/salome/gui/SUPERV/whfhost.js @@ -0,0 +1,916 @@ +var gsSK2=null; +var gsSK=null; +var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7"; +var gnCLF=0; +var gsHelpCannotSearch="Cannot search for that phrase."; +var gsNoTopics="No Topics Found."; +var gsLoadingDivID="LoadingDiv"; +var gsLoadingMsg="Loading data, please wait..."; +var gsSearchMsg="Searching..."; +var gsResultDivID="ResultDiv"; +var gaaFCD=new Array(); +var gaaFTCD=new Array(); +var goCF=null; +var goCTF=null; +var gaTI=null; +var gnCurrentOp=0; +var gbNot=false; +var gbReady=false; +var gnLoadFts=1; +var gnCacheLimits=5; +var gaCCD=new Array(); +var gbXML=false; +var gaData=new Array(); +var gsBgColor="#ffffff"; +var gsBgImage=""; +var gsMargin="0pt"; +var gsIndent="0pt"; +var gsCheckKey=null; +var gnIndexNum=0; +var gaFtsContentsCon=null; +var gaTopicCheckInfo=null; +var gnTopicCheck=0; +var goFont=null; +var goErrFont=null; +var goHoverFont=null; +var gsABgColor="#cccccc"; +var gbWhFHost=false; + +function setBackground(sBgImage) +{ + gsBgImage=sBgImage; +} + +function setBackgroundcolor(sBgColor) +{ + gsBgColor=sBgColor; +} + +function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration) +{ + var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration); + if(sType=="Normal") + goFont=vFont; + else if(sType=="Error") + goErrFont=vFont; + else if(sType=="Hover") + goHoverFont=vFont; +} + +function setActiveBgColor(sBgColor) +{ + gsABgColor=sBgColor; +} + +function setMargin(sMargin) +{ + gsMargin=sMargin; +} + +function setIndent(sIndent) +{ + gsIndent=sIndent; +} + +function updateCache(oCF) +{ + var len=gaCCD.length; + if(len0&&sURL) + { + var topic=new Object(); + topic.sTopicTitle=name; + topic.sTopicURL=sURL; + aTopics[aTopics.length]=topic; + } + } + oChild=oChild.nextSibling; + } + putFtsTData(aTopics); + } + } + else if(gnLoadFts==2) + { + var node=xmlDoc.lastChild; + if(node) + { + var oChild=node.firstChild; + var aFtsContents=new Array(); + while(oChild) + { + if(oChild.nodeName=="key") + { + var name=oChild.getAttribute("name"); + if(name&&name.length>0) + { + var item=new Object(); + item.sItemName=name; + aFtsContents[aFtsContents.length]=item; + var oChildChild=oChild.firstChild; + while(oChildChild) + { + if(oChildChild.nodeName=="#text") + { + var sIDs=oChildChild.nodeValue; + if(sIDs) + { + var nBPos=0; + do + { + var nPos=sIDs.indexOf(",",nBPos); + var sID=null; + if(nPos!=-1) + sID=sIDs.substring(nBPos,nPos); + else + sID=sIDs.substring(nBPos); + + if(sID) + { + var id=parseInt(sID); + if(!isNaN(id)) + { + if(!item.aTopics) + item.aTopics=new Array(); + item.aTopics[item.aTopics.length]=id; + } + } + nBPos=nPos+1; + }while(nBPos!=0&&nBPos0) + { + document.body.background=gsBgImage; + } + if(gsBgColor&&gsBgColor.length>0) + { + document.body.bgColor=gsBgColor; + } + writeResultDiv(); + loadFts(); + var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null) + SendMessage(oMsg); +} + +function writeResultDiv() +{ + var sHTML="
"; + document.body.insertAdjacentHTML("beforeEnd",sHTML); +} + +function loadFts() +{ + if(!gbReady) + { + var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null); + if(SendMessage(oResMsg)&&oResMsg.oParam) + { + gbReady=true; + var oProj=oResMsg.oParam; + var aProj=oProj.aProj; + gbXML=oProj.bXML; + if(aProj.length>0) + { + var sLangId=aProj[0].sLangId; + for(var i=0;i=0)&&(gsFtsBreakChars.charAt(nSep)=="|"))){ + gnCurrentOp=0; + gbNot=false; + }else if((sCW=="and")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="&"))){ + gnCurrentOp=1; + gbNot=false; + }else if((sCW=="not")|| + ((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="~"))){ + gbNot=!gbNot; + }else if(sCW!=""&&!IsStopWord(sCW,gaFtsStop)){ + var sCurrentStem=GetStem(sCW); + gsCW=sCurrentStem; + ftsFindKeyword(); + return; + } + findOneKey(); + return; + } + else{ + displayTopics(); + checkAgain(); + } +} + +function checkAgain() +{ + gsSK=gsSK2; + gsSK2=null; + if(gsSK!=null) + setTimeout("findFTSKey();",1); +} + +function displayTopics() +{ + var sHTML=""; + var sLine=""; + for(var i=0;i"+_textToHtml(gaTI[i].sTopicTitle)+""; + if(i>>4<<4==i) + { + sHTML+=sLine; + sLine=""; + } + } + if(sLine.length>0) + sHTML+=sLine; + + if(sHTML.length==0) + sHTML="

"+gsNoTopics+"

" + else + sHTML="
"+sHTML+"
"; + + var resultDiv=getElement(gsResultDivID); + if(resultDiv) + resultDiv.innerHTML=sHTML; +} + +function displayMsg(sErrorMsg) +{ + var sHTML="

"+sErrorMsg+"

"; + + var resultDiv=getElement(gsResultDivID); + if(resultDiv) + resultDiv.innerHTML=sHTML; +} + +function ftsFindKeyword() +{ + var sKey=gsCW; + var bNeedLoad=false; + var aFtsContentsCon=null; + var s=0; + if(sKey==null) return; + if(!gsCheckKey||sKey!=gsCheckKey||gnIndexNum==0) + { + aFtsContentsCon=new Array(); + gnCheck=0; + gsCheckKey=sKey; + gnTopicCheck=0; + gaTopicCheckInfo=null; + } + else{ + s=gnIndexNum; + aFtsContentsCon=gaFtsContentsCon; + } + for(var i=gnCheck;i=aTI.length) + { + aLS=gaTI; + aSS=aTI; + } + else + { + aLS=aTI; + aSS=gaTI; + } + var s=0; + for(var i=0;i=0) + { + var nM; + var bFound=false; + do{ + nM=(nB+nE)>>1; + if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)>0) + nE=nM-1; + else if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0) + nB=nM+1; + else + { + bFound=true; + break; + } + }while(nB<=nE); + if(bFound) + insertItemIntoArray(aTI,nM,oTI); + else + { + if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0) + insertItemIntoArray(aTI,nM+1,oTI); + else + insertItemIntoArray(aTI,nM,oTI); + } + } + else + aTI[0]=oTI; +} + +function mergeTopics(aTI1,aTI2) +{ + var i1=0; + var i2=0; + var len1=aTI1.length; + var len2=aTI2.length; + var aTopicNew=new Array(); + var i=0; + while(i1>1; + if(compare(keys[nM].sItemName,sKey)>0) + nE=nM-1; + else if(compare(keys[nM].sItemName,sKey)<0) + nB=nM+1; + else{ + bFound=true; + break; + } + }while(nB<=nE); + if(bFound) + { + if(keys[nM].aTopics) + { + for(var i=0;i>1; + if(aFTCD[nM].nBegin>nTopicId) + nE=nM-1; + else if(aFTCD[nM].nEnd

+Related Topics