1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- /*
- Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
- Available via Academic Free License >= 2.1 OR the modified BSD license.
- see: http://dojotoolkit.org/license for details
- */
- if(!dojo._hasResource["dojox.form.manager._EnableMixin"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
- dojo._hasResource["dojox.form.manager._EnableMixin"] = true;
- dojo.provide("dojox.form.manager._EnableMixin");
- dojo.require("dojox.form.manager._Mixin");
- (function(){
- var fm = dojox.form.manager,
- aa = fm.actionAdapter,
- ia = fm.inspectorAdapter;
- dojo.declare("dojox.form.manager._EnableMixin", null, {
- // summary:
- // Form manager's mixin for controlling enable/disable state of
- // form elements.
- // description:
- // This mixin provides unified enable/disable functionality for
- // form widgets and form elements. It should be used together
- // with dojox.form.manager.Mixin.
- gatherEnableState: function(names){
- // summary:
- // Gather enable state of all form elements and return as a dictionary.
- // names: Object?:
- // If it is an array, it is a list of names to be processed.
- // If it is an object, dictionary keys are names to be processed.
- // If it is omitted, all known form elements are to be processed.
- var result = this.inspectFormWidgets(ia(function(name, widget){
- return !widget.get("disabled");
- }), names);
- if(this.inspectFormNodes){
- dojo.mixin(result, this.inspectFormNodes(ia(function(name, node){
- return !dojo.attr(node, "disabled");
- }), names));
- }
- return result; // Object
- },
- enable: function(state, defaultState){
- // summary:
- // Enable form controls according to the supplied state object.
- // state: Object?:
- // Optional. If a name-value dictionary, the value is true
- // to enable and false to disable. If an array, all names in the
- // array will be set to defaultState. If omitted, all form
- // elements will be set to defaultState.
- // defaultState: Boolean:
- // The default state (true, if omitted).
- if(arguments.length < 2 || defaultState === undefined){
- defaultState = true;
- }
- this.inspectFormWidgets(aa(function(name, widget, value){
- widget.set("disabled", !value);
- }), state, defaultState);
- if(this.inspectFormNodes){
- this.inspectFormNodes(aa(function(name, node, value){
- dojo.attr(node, "disabled", !value);
- }), state, defaultState);
- }
- return this; // self
- },
- disable: function(state){
- // summary:
- // Disable form controls according to the supplied state object
- // returning the previous state.
- // state: Object?:
- // Optional. If a name-value dictionary, the value is true
- // to enable and false to disable. If an array, all names in the
- // array will be disabled. If omitted, disables all.
- var oldState = this.gatherEnableState();
- this.enable(state, false);
- return oldState; // Object
- }
- });
- })();
- }
|