1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
5 <title>dijit.focus Test</title>
6 <style type="text/css">
7 @import "../../../dojo/resources/dojo.css";
8 @import "../../themes/tundra/tundra.css";
9 @import "../css/dijitTests.css";
12 <script type="text/javascript" src="../../../dojo/dojo.js"
13 djConfig="isDebug: true, parseOnLoad: true"></script>
14 <script type="text/javascript">
15 dojo.require("dijit.form.DateTextBox");
16 dojo.require("dijit.form.ComboBox");
17 dojo.require("dijit.form.NumberSpinner");
18 dojo.require("dijit.form.Button");
19 dojo.require("dijit.Menu");
20 dojo.require("dijit.layout.ContentPane");
24 function animateBorderColor(widget, color, startWidth, endWidth){
26 queue.push(arguments);
29 with(widget.domNode.style){
34 animation = dojo.animateProperty({
38 // depending on browser and node type, sometimes border or outline is ineffective.
39 // doing both seems to work in all cases though (for at least one of them)
40 borderColor: { end: color },
41 borderWidth: { start: startWidth, end: endWidth },
42 outlineColor: { end: color },
43 outlineWidth: { start: startWidth, end: endWidth }
48 animateBorderColor.apply(null, queue.shift());
55 dojo.addOnLoad(function(){
56 dojo.subscribe("widgetFocus", function(widget){
57 console.log("focused on widget " + (widget?widget:"nothing"));
58 animateBorderColor(widget, "#ff0000", 2, 5);
60 dojo.subscribe("widgetBlur", function(widget){
61 console.log("blurred widget " + (widget?widget:"nothing"));
62 animateBorderColor(widget, "#0000ff", 5, 2);
64 dojo.subscribe("focusNode", function(node){ console.log("focused on node " + (node?(node.id||node.tagName):"nothing"));});
68 div, fieldset, form, input {
71 border: 2px solid blue;
75 <body style="background-color: #fff; color: black; padding: 0; margin: 0" class="tundra">
77 <h3>Widget Focus Test</h3>
79 This is for testing code to detect onBlur and onFocus on a widget level.<br>
80 Focused widgets' borders will turn red.<br>
81 Also, heck the console log for focus and blur events on widgets.
84 <label for="fieldset1">a form ContentPane widget:</label><br>
85 <form dojoType="dijit.layout.ContentPane">
86 <label for="first">simple input: </label><input id=first><br>
88 <label for="fieldset1">a fieldset ContentPane widget:</label><br>
89 <fieldset id=fieldset1 dojoType="dijit.layout.ContentPane">
90 <label for="select">a ComboBox widget:</label>
91 <select id=select dojoType="dijit.form.ComboBox">
97 <label for="plain">a plain input:</label>
98 <input id=plain value=plain>
101 <label for="fieldset1">another fieldset ContentPane:</label><br>
102 <fieldset id=fieldset2 dojoType="dijit.layout.ContentPane">
103 <label for="date">a DateTextBox widget:</label>
104 <input id=date dojoType="dijit.form.DateTextBox"><br>
106 <label for="textarea">a plain textarea:</label><br>
107 <textarea id=textarea>hello there!</textarea><br>
109 <label for="spinner">a Spinner widget:</label>
110 <input id=spinner dojoType="dijit.form.NumberSpinner" value=100><br>
112 <label for="button">a Combobutton widget:</label>
113 <div id=button dojoType="dijit.form.ComboButton" tabIndex=0>
115 <div id=menu dojoType="dijit.Menu">
116 <div id=mi1 dojoType="dijit.MenuItem">menu item 1</div>
117 <div id=mi2 dojoType="dijit.MenuItem">menu item 2</div>
118 <div id=popupMenuItem dojoType="dijit.PopupMenuItem">
120 <div id=submenu dojoType="dijit.Menu">
121 <div id=smi1 dojoType="dijit.MenuItem">submenu item 1</div>
122 <div id=smi2 dojoType="dijit.MenuItem">submenu item 2</div>