UNPKG

rutile

Version:

Factory automation for Mobile Enterprise.

131 lines (106 loc) 4.3 kB
// type : int (extkey) var self = exports; exports.getName = function(){ return "{{segment}}/{{entity}}.{{fieldName}}"; }; {{{autosetter}}} var formGroup; exports.setFormGroup = function(group){ formGroup = group;{{#autoset_event}} formGroup.listen("{{autoset_event}}",autosetter);{{/autoset_event}} }; // Form/Entity bindings supports var observers = []; exports.addObserver = function(observer){ observers.push(observer); }; exports.removeObserver = function(observer){ var index = observers.indexOf(observer); if( index > 0 ){ observers.splice(index,1); } }; var notify = function(){ for( var i=0; i<observers.length; i++ ){ var observer = observers[i]; observer.observeValue({ name : self.getName(), field : "{{fieldName}}", value : $.{{segment}}_{{entity}}_{{fieldName}}.getValue(), // getValue returns int model : $.{{segment}}_{{entity}}_{{fieldName}}.getModel(), // value of aggregation resolved }); } }; $.{{segment}}_{{entity}}_{{fieldName}}.putEventListener('change',function(value){ notify(); // get changed value via getValue() }); // * * * * * * * * * * * * * * * * * * * * * * * // hint text var validate_strings = []; validate_strings.push(L('FrameworkEditFormValidateNotNull')); $.{{segment}}_{{entity}}_{{fieldName}}.setHintTexts(validate_strings); // * * * * * * * * * * * * * * * * * * * * * * * var batchtag; exports.setBatchtag = function(tag){ batchtag = tag; }; // * * * * * * * * * * * * * * * * * * * * * * * var newControllerName; var editControllerName; var searchControllerName; var listControllerName; $.{{segment}}_{{entity}}_{{fieldName}}.setExtkeyHandler(function(){ var model = $.{{segment}}_{{entity}}_{{fieldName}}.getModel(); if( model.fresh ){ var controller = Alloy.createController(editControllerName); controller.set{{#Uc_first}}{{fieldName}}{{/Uc_first}}($.{{segment}}_{{entity}}_{{fieldName}}.getValue()); controller.setListener($.{{segment}}_{{entity}}_{{fieldName}}); controller.setBatchtag(batchtag); var modalWindow = Alloy.createController('Framework/ModalWindow'); modalWindow.getView().open(); modalWindow.navigationGroup.enableBackButton(); modalWindow.navigationGroup.open(controller); }else{ var dialog = Alloy.createController('Framework/EditFormElementExtkeyDialog',{segment:"{{segment_joined}}",entity:"{{entity_joined}}"}); dialog.setNewControllerName(newControllerName); dialog.setSearchControllerName(searchControllerName); dialog.setListControllerName(listControllerName); dialog.setListener($.{{segment}}_{{entity}}_{{fieldName}}); dialog.setBatchtag(batchtag); var currentNavigationController = Alloy.Globals.navigationControllerStack[0]; var root = currentNavigationController.getRootWindow(); dialog.getView().center = root.center; currentNavigationController.getRootWindow().add(dialog.getView()); dialog.showDialog(); } }); exports.setControllerNames = function(controllerNames){ newControllerName = controllerNames['new']; editControllerName = controllerNames['edit']; searchControllerName = controllerNames['search']; listControllerName = controllerNames['list']; }; // * * * * * * * * * * * * * * * * * * * * * * * // Framework/EditFormElementExtkey fires entitySelected event, // catch it and propagate to the form group. $.{{segment}}_{{entity}}_{{fieldName}}.listen("entitySelected",function(model){ formGroup.notify("entitySelected",model); }); $.{{segment}}_{{entity}}_{{fieldName}}.setClearButtonHandler(function(){ $.{{segment}}_{{entity}}_{{fieldName}}.setValue(''); }); // type:extkey, value should be a instance of target Model, or json representing the Model exports.setValue = function(value){ $.{{segment}}_{{entity}}_{{fieldName}}.setValue(value,"{{featuredFieldName_joined}}"); }; // returns primaryKey exports.getValue = function(){ return $.{{segment}}_{{entity}}_{{fieldName}}.getValue(); }; // enable and disable editing exports.enableEditing = function(){ $.{{segment}}_{{entity}}_{{fieldName}}.enableEditing(); }; exports.disableEditing = function(){ $.{{segment}}_{{entity}}_{{fieldName}}.disableEditing(); };