(function($) { var Alpaca = $.alpaca; Alpaca.Fields.UpperCaseField = Alpaca.Fields.TextField.extend( /** * @lends Alpaca.Fields.UpperCaseField.prototype */ { /** * @see Alpaca.Fields.TextField#getFieldType */ getFieldType: function() { return "uppercase"; }, /** * @see Alpaca.Fields.TextField#setup */ setup: function() { var self = this; this.base(); if (this.data) { this.data = this.data.toUpperCase(); } }, /** * @see Alpaca.Fields.TextField#setValue */ setValue: function(val) { var upperValue = null; if (val && Alpaca.isString(val)) { upperValue = val.toUpperCase(); } if (upperValue != this.getValue()) // jshint ignore:line { this.base(upperValue); } }, /** * @see Alpaca.ControlField#onKeyPress */ onKeyPress: function(e) { this.base(e); var _this = this; Alpaca.later(25, this, function() { var v = _this.getValue(); _this.setValue(v); }); } /* builder_helpers */ , /** * @see Alpaca.Fields.TextField#getTitle */ getTitle: function() { return "Uppercase Text"; }, /** * @see Alpaca.Fields.TextField#getDescription */ getDescription: function() { return "Text field for uppercase text."; } /* end_builder_helpers */ }); Alpaca.registerFieldClass("uppercase", Alpaca.Fields.UpperCaseField); Alpaca.registerDefaultFormatFieldMapping("uppercase", "uppercase"); })(jQuery);