678 <xsl:otherwise> |
678 <xsl:otherwise> |
679 <func:result select="$txt"/> |
679 <func:result select="$txt"/> |
680 </xsl:otherwise> |
680 </xsl:otherwise> |
681 </xsl:choose> |
681 </xsl:choose> |
682 </func:function> |
682 </func:function> |
683 <xsl:template mode="widget_defs" match="widget[@type='ForEach']"> |
|
684 <xsl:param name="hmi_element"/> |
|
685 <xsl:text> frequency: 2, |
|
686 </xsl:text> |
|
687 <xsl:text> dispatch: function(value) { |
|
688 </xsl:text> |
|
689 <xsl:text> // do something |
|
690 </xsl:text> |
|
691 <xsl:text> }, |
|
692 </xsl:text> |
|
693 <xsl:text> init: function() { |
|
694 </xsl:text> |
|
695 <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]"> |
|
696 <xsl:text> id("</xsl:text> |
|
697 <xsl:value-of select="@id"/> |
|
698 <xsl:text>").addEventListener( |
|
699 </xsl:text> |
|
700 <xsl:text> "click", |
|
701 </xsl:text> |
|
702 <xsl:text> evt => {let new_val = "</xsl:text> |
|
703 <xsl:value-of select="func:escape_quotes(@inkscape:label)"/> |
|
704 <xsl:text>"); |
|
705 </xsl:text> |
|
706 <xsl:text> // do something with new_val |
|
707 </xsl:text> |
|
708 <xsl:text> }); |
|
709 </xsl:text> |
|
710 </xsl:for-each> |
|
711 <xsl:text> }, |
|
712 </xsl:text> |
|
713 </xsl:template> |
|
714 <xsl:template mode="widget_subscribe" match="widget[@type='ForEach']"> |
|
715 <xsl:text> sub: function(off){ |
|
716 </xsl:text> |
|
717 <xsl:text> subscribe.call(this,off) |
|
718 </xsl:text> |
|
719 <xsl:text> }, |
|
720 </xsl:text> |
|
721 <xsl:text> unsub: function(){ |
|
722 </xsl:text> |
|
723 <xsl:text> unsubscribe.call(this) |
|
724 </xsl:text> |
|
725 <xsl:text> }, |
|
726 </xsl:text> |
|
727 </xsl:template> |
|
728 <xsl:template mode="widget_defs" match="widget[@type='Display']"> |
683 <xsl:template mode="widget_defs" match="widget[@type='Display']"> |
729 <xsl:param name="hmi_element"/> |
684 <xsl:param name="hmi_element"/> |
730 <xsl:text> frequency: 5, |
685 <xsl:text> frequency: 5, |
731 </xsl:text> |
686 </xsl:text> |
732 <xsl:text> dispatch: function(value) { |
687 <xsl:text> dispatch: function(value) { |
740 <xsl:message terminate="no"> |
695 <xsl:message terminate="no"> |
741 <xsl:text>Display widget as a group not implemented</xsl:text> |
696 <xsl:text>Display widget as a group not implemented</xsl:text> |
742 </xsl:message> |
697 </xsl:message> |
743 </xsl:otherwise> |
698 </xsl:otherwise> |
744 </xsl:choose> |
699 </xsl:choose> |
|
700 <xsl:text> }, |
|
701 </xsl:text> |
|
702 </xsl:template> |
|
703 <xsl:template mode="widget_defs" match="widget[@type='ForEach']"> |
|
704 <xsl:param name="hmi_element"/> |
|
705 <xsl:variable name="widgets" select="func:refered_elements($forEach_widgets)[not(@id = $forEach_widgets_ids)]"/> |
|
706 <xsl:text> frequency: 2, |
|
707 </xsl:text> |
|
708 <xsl:text> dispatch: function(value) { |
|
709 </xsl:text> |
|
710 <xsl:text> // do something |
|
711 </xsl:text> |
|
712 <xsl:text> }, |
|
713 </xsl:text> |
|
714 <xsl:text> init: function() { |
|
715 </xsl:text> |
|
716 <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]"> |
|
717 <xsl:text> id("</xsl:text> |
|
718 <xsl:value-of select="@id"/> |
|
719 <xsl:text>").addEventListener( |
|
720 </xsl:text> |
|
721 <xsl:text> "click", |
|
722 </xsl:text> |
|
723 <xsl:text> evt => {let new_val = "</xsl:text> |
|
724 <xsl:value-of select="func:escape_quotes(@inkscape:label)"/> |
|
725 <xsl:text>"); |
|
726 </xsl:text> |
|
727 <xsl:text> // do something with new_val |
|
728 </xsl:text> |
|
729 <xsl:text> }); |
|
730 </xsl:text> |
|
731 </xsl:for-each> |
|
732 <xsl:text> }, |
|
733 </xsl:text> |
|
734 <xsl:text> widgets: [ |
|
735 </xsl:text> |
|
736 <xsl:variable name="labels_regex" select="concat('^',arg[1]/@value,':[0-9]+')"/> |
|
737 <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label, $labels_regex)]"> |
|
738 <xsl:text> [ /* </xsl:text> |
|
739 <xsl:value-of select="@inkscape:label"/> |
|
740 <xsl:text> */ |
|
741 </xsl:text> |
|
742 <xsl:variable name="elt" select="."/> |
|
743 <xsl:for-each select="func:refered_elements(.)[@id = $hmi_elements/@id][not(@id = $elt/@id)]"> |
|
744 <xsl:text> hmi_widgets["</xsl:text> |
|
745 <xsl:value-of select="@id"/> |
|
746 <xsl:text>"]</xsl:text> |
|
747 <xsl:if test="position()!=last()"> |
|
748 <xsl:text>,</xsl:text> |
|
749 </xsl:if> |
|
750 <xsl:text> |
|
751 </xsl:text> |
|
752 </xsl:for-each> |
|
753 <xsl:text> ]</xsl:text> |
|
754 <xsl:if test="position()!=last()"> |
|
755 <xsl:text>,</xsl:text> |
|
756 </xsl:if> |
|
757 <xsl:text> |
|
758 </xsl:text> |
|
759 </xsl:for-each> |
|
760 <xsl:text> ], |
|
761 </xsl:text> |
|
762 </xsl:template> |
|
763 <xsl:template mode="widget_subscribe" match="widget[@type='ForEach']"> |
|
764 <xsl:text> sub: function(off){ |
|
765 </xsl:text> |
|
766 <xsl:text> subscribe.call(this,off) |
|
767 </xsl:text> |
|
768 <xsl:text> }, |
|
769 </xsl:text> |
|
770 <xsl:text> unsub: function(){ |
|
771 </xsl:text> |
|
772 <xsl:text> unsubscribe.call(this) |
|
773 </xsl:text> |
745 <xsl:text> }, |
774 <xsl:text> }, |
746 </xsl:text> |
775 </xsl:text> |
747 </xsl:template> |
776 </xsl:template> |
748 <xsl:template mode="widget_defs" match="widget[@type='Input']"> |
777 <xsl:template mode="widget_defs" match="widget[@type='Input']"> |
749 <xsl:param name="hmi_element"/> |
778 <xsl:param name="hmi_element"/> |