dojo.provide("dijit._DialogMixin"); dojo.declare("dijit._DialogMixin", null, { // summary: // This provides functions useful to Dialog and TooltipDialog attributeMap: dijit._Widget.prototype.attributeMap, execute: function(/*Object*/ formContents){ // summary: // Callback when the user hits the submit button. // Override this method to handle Dialog execution. // description: // After the user has pressed the submit button, the Dialog // first calls onExecute() to notify the container to hide the // dialog and restore focus to wherever it used to be. // // *Then* this method is called. // type: // callback }, onCancel: function(){ // summary: // Called when user has pressed the Dialog's cancel button, to notify container. // description: // Developer shouldn't override or connect to this method; // it's a private communication device between the TooltipDialog // and the thing that opened it (ex: `dijit.form.DropDownButton`) // type: // protected }, onExecute: function(){ // summary: // Called when user has pressed the dialog's OK button, to notify container. // description: // Developer shouldn't override or connect to this method; // it's a private communication device between the TooltipDialog // and the thing that opened it (ex: `dijit.form.DropDownButton`) // type: // protected }, _onSubmit: function(){ // summary: // Callback when user hits submit button // type: // protected this.onExecute(); // notify container that we are about to execute this.execute(this.attr('value')); }, _getFocusItems: function(/*Node*/ dialogNode){ // summary: // Find focusable Items each time a dialog is opened, // setting _firstFocusItem and _lastFocusItem // tags: // protected var elems = dijit._getTabNavigable(dojo.byId(dialogNode)); this._firstFocusItem = elems.lowest || elems.first || dialogNode; this._lastFocusItem = elems.last || elems.highest || this._firstFocusItem; if(dojo.isMoz && this._firstFocusItem.tagName.toLowerCase() == "input" && dojo.attr(this._firstFocusItem, "type").toLowerCase() == "file"){ //FF doesn't behave well when first element is input type=file, set first focusable to dialog container dojo.attr(dialogNode, "tabindex", "0"); this._firstFocusItem = dialogNode; } } } );