Artifact
7cd9e1738d4bbe33fa0ccd6ed10ff061b2bcb796:
- File
DevTools/formExplorer.js
— part of check-in
[13dce47a21]
at
2013-02-24 10:13:53
on branch trunk
— workaround - selectvalue.js не может выбрать нулевое значение
(user:
orefkov
size: 2897)
[more...]
0000: ef bb bf 24 65 6e 67 69 6e 65 20 4a 53 63 72 69 ...$engine JScri
0010: 70 74 0d 0a 24 75 6e 61 6d 65 20 49 6e 74 65 72 pt..$uname Inter
0020: 6e 61 6c 46 6f 72 6d 45 78 70 6c 6f 72 65 72 0d nalFormExplorer.
0030: 0a 24 64 6e 61 6d 65 20 d0 98 d1 81 d1 81 d0 bb .$dname ........
0040: d0 b5 d0 b4 d0 be d0 b2 d0 b0 d0 bd d0 b8 d0 b5 ................
0050: 20 d1 84 d0 be d1 80 d0 bc 20 31 d0 a1 0d 0a 24 ........ 1....$
0060: 61 64 64 69 6e 20 73 74 64 6c 69 62 0d 0a 0d 0a addin stdlib....
0070: 2f 2f 20 d0 90 d0 bb d0 b5 d0 ba d1 81 d0 b0 d0 // .............
0080: bd d0 b4 d1 80 20 d0 9e d1 80 d0 b5 d1 84 d0 ba ..... ..........
0090: d0 be d0 b2 0d 0a 2f 2f 20 d0 a1 d0 ba d1 80 d0 ......// .......
00a0: b8 d0 bf d1 82 20 d0 bf d1 80 d0 b5 d0 b4 d0 bd ..... ..........
00b0: d0 b0 d0 b7 d0 bd d0 b0 d1 87 d0 b5 d0 bd 20 d0 .............. .
00c0: b4 d0 bb d1 8f 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 ..... ..........
00d0: d0 b0 20 d0 b8 d0 bd d1 84 d0 be d1 80 d0 bc d0 .. .............
00e0: b0 d1 86 d0 b8 d0 b8 20 d0 be 20 d1 81 d0 be d1 ....... .. .....
00f0: 81 d1 82 d0 b0 d0 b2 d0 b5 20 d0 ba d0 be d0 bd ......... ......
0100: d1 82 d1 80 d0 be d0 bb d0 be d0 b2 2c 20 d1 81 ............, ..
0110: d0 b2 d0 be d0 b9 d1 81 d1 82 d0 b2 d0 b0 d1 85 ................
0120: 20 d0 b8 20 d1 81 d0 be d0 b1 d1 8b d1 82 d0 b8 .. ............
0130: d1 8f d1 85 0d 0a 2f 2f 20 d0 b2 d0 bd d1 83 d1 ......// .......
0140: 82 d1 80 d0 b5 d0 bd d0 bd d0 b8 d1 85 20 d1 84 ............. ..
0150: d0 be d1 80 d0 bc 20 31 d0 a1 0d 0a 73 74 64 6c ...... 1....stdl
0160: 69 62 2e 72 65 71 75 69 72 65 28 22 53 65 6c 65 ib.require("Sele
0170: 63 74 56 61 6c 75 65 44 69 61 6c 6f 67 2e 6a 73 ctValueDialog.js
0180: 22 2c 20 53 65 6c 66 53 63 72 69 70 74 29 3b 0d ", SelfScript);.
0190: 0a 0d 0a 76 61 72 20 6c 61 73 74 4d 6f 64 61 6c ...var lastModal
01a0: 46 6f 72 6d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e Form....function
01b0: 20 6f 6e 44 6f 4d 6f 64 61 6c 28 64 6c 67 49 6e onDoModal(dlgIn
01c0: 66 6f 29 0d 0a 7b 0d 0a 20 20 20 20 69 66 28 6f fo)..{.. if(o
01d0: 70 65 6e 4d 6f 64 61 6c 57 6e 64 20 3d 3d 20 64 penModalWnd == d
01e0: 6c 67 49 6e 66 6f 2e 73 74 61 67 65 20 26 26 20 lgInfo.stage &&
01f0: 64 6c 67 49 6e 66 6f 2e 66 6f 72 6d 29 0d 0a 20 dlgInfo.form)..
0200: 20 20 20 20 20 20 20 6c 61 73 74 4d 6f 64 61 6c lastModal
0210: 46 6f 72 6d 20 3d 20 64 6c 67 49 6e 66 6f 2e 66 Form = dlgInfo.f
0220: 6f 72 6d 0d 0a 7d 0d 0a 0d 0a 65 76 65 6e 74 73 orm..}....events
0230: 2e 63 6f 6e 6e 65 63 74 28 77 69 6e 64 6f 77 73 .connect(windows
0240: 2c 20 22 6f 6e 44 6f 4d 6f 64 61 6c 22 2c 20 53 , "onDoModal", S
0250: 65 6c 66 53 63 72 69 70 74 2e 73 65 6c 66 29 0d elfScript.self).
0260: 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 ...function getF
0270: 6f 72 6d 28 29 0d 0a 7b 0d 0a 20 20 20 20 69 66 orm()..{.. if
0280: 28 77 69 6e 64 6f 77 73 2e 6d 6f 64 61 6c 4d 6f (windows.modalMo
0290: 64 65 20 3d 3d 20 6d 73 4e 6f 6e 65 29 0d 0a 20 de == msNone)..
02a0: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 {.. va
02b0: 72 20 61 76 20 3d 20 77 69 6e 64 6f 77 73 2e 67 r av = windows.g
02c0: 65 74 41 63 74 69 76 65 56 69 65 77 28 29 0d 0a etActiveView()..
02d0: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 return a
02e0: 76 20 3f 20 61 76 2e 67 65 74 49 6e 74 65 72 6e v ? av.getIntern
02f0: 61 6c 46 6f 72 6d 28 29 20 3a 20 6e 75 6c 6c 0d alForm() : null.
0300: 0a 20 20 20 20 7d 0d 0a 20 20 20 20 72 65 74 75 . }.. retu
0310: 72 6e 20 6c 61 73 74 4d 6f 64 61 6c 46 6f 72 6d rn lastModalForm
0320: 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 ..}....function
0330: 65 78 70 6c 6f 72 65 41 63 74 69 76 65 46 6f 72 exploreActiveFor
0340: 6d 28 77 69 74 68 50 72 6f 70 73 29 0d 0a 7b 0d m(withProps)..{.
0350: 0a 20 20 20 20 76 61 72 20 66 6f 72 6d 20 3d 20 . var form =
0360: 67 65 74 46 6f 72 6d 28 29 0d 0a 20 20 20 20 69 getForm().. i
0370: 66 28 21 66 6f 72 6d 29 0d 0a 20 20 20 20 20 20 f(!form)..
0380: 20 20 72 65 74 75 72 6e 0d 0a 20 20 20 20 2f 2f return.. //
0390: 20 2d 31 20 2d 20 d1 8d d1 82 d0 be 20 d1 81 d0 -1 - ...... ...
03a0: b0 d0 bc d0 b0 20 d1 84 d0 be d1 80 d0 bc d0 b0 ..... ..........
03b0: 0d 0a 20 20 20 20 66 6f 72 28 76 61 72 20 69 20 .. for(var i
03c0: 3d 20 2d 31 2c 20 6b 20 3d 20 66 6f 72 6d 2e 63 = -1, k = form.c
03d0: 6f 6e 74 72 6f 6c 73 43 6f 75 6e 74 3b 20 69 20 ontrolsCount; i
03e0: 3c 20 6b 3b 20 69 2b 2b 29 0d 0a 20 20 20 20 7b < k; i++).. {
03f0: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 63 74 .. var ct
0400: 72 20 3d 20 66 6f 72 6d 2e 67 65 74 43 6f 6e 74 r = form.getCont
0410: 72 6f 6c 28 69 29 0a 20 20 20 20 20 20 20 20 4d rol(i). M
0420: 65 73 73 61 67 65 28 22 43 6f 6e 74 72 6f 6c 20 essage("Control
0430: 23 22 20 2b 20 69 20 2b 20 22 20 6e 61 6d 65 3d #" + i + " name=
0440: 22 20 2b 20 63 74 72 2e 6e 61 6d 65 20 2b 20 22 " + ctr.name + "
0450: 20 69 64 3d 22 20 2b 20 63 74 72 2e 69 64 2c 20 id=" + ctr.id,
0460: 6d 49 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 69 mInfo). i
0470: 66 28 77 69 74 68 50 72 6f 70 73 29 0a 20 20 20 f(withProps).
0480: 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 {.
0490: 20 20 20 76 61 72 20 70 72 6f 70 73 20 3d 20 63 var props = c
04a0: 74 72 2e 70 72 6f 70 73 0a 20 20 20 20 20 20 20 tr.props.
04b0: 20 20 20 20 20 66 6f 72 28 76 61 72 20 69 64 78 for(var idx
04c0: 20 3d 20 30 2c 20 63 6e 74 20 3d 20 70 72 6f 70 = 0, cnt = prop
04d0: 73 2e 63 6f 75 6e 74 3b 20 69 64 78 20 3c 20 63 s.count; idx < c
04e0: 6e 74 3b 20 69 64 78 2b 2b 29 0a 20 20 20 20 20 nt; idx++).
04f0: 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 {.
0500: 20 20 20 20 20 20 20 20 20 76 61 72 20 76 20 3d var v =
0510: 20 74 6f 56 38 56 61 6c 75 65 28 70 72 6f 70 73 toV8Value(props
0520: 2e 67 65 74 56 61 6c 75 65 28 69 64 78 29 29 0a .getValue(idx)).
0530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0540: 4d 65 73 73 61 67 65 28 22 5c 74 22 20 2b 20 70 Message("\t" + p
0550: 72 6f 70 73 2e 70 72 6f 70 4e 61 6d 65 28 69 64 rops.propName(id
0560: 78 29 20 2b 20 22 20 3d 20 22 20 2b 20 76 2e 70 x) + " = " + v.p
0570: 72 65 73 65 6e 74 61 74 69 6f 6e 28 29 20 2b 20 resentation() +
0580: 22 20 20 d0 a2 d0 b8 d0 bf 3d 22 20 2b 20 76 2e " ......=" + v.
0590: 74 79 70 65 4e 61 6d 65 28 31 29 20 2b 20 22 20 typeName(1) + "
05a0: 22 20 2b 20 76 2e 74 6f 53 74 72 69 6e 67 49 6e " + v.toStringIn
05b0: 74 65 72 6e 61 6c 28 29 29 3b 0a 20 20 20 20 20 ternal());.
05c0: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 }.
05d0: 20 7d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a 66 }. }..}....f
05e0: 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 54 72 unction enableTr
05f0: 61 63 65 28 65 6e 61 62 6c 65 29 0d 0a 7b 0d 0a ace(enable)..{..
0600: 20 20 20 20 76 61 72 20 66 6f 72 6d 20 3d 20 67 var form = g
0610: 65 74 46 6f 72 6d 28 29 0d 0a 20 20 20 20 69 66 etForm().. if
0620: 28 66 6f 72 6d 29 0d 0a 20 20 20 20 20 20 20 20 (form)..
0630: 66 6f 72 6d 2e 74 72 61 70 44 69 61 6c 6f 67 45 form.trapDialogE
0640: 76 65 6e 74 73 20 3d 20 65 6e 61 62 6c 65 0d 0a vents = enable..
0650: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 }....function ma
0660: 63 72 6f 73 d0 9f d0 be d0 ba d0 b0 d0 b7 d0 b0 cros............
0670: d1 82 d1 8c d0 9a d0 be d0 bd d1 82 d1 80 d0 be ................
0680: d0 bb d1 8b d0 90 d0 ba d1 82 d0 b8 d0 b2 d0 bd ................
0690: d0 be d0 b9 d0 a4 d0 be d1 80 d0 bc d1 8b 28 29 ..............()
06a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 {
06b0: 65 78 70 6c 6f 72 65 41 63 74 69 76 65 46 6f 72 exploreActiveFor
06c0: 6d 28 66 61 6c 73 65 29 20 7d 0d 0a 66 75 6e 63 m(false) }..func
06d0: 74 69 6f 6e 20 6d 61 63 72 6f 73 d0 9f d0 be d0 tion macros.....
06e0: ba d0 b0 d0 b7 d0 b0 d1 82 d1 8c d0 9a d0 be d0 ................
06f0: bd d1 82 d1 80 d0 be d0 bb d1 8b d0 90 d0 ba d1 ................
0700: 82 d0 b8 d0 b2 d0 bd d0 be d0 b9 d0 a4 d0 be d1 ................
0710: 80 d0 bc d1 8b 43 d0 be d0 a1 d0 92 d0 be d0 b9 .....C..........
0720: d1 81 d1 82 d0 b2 d0 b0 d0 bc d0 b8 28 29 20 20 ............()
0730: 7b 20 65 78 70 6c 6f 72 65 41 63 74 69 76 65 46 { exploreActiveF
0740: 6f 72 6d 28 74 72 75 65 29 20 7d 0d 0a 66 75 6e orm(true) }..fun
0750: 63 74 69 6f 6e 20 6d 61 63 72 6f 73 d0 9d d0 b0 ction macros....
0760: d1 87 d0 b0 d1 82 d1 8c d0 9e d1 82 d1 81 d0 bb ................
0770: d0 b5 d0 b6 d0 b8 d0 b2 d0 b0 d0 bd d0 b8 d0 b5 ................
0780: d0 a1 d0 be d0 b1 d1 8b d1 82 d0 b8 d0 b9 d0 90 ................
0790: d0 ba d1 82 d0 b8 d0 b2 d0 bd d0 be d0 b9 d0 a4 ................
07a0: d0 be d1 80 d0 bc d1 8b 28 29 20 20 20 20 20 7b ........() {
07b0: 20 65 6e 61 62 6c 65 54 72 61 63 65 28 74 72 75 enableTrace(tru
07c0: 65 29 20 7d 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d e) }..function m
07d0: 61 63 72 6f 73 d0 97 d0 b0 d0 b2 d0 b5 d1 80 d1 acros...........
07e0: 88 d0 b8 d1 82 d1 8c d0 9e d1 82 d1 81 d0 bb d0 ................
07f0: b5 d0 b6 d0 b8 d0 b2 d0 b0 d0 bd d0 b8 d0 b5 d0 ................
0800: a1 d0 be d0 b1 d1 8b d1 82 d0 b8 d0 b9 d0 90 d0 ................
0810: ba d1 82 d0 b8 d0 b2 d0 bd d0 be d0 b9 d0 a4 d0 ................
0820: be d1 80 d0 bc d1 8b 28 29 20 20 7b 20 65 6e 61 .......() { ena
0830: 62 6c 65 54 72 61 63 65 28 66 61 6c 73 65 29 20 bleTrace(false)
0840: 7d 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 }..function macr
0850: 6f 73 d0 9f d0 be d0 ba d0 b0 d0 b7 d0 b0 d1 82 os..............
0860: d1 8c d0 a1 d0 b2 d0 be d0 b9 d1 81 d1 82 d0 b2 ................
0870: d0 b0 d0 9a d0 be d0 bd d1 82 d1 80 d0 be d0 bb ................
0880: d0 b0 28 29 0d 0a 7b 0d 0a 20 20 20 20 76 61 72 ..()..{.. var
0890: 20 66 6f 72 6d 20 3d 20 67 65 74 46 6f 72 6d 28 form = getForm(
08a0: 29 0d 0a 20 20 20 20 69 66 28 21 66 6f 72 6d 29 ).. if(!form)
08b0: 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 .. {..
08c0: 20 4d 65 73 73 61 67 65 42 6f 78 28 22 d0 9d d0 MessageBox("...
08d0: b5 d1 82 20 d0 b0 d0 ba d1 82 d0 b8 d0 b2 d0 bd ... ............
08e0: d0 be d0 b9 20 d1 84 d0 be d1 80 d0 bc d1 8b 22 .... .........."
08f0: 29 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 ).. retur
0900: 6e 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 76 61 n.. }.. va
0910: 72 20 76 6c 20 3d 20 76 38 4e 65 77 28 22 d0 a1 r vl = v8New("..
0920: d0 bf d0 b8 d1 81 d0 be d0 ba d0 97 d0 bd d0 b0 ................
0930: d1 87 d0 b5 d0 bd d0 b8 d0 b9 22 29 0d 0a 20 20 ..........")..
0940: 20 20 76 6c 2e 41 64 64 28 2d 31 20 2b 20 32 2c vl.Add(-1 + 2,
0950: 20 22 d0 a4 d0 be d1 80 d0 bc d0 b0 22 29 0d 0a "..........")..
0960: 20 20 20 20 66 6f 72 28 76 61 72 20 69 20 3d 20 for(var i =
0970: 30 2c 20 6b 20 3d 20 66 6f 72 6d 2e 63 6f 6e 74 0, k = form.cont
0980: 72 6f 6c 73 43 6f 75 6e 74 3b 20 69 20 3c 20 6b rolsCount; i < k
0990: 3b 20 69 2b 2b 29 0d 0a 20 20 20 20 7b 0d 0a 20 ; i++).. {..
09a0: 20 20 20 20 20 20 20 76 61 72 20 6e 61 6d 65 20 var name
09b0: 3d 20 66 6f 72 6d 2e 67 65 74 43 6f 6e 74 72 6f = form.getContro
09c0: 6c 28 69 29 2e 6e 61 6d 65 0d 0a 20 20 20 20 20 l(i).name..
09d0: 20 20 20 69 66 28 21 6e 61 6d 65 2e 6c 65 6e 67 if(!name.leng
09e0: 74 68 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 th)..
09f0: 20 6e 61 6d 65 20 3d 20 22 22 20 2b 20 69 0d 0a name = "" + i..
0a00: 20 20 20 20 20 20 20 20 76 6c 2e 41 64 64 28 69 vl.Add(i
0a10: 20 2b 20 32 2c 20 6e 61 6d 65 29 20 20 2f 2f 20 + 2, name) //
0a20: 53 65 6c 65 63 74 56 61 6c 75 65 44 69 61 6c 6f SelectValueDialo
0a30: 67 20 d0 bd d0 b5 20 d0 b4 d0 b0 d0 b5 d1 82 20 g .... ........
0a40: d0 b2 d1 8b d0 b1 d1 80 d0 b0 d1 82 d1 8c 20 d0 .............. .
0a50: b7 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8 d0 b5 20 ...............
0a60: 30 2c 20 d0 bf d0 be d1 8d d1 82 d0 be d0 bc d1 0, .............
0a70: 83 20 d1 81 d0 b4 d0 b2 d0 b8 d0 bd d0 b5 d0 bc . ..............
0a80: 20 d0 b2 d1 81 d0 b5 20 d0 bd d0 b0 20 32 0d 0a ...... .... 2..
0a90: 20 20 20 20 7d 0d 0a 20 20 20 20 76 61 72 20 64 }.. var d
0aa0: 6c 67 20 3d 20 6e 65 77 20 53 65 6c 65 63 74 56 lg = new SelectV
0ab0: 61 6c 75 65 44 69 61 6c 6f 67 28 22 d0 a3 d0 ba alueDialog("....
0ac0: d0 b0 d0 b6 d0 b8 d1 82 d0 b5 20 d0 ba d0 be d0 .......... .....
0ad0: bd d1 82 d1 80 d0 be d0 bb 22 2c 20 76 6c 29 3b .........", vl);
0ae0: 0d 0a 20 20 20 20 69 66 28 64 6c 67 2e 73 65 6c .. if(dlg.sel
0af0: 65 63 74 56 61 6c 75 65 28 29 29 0d 0a 20 20 20 ectValue())..
0b00: 20 20 20 20 20 66 6f 72 6d 2e 67 65 74 43 6f 6e form.getCon
0b10: 74 72 6f 6c 28 64 6c 67 2e 73 65 6c 65 63 74 65 trol(dlg.selecte
0b20: 64 56 61 6c 75 65 20 2d 20 32 29 2e 70 72 6f 70 dValue - 2).prop
0b30: 73 2e 61 63 74 69 76 61 74 65 50 72 6f 70 65 72 s.activateProper
0b40: 74 79 28 22 d0 98 d0 bc d1 8f 22 29 0d 0a 7d 0d ty("......")..}.
0b50: 0a .