diff options
Diffstat (limited to 'webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js')
-rw-r--r-- | webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js new file mode 100644 index 0000000000..6e414bf30f --- /dev/null +++ b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js @@ -0,0 +1,210 @@ +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org + + License: + LGPL 2.1: http://www.gnu.org/licenses/lgpl.html + + Authors: + * Sebastian Werner (wpbasti) + * Andreas Ecker (ecker) + +************************************************************************ */ + +/* ************************************************************************ + +#module(ui_form) + +************************************************************************ */ + +qx.OO.defineClass("qx.ui.form.CheckBox", qx.ui.basic.Atom, +function(vText, vValue, vName, vChecked) +{ + qx.ui.basic.Atom.call(this, vText); + + this.setTabIndex(1); + this.setPadding(2, 3); + + this._createIcon(); + + if (qx.util.Validation.isValidString(vValue)) { + this.setValue(vValue); + } + + if (qx.util.Validation.isValidString(vName)) { + this.setName(vName); + } + + if (qx.util.Validation.isValidBoolean(vChecked)) { + this.setChecked(vChecked); + } else { + this.setChecked(false); + } + + this.addEventListener("click", this._onclick); + this.addEventListener("keydown", this._onkeydown); + this.addEventListener("keyup", this._onkeyup); +}); + +/* +--------------------------------------------------------------------------- + MODIFIER +--------------------------------------------------------------------------- +*/ + +qx.OO.removeProperty({ name : "icon" }); +qx.OO.removeProperty({ name : "disabledIcon" }); + +/*! + The HTML name of the form element used by the widget +*/ +qx.OO.addProperty({ name : "name", type : "string" }); + +/*! + The HTML value of the form element used by the widget +*/ +qx.OO.addProperty({ name : "value", type : "string" }); + +/*! + If the widget is checked +*/ +qx.OO.addProperty({ name : "checked", type : "boolean", getAlias : "isChecked" }); + + + + + +/* +--------------------------------------------------------------------------- + ICON HANDLING +--------------------------------------------------------------------------- +*/ + +qx.Proto.INPUT_TYPE = "checkbox"; + +qx.Proto._createIcon = function() +{ + var i = this._iconObject = new qx.ui.form.InputCheckSymbol; + + i.setType(this.INPUT_TYPE); + i.setChecked(this.isChecked()); + i.setEnabled(this.isEnabled()); + i.setAnonymous(true); + + this.addAtBegin(i); +} + + + + + +/* +--------------------------------------------------------------------------- + MODIFIER +--------------------------------------------------------------------------- +*/ + +qx.Proto._modifyChecked = function(propValue, propOldValue, propData) +{ + if (this._iconObject) { + this._iconObject.setChecked(propValue); + } + + return true; +} + +qx.Proto._modifyEnabled = function(propValue, propOldValue, propData) +{ + if (this._iconObject) { + this._iconObject.setEnabled(propValue); + } + + return qx.ui.basic.Atom.prototype._modifyEnabled.call(this, propValue, propOldValue, propData); +} + + + + +/* +--------------------------------------------------------------------------- + HANDLER +--------------------------------------------------------------------------- +*/ + +qx.Proto._handleIcon = function() +{ + switch(this.getShow()) + { + case qx.ui.basic.Atom.SHOW_ICON: + case qx.ui.basic.Atom.SHOW_BOTH: + this._iconIsVisible = true; + break; + + default: + this._iconIsVisible = false; + } + + if (this._iconIsVisible) + { + this._iconObject ? this._iconObject.setDisplay(true) : this._createIcon(); + } + else if (this._iconObject) + { + this._iconObject.setDisplay(false); + } +} + + + + +/* +--------------------------------------------------------------------------- + EVENT-HANDLER +--------------------------------------------------------------------------- +*/ + +qx.Proto._onclick = function(e) { + this.toggleChecked(); +}; + + +qx.Proto._onkeydown = function(e) +{ + if(e.getKeyIdentifier() == "Enter" && !e.getAltKey()) { + this.toggleChecked(); + } +}; + + +qx.Proto._onkeyup = function(e) +{ + if(e.getKeyIdentifier() == "Space") { + this.toggleChecked(); + } +}; + + + +/* +--------------------------------------------------------------------------- + DISPOSER +--------------------------------------------------------------------------- +*/ + +qx.Proto.dispose = function() +{ + if(this.getDisposed()) { + return; + } + + this.removeEventListener("click", this._onclick); + this.removeEventListener("keydown", this._onkeydown); + this.removeEventListener("keyup", this._onkeyup); + + return qx.ui.basic.Atom.prototype.dispose.call(this); +} |