beremiz

Altered DropDown widget (#60)

13 months ago, Dino Kosic
dde2bbf2c43a
Altered DropDown widget (#60)

* Altered DropDown widget: Added another mandatory path variable - selection value (depending on use case, one could prefer direct access to selection value rather than selection index); and another optional path variable - options (string variable to allow for dynamic change of options, as opposed to providing static list of options through arguments); and example with both static and dynamic dropdowns.

* Make second path variable optional, for backwards compatibility
include yslt_noindent.yml2
in xsl decl widget_desc(%name, match="widget[@type='%name']", mode="widget_desc") alias template {
type > «@type»
content;
};
decl nothing alias - ;
decl widget_class(%name) alias - {nothing};
decl widget_defs(%name) alias - {nothing};
decl widget_page(%name) alias - {nothing};
decl gen_index_xhtml alias - {nothing};
decl emit(*name) alias - {nothing};
istylesheet
/* From Inkscape */
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
extension-element-prefixes="ns func exsl regexp str dyn"
exclude-result-prefixes="ns func exsl regexp str dyn svg inkscape" {
const "indexed_hmitree", "/.."; // compatibility with parse_labels.ysl2
include parse_labels.ysl2
const "hmi_elements", "//svg:*[starts-with(@inkscape:label, 'HMI:')]";
include widget_*.ysl2
template "@* | node()", mode="document" {
xsl:copy apply "@* | node()", mode="document";
}
template "widget", mode="document" {
xsl:copy {
apply "@* | node()", mode="document";
defs apply ".", mode="widget_desc";
}
}
template "/" {
const "widgets"
apply "$hmi_elements", mode="parselabel";
const "widget_ns", "exsl:node-set($widgets)";
widgets
apply "$widget_ns", mode="document";
}
}