From a35af7d3b3d507a4b97c5ac915112fc4a7be5158 Mon Sep 17 00:00:00 2001 From: Roeland Salij Date: Tue, 16 Dec 2014 17:39:41 +0100 Subject: [PATCH] AMD, Fixes #3, Fixes compatibility with Phonegap --- .gitignore | 2 +- .../widget/AssocRadioButtonList.js | 616 ++++++++++-------- .../widget/AttrRadioButtonList.js | 534 ++++++++------- .../widget/templates/RadioButtonList.html | 1 + .../widget/ui/AssocRadioButtonList.css | 11 + ...ButtonList.css => AttrRadioButtonList.css} | 0 src/package.xml | 2 +- test/Radiobutton List.mpr | Bin 673792 -> 552960 bytes test/Radiobutton List.mpr.bak | Bin 621568 -> 536576 bytes test/Widgets/RadioButtonList.mpk | Bin 9584 -> 11575 bytes test/Widgets/SprintrFeedbackWidget.mpk | Bin 0 -> 3477 bytes xsd/widget.xsd | 156 +++++ 12 files changed, 822 insertions(+), 500 deletions(-) create mode 100644 src/RadioButtonList/widget/templates/RadioButtonList.html create mode 100644 src/RadioButtonList/widget/ui/AssocRadioButtonList.css rename src/RadioButtonList/widget/ui/{RadioButtonList.css => AttrRadioButtonList.css} (100%) create mode 100644 test/Widgets/SprintrFeedbackWidget.mpk create mode 100644 xsd/widget.xsd diff --git a/.gitignore b/.gitignore index 7376bb2..31f5075 100644 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,8 @@ test/javasource/ test/deployment/ test/.classpath test/.project +*.mws *.launch *.tmp *.lock -test/zip Progress Bar.bat .idea/ diff --git a/src/RadioButtonList/widget/AssocRadioButtonList.js b/src/RadioButtonList/widget/AssocRadioButtonList.js index 37638e0..6339334 100644 --- a/src/RadioButtonList/widget/AssocRadioButtonList.js +++ b/src/RadioButtonList/widget/AssocRadioButtonList.js @@ -1,267 +1,353 @@ +/*global mx, mxui, mendix, dojo, require, console, define, module */ -dojo.provide("RadioButtonList.widget.AssocRadioButtonList"); - -mxui.dom.addCss(require.toUrl("RadioButtonList/widget/ui/RadioButtonList.css")); - -mxui.widget.declare('RadioButtonList.widget.AssocRadioButtonList', { - //DECLARATION - mixins : [dijit._TemplatedMixin, mendix.addon._Contextable, mxui.mixin._ValidationHelper], - templateString : '
', - - //IMPLEMENTATION - _mxObj : null, - _mxObj : null, - nameName : '', - attrDisable :false, - selectedValue : null, - keyNodeArray : null, - handles : null, - - getListObjects : function(context) { - - if (this.dataSourceType === "xpath") { - var xpathString = ''; - if (context) - { - xpathString = "//" + this.RadioListObject + this.Constraint.replace(/'[%CurrentObject%]'/g, context); - } - else - { - xpathString = "//" + this.RadioListObject + this.Constraint; - } - mx.data.get({ - xpath : xpathString, - filter : { - limit : 50, - depth : 0, - sort : [[this.sortAttr, this.sortOrder]] - }, - callback : dojo.hitch(this, this.initRadioButtonList) - }); - } - else if(this.dataSourceType === "mf" && this.datasourceMf) - { - this.execMF(this._mxObj, this.datasourceMf, dojo.hitch(this, this.initRadioButtonList)); - } - else { - dojo.empty(this.domNode); - var errordiv = mxui.dom.div("Can't retrieve objects because no datasource microflow is specified"); - dojo.attr(errordiv, "class", "alert alert-danger"); - this.domNode.appendChild(errordiv); - } +(function() { + 'use strict'; + + // test + require([ + + 'mxui/widget/_WidgetBase', 'mxui/mixin/_ValidationHelper', 'dijit/_Widget', 'dijit/_TemplatedMixin', + 'mxui/dom', 'dojo/dom', 'dojo/query', 'dojo/dom-prop', 'dojo/dom-geometry', 'dojo/dom-attr', 'dojo/dom-class', 'dojo/dom-style', 'dojo/dom-construct', 'dojo/on', 'dojo/_base/lang', 'dojo/_base/declare', 'dojo/text', + 'dojo/_base/array' - }, - - initRadioButtonList : function(mxObjArr){ - dojo.empty(this.domNode); - var $ = mxui.dom.create; - var mxObj; - - var currentSelectedValue; - - if(this._mxObj.getReferences(this.assocName).length == 1) { - this.selectedValue = currentSelectedValue = this._mxObj.getReferences(this.assocName)[0]; - } - - for (var i = 0; i < mxObjArr.length; i++) { - mxObj = mxObjArr[i]; - - var radioid = this.RadioListObject+'_'+this.id+'_'+i; - - var labelNode = $("label"); - - dojo.attr(labelNode, 'disabled', this.attrDisable); - - var guid = mxObj.getGuid(); - var rbNode = $("input", { - 'type' : 'radio', - 'value' : guid , - 'id' : radioid - }); - - dojo.attr(rbNode, 'name', "radio"+this._mxObj.getGuid()+'_'+this.id); - - this.keyNodeArray[guid] = rbNode; - dojo.attr(rbNode, 'disabled', this.attrDisable); - - if (currentSelectedValue === mxObj.getGuid()) { - dojo.attr(rbNode,'defaultChecked', true); - } - - var textDiv = $("span", mxObj.get(this.RadioListItemAttribute)); - - labelNode.appendChild(rbNode); - labelNode.appendChild(textDiv); - - this.connect(rbNode, "onclick", dojo.hitch(this, this.onclickRadio, mxObj.getGuid(), rbNode)); - - if(this.direction === "horizontal" ){ - dojo.addClass(labelNode, "radio-inline"); - this.domNode.appendChild(labelNode); - } else { - var radiodiv = $("div", {"class" : "radio"}); - radiodiv.appendChild(labelNode); - this.domNode.appendChild(radiodiv); - } - } - }, - - onclickRadio : function( radioKey, rbNode) { - logger.debug(this.id + ".onclickRadio"); - if (this.attrDisable) - return; - - this.setValue(radioKey); - dojo.attr(rbNode,'checked', true); - - this.onChange(); - this.triggerMicroflow(); - }, - - setValue: function (value) { - - if ( this.selectedValue != null) { - if ( this.selectedValue != '' && this.keyNodeArray[this.selectedValue] ) { - this.keyNodeArray[this.selectedValue].checked = false; - this.keyNodeArray[this.selectedValue].defaultChecked = false; - } - } - this.selectedValue = value; - - if (this._mxObj != null) { - this._mxObj.set(this.assocName, value); - } - if (value !== '' && this.keyNodeArray[value]) { - this.keyNodeArray[this.selectedValue].checked = true; - this.keyNodeArray[this.selectedValue].defaultChecked = true; - } - }, - - triggerMicroflow : function() { - logger.debug(this.id + ".triggerMicroflow"); - - if (this.onchangeAction) - { - mx.data.action({ - params : { - applyto : "selection", - actionname : this.onchangeAction, - guids : [this._mxObj.getGuid()] - }, - error : function(error) { - logger.error("RadioButtonList.widget.AssocRadioButtonList.triggerMicroFlow: XAS error executing microflow; " + error.description); - } - }); - } - }, - - _setDisabledAttr : function (value) { - if (!this.readonly) - this.attrDisable = !!value; - }, - - //summary : stub function, will be used or replaced by the client environment - onChange : function(){ - this.removeError(); - }, - - postCreate : function(){ - // intantiate empty objects, arrays to prefent sharing along widgets - - this.selectedValue = null; - this.handles = null; - - logger.debug(this.id + ".postCreate"); - this.keyNodeArray = {}; - this.assocName = this.entity.split("/")[0]; - - this.entity = this.assocName; //to catch data validation - - if (this.readonly) - this.attrDisable = true; - - this.initContext(); - this.actLoaded(); - }, - - update : function(obj, callback){ - this.removeError(); - logger.debug(this.id + ".update"); - if(this.handles){ - dojo.forEach(this.handles, function (handle, i) { - mx.data.unsubscribe(handle); - }); - } - if(obj){ - this._mxObj = obj; - - var validationhandle = mx.data.subscribe({ - guid : obj.getGuid(), - val : true, - callback : dojo.hitch(this, function(validations) { - var val = validations[0], - msg = val.getReasonByAttribute(this.entity); - if(this.readonly){ - val.removeAttribute(this.entity); - } else { - if (msg) { - this.addError(msg); - val.removeAttribute(this.entity); - } - } - }) - }); - - var refreshhandle = mx.data.subscribe({ - guid : obj.getGuid(), - callback : dojo.hitch(this, function(guid) { - this.update(obj, callback); - }) - }); - - var refreshAttHandle = mx.data.subscribe({ - guid : obj.getGuid(), - attr : this.entity, - callback : dojo.hitch(this, function(guid) { - this.update(obj, callback); - }) - }); - - this.handles = [validationhandle, refreshhandle, refreshAttHandle]; - - this.getListObjects(this._mxObj); - } - - callback && callback(); - }, - - execMF : function (obj, mf, cb) { - var params = { - applyto : "selection", - actionname : mf, - guids : [] - }; - if (obj) - params.guids = [obj.getGuid()]; - - mx.data.action({ - params : params, - callback : function(objs) { - cb && cb(objs); - }, - error : function(error) { - cb && cb(); - logger.warn(error.description); - } - }, this); - }, - - uninitialize : function(){ - logger.debug(this.id + ".uninitialize"); - if(this.handles){ - dojo.forEach(this.handles, function (handle, i) { - mx.data.unsubscribe(handle); - }); - } - } -}); + + ], function (_WidgetBase, _ValidationHelper, _Widget, _Templated, domMx, dom, domQuery, domProp, domGeom, domAttr, domClass, domStyle, domConstruct, on, lang, declare, text, array) { + + // Provide widget. + dojo.provide('RadioButtonList.widget.AssocRadioButtonList'); + + // Declare widget. + return declare('RadioButtonList.widget.AssocRadioButtonList', [ _WidgetBase, _ValidationHelper, _Widget, _Templated ], { + + /** + * Internal variables. + * ====================== + */ + _wgtNode: null, + _contextGuid: null, + _contextObj: null, + _handles: null, + + // Extra variables + _attrDisable :false, + _selectedValue : null, + _keyNodeArray : null, + + // Template path + templatePath: dojo.moduleUrl('RadioButtonList', 'widget/templates/RadioButtonList.html'), + + /** + * Mendix Widget methods. + * ====================== + */ + + // DOJO.WidgetBase -> PostCreate is fired after the properties of the widget are set. + postCreate: function () { + + // postCreate + this._selectedValue = null; + this.handles = null; + + this._keyNodeArray = {}; + this.assocName = this.entity.split("/")[0]; + + this.entity = this.assocName; //to catch data validation + + if (this.readonly) + this._attrDisable = true; + + // Load CSS ... automaticly from ui directory + + // Setup widgets + this._setupWidget(); + + // Create childnodes + this._createChildNodes(); + + // Setup events + this._setupEvents(); + + }, + + // DOJO.WidgetBase -> Startup is fired after the properties of the widget are set. + startup: function () { + + // postCreate + console.log('WidgetName - startup'); + }, + + /** + * What to do when data is loaded? + */ + + update: function (obj, callback) { + // startup + console.log('WidgetName - update'); + + this.removeError(); + + if(this.handles){ + array.forEach(this.handles, function (handle, i) { + mx.data.unsubscribe(handle); + }); + } + if(obj){ + this._mxObj = obj; + + var validationhandle = mx.data.subscribe({ + guid : obj.getGuid(), + val : true, + callback : lang.hitch(this, function(validations) { + var val = validations[0], + msg = val.getReasonByAttribute(this.entity); + if(this.readonly){ + val.removeAttribute(this.entity); + } else { + if (msg) { + this.addError(msg); + val.removeAttribute(this.entity); + } + } + }) + }); + + var refreshhandle = mx.data.subscribe({ + guid : obj.getGuid(), + callback : lang.hitch(this, function(guid) { + this.update(obj, callback); + }) + }); + + var refreshAttHandle = mx.data.subscribe({ + guid : obj.getGuid(), + attr : this.entity, + callback : lang.hitch(this, function(guid) { + this.update(obj, callback); + }) + }); + + this.handles = [validationhandle, refreshhandle, refreshAttHandle]; + + this._getListObjects(this._mxObj); + } + + // Execute callback. + if(typeof callback !== 'undefined'){ + callback(); + } + }, + + //summary : stub function, will be used or replaced by the client environment + onChange : function(){ + this.removeError(); + }, + + uninitialize : function(){ + + if(this.handles){ + array.forEach(this.handles, function (handle, i) { + mx.data.unsubscribe(handle); + }); + } + }, + + /** + * Extra setup widget methods. + * ====================== + */ + _setupWidget: function () { + + // To be able to just alter one variable in the future we set an internal variable with the domNode that this widget uses. + this._wgtNode = this.domNode; + + }, + + // Create child nodes. + _createChildNodes: function () { + + }, + + // Attach events to newly created nodes. + _setupEvents: function () { + + + }, + + + /** + * Interaction widget methods. + * ====================== + */ + _getListObjects : function(context) { + + if (this.dataSourceType === "xpath") { + var xpathString = ''; + if (context) + { + xpathString = "//" + this.RadioListObject + this.Constraint.replace(/'[%CurrentObject%]'/g, context); + } + else + { + xpathString = "//" + this.RadioListObject + this.Constraint; + } + mx.data.get({ + xpath : xpathString, + filter : { + limit : 50, + depth : 0, + sort : [[this.sortAttr, this.sortOrder]] + }, + callback : lang.hitch(this, this._initRadioButtonList) + }); + } + else if(this.dataSourceType === "mf" && this.datasourceMf) + { + this._execMF(this._mxObj, this.datasourceMf, lang.hitch(this, this._initRadioButtonList)); + } + else { + domConstruct.empty(this.domNode); + var errordiv = mxui.dom.div("Can't retrieve objects because no datasource microflow is specified"); + domAttr.set(errordiv, "class", "alert alert-danger"); + this.domNode.appendChild(errordiv); + } + + }, + + _initRadioButtonList : function(mxObjArr){ + domConstruct.empty(this.domNode); + var $ = domConstruct.create; + var mxObj; + + var currentSelectedValue; + + if(this._mxObj.getReferences(this.assocName).length == 1) { + this._selectedValue = currentSelectedValue = this._mxObj.getReferences(this.assocName)[0]; + } + + for (var i = 0; i < mxObjArr.length; i++) { + mxObj = mxObjArr[i]; + + var radioid = this.RadioListObject+'_'+this.id+'_'+i; + + var labelNode = $("label"); + + domAttr.set(labelNode, 'disabled', this._attrDisable); + + var guid = mxObj.getGuid(); + var rbNode = $("input", { + 'type' : 'radio', + 'value' : guid , + 'id' : radioid + }); + + domAttr.set(rbNode, 'name', "radio"+this._mxObj.getGuid()+'_'+this.id); + + this._keyNodeArray[guid] = rbNode; + domAttr.set(rbNode, 'disabled', this._attrDisable); + + if (currentSelectedValue === mxObj.getGuid()) { + domAttr.set(rbNode,'defaultChecked', true); + } + + var textDiv = $("span", { 'innerHTML' : mxObj.get(this.RadioListItemAttribute) }); + + labelNode.appendChild(rbNode); + labelNode.appendChild(textDiv); + + this.connect(rbNode, "onclick", lang.hitch(this, this._onclickRadio, mxObj.getGuid(), rbNode)); + + if(this.direction === "horizontal" ){ + domClass.add(labelNode, "radio-inline"); + this.domNode.appendChild(labelNode); + } else { + var radiodiv = $("div", {"class" : "radio"}); + radiodiv.appendChild(labelNode); + this.domNode.appendChild(radiodiv); + } + } + }, + + _onclickRadio : function( radioKey, rbNode) { + + if (this._attrDisable) + return; + + this._setValue(radioKey); + domAttr.set(rbNode,'checked', true); + + this.onChange(); + this._triggerMicroflow(); + }, + + _setValue: function (value) { + + if ( this._selectedValue !== null) { + if ( this._selectedValue !== '' && this._keyNodeArray[this._selectedValue] ) { + this._keyNodeArray[this._selectedValue].checked = false; + this._keyNodeArray[this._selectedValue].defaultChecked = false; + } + } + this._selectedValue = value; + + if (this._mxObj !== null) { + this._mxObj.set(this.assocName, value); + } + if (value !== '' && this._keyNodeArray[value]) { + this._keyNodeArray[this._selectedValue].checked = true; + this._keyNodeArray[this._selectedValue].defaultChecked = true; + } + }, + + _triggerMicroflow : function() { + + if (this.onchangeAction) + { + mx.data.action({ + params : { + applyto : "selection", + actionname : this.onchangeAction, + guids : [this._mxObj.getGuid()] + }, + error : function(error) { + console.log("RadioButtonList.widget.AssocRadioButtonList._triggerMicroflow: XAS error executing microflow; " + error.description); + } + }); + } + }, + + _setDisabledAttr : function (value) { + if (!this.readonly) + this._attrDisable = !!value; + }, + + _execMF : function (obj, mf, callback) { + var params = { + applyto : "selection", + actionname : mf, + guids : [] + }; + if (obj) + params.guids = [obj.getGuid()]; + + mx.data.action({ + params : params, + callback : function(objs) { + if(typeof callback !== 'undefined'){ + callback(); + } + }, + error : function(error) { + if(typeof callback !== 'undefined'){ + callback(); + } + console.log(error.description); + } + }, this); + } + + + }); + }); + +}()); + diff --git a/src/RadioButtonList/widget/AttrRadioButtonList.js b/src/RadioButtonList/widget/AttrRadioButtonList.js index 759466e..39bb5ea 100644 --- a/src/RadioButtonList/widget/AttrRadioButtonList.js +++ b/src/RadioButtonList/widget/AttrRadioButtonList.js @@ -1,233 +1,301 @@ -dojo.provide("RadioButtonList.widget.AttrRadioButtonList"); - -mxui.dom.addCss(require.toUrl("RadioButtonList/widget/ui/RadioButtonList.css")); - -mxui.widget.declare('RadioButtonList.widget.AttrRadioButtonList', { - //DECLARATION - mixins : [dijit._TemplatedMixin, mendix.addon._Contextable, mxui.mixin._ValidationHelper], - templateString : '
', - - //IMPLEMENTATION - mendixobject : null, - attrDisable :false, - selectedValue : '', - keyNodeArray : null, - handles : null, - - - initRadioButtonList : function(enumObj){ - var $ = mxui.dom.create; - var i = 0; - dojo.empty(this.domNode); - var attrName = "" + this.mendixobject.get(this.entity); - for (var key in enumObj) { - var radioid = this.entity+'_'+this.id+'_'+i; - - var labelNode = $("label"); - dojo.attr(labelNode, 'disabled', this.attrDisable); - - var rbNode = $("input", { - 'type' : 'radio', - 'value' : key, - 'id' : radioid - }); - - dojo.attr(rbNode, 'name', "radio"+this.mendixobject.getGuid()+'_'+this.id); - - this.keyNodeArray[key] = rbNode; - dojo.attr(rbNode, 'disabled', this.attrDisable); - - if (attrName == key) { - dojo.attr(rbNode,'defaultChecked', true); - this.selectedValue = key; - } - - var textDiv = mxui.dom.span(enumObj[key]); - this.connect(rbNode, "onclick", dojo.hitch(this, this.onChangeRadio, rbNode, key)); - - labelNode.appendChild(rbNode); - labelNode.appendChild(textDiv); - - if(this.direction === "horizontal"){ - dojo.addClass(labelNode, "radio-inline"); - this.domNode.appendChild(labelNode); - } else { - var radiodiv = $("div", {"class" : "radio"}); - radiodiv.appendChild(labelNode); - this.domNode.appendChild(radiodiv); - } - - i++; - } - }, - - onChangeRadio : function(rbNode, enumkey) { - logger.debug(this.id + ".onChangeRadio"); - if (this.attrDisable) - return; - - dojo.attr(rbNode,'checked', true); - this.selectedValue = enumkey; - this.setValue(enumkey); - this.onChange(); - this.triggerMicroflow(); - }, - - //invokes the microflow coupled to the tag editor - triggerMicroflow : function() { - logger.debug(this.id + ".triggerMicroflow"); - - if (this.onchangeAction) { - mx.data.action({ - params : { - applyto : "selection", - actionname : this.onchangeAction, - guids : [this.mendixobject.getGuid()] - }, - error : function(error) { - logger.error("RadioButtonList.widget.AssocRadioButtonList.triggerMicroFlow: XAS error executing microflow; " + error.description); - } - }); - } - }, - - _setDisabledAttr : function (value) { - if (!this.readonly) - this.attrDisable = !!value; - }, - - setValue : function (oldvalue) { - var value = oldvalue; - - if ( this.selectedValue !== null) { - if ( this.selectedValue != '' && this.keyNodeArray[this.selectedValue] ) { - this.keyNodeArray[this.selectedValue].checked = false; - this.keyNodeArray[this.selectedValue].defaultChecked = false; - } - } - if (this.mendixobject !== null) { - - if(this.mendixobject.isBoolean(this.entity)) { - var boolvalue = oldvalue == 'true' ? true : false; - this.mendixobject.set(this.entity, boolvalue); - this.selectedValue = boolvalue; - } else { - this.mendixobject.set(this.entity, value); - this.selectedValue = value; - } - } - - if (value !== '' && this.keyNodeArray[value]) { - this.keyNodeArray[this.selectedValue].checked = true; - this.keyNodeArray[this.selectedValue].defaultChecked = true; - } - }, - - //summary : stub function, will be used or replaced by the client environment - onChange : function(){ - this.removeError(); - }, - - postCreate : function(){ - // intantiate empty objects, arrays to prefent sharing along widgets - this.mendixobject = null; - this.keyNodeArray = null; - this.handles = null; - - logger.debug(this.id + ".postCreate"); - - this.keyNodeArray = {}; - if (this.readonly) - this.attrDisable = true; - - this.initContext(); - this.actLoaded(); - }, - - update : function(obj, callback) { - logger.debug(this.id + ".update"); - this.removeError(); - - if(this.handles){ - dojo.forEach(this.handles, function (handle, i) { - mx.data.unsubscribe(handle); - }); - } - //load embedded - var loaded = false; - var errorhandled = false; - - if (obj) { - - this.mendixobject = obj; - try { - if (this.entity != '') { - var enumerationObj; - //get enumeration for current attribute - if(obj.getAttributeType(this.entity) == 'Enum') - enumerationObj = obj.getEnumKVPairs(this.entity); - else if(obj.getAttributeType(this.entity) == 'Boolean') - { - enumerationObj = {}; - enumerationObj['true'] = this.captiontrue; - enumerationObj['false'] = this.captionfalse; - } - this.initRadioButtonList(enumerationObj); - loaded = true; - } - } - catch (err) { - console && console.error(this.id +'.update: error while loading attr ' + err); - loaded = false; - } - - var validationhandle = mx.data.subscribe({ - guid : obj.getGuid(), - val : true, - callback : dojo.hitch(this,function(validations) { - var val = validations[0], - msg = val.getReasonByAttribute(this.entity); - - if(this.readonly){ - val.removeAttribute(this.entity); - } else { - if (msg) { - this.addError(msg); - val.removeAttribute(this.entity); - } - } - }) - }); - - var refreshhandle = mx.data.subscribe({ - guid : obj.getGuid(), - callback : dojo.hitch(this, function(guid) { - this.update(obj, callback); - }) - }); - - var refreshAttHandle = mx.data.subscribe({ - guid : obj.getGuid(), - attr : this.entity, - callback : dojo.hitch(this, function(guid) { - this.update(obj, callback); - }) - }); - - this.handles = [validationhandle, refreshhandle, refreshAttHandle]; - - } else { - logger.warn(this.id + '.update: received null object'); - } - callback && callback(); - }, - - uninitialize : function(){ - logger.debug(this.id + ".uninitialize"); - if(this.handles){ - dojo.forEach(this.handles, function (handle, i) { - mx.data.unsubscribe(handle); - }); - } - } -}); \ No newline at end of file +/*global mx, mxui, mendix, dojo, require, console, define, module */ + +(function() { + 'use strict'; + + // test + require([ + + 'mxui/widget/_WidgetBase', 'mxui/mixin/_ValidationHelper', 'dijit/_Widget', 'dijit/_TemplatedMixin', + 'mxui/dom', 'dojo/dom', 'dojo/query', 'dojo/dom-prop', 'dojo/dom-geometry', 'dojo/dom-attr', 'dojo/dom-class', 'dojo/dom-style', 'dojo/dom-construct', 'dojo/on', 'dojo/_base/lang', 'dojo/_base/declare', 'dojo/text', + 'dojo/_base/array' + + ], function (_WidgetBase, _ValidationHelper, _Widget, _Templated, domMx, dom, domQuery, domProp, domGeom, domAttr, domClass, domStyle, domConstruct, on, lang, declare, text, array) { + + // Provide widget. + dojo.provide('RadioButtonList.widget.AttrRadioButtonList'); + + // Declare widget. + return declare('RadioButtonList.widget.AttrRadioButtonList', [ _WidgetBase, _ValidationHelper, _Widget, _Templated], { + + /** + * Internal variables. + * ====================== + */ + _wgtNode: null, + _attrDisable : false, + + // Template path + templatePath: dojo.moduleUrl('RadioButtonList', 'widget/templates/RadioButtonList.html'), + + /** + * Mendix Widget methods. + * ====================== + */ + + // DOJO.WidgetBase -> PostCreate is fired after the properties of the widget are set. + postCreate: function () { + + // Load CSS ... automaticly from ui directory + + // Setup widgets + this._setupWidget(); + + // Setup events + this._setupEvents(); + + }, + + // DOJO.WidgetBase -> Startup is fired after the properties of the widget are set. + startup: function () { + + }, + + /** + * What to do when data is loaded? + */ + + update: function (obj, callback) { + + this.removeError(); + + if(this.handles){ + array.forEach(this.handles, function (handle, i) { + mx.data.unsubscribe(handle); + }); + } + //load embedded + var loaded = false; + var errorhandled = false; + + if (obj) { + + this.mendixobject = obj; + try { + if (this.entity !== '') { + var enumerationObj; + //get enumeration for current attribute + if(obj.getAttributeType(this.entity) == 'Enum') + enumerationObj = obj.getEnumKVPairs(this.entity); + else if(obj.getAttributeType(this.entity) == 'Boolean') + { + enumerationObj = {}; + enumerationObj['true'] = this.captiontrue; + enumerationObj['false'] = this.captionfalse; + } + this._initRadioButtonList(enumerationObj); + loaded = true; + } + } + catch (err) { + console.error(this.id +'.update: error while loading attr ' + err); + loaded = false; + } + + var validationhandle = mx.data.subscribe({ + guid : obj.getGuid(), + val : true, + callback : lang.hitch(this,function(validations) { + var val = validations[0], + msg = val.getReasonByAttribute(this.entity); + + if(this.readonly){ + val.removeAttribute(this.entity); + } else { + if (msg) { + this.addError(msg); + val.removeAttribute(this.entity); + } + } + }) + }); + + var refreshhandle = mx.data.subscribe({ + guid : obj.getGuid(), + callback : lang.hitch(this, function(guid) { + this.update(obj, callback); + }) + }); + + var refreshAttHandle = mx.data.subscribe({ + guid : obj.getGuid(), + attr : this.entity, + callback : lang.hitch(this, function(guid) { + this.update(obj, callback); + }) + }); + + this.handles = [validationhandle, refreshhandle, refreshAttHandle]; + + } else { + console.log(this.id + '.update: received null object'); + } + + // Execute callback. + if(typeof callback !== 'undefined'){ + callback(); + } + }, + + //summary : stub function, will be used or replaced by the client environment + onChange : function(){ + this.removeError(); + }, + + uninitialize : function(){ + + if(this.handles){ + array.forEach(this.handles, function (handle, i) { + mx.data.unsubscribe(handle); + }); + } + }, + + + /** + * Extra setup widget methods. + * ====================== + */ + _setupWidget: function () { + + this.mendixobject = null; + this.keyNodeArray = null; + this.handles = null; + + this.keyNodeArray = {}; + if (this.readonly) + this._attrDisable = true; + + // To be able to just alter one variable in the future we set an internal variable with the domNode that this widget uses. + this._wgtNode = this.domNode; + + }, + + + // Attach events to newly created nodes. + _setupEvents: function () { + + console.log('WidgetName - setup events'); + + }, + + + /** + * Interaction widget methods. + * ====================== + */ + _initRadioButtonList : function(enumObj){ + var $ = domConstruct.create, + i = 0, + attrName = null; + + domConstruct.empty(this.domNode); + + attrName = "" + this.mendixobject.get(this.entity); + + for (var key in enumObj) { + var radioid = this.entity+'_'+this.id+'_'+i; + + var labelNode = $("label"); + domAttr.set(labelNode, 'disabled', this._attrDisable); + + var rbNode = $("input", { + 'type' : 'radio', + 'value' : key, + 'id' : radioid + }); + + domAttr.set(rbNode, 'name', "radio"+this.mendixobject.getGuid()+'_'+this.id); + + this.keyNodeArray[key] = rbNode; + domAttr.set(rbNode, 'disabled', this._attrDisable); + + if (attrName == key) { + domAttr.set(rbNode,'defaultChecked', true); + this.selectedValue = key; + } + + var textDiv = mxui.dom.span(enumObj[key]); + this.connect(rbNode, "onclick", lang.hitch(this, this._onChangeRadio, rbNode, key)); + + labelNode.appendChild(rbNode); + labelNode.appendChild(textDiv); + + if(this.direction === "horizontal"){ + dojo.addClass(labelNode, "radio-inline"); + this.domNode.appendChild(labelNode); + } else { + var radiodiv = $("div", {"class" : "radio"}); + radiodiv.appendChild(labelNode); + this.domNode.appendChild(radiodiv); + } + + i++; + } + }, + + _onChangeRadio : function(rbNode, enumkey) { + + if (this._attrDisable) + return; + + domAttr.set(rbNode,'checked', true); + this.selectedValue = enumkey; + this._setValue(enumkey); + this.onChange(); + this._triggerMicroflow(); + }, + + //invokes the microflow coupled to the tag editor + _triggerMicroflow : function() { + + if (this.onchangeAction) { + mx.data.action({ + params : { + applyto : "selection", + actionname : this.onchangeAction, + guids : [this.mendixobject.getGuid()] + }, + error : function(error) { + console.log("RadioButtonList.widget.AssocRadioButtonList._triggerMicroflow: XAS error executing microflow; " + error.description); + } + }); + } + }, + + _setDisabledAttr : function (value) { + if (!this.readonly) + this._attrDisable = !!value; + }, + + _setValue : function (oldvalue) { + var value = oldvalue; + + if ( this.selectedValue !== null) { + if ( this.selectedValue !== '' && this.keyNodeArray[this.selectedValue] ) { + this.keyNodeArray[this.selectedValue].checked = false; + this.keyNodeArray[this.selectedValue].defaultChecked = false; + } + } + if (this.mendixobject !== null) { + + if(this.mendixobject.isBoolean(this.entity)) { + var boolvalue = oldvalue == 'true' ? true : false; + this.mendixobject.set(this.entity, boolvalue); + this.selectedValue = boolvalue; + } else { + this.mendixobject.set(this.entity, value); + this.selectedValue = value; + } + } + + if (value !== '' && this.keyNodeArray[value]) { + this.keyNodeArray[this.selectedValue].checked = true; + this.keyNodeArray[this.selectedValue].defaultChecked = true; + } + } + + }); + }); + +}()); diff --git a/src/RadioButtonList/widget/templates/RadioButtonList.html b/src/RadioButtonList/widget/templates/RadioButtonList.html new file mode 100644 index 0000000..83c6940 --- /dev/null +++ b/src/RadioButtonList/widget/templates/RadioButtonList.html @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/RadioButtonList/widget/ui/AssocRadioButtonList.css b/src/RadioButtonList/widget/ui/AssocRadioButtonList.css new file mode 100644 index 0000000..e2de37a --- /dev/null +++ b/src/RadioButtonList/widget/ui/AssocRadioButtonList.css @@ -0,0 +1,11 @@ +.RadioButtonList input[type="radio"], +.RadioButtonList input[type="checkbox"] { +margin: 0; +margin-left: -20px; +margin-top: 3px; +} + +.RadioButtonList span { +display: block; +margin-right: 30px; +} \ No newline at end of file diff --git a/src/RadioButtonList/widget/ui/RadioButtonList.css b/src/RadioButtonList/widget/ui/AttrRadioButtonList.css similarity index 100% rename from src/RadioButtonList/widget/ui/RadioButtonList.css rename to src/RadioButtonList/widget/ui/AttrRadioButtonList.css diff --git a/src/package.xml b/src/package.xml index fe1edad..64f7354 100644 --- a/src/package.xml +++ b/src/package.xml @@ -1,6 +1,6 @@ - + diff --git a/test/Radiobutton List.mpr b/test/Radiobutton List.mpr index 5db472016d16c535223a9eac73d61cc49e694470..7f3e10984b0faf55701d56032be8dffb3b3437bf 100644 GIT binary patch delta 35899 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 delta 41562 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 delta 43483 zcmeEv2V50b)Av1Rckdz!TvSjL6s#bRpbsIj}o z*kkX##u{VP7;8+7QS;4SR0vp}=X>%bdEf8zmvfhFIp^#-bLKxYXJ)qQifPr8&J)|} zq)8;SKNfw7L{c@$+?AxQ8qk}MbhNQ|wz0EucCfd%ad5VCb{`lWAa`(f8SHME?3xf= zlBsepNs))8*p(GH#6+c}MrXQu7dch9Rz_GBS;j{z3&L|$9vs%$j>*DbYM^eW)i!cC zvysVSmNE;Oxy(3bG&6*m%&cQpGP4+9DwtwMl~-I8=xAr_mRTMX8x)`9l~HK#><}6s zkX7mKl;-VHQt70U$7ecLL@SE|%k4bAT~n_0kPekdh{Obc;$84(m=iW9am2p@t+C~2 zZSgO;75=zd;{QIk!M}cTz@KII_~YCae@GYnq3!X<$qsLMVT(V%8{^L^Bm9}v3V%Ls zfj?u!F{+f|Pl+D>BxhCm!z40o7*2AS*+B#7eP%hi zOfL`}$(ND^%y7vB#)pK^-PDn;BCfO@siCuIUuL?bQt~a?&)lI+NC%0Mj*>i~g-jm# z3GV&M8x6H;$ykx?%}!e#@~!MQYH^OQ&GiTVmg33Wny}xm^q<~$;~>4w%{=aJ?Ixbg z?iBH;?AC*bzLv+fPUkg!zeq{v(iOH6>?gjQ`b`^QcH4_Q2h%Nt^Uc~NPX44#TuRNJ`>c1 z_gcc|EUUMscppdV{%_X)CUyS@hgjBa^+74CHBdq~5gW-s>|^elvZG$KsWXrL?1=rG z@1ov$+|s%%yWBTBARs+0tEjZhCCts)Db~p`KP@NH(Lc&5ztYFWGQ;07J}#ov!Or89 z+W17UUJosaL}rKUT{E~=>e3UPNK3GJ!WgR8od{P~{xA%VP9+X&TuvS&u&@o)Rfk_S zQujEmBr5gX)AvMDa#K${lMhE{kZx;i&c@c>1*(~30)5D+oz4g05Dz`yk%+gtt5=!Z z!sX30-dMthDa*V{ii=fwMUt@Tct~^n^NhP=2&c5lwDdDADoe@j7v{* z$gxk2_D!{n@y<~eI;5+w-~39K1TFQ_#u;djGjJ+Kz5JGib(FiKcd#Jul173v(-~> z`x9RM&23M;^V0fP64jPJgp0gd1cp#=MSgLnDi2mYXAH#!?+QL{)JQ0Bqmvo!4G3#JxPnuOciiqaY$NCDP5-Av81BH`i5}u1t3+ zj8-b-alz@~{&HbFA%66Auf&e@!r~43dB_{8cv1zP-H{dE8G`Q@7RuRbsARX0uSIqe z*kaGMg>-FVL>5A|HtC@kikON-_Hs7*!U1jKMLq@HrerwrfdV_OCCqC|6cFB;YJ+|= zk_w+X^x;RBNG^LN%+Cl z7rc{Ulrj$=LPnvKh<*1_rYTBtia~!2jUs))x~15>kl&Ih2wZ(6Z4Xyo@Xj#JoaohW zE|T1U>4xNYv0i_W)zDD5-U_F$uO6`$>|2vGO^X5WpaZFal?!N#X?a{4)Z8Nmu+Nyp zwL-4=wqA6F2oqw7?>Wc>yE0GMYC_ToFk7XyFWodiiERefd+}}UiDkPdNV;{*+DwZd z>~(9G--5~6#}oWLn?m(4oSQ>cL|5=MC9#^$1%bQ`=>%VPB>v#JnoI(_4@qZXV<&Qe zyt{kYo(1D7$%JcNh!+^IC%WL!l_Zj2^`vecLAR9Z!k1l%zgm{A1&c4W+IFR$m@4{e`BT+%d4q_;@aUx}! zp$Z52ZZZwN*i1fuce6)2anVAeJF%ir-GdB;h=Zg(1WaPBg@~S{larLX&mlX$gTeR%7yVP@h45-G+ra-(1s(SdMlBN>oDQ0 zP|A_-G$7(N&68|-1?%qcvnMeUI?733^6Ff7xHyDw&Na^}FMFhH#*Y!Vb)gBEI?}Uu^Q4 zFAC37h#~Ek?;DaEZd()``5#2oiOtMLLy<@%W&qrTK%O+mjr%2y@ zVM#WLXErRcgt@~=J6P#MjX|D64!wuroysLw2vTl8xL-rf;Tsh$>H%iBlr8efM;h|& z4-@s+_7J`tm(Gtxq=ow4!RAobg2)SisN7Zis@3G!hilDG@($K-QOpVB}+5}AC7Eh2x! z#CJ~vLW0Q82EfCKI1Dv{^CXgr^7Z7m@-w==IV7uzT<0-rof=rcKBU7kHHiUs3c1rz z(h+{2LY7mpqZw+&xeg7)PoZEsxkNQ5MQKwZ-j@kSXA&FgDg|~H2_nmd@L6Oj`J=2U z#T)DR$_IkYY_d@^8d>UU4-2>wMp-bbA+eejvtAfoL)L0!(eA?dd8Cj)xAs)l1Qn=g z5%IDGqXnepd!`S0c{kKt65ykSI8f7t!wZQ6Q4jFcrji^O{Dhdnk1^7iH-Nx|V_Y|s zWqpO87ZYs;Rt_R9#J9`^`x(@*78#?Kk&*8qR;ft|Usv;47i?O9ieqHtnY>#9tMdRT4pzAiO|#9m#t)^ zw!M*fw;D>jp*XNpFx^hBQ2q2G$?y2|Yr&>S(BDb&nRkx@)?p4d?xf55z2pl2X8BjL zQ6kxhn7dN9`c$0WOVAy@q!K@cbP4w#l1^h+L463#cNXCV$~OR1xgTi*l3GY~}XKoKlxSr}RRl zPpN&jpIuslqbf=sWEmEfR_PKI;g}iYCiJ*L&;oKbhgb>YZZ7LZVEH1_PVjs}PP|l@GneC71V1H8 zS#N~R*R+KeOkvYg;!9xL3KVHw0;#Fs_>8<#vvKvcg00W7%}VI}f-Di)L$z@D1u__@ zG9%o&CbaeqbRmB^Z3>=*mXSfi212_LDjBA>pW^_Rjj0LPGW3}G^4TV!!_t|xOm#0y zN02Nbl%t<%#$z~CTM{d1$J1+2(+a6aGkjrM^dk}v=e1}sSt@jCLYENtKj`-6+V%PE zT~w*+UT$~OkM<2*4B?Aq&SS9WBfz*Ry)pFztw`v1g0v8_n$a<}>b#!NLYH>ZbmK!H zZHS%b2B_4dBh?W~W5HBLS<*~`lcRXq0L(R@hJr$$K0qyBA{kkj4Q2+^6pC9=QTKC_ ztcEQukbgOTL0bx~ThgRjg99uwpeDpw*kwSi2?>WshSW!|2}=5PkZ}e4TG8&}NRNW6 zCbWgR*)?65+lmf=gdAKWiLL1o4R-7he2nNevHy+;Or~w=c=4Ih@I_l11+J8~6FL}E zjk&@}azj{TLa%G=6`GnQVCzD}#F%}f2wD()Yb>f7kUR)R5h|Xgj z{a5n(%?zmg4h8m*fV{MvBzb9NpWSO=2^s0Po;%Hay>*!V-7ods?vM(skRaKTK z?Q%lB(sI2jvqIvWk}B;Ig@rb>AAtv_Q66q!X;p3FjhbPfS-%`rS&?M6E*zW9w*lv^ z`~e8s&dY?B+xUSR&M^Vz_9ec;$sN2EA)e|a!@LD#?cqV-_VQyjS0oV8k93*l&vk%1*GLoL%6{GyZMGDRbD zX}Cik?Da?8@jjutLh}GRF^6-TkX6OtBR3)?88hzwwW3W0U;E1gFi6f-pCQ_xL1fUGL!~sY*CVF5Z;Y*M{d_O zf_{MZGf0cXcNMK(b@x9Y!p2B?SHqg*>tkrGEmc;ZjIc}7!FM3F(o6ZnFl9m2Ksso$ zl7p(L$h|rzP=}XqS(Zd6z#f0J$+YZE{YADo1A6zSpQ*QA(-#c-(33Agv1&AJ2JS^@ zva{(&3&;?t=|>NVw|}CJRJH}r2P_L8_ou}$C!ca)l#bwNF@Pq%e0q8gGR|)^XfliJ zK3#B4rnnh`56^_5DYTmX)GqWO==;%V=$%SGuf;s;B5DOugvw#E67i-&5R~-1=Al_I zDV?gA$!i1Pst(D7{0!6?MT0o3&!DqN4~WjxAmE%#L_ipjO(S(x$i80B->2|ZHVpti zhu$Pba6boO#k$t8i*PS)Y@89ibLpvCxVsKcDmn)*%!cDCYNNg%+41$unm|B4J+48O zzJf~u?M+21ccMUw>17Q|Y&bVHzz(7=#1VQ7!bT6_zF{4SZh`TGs6R=9(}Sot34k_( zX{h1RKUm|pzobG?3`Iay52o{8*-M8~Bk~PY52ZcyZg;L<>nJ!dlsZpqN_2Gh)TiOO zLfa}jjJ(TqKq)UMhtZj&N%WFY%@wycCbUBF+(?|Zc|blVmS9?ef|F_loy5TM1=J8t zn0jPBsPtIRT3Z6r%&2#X;!)%iNF77H$a!JW7&`kcnn)yV%7gyLw1vnc7X+_**wx2p z^}=2nlcf;#G5vypD;-Hk@);CZll8*+iS*KY)G&?Bpd1X;*z^WSP}9Zg@4__t+(PxF zuujlp3jOq*ri16goT*en;hG*bBa0x?S~OY=CtU^AbgE`xLL}FoELK;aZu_pc?+P!C z3CZxuEbPfV;o>ZcmfW`+m0ueUwuAN@`ZGjyBPK|hO9ayzWCmcTPmIOc`5bUGCW<=Y zrgyiGMgxr^WGUSLjN+Ex(H>~>IldfaP*W8jEmSS0#to1iVJVR;Q_Fo_A$AXy!5S&; zpr;=kwe1(1E#V*cz4ra~xnV%UxOQMlk|9apN{6*bn3;m(Iy#x+5UiMb zjQZ4G!KYh+_XgxqnZmja^yEuEx8y6@OB|e)aP%H-229*Q&ETLG)j@V4-=tv|<2Jow z7s8w^RL+T7Pvea$Ns5HTN>Xqj;z9QeN-J_jN=jLddromuZfsgWSa6Dcu3eFRhJRFa zgrkEzF*L(5G&0H2(Kj%>4D!yo;`z=PRx)srbt?VSB!*b7b#E427$doe`m;-0()INZUnOs#zZi?Nv|>FE1ZA@ zwRdm7L%kTXNnr1bcWp*pPdsiB*eBv~tH3@JkK2T!=cyeLoCtG-lI;S^GI(}}z-o!d zuLZW5c-$$lGV!=eU|WjE-Pnx1*o@({YDOmXZp|!a$R2?;7BB72T8TFv6j(d)ct~KK#N%OsbrX+A1h%JmJSwoB z;_(nu1#Fvl2j zN-&FLmJnfiEE7k`X@O0^=eaX$9zT8zliV01SQ*dg2sVAhuAPPLPRvMQ>;UwTA?E}( zRcz|Kz-EX?G{EMF$8Q8SUp!tE*kbW`Nnp#x<7J3A!>9!q#N;s2D-y|hw76E!V9JE5 zDrPuCu7c@6roUh{k7-GSvJaV$Dca>Vr&2~UH4OO{E>$vfh0i`_`Z44>T&-kg3&k_U zo7YcbLMi!9V5f-9+z{C5;_-Wdoh2S`3T%ydyd|&;#N%y&T`V4d5ZGnn@eUlVVmt+( zmCRO#{0Q%&x!ldx(!bPQ>FsZuX`AL+lv(1IrATv#h=~;Louuuk&bnbO+9Kc4 z_)=8D!=IV1*2PZo;r2n^smfUQROgCVxzas4B}0|sQ=rJI@K(lD*hN+bWhe^#R6Z&X z0sMYp-tJA|L&FrgN{Q&T6k6ezSy)tD>uMos9<3@Y4#dsOa`dBm`A<{2(qZPuCY~Ml0{Re!C!$178pxNhVLvGhz+BA`s@ujp^a#&5WtA&CQL-iz!W4rF!RAxCfAzuDe0+c2~ojG;lc9k;IN32_7!Xo~)3v;uu>;+ww%Ggyc-6rGG$vTykG?LjJKb{C$GXSCA=)% zGW#h z=E0MPd{^tZ*y4)l5QU$jvZBo2E7Q%}E2P9LEh^EqI5$7T&QcNO6cAq!o#308Cihqc zA&>aCFI@ zJNutIOWpO@!S#itd$6tt=f&BI`Vg>M?5eIv${xs(cH}D~ROlpxE+gVXli07QY;)tN zXTZ4dBe4UQe7XP>hgp9(I+7hAn^?T4lWqq+pHZiqKa;F&mj`LF{9##6@1hMYdXk+~+%RTd^HCPUf+{e~Ih)UjFNIZ9-3YG6Udh9Nv4vc-OsRxn1Dwm5bYa@$8G9 zAdhCv;7UAi3PZio1lKNHIz-3JoOg}q}S@-Ev_=FxY_seb!Ac`b?SFTLlo zv=yw4z}j|QAJfx%by&!FgT(GphUTcFj^ifC=5PPxbeC~vUeyoU9&%c{B_8af@ZK#8 zzS*$sw6)J(?yzS}u)b8OO+BcD!mf z`K`21oUz=YA-VxEg$(L`j+1(cHvp=?8_eta(ihLQL!RCRPW$gn7T>;*KS?g zjb?WHJkIwGq;QqZll_z)e#yddt$h4FQ_m9vDwn|AJ<|SyZL!p!nBnHz4}Yk*(Ml+I z!TQP?FCA;?d9iz1AaBZTg^3I&2fL@-7&zRF>t*U9@%clgjR+S<%1^HWjSB_l>{iV? zH-W3pQjf+1YVqyt_IICu4$7(Wty^3nU|u3t*51vOr0fRf1I9%D{Ga2L)3^C zvDKb1aXo7+n?288YnpMh(9a?1NQYcrDo&3|Hj3@>0eAmy_}ZR(RrcS}iQ-vn@zu4b zJ!ij$gX5(pFnF3Y)6`Ki`VTMNXf0^SV?YLyN5d5)D6FNp5#=f6LgC_O*071Vu@a(4 zR^~w19H}zcNizKpRlnvVWfg__0oBW2?jxIFubN8M;&yT!q2%}Ywrcbzj$z|R8r%Hf zl4&MRetVdBos~k3G27Cr58hp;aHjsDnMNx`^9Hkb;u|zvUjoj}Lt^S6Df>eWjTnfg zhAsQBhDID`u9Dp(j%zbegtI2H=Z{bHncn`VfK9~*FFyaaiLb~m4fH_dB}I0xB$c zIsM5THd*ii?M|bIf8D?isyQ^HCu1KxDL!UodCKhDpfHoVFcPAJ9p#*5Z67R9XP;ri zt3IqqvemcmQjbYqe-!NVSUNv!&hl+>=Q5t8Lw{3blJ=b@^}09tLcoF=C&Qy3Ran)6 z&AeSxmdxL{Ib_k|$_LKtPCLVSGrV`n@3%82{i`=s}SuyuihHp@7*-eTjd_(!;@bB1oae5g6Za;aO!1l1 z6DAF3RWNZhYpS<=n1g(Ms@D|X8CxIz6x;;DOt240h8GPUkIxU7vBfdCPe`k(TEtkP zPS>A#=dS-u`)}MLIQNeA0?f1JgLRiR?%WTQfklm)&0lk{xDTU9A~i`GPs(-=KjZ+6Qc{!28cOV zb!stZvjJkx<8wd7G+WgsV8d@AZE~D_&~aWA0W_F1DP;Y{!n?=)hqcpXq>z>5$k!g*7`E$PpmrVRoVagZFtzhz z-_P|(6Z@0dF90!TD-v)^I2_N}K#&b*AQ**kskMgl-NN)xZfC85T9^>dMY5t?+rS`1 znnQs;->(r`HKGa)S~aF14O%UJR@%wr7vGQ0FAjQIuCM=2v}&}JG-%am?G^C+A?=KJ$7x?=z0y`>jY38g9`_(0Af> z$vYse(PGn3p9azzF41>GnpYd7{noW&`S*QF99Evw4jDbzqRMVfpC}C@ZTCkM`>-M3 z|2I&q(c05=T7zN@SL|C*tPxYv)F7gmUIQ)$ii6T3Tth~1<*GDSc2H%a`)u^D;h#+{ zR1ThbYJ9E8uY2G8@hR=#(2e(7NDlmZY#dA+$7a11iqKKLD-@1K5W5T09!kB4HJp1W zeNeZr(CW>;@}82&`H$HS850Wx1}oCeCw}m zPrn%MzxeLzZ!;f!v9uneT|14lTD-I{^b5aS!?Jk?K7t`XNQZ%G6&oUh)s@pPK3^R^ zwtd(1%9~r(){_xp;@@diFkT*b= zKKeY6wsm@2$>!6ygr??!D?V2WJA5bH5t;cEy`kw}#BA~l37YWCu|s#g({S&G^oZ=* zmFkFzC%*Tcp8t_+ubAokYW1c9-|t#n+O#To{*A4j7T<4v2nuduPs-gMzc^Yn#rq3# zY2Sj7TlZ@LNKb3qhUf{B@R|~n#jMBdU*Xm*X%Nn+F>H5a+sbk`2bnG728B&F89RTD z?3;to_Zn7Zv-|mxth_EEb8_-FPS?Hhacxy2=WDP3aq=GTshp0>lfXjc)jPUzpL~n<4RX=Cc8*$5}-tM~!$n__)r@RKRG_loo z!dz?Vm;X9cHJX3Ts?k7IBZ5JwO4K`Ey+9}RPUxgw-gzT_pVqeysV*M>bda0(ZO;|v z->3eNaVuU#Dvie09wI9dsv`9Hp^Y%7(L`!6r}3nVn6rP`N2*|h&%?ItS=7hSHTn2E zF{jZ&&|prZm4gh|Qyex^m^7X1E4#3`g{|WHpx~v;laEH2eRus`aMOrhapZg((Y6RT zoe6FU5i?YXC4W>I8evZ(R-~!3(Q5qnu&2QqJPjJ`X|!HnV^0^;4+cldvj&H3`qj?2 znU;apOT`8ExFy~tMa8Pzczm4>@Suk4hoMpY@9)5(Myo?ZULqFhHCR)^0Bb3RX1&s` znxn0ObbKiZ0J}}p0UkAC;r|96HDV!} zj%)C!;R1XM9yMYtni@1(RU=M>W8Xm}!%nb$Dc7ojK}tr=rVse`@mD_6mKPUQ>UJ1i z3s7N$nSGykKNvE}v89du4KFDih?2ff%Q8hrUT4WY5H=%3*}&7y(uW#PH` zg|SjAir}1^7w?{K&ggnV_!*!|6qUI`8P(#Ofq#3A)=J?6Mz_Usw6 zw+;4L_ieJ#;7gIqU}y+FaAf_SoIWM8@R~6rzNsi(dA=5jY`h+|-jdYQZ(N*v#-2qr z-@wyQ>EU)e*Da`;Z5!zM$+*40#hf{QmPQn2=4KXWmZJMPZYf`NW)o$-FU(oqjqm9{ zPJ3SWombne1^r>{FbzKU&K3RUrvu4f>mrbY5`axbGc73w(tc=x961``cSep)? zUr1{)WRq#z?WX;{^qNpP}vj?~p3rnIC4Rp9}R@z*!$`(tFnbc6Y29Fxgx`;=U3LT@yFUXe9z22j{`SQE#--$pfq*?kpX6)(kWFXsDT2W%ersLWp2i(b0+CU~1a!_~wgHV#@_@5^ z)temfh^@N7)DU#%u*Pu4SlS;#P2L#oGqxRqlY?YC{B9ymdbgs5w~C6E&`zUhJ#8nw z52F^dG4DaKv8K|_JaJH^p>Hx&E4dbsm%?icCtFMRzbA&~NL#5DcfWS)%2@gV`n-A@ zOOtE&glRJg{uhP2aUGj6CtmKne!K{SMPfM%Ta|yLYi_DjazU&j+9%GTqS7tY-rYSn z%Q0J?U8yQc46H0GEb(#43{7|QxITt}R~*-anK%lg7veZCeXCLR_e@Rj^ocmmm-%ue zfwu9S94&`^H;y53@Behf^ywe|P6PtDJZ5Alx=EK|k! zL^y{A$-^>|qudKh6-Dkbl{tmM+3xN!ZmK}x(sQ0_d2Am&zfqwKVhPw(Av%dwNZA9>_ zK@BsofQ^BcQ9@pEs%>JRud`)%U~X8MUxsg9WpK1Zt}?*Qz9h~&T%HjZZyT=&k1WZG z^>9O{={lLDVSTjIY#qy&lesYqPBqiAu+H)Jj`#7a^pV>ph5A)yg=V{jt16Ryf`Z&4 zEd#Pr^8!i(W21Z`!n|_JJXV0Ej@AM~g`+xJ22@<_J+ZhPm#&{bRwGBk?=orSyO-O` z5VGxXMqirro<;UDRxDYV&|F%8u4T(vXSkojH-%gMF!mv;rF00|P46$0$YvNfC zuwP9q)){J@5aTz=2e5rIF%xuIt#cGNC2vZ#LdbG(=C#)1Rf$9`SE2(g#>#-PmevGe zhn7~mH*%~V!qpn?D7r*ZX$XP)UvteNVh4LnU}RbsH4nTYcSCatX}(6E)gsKe6e}<= z&~mVJaral2xrOE=#8x_$=aiMCg{3*!m6RvT?E})&{o}%Y;w__NL&`Jrf+K}O1Fer~ zGV#P{AxSH0B0*pAKD2<&q$}wzdY;~6SjLF4VZ50HCYPEp+nHeu(2>kC<}~vIIv@W3 z+(ZAB+(YU)IztS^%tN7ty0;5GW5Tzrf3YrT%Z%^)MF84dfy4hnweZS*^uA8gNj-8E_bp7NC; z)AmlVhMD5&Mmd~d*Ux;e`m(M;7v-DMGo|lv+`H)7-jE3@>#ie=zA|)HD|A{S3t#pN zZ(;8$5|t783Daa@imG;)z^X4DMGG-W)hfCh$>{vRqDXKl0eExLTxYs=-!lRx;uXQ{2aovsmFe#&=KD|8LO z@i*R}%NtW;HA-UzKELr^U6#vkj1D%Dg)F%LUH>9qW{H$9oniZLyy%vU;YSrrxYbUp6<#pK3*w#r z!p06-0Ys2?!V{DP2phX-9yHeyD3J&ox@iRxfwR(DgQ9>YtcXY^OC*yKD@Hf_BH9}H zw=Ft~T}XqpmRj~U*%hH-s`T=-%bIq_D(3x*)vRCCN1`*QFpf zJvQ6pM?=`vQY%nT>8;8uRTdVZ5vfQr#SqNGxHf`yYprn_p6-Kv3?7y-VIm`@SMi02 zMZ9cHzdJT{GFxpFs(SlfBlX?8bwRA^qdf>y> zfZoMj)*O1+LgQiFtbX{*`ku5M0~WpL>4xas3$D)Mt_gdeb8ZxdUSNB}6@OMXRV6JG z$23g1@q{yG;Qm*f3|4exBOyY;#=^Z~sRf6lh{1e zJHU~M4q2aR;A`3g?mg%w#$U6}lAj5jdw?>NGqiok{i=!6e-D%)>{+3U>^G0NPB3~H zZ3i8G;&xLK3Hs5jsnFy{?iUJIs&Vr${S>DUF88@L;%h|-w{CK+7^sS5yMpB%Zi{#_ zT9^>R+7qG84ekcfns8)SYm@M_5V$&;wS^uxxi7?fVj%K@bOqEfoPC{w3J0&SGGXd9 zE}MYq0`5EU##or(!)_54UE~renAUJX5O#%|*;DikqmoZ0v?u=5YAtx?)xTjcQz;An*V-9pk)E^8fu9 z_md{$#(Ss-$LpD8z6lx$9zcNl;*b!HRl^I8%ri#|;&hAL3#ul&nJuqxDhl zq}A?ktYsV(v$jSd~D^*x$i!8@oeTHIIuxsqmTf0$f?Z$;9W<;FtyS1lgw| zl|^jk;xwENvTC@I;^lPV{&caequ;RKh~uVtCIjprq1`8Z4QnjeOyw|UMmn9lE#969 zk0x?s-aT5H+#~nl+$0<;TQHu?J%r9`?tLn-CauyHIHTq)VB9c_D>RwHoe-PMf@&w$ zL$Dji9i`xTm+cG|6S@83m2CB~lbwauW4N0X?84bFI5Qaeb@IpDB=KsFP;JE`_Vpae z?ZU9XyDSIVqid-ySEx2;j}!2pfCP7H7-vb~=(n7m$i}weh~`0cC-%C4wOOE~e}T=a z9kL-+T!~n50o=*wU75Mn1iBRP?s_>D^;O~fkXL}7LUypKfPVxvbJ#bf57Fcvy9+r* z{6zJDQ#>>sz}*+CE);$nz;O&j=wNht_g46>ZmHbY;+1lc>#=KK!a_FkU85gGZb6?k z9C!zfqU4&S_2!37F+@XT^7|gkx*aJ0)M2)fL+2a@*gdmutcT?}57thtmcIskjkf z-5uFf%Y3dcjLzp`?B2FD(L6+%R_v|HDap+fBOS2mig)*H@Sof>%YVIR1Ho((A}tjKT5>F<3QMP&E!O8Akw%PGPi5|yLLDQIkFkFdmLg;TC z=w0PwF|POOUW!@FuJWuX5y#ZFaKfv$g-E}w47==7Ri3|FY?8ga%-Kg#sEVx!DG9Rm zDU@gW=S7q|COB6lMY$AtTxj{S1;7>tF*Sis(=PH39%+T~1-U*2jw!JY#f}A$`H69* z>5eJ!c9DLW{&q3Bjs@BNxgn9Z-oEyc9zS5#O-(0J%=EAcsgTo?9mYI=PGGR(lpZ-Ti?4pYB|ag9S~@kYY3S-j9Fu5tQoG%kyphw#H}{_z`q z*+#t`fJVO)xyHN|@y7o3@cYqQWr2_1Bsz?Hx41F>-NMR*w+T5D-y{-EdaDFA`M)pJ zU8oc4K(>~sFS;ew!69S>Ll%&hO#@z4|2;e5BaNq zbpd;*%ok^-C~`1U3g~+v_H}pSZU~Of+;WYj+o-;Zjc+|&Qv>dg?1oFWs6tHEB5p!Y zJ1&a|n7!2=jS@3pt0gA~PZwe+CeAqwH?6oKsBxrQYb^Ckt+`OW29|n(x8XJtiWvd) z7gKk*+?DGHH7yXm+nRID(6(xB&IMx@xngr}X>CpiVRSdnRpUH46ZH480kRj`_hYJJ zbiCAAnTGQgN8PSy%61)Vo!nzqr4hkot3dEi;aTFF`*zP_x-m!+Ze4?bx&=JBQ0 zwY%AW2nKSanDw^TAn91y_{@R2-7a&!i*}6H>XZCC2XRK&=AJW;=DU5oB6zXUaQ6D@ zttVf*W4D*>fICHzdpCxBdTqwBD;ZD@$J^io`YSs>8hy|_bmK?6mPY6FdKtl^>uDhS z+|Da-rcv0!LBBd(fG}e&Pqfv~4*an1??WpG9pKRlgpWJ;4(wZV=wRrVyH&j}_cw5^ z^&4oTW3@JO_BTEweMb)I-03L?9)@^t*p8}>1y(->OrKy_y5{03%X$O&`A=y@Q-1Re z9KL>tZ`D(?t8ly(I%xekn(YW%{7}JkZq2EThwQN0*>UKTpn1{8KaY&)*y)w$1$Jw$ zMvWCvjeS(7yq*#l=RElFC|B?<;khgPIr_B56fz$s_GHc9q}|V;WC5(2FAZ;C6!;#c zn$KXO54*X60Y$UPunFOV3>01$+ zAFQejOpPd0s7ez8Rly;7nFap&wn1T8`L1F4<=Nr>q3NN*fs4Eo8&?jVk z7c>-yWbjYLeI1DeRvtjhc1bq>5jY+oz7Uwh>qEC({O*nu4A14$p-nD+yyvNS!Udx9 z@WgFAA?(lN4K-Oa>QZA)lDDN~FI-(F&HTHZaz)zR2ghRBgumTex#b^xT(MvK{}NB` z_6^-cU+EL2$~f%A0jR#k8UCX^-*q*f?-Fvb)?4fUg`k9vBHbQ>W9Kjf(tj(`L;O}0 zIs88)Hb&MkHb(T&7PAW0 zDmWXT%tFk+gKlFQ-+u9Hd%*tAJX6<%8LTs6g9$|wUK(LLqSaUY>>Xg%u}-j;ur-(f z9wk8q~Z5sw-^YM&Vw6cghQlkkhzWT^1f#OEdp`k#@1rL)+Tt1!u#?f!SBrEw9vaSb9zv;F?=L_ME~UHKO5@3KyR zd;X$iu`kyl(hU=HHR3e?6H-BS!2W;t$1Em|%sc-^kltUOi)*tu0XKj=XLr0K3jfbb za%SByTh7~)oJq*{u)PW2^BfPOAJ?mq#aKO^B}zBo{K zU~UVpU*k-8|MlFPD0tt4YFoC&-2H%4xZ}mO+^{u`KPyb%ugWvu_--Bm=p6|i) zf0XaR3z4(_Z%r(r@jdwcFZMm489t8G)Qbx16Yw!l z!aq7MCMjNJn;RMBAD!e?UYQ-^Qxaa}jGwrE9LQ-??k+lE)4$JifinLr&jqUekM>+Z z&w2E1WouKR7fGx@5zMuPZVBA_IvJ@`VtpCuMk3}LdF?3Qs#XY79K;WJ%KD(w7fN6Y zG{V;(BXLLYZ~QzRl|r~T=L$Wl_>HgYeEC`0Zq?{wU*Lu=_JgbW4=H|s3_h5^+k)dD zKDyz(`1wjB;pQM7J?k2L_wkz{SWA2 zq{V;)WEw=Ax*b@)#&TBD9(Tm>kJDI?y2xBCHCP7Y++e5h8+T3TuSY4T0`pP4tcfasjXg=qlWwS$4h%hCtCWgLOj_tj!_L^6-HvV{x@^j4HiCt>( z|CY-NZTa7KS)pzIN4u=FN7Bc15&05kk|h7tN5tL~lhlzJ+0G5F^~4MfE_p?1nYpFT zr7>B__I`?hq*R}Zm_k42vK-$KKbLY#-{{Cf{{okwaF;-#mj^dj6Ufx2zIkZmhas-7 zvreRGvQG4jOUNn=QideOSC$56$0tW76=as=d)cL@s!ANwA{DvmWjTcj1&$%vVUZrW zby+9!vHNn2LZ&SY-<(<-G]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 BlQ94Q diff --git a/test/Widgets/RadioButtonList.mpk b/test/Widgets/RadioButtonList.mpk index d2e65e6a76129bb9a0c01bd32b489fb68957fec7..51edba2e52f124a17d023a781407165589da808f 100644 GIT binary patch delta 6475 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 I;qR;e0p2{FF8}}l delta 4620 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 Y{#^tyCnX^s2oHpX2?FUc{KfNs013RCdH?_b diff --git a/test/Widgets/SprintrFeedbackWidget.mpk b/test/Widgets/SprintrFeedbackWidget.mpk new file mode 100644 index 0000000000000000000000000000000000000000..d16ea55e054c29fa7ba70f98994e5b052d81b431 GIT binary patch literal 3477 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 literal 0 HcmV?d00001 diff --git a/xsd/widget.xsd b/xsd/widget.xsd new file mode 100644 index 0000000..f96daf5 --- /dev/null +++ b/xsd/widget.xsd @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +