72 lines
2.4 KiB
JavaScript
72 lines
2.4 KiB
JavaScript
|
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;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
);
|