svghmi/gen_index_xhtml.xslt
branchsvghmi
changeset 2851 8d15c6238e62
parent 2850 e38654ec6281
child 2852 f7349ca820c9
equal deleted inserted replaced
2850:e38654ec6281 2851:8d15c6238e62
  1263         <xsl:with-param name="mandatory" select="'no'"/>
  1263         <xsl:with-param name="mandatory" select="'no'"/>
  1264       </xsl:call-template>
  1264       </xsl:call-template>
  1265     </xsl:variable>
  1265     </xsl:variable>
  1266     <xsl:value-of select="$value_elt"/>
  1266     <xsl:value-of select="$value_elt"/>
  1267     <xsl:if test="$value_elt">
  1267     <xsl:if test="$value_elt">
  1268       <xsl:text>frequency: 5,
  1268       <xsl:text>    frequency: 5,
  1269 </xsl:text>
  1269 </xsl:text>
  1270     </xsl:if>
  1270     </xsl:if>
  1271     <xsl:text>dispatch: function(value) {
  1271     <xsl:text>    dispatch: function(value) {
  1272 </xsl:text>
  1272 </xsl:text>
  1273     <xsl:if test="$value_elt">
  1273     <xsl:if test="$value_elt">
  1274       <xsl:text>    this.value_elt.textContent = String(value);
  1274       <xsl:text>        this.value_elt.textContent = String(value);
  1275 </xsl:text>
  1275 </xsl:text>
  1276     </xsl:if>
  1276     </xsl:if>
  1277     <xsl:text>},
  1277     <xsl:text>    },
  1278 </xsl:text>
  1278 </xsl:text>
  1279     <xsl:variable name="edit_elt_id" select="$hmi_element/*[@inkscape:label='edit'][1]/@id"/>
  1279     <xsl:variable name="edit_elt_id" select="$hmi_element/*[@inkscape:label='edit'][1]/@id"/>
  1280     <xsl:text>init: function() {
  1280     <xsl:text>    init: function() {
  1281 </xsl:text>
  1281 </xsl:text>
  1282     <xsl:if test="$edit_elt_id">
  1282     <xsl:if test="$edit_elt_id">
  1283       <xsl:text>    id("</xsl:text>
  1283       <xsl:text>        id("</xsl:text>
  1284       <xsl:value-of select="$edit_elt_id"/>
  1284       <xsl:value-of select="$edit_elt_id"/>
  1285       <xsl:text>").addEventListener(
  1285       <xsl:text>").addEventListener(
  1286 </xsl:text>
  1286 </xsl:text>
  1287       <xsl:text>        "click", 
  1287       <xsl:text>            "click", 
  1288 </xsl:text>
  1288 </xsl:text>
  1289       <xsl:text>        evt =&gt; alert('XXX TODO : Edit value'));
  1289       <xsl:text>            evt =&gt; alert('XXX TODO : Edit value'));
  1290 </xsl:text>
  1290 </xsl:text>
  1291     </xsl:if>
  1291     </xsl:if>
  1292     <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]">
  1292     <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]">
  1293       <xsl:text>    id("</xsl:text>
  1293       <xsl:text>        id("</xsl:text>
  1294       <xsl:value-of select="@id"/>
  1294       <xsl:value-of select="@id"/>
  1295       <xsl:text>").addEventListener(
  1295       <xsl:text>").addEventListener(
  1296 </xsl:text>
  1296 </xsl:text>
  1297       <xsl:text>        "click", 
  1297       <xsl:text>            "click", 
  1298 </xsl:text>
  1298 </xsl:text>
  1299       <xsl:text>        evt =&gt; {let new_val = change_hmi_value(this.indexes[0], "</xsl:text>
  1299       <xsl:text>            evt =&gt; {let new_val = change_hmi_value(this.indexes[0], "</xsl:text>
  1300       <xsl:value-of select="func:escape_quotes(@inkscape:label)"/>
  1300       <xsl:value-of select="func:escape_quotes(@inkscape:label)"/>
  1301       <xsl:text>");
  1301       <xsl:text>");
  1302 </xsl:text>
  1302 </xsl:text>
  1303       <xsl:text>                this.value_elt.textContent = String(new_val);});
  1303       <xsl:text>                    this.value_elt.textContent = String(new_val);});
  1304 </xsl:text>
  1304 </xsl:text>
  1305     </xsl:for-each>
  1305     </xsl:for-each>
  1306     <xsl:text>},
  1306     <xsl:text>    },
  1307 </xsl:text>
  1307 </xsl:text>
  1308   </xsl:template>
  1308   </xsl:template>
  1309   <xsl:template mode="widget_defs" match="widget[@type='Button']"/>
  1309   <xsl:template mode="widget_defs" match="widget[@type='Button']"/>
  1310   <xsl:template mode="widget_defs" match="widget[@type='Toggle']">
  1310   <xsl:template mode="widget_defs" match="widget[@type='Toggle']">
  1311     <xsl:text>    frequency: 5,
  1311     <xsl:text>    frequency: 5,
  1312 </xsl:text>
  1312 </xsl:text>
  1313   </xsl:template>
  1313   </xsl:template>
  1314   <xsl:template mode="widget_defs" match="widget[@type='Switch']">
  1314   <xsl:template mode="widget_defs" match="widget[@type='Switch']">
  1315     <xsl:param name="hmi_element"/>
  1315     <xsl:param name="hmi_element"/>
  1316     <xsl:text>frequency: 5,
  1316     <xsl:text>    frequency: 5,
  1317 </xsl:text>
  1317 </xsl:text>
  1318     <xsl:text>dispatch: function(value) {
  1318     <xsl:text>    dispatch: function(value) {
  1319 </xsl:text>
  1319 </xsl:text>
  1320     <xsl:text>    for(let choice of this.choices){
  1320     <xsl:text>        for(let choice of this.choices){
  1321 </xsl:text>
  1321 </xsl:text>
  1322     <xsl:text>        if(value != choice.value){
  1322     <xsl:text>            if(value != choice.value){
  1323 </xsl:text>
  1323 </xsl:text>
  1324     <xsl:text>            choice.elt.setAttribute("style", "display:none");
  1324     <xsl:text>                choice.elt.setAttribute("style", "display:none");
  1325 </xsl:text>
  1325 </xsl:text>
  1326     <xsl:text>        } else {
  1326     <xsl:text>            } else {
  1327 </xsl:text>
  1327 </xsl:text>
  1328     <xsl:text>            choice.elt.setAttribute("style", choice.style);
  1328     <xsl:text>                choice.elt.setAttribute("style", choice.style);
       
  1329 </xsl:text>
       
  1330     <xsl:text>            }
  1329 </xsl:text>
  1331 </xsl:text>
  1330     <xsl:text>        }
  1332     <xsl:text>        }
  1331 </xsl:text>
  1333 </xsl:text>
  1332     <xsl:text>    }
  1334     <xsl:text>    },
  1333 </xsl:text>
  1335 </xsl:text>
  1334     <xsl:text>},
  1336     <xsl:text>    init: function() {
  1335 </xsl:text>
  1337 </xsl:text>
  1336     <xsl:text>init: function() {
  1338     <xsl:text>        // Hello Switch
  1337 </xsl:text>
  1339 </xsl:text>
  1338     <xsl:text>    // Hello Switch
  1340     <xsl:text>    },
  1339 </xsl:text>
  1341 </xsl:text>
  1340     <xsl:text>},
  1342     <xsl:text>    choices: [
  1341 </xsl:text>
       
  1342     <xsl:text>choices: [
       
  1343 </xsl:text>
  1343 </xsl:text>
  1344     <xsl:variable name="regex" select="'^(&quot;[^&quot;].*&quot;|\-?[0-9]+)(#.*)?$'"/>
  1344     <xsl:variable name="regex" select="'^(&quot;[^&quot;].*&quot;|\-?[0-9]+)(#.*)?$'"/>
  1345     <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,$regex)]">
  1345     <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,$regex)]">
  1346       <xsl:variable name="literal" select="regexp:match(@inkscape:label,$regex)[2]"/>
  1346       <xsl:variable name="literal" select="regexp:match(@inkscape:label,$regex)[2]"/>
  1347       <xsl:text>    {
  1347       <xsl:text>        {
  1348 </xsl:text>
  1348 </xsl:text>
  1349       <xsl:text>        elt:id("</xsl:text>
  1349       <xsl:text>            elt:id("</xsl:text>
  1350       <xsl:value-of select="@id"/>
  1350       <xsl:value-of select="@id"/>
  1351       <xsl:text>"),
  1351       <xsl:text>"),
  1352 </xsl:text>
  1352 </xsl:text>
  1353       <xsl:text>        style:"</xsl:text>
  1353       <xsl:text>            style:"</xsl:text>
  1354       <xsl:value-of select="@style"/>
  1354       <xsl:value-of select="@style"/>
  1355       <xsl:text>",
  1355       <xsl:text>",
  1356 </xsl:text>
  1356 </xsl:text>
  1357       <xsl:text>        value:</xsl:text>
  1357       <xsl:text>            value:</xsl:text>
  1358       <xsl:value-of select="$literal"/>
  1358       <xsl:value-of select="$literal"/>
  1359       <xsl:text>
  1359       <xsl:text>
  1360 </xsl:text>
  1360 </xsl:text>
  1361       <xsl:text>    }</xsl:text>
  1361       <xsl:text>        }</xsl:text>
  1362       <xsl:if test="position()!=last()">
  1362       <xsl:if test="position()!=last()">
  1363         <xsl:text>,</xsl:text>
  1363         <xsl:text>,</xsl:text>
  1364       </xsl:if>
  1364       </xsl:if>
  1365       <xsl:text>
  1365       <xsl:text>
  1366 </xsl:text>
  1366 </xsl:text>
  1367     </xsl:for-each>
  1367     </xsl:for-each>
  1368     <xsl:text>],
  1368     <xsl:text>    ],
  1369 </xsl:text>
  1369 </xsl:text>
  1370   </xsl:template>
  1370   </xsl:template>
  1371   <xsl:template mode="widget_defs" match="widget[@type='Jump']">
  1371   <xsl:template mode="widget_defs" match="widget[@type='Jump']">
  1372     <xsl:param name="hmi_element"/>
  1372     <xsl:param name="hmi_element"/>
  1373     <xsl:text>on_click: function(evt) {
  1373     <xsl:text>    on_click: function(evt) {
  1374 </xsl:text>
  1374 </xsl:text>
  1375     <xsl:text>    console.log(evt);
  1375     <xsl:text>        console.log(evt);
  1376 </xsl:text>
  1376 </xsl:text>
  1377     <xsl:text>    switch_page(this.args[0]);
  1377     <xsl:text>        switch_page(this.args[0]);
  1378 </xsl:text>
  1378 </xsl:text>
  1379     <xsl:text>},
  1379     <xsl:text>    },
  1380 </xsl:text>
  1380 </xsl:text>
  1381     <xsl:text>init: function() {
  1381     <xsl:text>    init: function() {
  1382 </xsl:text>
  1382 </xsl:text>
  1383     <xsl:text>    this.element.setAttribute("onclick", "hmi_widgets['</xsl:text>
  1383     <xsl:text>        this.element.setAttribute("onclick", "hmi_widgets['</xsl:text>
  1384     <xsl:value-of select="$hmi_element/@id"/>
  1384     <xsl:value-of select="$hmi_element/@id"/>
  1385     <xsl:text>'].on_click(evt)");
  1385     <xsl:text>'].on_click(evt)");
  1386 </xsl:text>
  1386 </xsl:text>
  1387     <xsl:text>},
  1387     <xsl:text>    },
  1388 </xsl:text>
  1388 </xsl:text>
  1389   </xsl:template>
  1389   </xsl:template>
  1390 </xsl:stylesheet>
  1390 </xsl:stylesheet>