402 <xsl:text> |
402 <xsl:text> |
403 </xsl:text> |
403 </xsl:text> |
404 </xsl:for-each> |
404 </xsl:for-each> |
405 <xsl:text> ], |
405 <xsl:text> ], |
406 </xsl:text> |
406 </xsl:text> |
|
407 <xsl:text> jumps: [ |
|
408 </xsl:text> |
|
409 <xsl:for-each select="$parsed_widgets/widget[@id = $all_page_widgets/@id and @type='Jump']"> |
|
410 <xsl:variable name="_id" select="@id"/> |
|
411 <xsl:variable name="opts"> |
|
412 <xsl:call-template name="jump_widget_activity"> |
|
413 <xsl:with-param name="hmi_element" select="$hmi_elements[@id=$_id]"/> |
|
414 </xsl:call-template> |
|
415 </xsl:variable> |
|
416 <xsl:if test="string-length($opts)>0"> |
|
417 <xsl:text> hmi_widgets["</xsl:text> |
|
418 <xsl:value-of select="@id"/> |
|
419 <xsl:text>"]</xsl:text> |
|
420 <xsl:if test="position()!=last()"> |
|
421 <xsl:text>,</xsl:text> |
|
422 </xsl:if> |
|
423 <xsl:text> |
|
424 </xsl:text> |
|
425 </xsl:if> |
|
426 </xsl:for-each> |
|
427 <xsl:text> ], |
|
428 </xsl:text> |
407 <xsl:text> required_detachables: { |
429 <xsl:text> required_detachables: { |
408 </xsl:text> |
430 </xsl:text> |
409 <xsl:for-each select="$required_detachables"> |
431 <xsl:for-each select="$required_detachables"> |
410 <xsl:text> "</xsl:text> |
432 <xsl:text> "</xsl:text> |
411 <xsl:value-of select="@id"/> |
433 <xsl:value-of select="@id"/> |
909 </xsl:text> |
931 </xsl:text> |
910 </xsl:for-each> |
932 </xsl:for-each> |
911 <xsl:text> }, |
933 <xsl:text> }, |
912 </xsl:text> |
934 </xsl:text> |
913 </xsl:template> |
935 </xsl:template> |
|
936 <xsl:template name="jump_widget_activity"> |
|
937 <xsl:param name="hmi_element"/> |
|
938 <xsl:call-template name="defs_by_labels"> |
|
939 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
|
940 <xsl:with-param name="labels"> |
|
941 <xsl:text>active inactive</xsl:text> |
|
942 </xsl:with-param> |
|
943 <xsl:with-param name="mandatory" select="'no'"/> |
|
944 </xsl:call-template> |
|
945 </xsl:template> |
914 <xsl:template mode="widget_defs" match="widget[@type='Jump']"> |
946 <xsl:template mode="widget_defs" match="widget[@type='Jump']"> |
915 <xsl:param name="hmi_element"/> |
947 <xsl:param name="hmi_element"/> |
|
948 <xsl:variable name="opts"> |
|
949 <xsl:call-template name="jump_widget_activity"> |
|
950 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
|
951 </xsl:call-template> |
|
952 </xsl:variable> |
|
953 <xsl:variable name="have_opt" select="string-length($opts)>0"/> |
|
954 <xsl:value-of select="$opts"/> |
916 <xsl:text> on_click: function(evt) { |
955 <xsl:text> on_click: function(evt) { |
917 </xsl:text> |
956 </xsl:text> |
918 <xsl:text> const index = this.indexes.length > 0 ? this.indexes[0] + this.offset : undefined; |
957 <xsl:text> const index = this.indexes.length > 0 ? this.indexes[0] + this.offset : undefined; |
919 </xsl:text> |
958 </xsl:text> |
920 <xsl:text> const name = this.args[0]; |
959 <xsl:text> const name = this.args[0]; |
921 </xsl:text> |
960 </xsl:text> |
922 <xsl:text> switch_page(name, index); |
961 <xsl:text> switch_page(name, index); |
923 </xsl:text> |
962 </xsl:text> |
924 <xsl:text> }, |
963 <xsl:text> }, |
925 </xsl:text> |
964 </xsl:text> |
|
965 <xsl:if test="$have_opt"> |
|
966 <xsl:text> notify_page_change: function(page_name, index){ |
|
967 </xsl:text> |
|
968 <xsl:text> const ref_index = this.indexes.length > 0 ? this.indexes[0] + this.offset : undefined; |
|
969 </xsl:text> |
|
970 <xsl:text> const ref_name = this.args[0]; |
|
971 </xsl:text> |
|
972 <xsl:text> if((ref_name == undefined || ref_name == page_name) && index == ref_index) { |
|
973 </xsl:text> |
|
974 <xsl:text> console.log("active", ref_name, ref_index, page_name, index); |
|
975 </xsl:text> |
|
976 <xsl:text> /* show active */ |
|
977 </xsl:text> |
|
978 <xsl:text> this.active_elt.setAttribute("style", this.active_elt_style); |
|
979 </xsl:text> |
|
980 <xsl:text> /* hide inactive */ |
|
981 </xsl:text> |
|
982 <xsl:text> this.inactive_elt.setAttribute("style", "display:none"); |
|
983 </xsl:text> |
|
984 <xsl:text> } else { |
|
985 </xsl:text> |
|
986 <xsl:text> console.log("inactive",ref_name, ref_index, page_name, index); |
|
987 </xsl:text> |
|
988 <xsl:text> /* show inactive */ |
|
989 </xsl:text> |
|
990 <xsl:text> this.inactive_elt.setAttribute("style", this.inactive_elt_style); |
|
991 </xsl:text> |
|
992 <xsl:text> /* hide active */ |
|
993 </xsl:text> |
|
994 <xsl:text> this.active_elt.setAttribute("style", "display:none"); |
|
995 </xsl:text> |
|
996 <xsl:text> } |
|
997 </xsl:text> |
|
998 <xsl:text> }, |
|
999 </xsl:text> |
|
1000 </xsl:if> |
926 <xsl:text> init: function() { |
1001 <xsl:text> init: function() { |
927 </xsl:text> |
1002 </xsl:text> |
928 <xsl:text> this.element.setAttribute("onclick", "hmi_widgets['</xsl:text> |
1003 <xsl:text> this.element.setAttribute("onclick", "hmi_widgets['</xsl:text> |
929 <xsl:value-of select="$hmi_element/@id"/> |
1004 <xsl:value-of select="$hmi_element/@id"/> |
930 <xsl:text>'].on_click(evt)"); |
1005 <xsl:text>'].on_click(evt)"); |
931 </xsl:text> |
1006 </xsl:text> |
|
1007 <xsl:if test="$have_opt"> |
|
1008 <xsl:text> this.active_elt_style = this.active_elt.getAttribute("style"); |
|
1009 </xsl:text> |
|
1010 <xsl:text> this.inactive_elt_style = this.inactive_elt.getAttribute("style"); |
|
1011 </xsl:text> |
|
1012 </xsl:if> |
932 <xsl:text> }, |
1013 <xsl:text> }, |
933 </xsl:text> |
1014 </xsl:text> |
934 </xsl:template> |
1015 </xsl:template> |
935 <xsl:template mode="per_page_widget_template" match="widget[@type='Jump']"> |
1016 <xsl:template mode="per_page_widget_template" match="widget[@type='Jump']"> |
936 <xsl:param name="page_desc"/> |
1017 <xsl:param name="page_desc"/> |
1772 </xsl:text> |
1861 </xsl:text> |
1773 <xsl:text> page_name = current_subscribed_page; |
1862 <xsl:text> page_name = current_subscribed_page; |
1774 </xsl:text> |
1863 </xsl:text> |
1775 <xsl:text> |
1864 <xsl:text> |
1776 </xsl:text> |
1865 </xsl:text> |
1777 <xsl:text> return switch_subscribed_page(page_name, page_index); |
1866 <xsl:text> |
|
1867 </xsl:text> |
|
1868 <xsl:text> let old_desc = page_desc[current_subscribed_page]; |
|
1869 </xsl:text> |
|
1870 <xsl:text> let new_desc = page_desc[page_name]; |
|
1871 </xsl:text> |
|
1872 <xsl:text> |
|
1873 </xsl:text> |
|
1874 <xsl:text> if(new_desc == undefined){ |
|
1875 </xsl:text> |
|
1876 <xsl:text> /* TODO LOG ERROR */ |
|
1877 </xsl:text> |
|
1878 <xsl:text> return false; |
|
1879 </xsl:text> |
|
1880 <xsl:text> } |
|
1881 </xsl:text> |
|
1882 <xsl:text> |
|
1883 </xsl:text> |
|
1884 <xsl:text> if(page_index == undefined){ |
|
1885 </xsl:text> |
|
1886 <xsl:text> page_index = new_desc.page_index; |
|
1887 </xsl:text> |
|
1888 <xsl:text> } |
|
1889 </xsl:text> |
|
1890 <xsl:text> |
|
1891 </xsl:text> |
|
1892 <xsl:text> if(old_desc){ |
|
1893 </xsl:text> |
|
1894 <xsl:text> old_desc.absolute_widgets.map(w=>w.unsub()); |
|
1895 </xsl:text> |
|
1896 <xsl:text> old_desc.relative_widgets.map(w=>w.unsub()); |
|
1897 </xsl:text> |
|
1898 <xsl:text> } |
|
1899 </xsl:text> |
|
1900 <xsl:text> new_desc.absolute_widgets.map(w=>w.sub()); |
|
1901 </xsl:text> |
|
1902 <xsl:text> var new_offset = page_index == undefined ? 0 : page_index - new_desc.page_index; |
|
1903 </xsl:text> |
|
1904 <xsl:text> new_desc.relative_widgets.map(w=>w.sub(new_offset)); |
|
1905 </xsl:text> |
|
1906 <xsl:text> |
|
1907 </xsl:text> |
|
1908 <xsl:text> update_subscriptions(); |
|
1909 </xsl:text> |
|
1910 <xsl:text> |
|
1911 </xsl:text> |
|
1912 <xsl:text> current_subscribed_page = page_name; |
|
1913 </xsl:text> |
|
1914 <xsl:text> current_page_index = page_index; |
|
1915 </xsl:text> |
|
1916 <xsl:text> |
|
1917 </xsl:text> |
|
1918 <xsl:text> jumps_need_update = true; |
|
1919 </xsl:text> |
|
1920 <xsl:text> |
|
1921 </xsl:text> |
|
1922 <xsl:text> requestHMIAnimation(); |
|
1923 </xsl:text> |
|
1924 <xsl:text> |
|
1925 </xsl:text> |
|
1926 <xsl:text> jump_history.push([page_name, page_index]); |
|
1927 </xsl:text> |
|
1928 <xsl:text> |
|
1929 </xsl:text> |
|
1930 <xsl:text> return true; |
1778 </xsl:text> |
1931 </xsl:text> |
1779 <xsl:text>}; |
1932 <xsl:text>}; |
1780 </xsl:text> |
1933 </xsl:text> |
1781 <xsl:text> |
1934 <xsl:text> |
1782 </xsl:text> |
1935 </xsl:text> |
1944 </xsl:text> |
2097 </xsl:text> |
1945 <xsl:text> update_subscriptions(); |
2098 <xsl:text> update_subscriptions(); |
1946 </xsl:text> |
2099 </xsl:text> |
1947 <xsl:text> need_cache_apply.push(this); |
2100 <xsl:text> need_cache_apply.push(this); |
1948 </xsl:text> |
2101 </xsl:text> |
|
2102 <xsl:text> jumps_need_update = true; |
|
2103 </xsl:text> |
1949 <xsl:text> requestHMIAnimation(); |
2104 <xsl:text> requestHMIAnimation(); |
1950 </xsl:text> |
2105 </xsl:text> |
1951 <xsl:text> console.log(opstr, new_item_offset); |
2106 <xsl:text> console.log(opstr, new_item_offset); |
1952 </xsl:text> |
2107 </xsl:text> |
1953 <xsl:text>} |
2108 <xsl:text>} |
1954 </xsl:text> |
2109 </xsl:text> |
1955 <xsl:text> |
2110 <xsl:text> |
1956 </xsl:text> |
2111 </xsl:text> |
1957 <xsl:text>function switch_subscribed_page(page_name, page_index) { |
2112 <xsl:text> |
1958 </xsl:text> |
2113 </xsl:text> |
1959 <xsl:text> let old_desc = page_desc[current_subscribed_page]; |
2114 <xsl:text>function switch_visible_page(page_name) { |
|
2115 </xsl:text> |
|
2116 <xsl:text> |
|
2117 </xsl:text> |
|
2118 <xsl:text> let old_desc = page_desc[current_visible_page]; |
1960 </xsl:text> |
2119 </xsl:text> |
1961 <xsl:text> let new_desc = page_desc[page_name]; |
2120 <xsl:text> let new_desc = page_desc[page_name]; |
1962 </xsl:text> |
2121 </xsl:text> |
1963 <xsl:text> |
2122 <xsl:text> |
1964 </xsl:text> |
2123 </xsl:text> |
1965 <xsl:text> if(new_desc == undefined){ |
|
1966 </xsl:text> |
|
1967 <xsl:text> /* TODO LOG ERROR */ |
|
1968 </xsl:text> |
|
1969 <xsl:text> return false; |
|
1970 </xsl:text> |
|
1971 <xsl:text> } |
|
1972 </xsl:text> |
|
1973 <xsl:text> |
|
1974 </xsl:text> |
|
1975 <xsl:text> if(page_index == undefined){ |
|
1976 </xsl:text> |
|
1977 <xsl:text> page_index = new_desc.page_index; |
|
1978 </xsl:text> |
|
1979 <xsl:text> } |
|
1980 </xsl:text> |
|
1981 <xsl:text> |
|
1982 </xsl:text> |
|
1983 <xsl:text> if(old_desc){ |
2124 <xsl:text> if(old_desc){ |
1984 </xsl:text> |
2125 </xsl:text> |
1985 <xsl:text> old_desc.absolute_widgets.map(w=>w.unsub()); |
|
1986 </xsl:text> |
|
1987 <xsl:text> old_desc.relative_widgets.map(w=>w.unsub()); |
|
1988 </xsl:text> |
|
1989 <xsl:text> } |
|
1990 </xsl:text> |
|
1991 <xsl:text> new_desc.absolute_widgets.map(w=>w.sub()); |
|
1992 </xsl:text> |
|
1993 <xsl:text> var new_offset = page_index == undefined ? 0 : page_index - new_desc.page_index; |
|
1994 </xsl:text> |
|
1995 <xsl:text> new_desc.relative_widgets.map(w=>w.sub(new_offset)); |
|
1996 </xsl:text> |
|
1997 <xsl:text> |
|
1998 </xsl:text> |
|
1999 <xsl:text> update_subscriptions(); |
|
2000 </xsl:text> |
|
2001 <xsl:text> |
|
2002 </xsl:text> |
|
2003 <xsl:text> current_subscribed_page = page_name; |
|
2004 </xsl:text> |
|
2005 <xsl:text> |
|
2006 </xsl:text> |
|
2007 <xsl:text> requestHMIAnimation(); |
|
2008 </xsl:text> |
|
2009 <xsl:text> |
|
2010 </xsl:text> |
|
2011 <xsl:text> jump_history.push([page_name, page_index]); |
|
2012 </xsl:text> |
|
2013 <xsl:text> |
|
2014 </xsl:text> |
|
2015 <xsl:text> return true; |
|
2016 </xsl:text> |
|
2017 <xsl:text>} |
|
2018 </xsl:text> |
|
2019 <xsl:text> |
|
2020 </xsl:text> |
|
2021 <xsl:text>function switch_visible_page(page_name) { |
|
2022 </xsl:text> |
|
2023 <xsl:text> |
|
2024 </xsl:text> |
|
2025 <xsl:text> let old_desc = page_desc[current_visible_page]; |
|
2026 </xsl:text> |
|
2027 <xsl:text> let new_desc = page_desc[page_name]; |
|
2028 </xsl:text> |
|
2029 <xsl:text> |
|
2030 </xsl:text> |
|
2031 <xsl:text> if(old_desc){ |
|
2032 </xsl:text> |
|
2033 <xsl:text> for(let eltid in old_desc.required_detachables){ |
2126 <xsl:text> for(let eltid in old_desc.required_detachables){ |
2034 </xsl:text> |
2127 </xsl:text> |
2035 <xsl:text> if(!(eltid in new_desc.required_detachables)){ |
2128 <xsl:text> if(!(eltid in new_desc.required_detachables)){ |
2036 </xsl:text> |
2129 </xsl:text> |
2037 <xsl:text> let [element, parent] = old_desc.required_detachables[eltid]; |
2130 <xsl:text> let [element, parent] = old_desc.required_detachables[eltid]; |