Fix #5681 - fix bootstrap4 detection
[roojs1] / docs / src / Roo_menu_CheckItem.js.html
1 <html><head><title>Roo/menu/CheckItem.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11
12 /**
13  * @class Roo.menu.CheckItem
14  * @extends Roo.menu.Item
15  * Adds a menu item that contains a checkbox by default, but can also be part of a radio group.
16  * @constructor
17  * Creates a new CheckItem
18  * @param {Object} config Configuration options
19  */
20 </span><span class="jsdoc-var">Roo.menu.CheckItem </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
21     </span><span class="jsdoc-var">Roo.menu.CheckItem.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
22     </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
23         </span><span class="jsdoc-comment">/**
24          * @event beforecheckchange
25          * Fires before the checked value is set, providing an opportunity to cancel if needed
26          * @param {Roo.menu.CheckItem} this
27          * @param {Boolean} checked The new checked value that will be set
28          */
29         </span><span class="jsdoc-string">&quot;beforecheckchange&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
30         </span><span class="jsdoc-comment">/**
31          * @event checkchange
32          * Fires after the checked value has been set
33          * @param {Roo.menu.CheckItem} this
34          * @param {Boolean} checked The checked value that was set
35          */
36         </span><span class="jsdoc-string">&quot;checkchange&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
37     </span><span class="jsdoc-syntax">});
38     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.checkHandler</span><span class="jsdoc-syntax">){
39         </span><span class="jsdoc-var">this.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'checkchange'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.checkHandler</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.scope</span><span class="jsdoc-syntax">);
40     }
41 };
42 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.menu.CheckItem</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.menu.Item</span><span class="jsdoc-syntax">, {
43     </span><span class="jsdoc-comment">/**
44      * @cfg {String} group
45      * All check items with the same group name will automatically be grouped into a single-select
46      * radio button group (defaults to '')
47      */
48     /**
49      * @cfg {String} itemCls The default CSS class to use for check items (defaults to &quot;x-menu-item x-menu-check-item&quot;)
50      */
51     </span><span class="jsdoc-var">itemCls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;x-menu-item x-menu-check-item&quot;</span><span class="jsdoc-syntax">,
52     </span><span class="jsdoc-comment">/**
53      * @cfg {String} groupClass The default CSS class to use for radio group check items (defaults to &quot;x-menu-group-item&quot;)
54      */
55     </span><span class="jsdoc-var">groupClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;x-menu-group-item&quot;</span><span class="jsdoc-syntax">,
56
57     </span><span class="jsdoc-comment">/**
58      * @cfg {Boolean} checked True to initialize this checkbox as checked (defaults to false).  Note that
59      * if this checkbox is part of a radio group (group = true) only the last item in the group that is
60      * initialized with checked = true will be rendered as checked.
61      */
62     </span><span class="jsdoc-var">checked</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
63
64     </span><span class="jsdoc-comment">// private
65     </span><span class="jsdoc-var">ctype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Roo.menu.CheckItem&quot;</span><span class="jsdoc-syntax">,
66
67     </span><span class="jsdoc-comment">// private
68     </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">){
69         </span><span class="jsdoc-var">Roo.menu.CheckItem.superclass.onRender.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
70         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.group</span><span class="jsdoc-syntax">){
71             </span><span class="jsdoc-var">this.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.groupClass</span><span class="jsdoc-syntax">);
72         }
73         </span><span class="jsdoc-var">Roo.menu.MenuMgr.registerCheckable</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
74         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.checked</span><span class="jsdoc-syntax">){
75             </span><span class="jsdoc-var">this.checked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
76             </span><span class="jsdoc-var">this.setChecked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
77         }
78     },
79
80     </span><span class="jsdoc-comment">// private
81     </span><span class="jsdoc-var">destroy </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
82         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rendered</span><span class="jsdoc-syntax">){
83             </span><span class="jsdoc-var">Roo.menu.MenuMgr.unregisterCheckable</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
84         }
85         </span><span class="jsdoc-var">Roo.menu.CheckItem.superclass.destroy.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
86     },
87
88     </span><span class="jsdoc-comment">/**
89      * Set the checked state of this item
90      * @param {Boolean} checked The new checked value
91      * @param {Boolean} suppressEvent (optional) True to prevent the checkchange event from firing (defaults to false)
92      */
93     </span><span class="jsdoc-var">setChecked </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">suppressEvent</span><span class="jsdoc-syntax">){
94         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.checked </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">state </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforecheckchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">) !== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
95             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.container</span><span class="jsdoc-syntax">){
96                 </span><span class="jsdoc-var">this.container</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">state </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;addClass&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;removeClass&quot;</span><span class="jsdoc-syntax">](</span><span class="jsdoc-string">&quot;x-menu-item-checked&quot;</span><span class="jsdoc-syntax">);
97             }
98             </span><span class="jsdoc-var">this.checked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">;
99             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">suppressEvent </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
100                 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;checkchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">);
101             }
102         }
103     },
104
105     </span><span class="jsdoc-comment">// private
106     </span><span class="jsdoc-var">handleClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
107        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.disabled </span><span class="jsdoc-syntax">&amp;&amp; !(</span><span class="jsdoc-var">this.checked </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.group</span><span class="jsdoc-syntax">)){</span><span class="jsdoc-comment">// disable unselect on radio item
108            </span><span class="jsdoc-var">this.setChecked</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.checked</span><span class="jsdoc-syntax">);
109        }
110        </span><span class="jsdoc-var">Roo.menu.CheckItem.superclass.handleClick.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
111     }
112 });</span></code></body></html>