1 <html><head><title>/home/alan/gitlive/roojs1/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">/*
4 * Copyright(c) 2006-2007, Ext JS, LLC.
6 * Originally Released Under LGPL - original licence link has changed is not relivant.
9 * <script type="text/javascript">
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.
17 * Creates a new CheckItem
18 * @param {Object} config Configuration options
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
29 </span><span class="jsdoc-string">"beforecheckchange" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
30 </span><span class="jsdoc-comment">/**
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
36 </span><span class="jsdoc-string">"checkchange" </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">);
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">/**
45 * All check items with the same group name will automatically be grouped into a single-select
46 * radio button group (defaults to '')
49 * @cfg {String} itemCls The default CSS class to use for check items (defaults to "x-menu-item x-menu-check-item")
51 </span><span class="jsdoc-var">itemCls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"x-menu-item x-menu-check-item"</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 "x-menu-group-item")
55 </span><span class="jsdoc-var">groupClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"x-menu-group-item"</span><span class="jsdoc-syntax">,
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.
62 </span><span class="jsdoc-var">checked</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
64 </span><span class="jsdoc-comment">// private
65 </span><span class="jsdoc-var">ctype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Roo.menu.CheckItem"</span><span class="jsdoc-syntax">,
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">);
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">);
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">);
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">);
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)
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">&& </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"beforecheckchange"</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">"addClass" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"removeClass"</span><span class="jsdoc-syntax">](</span><span class="jsdoc-string">"x-menu-item-checked"</span><span class="jsdoc-syntax">);
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">"checkchange"</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">);
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">&& !(</span><span class="jsdoc-var">this.checked </span><span class="jsdoc-syntax">&& </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">);
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">);
112 });</span></code></body></html>