]>
Commit | Line | Data |
---|---|---|
2f01fe57 AD |
1 | /* |
2 | Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. | |
3 | Available via Academic Free License >= 2.1 OR the modified BSD license. | |
4 | see: http://dojotoolkit.org/license for details | |
5 | */ | |
6 | ||
7 | ||
8 | if(!dojo._hasResource["dojo.robot"]){ | |
9 | dojo._hasResource["dojo.robot"]=true; | |
10 | dojo.provide("dojo.robot"); | |
11 | dojo.experimental("dojo.robot"); | |
12 | dojo.require("doh.robot"); | |
13 | dojo.require("dojo.window"); | |
14 | (function(){ | |
15 | dojo.mixin(doh.robot,{_resolveNode:function(n){ | |
16 | if(typeof n=="function"){ | |
17 | n=n(); | |
18 | } | |
19 | return n?dojo.byId(n):null; | |
20 | },_scrollIntoView:function(n){ | |
21 | var d=dojo,dr=doh.robot,p=null; | |
22 | d.forEach(dr._getWindowChain(n),function(w){ | |
23 | d.withGlobal(w,function(){ | |
24 | var p2=d.position(n,false),b=d._getPadBorderExtents(n),_1=null; | |
25 | if(!p){ | |
26 | p=p2; | |
27 | }else{ | |
28 | _1=p; | |
29 | p={x:p.x+p2.x+b.l,y:p.y+p2.y+b.t,w:p.w,h:p.h}; | |
30 | } | |
31 | dojo.window.scrollIntoView(n,p); | |
32 | p2=d.position(n,false); | |
33 | if(!_1){ | |
34 | p=p2; | |
35 | }else{ | |
36 | p={x:_1.x+p2.x+b.l,y:_1.y+p2.y+b.t,w:p.w,h:p.h}; | |
37 | } | |
38 | n=w.frameElement; | |
39 | }); | |
40 | }); | |
41 | },_position:function(n){ | |
42 | var d=dojo,p=null,M=Math.max,m=Math.min; | |
43 | d.forEach(doh.robot._getWindowChain(n),function(w){ | |
44 | d.withGlobal(w,function(){ | |
45 | var p2=d.position(n,false),b=d._getPadBorderExtents(n); | |
46 | if(!p){ | |
47 | p=p2; | |
48 | }else{ | |
49 | var _2; | |
50 | d.withGlobal(n.contentWindow,function(){ | |
51 | _2=dojo.window.getBox(); | |
52 | }); | |
53 | p2.r=p2.x+_2.w; | |
54 | p2.b=p2.y+_2.h; | |
55 | p={x:M(p.x+p2.x,p2.x)+b.l,y:M(p.y+p2.y,p2.y)+b.t,r:m(p.x+p2.x+p.w,p2.r)+b.l,b:m(p.y+p2.y+p.h,p2.b)+b.t}; | |
56 | p.w=p.r-p.x; | |
57 | p.h=p.b-p.y; | |
58 | } | |
59 | n=w.frameElement; | |
60 | }); | |
61 | }); | |
62 | return p; | |
63 | },_getWindowChain:function(n){ | |
64 | var cW=dojo.window.get(n.ownerDocument); | |
65 | var _3=[cW]; | |
66 | var f=cW.frameElement; | |
67 | return (cW==dojo.global||f==null)?_3:_3.concat(doh.robot._getWindowChain(f)); | |
68 | },scrollIntoView:function(_4,_5){ | |
69 | doh.robot.sequence(function(){ | |
70 | doh.robot._scrollIntoView(doh.robot._resolveNode(_4)); | |
71 | },_5); | |
72 | },mouseMoveAt:function(_6,_7,_8,_9,_a){ | |
73 | doh.robot._assertRobot(); | |
74 | _8=_8||100; | |
75 | this.sequence(function(){ | |
76 | _6=doh.robot._resolveNode(_6); | |
77 | doh.robot._scrollIntoView(_6); | |
78 | var _b=doh.robot._position(_6); | |
79 | if(_a===undefined){ | |
80 | _9=_b.w/2; | |
81 | _a=_b.h/2; | |
82 | } | |
83 | var x=_b.x+_9; | |
84 | var y=_b.y+_a; | |
85 | doh.robot._mouseMove(x,y,false,_8); | |
86 | },_7,_8); | |
87 | }}); | |
88 | })(); | |
89 | } |