# HG changeset patch # User Dustin Demuth # Date 1426249249 -3600 # Node ID f240fe19ff5dc84da52c13c94643f2829ea9b4dc # Parent 80077aeaa9ed553508ddbcf6d18da2926f6ae8eb Added a Checkbox Widget diff -r 80077aeaa9ed -r f240fe19ff5d app/view/widget/base/CheckBox.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/base/CheckBox.js Fri Mar 13 13:20:49 2015 +0100 @@ -0,0 +1,96 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +Ext.define('Lada.view.widget.base.CheckBox', { + extend: 'Ext.form.Panel', + alias: 'widget.chkbox', + + layout: 'hbox', + + border: 0, + + margin: '0, 0, 5, 0', + + initComponent: function() { + this.items = [{ + xtype: 'checkbox', + flex: 1, + name: this.name, + fieldLabel: this.fieldLabel, + labelWidth: this.labelWidth, + listeners: this.listeners, + triggerAction: this.triggerAction, + msgTarget: 'none', + tpl: this.tpl + }, { + xtype: 'image', + name: 'warnImg', + src: 'resources/img/icon-warning.gif', + width: 12, + height: 12, + hidden: true + }, { + xtype: 'image', + name: 'errorImg', + src: 'resources/img/icon-error.gif', + width: 12, + height: 12, + hidden: true + }]; + this.callParent(arguments); + }, + + showWarnings: function(warnings) { + var img = this.down('image[name=warnImg]'); + Ext.create('Ext.tip.ToolTip', { + target: img.getEl(), + html: warnings + }); + this.down('checkbox').invalidCls = 'x-lada-warning'; + this.down('checkbox').markInvalid(''); + img.show(); + var fieldset = this.up('fieldset[collapsible=true]'); + if (fieldset) { + fieldset.showWarnings(warnings); + } + }, + + showErrors: function(errors) { + var img = this.down('image[name=errorImg]'); + var warnImg = this.down('image[name=warnImg]'); + warnImg.hide(); + Ext.create('Ext.tip.ToolTip', { + target: img.getEl(), + html: errors + }); + this.down('checkbox').invalidCls = 'x-lada-error'; + this.down('checkbox').markInvalid(''); + img.show(); + var fieldset = this.up('fieldset[collapsible=true]'); + if (fieldset) { + fieldset.showErrors(); + } + }, + + clearWarningOrError: function() { + this.down('image[name=errorImg]').hide(); + this.down('image[name=warnImg]').hide(); + }, + + getValue: function() { + return this.down('checkbox').getValue(); + }, + + getName: function() { + return this.name; + }, + + setReadOnly: function(value) { + this.down('checkbox').setReadOnly(value); + } +});