2 * Copyright 2010-2013 Ben Birch
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this software except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 (function( $, joey, app ) {
18 var ui = app.ns("ui");
20 ui.Button = ui.AbstractWidget.extend({
22 label: "", // the label text
23 disabled: false, // create a disabled button
24 autoDisable: false // automatically disable the button when clicked
29 init: function(parent) {
31 this.el = $.joey(this.button_template())
32 .bind("click", this.click_handler);
33 this.config.disabled && this.disable();
34 this.attach( parent );
37 click_handler: function(jEv) {
39 this.fire("click", jEv, this);
40 this.config.autoDisable && this.disable();
45 this.el.removeClass("disabled");
46 this.disabled = false;
50 disable: function(disable) {
51 if(disable === false) {
54 this.el.addClass("disabled");
59 button_template: function() { return (
60 { tag: 'BUTTON', type: 'button', id: this.id(), cls: this._baseCls, children: [
61 { tag: 'DIV', cls: 'uiButton-content', children: [
62 { tag: 'DIV', cls: 'uiButton-label', text: this.config.label }
68 })( this.jQuery, this.joey, this.app );