changeset 610:f240fe19ff5d

Added a Checkbox Widget
author Dustin Demuth <dustin@intevation.de>
date Fri, 13 Mar 2015 13:20:49 +0100
parents 80077aeaa9ed
children 8a156a7fbe67
files app/view/widget/base/CheckBox.js
diffstat 1 files changed, 96 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /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);
+    }
+});

http://lada.wald.intevation.org