svghmi/gen_index_xhtml.xslt
branchsvghmi
changeset 2925 220172cbdcff
parent 2924 69bb58eb0eac
child 2926 90f9d9782632
equal deleted inserted replaced
2924:69bb58eb0eac 2925:220172cbdcff
   849 </xsl:text>
   849 </xsl:text>
   850     <xsl:text>        bmargin = this.box_bbox.height - this.text_bbox.height - tmargin;
   850     <xsl:text>        bmargin = this.box_bbox.height - this.text_bbox.height - tmargin;
   851 </xsl:text>
   851 </xsl:text>
   852     <xsl:text>        this.margins = [lmargin, tmargin, rmargin, bmargin].map(x =&gt; Math.max(x,0));
   852     <xsl:text>        this.margins = [lmargin, tmargin, rmargin, bmargin].map(x =&gt; Math.max(x,0));
   853 </xsl:text>
   853 </xsl:text>
   854     <xsl:text>        this.content = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"];
   854     <xsl:text>        this.content = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten",
       
   855 </xsl:text>
       
   856     <xsl:text>                        "eleven", "twelve", "thirteen", "fourteen", "fifteen"];
   855 </xsl:text>
   857 </xsl:text>
   856     <xsl:text>        //this.content = ["one", "two", "three", "four", "5", "6"];
   858     <xsl:text>        //this.content = ["one", "two", "three", "four", "5", "6"];
   857 </xsl:text>
   859 </xsl:text>
   858     <xsl:text>        this.menu_offset = 0;
   860     <xsl:text>        this.menu_offset = 0;
   859 </xsl:text>
   861 </xsl:text>
   871 </xsl:text>
   873 </xsl:text>
   872     <xsl:text>    on_click: function() {
   874     <xsl:text>    on_click: function() {
   873 </xsl:text>
   875 </xsl:text>
   874     <xsl:text>        if(this.opened){
   876     <xsl:text>        if(this.opened){
   875 </xsl:text>
   877 </xsl:text>
   876     <xsl:text>            this.close();
   878     <xsl:text>            //this.close();
   877 </xsl:text>
   879 </xsl:text>
   878     <xsl:text>        }else{
   880     <xsl:text>        }else{
   879 </xsl:text>
   881 </xsl:text>
   880     <xsl:text>            this.open();
   882     <xsl:text>            this.open();
   881 </xsl:text>
   883 </xsl:text>
   882     <xsl:text>        }
   884     <xsl:text>        }
       
   885 </xsl:text>
       
   886     <xsl:text>    },
       
   887 </xsl:text>
       
   888     <xsl:text>    on_backward_click:function(){
       
   889 </xsl:text>
       
   890     <xsl:text>        this.move(false);
       
   891 </xsl:text>
       
   892     <xsl:text>    },
       
   893 </xsl:text>
       
   894     <xsl:text>    on_forward_click:function(){
       
   895 </xsl:text>
       
   896     <xsl:text>        this.move(true);
   883 </xsl:text>
   897 </xsl:text>
   884     <xsl:text>    },
   898     <xsl:text>    },
   885 </xsl:text>
   899 </xsl:text>
   886     <xsl:text>    set_selection: function(value) {
   900     <xsl:text>    set_selection: function(value) {
   887 </xsl:text>
   901 </xsl:text>
   987 </xsl:text>
  1001 </xsl:text>
   988     <xsl:text>        }
  1002     <xsl:text>        }
   989 </xsl:text>
  1003 </xsl:text>
   990     <xsl:text>    },
  1004     <xsl:text>    },
   991 </xsl:text>
  1005 </xsl:text>
       
  1006     <xsl:text>    move: function(forward){
       
  1007 </xsl:text>
       
  1008     <xsl:text>        let contentlength = this.content.length;
       
  1009 </xsl:text>
       
  1010     <xsl:text>        let spans = this.text_elt.children; 
       
  1011 </xsl:text>
       
  1012     <xsl:text>        let spanslength = spans.length;
       
  1013 </xsl:text>
       
  1014     <xsl:text>        if(this.menu_offset != 0) spanslength--;
       
  1015 </xsl:text>
       
  1016     <xsl:text>        if(this.menu_offset &lt; contentlength - 1) spanslength--;
       
  1017 </xsl:text>
       
  1018     <xsl:text>        if(forward){
       
  1019 </xsl:text>
       
  1020     <xsl:text>            this.menu_offset = Math.min(
       
  1021 </xsl:text>
       
  1022     <xsl:text>                contentlength - spans.length + 1, 
       
  1023 </xsl:text>
       
  1024     <xsl:text>                this.menu_offset + spanslength);
       
  1025 </xsl:text>
       
  1026     <xsl:text>        }else{
       
  1027 </xsl:text>
       
  1028     <xsl:text>            this.menu_offset = Math.max(
       
  1029 </xsl:text>
       
  1030     <xsl:text>                0, 
       
  1031 </xsl:text>
       
  1032     <xsl:text>                this.menu_offset - spanslength);
       
  1033 </xsl:text>
       
  1034     <xsl:text>        }
       
  1035 </xsl:text>
       
  1036     <xsl:text>        console.log(this.menu_offset);
       
  1037 </xsl:text>
       
  1038     <xsl:text>        this.set_partial_text();
       
  1039 </xsl:text>
       
  1040     <xsl:text>    },
       
  1041 </xsl:text>
   992     <xsl:text>    set_partial_text: function(){
  1042     <xsl:text>    set_partial_text: function(){
   993 </xsl:text>
  1043 </xsl:text>
   994     <xsl:text>        let spans = this.text_elt.children; 
  1044     <xsl:text>        let spans = this.text_elt.children; 
   995 </xsl:text>
  1045 </xsl:text>
   996     <xsl:text>        let length = this.content.length;
  1046     <xsl:text>        let contentlength = this.content.length;
       
  1047 </xsl:text>
       
  1048     <xsl:text>        let spanslength = spans.length;
   997 </xsl:text>
  1049 </xsl:text>
   998     <xsl:text>        let i = this.menu_offset, c = 0;
  1050     <xsl:text>        let i = this.menu_offset, c = 0;
   999 </xsl:text>
  1051 </xsl:text>
  1000     <xsl:text>        while(c &lt; spans.length){
  1052     <xsl:text>        while(c &lt; spanslength){
       
  1053 </xsl:text>
       
  1054     <xsl:text>            let span=spans[c];
  1001 </xsl:text>
  1055 </xsl:text>
  1002     <xsl:text>            if(c == 0 &amp;&amp; i != 0){
  1056     <xsl:text>            if(c == 0 &amp;&amp; i != 0){
  1003 </xsl:text>
  1057 </xsl:text>
  1004     <xsl:text>                spans[c].textContent = "...";
  1058     <xsl:text>                span.textContent = "&#x2191;  &#x2191;  &#x2191;";
  1005 </xsl:text>
  1059 </xsl:text>
  1006     <xsl:text>                /* TODO: set onclick */
  1060     <xsl:text>                span.setAttribute("onclick", "hmi_widgets['</xsl:text>
  1007 </xsl:text>
  1061     <xsl:value-of select="$hmi_element/@id"/>
  1008     <xsl:text>            }else if(c == spans.length-1 &amp;&amp; i &lt; length - 1)
  1062     <xsl:text>'].on_backward_click()");
  1009 </xsl:text>
  1063 </xsl:text>
  1010     <xsl:text>                spans[c].textContent = "...";
  1064     <xsl:text>            }else if(c == spanslength-1 &amp;&amp; i &lt; contentlength - 1){
  1011 </xsl:text>
  1065 </xsl:text>
  1012     <xsl:text>                /* TODO: set onclick */
  1066     <xsl:text>                span.textContent = "&#x2193;  &#x2193;  &#x2193;";
  1013 </xsl:text>
  1067 </xsl:text>
  1014     <xsl:text>            else{
  1068     <xsl:text>                span.setAttribute("onclick", "hmi_widgets['</xsl:text>
  1015 </xsl:text>
  1069     <xsl:value-of select="$hmi_element/@id"/>
  1016     <xsl:text>                let span=spans[c];
  1070     <xsl:text>'].on_forward_click()");
       
  1071 </xsl:text>
       
  1072     <xsl:text>            }else{
  1017 </xsl:text>
  1073 </xsl:text>
  1018     <xsl:text>                span.textContent = this.content[i];
  1074     <xsl:text>                span.textContent = this.content[i];
  1019 </xsl:text>
       
  1020     <xsl:text>                /* TODO: set onclick */
       
  1021 </xsl:text>
  1075 </xsl:text>
  1022     <xsl:text>                span.setAttribute("onclick", "hmi_widgets['</xsl:text>
  1076     <xsl:text>                span.setAttribute("onclick", "hmi_widgets['</xsl:text>
  1023     <xsl:value-of select="$hmi_element/@id"/>
  1077     <xsl:value-of select="$hmi_element/@id"/>
  1024     <xsl:text>'].on_selection_click("+i+")");
  1078     <xsl:text>'].on_selection_click("+i+")");
  1025 </xsl:text>
  1079 </xsl:text>