]>
git.proxmox.com Git - extjs.git/blob - extjs/packages/ux/classic/src/event/RecorderManager.js
3 * Used as a bookmarklet:
5 * javascript:void(window.open("../ux/event/RecorderManager.html","recmgr"))
7 Ext
.define('Ext.ux.event.RecorderManager', {
8 extend
: 'Ext.panel.Panel',
10 alias
: 'widget.eventrecordermanager',
13 'Ext.ux.event.Recorder',
29 initComponent: function () {
32 me
.recorder
= new Ext
.ux
.event
.Recorder({
33 attachTo
: me
.attachTo
,
36 coalesce
: me
.updateEvents
,
41 me
.recorder
.eventsToRecord
= Ext
.apply({}, me
.recorder
.eventsToRecord
);
43 function speed (text
, value
) {
48 checked
: value
== me
.playSpeed
,
49 handler
: me
.onPlaySpeed
,
61 menu
: me
.makeRecordButtonMenu()
70 speed('Qarter Speed (0.25x)', .25),
71 speed('Half Speed (0.5x)', .5 ),
72 speed('3/4 Speed (0.75x)', .75),
74 speed('Recorded Speed (1x)', 1),
75 speed('Double Speed (2x)', 2),
76 speed('Quad Speed (4x)', 4),
78 speed('Full Speed', 1000)
97 var events
= me
.attachTo
&& me
.attachTo
.testEvents
;
102 fieldStyle
: 'font-family: monospace',
104 emptyText
: 'Events go here!',
105 value
: events
? me
.stringifyEvents(events
) : '',
106 scrollToBottom: function () {
107 var inputEl
= this.inputEl
.dom
;
108 inputEl
.scrollTop
= inputEl
.scrollHeight
;
115 text
: 'Attached To: ' + (me
.attachTo
&& me
.attachTo
.location
.href
)
122 makeRecordButtonMenu: function () {
125 eventsToRec
= this.recorder
.eventsToRecord
,
126 ignoredEvents
= this.eventsToIgnore
;
128 Ext
.Object
.each(eventsToRec
, function (name
, value
) {
129 var sub
= subs
[value
.kind
];
131 subs
[value
.kind
] = sub
= [];
141 handler: function (menuItem
) {
142 if (menuItem
.checked
) {
143 eventsToRec
[name
] = value
;
145 delete eventsToRec
[name
];
150 if (ignoredEvents
[name
]) {
151 sub
[sub
.length
- 1].checked
= false;
152 Ext
.Function
.defer(function () {
153 delete eventsToRec
[name
];
158 function less (lhs
, rhs
) {
159 return (lhs
.text
< rhs
.text
) ? -1
160 : ((rhs
.text
< lhs
.text
) ? 1 : 0);
164 Ext
.Array
.each(ret
, function (sub
) {
171 getEventView: function () {
172 return this.down('#eventView');
175 onClear: function () {
176 var view
= this.getEventView();
180 onPlay: function () {
182 view
= me
.getEventView(),
183 events
= view
.getValue();
186 events
= Ext
.decode(events
);
188 me
.player
= Ext
.create('Ext.ux.event.Player', {
189 attachTo
: window
.opener
,
204 onPlayStop: function () {
209 onPlaySpeed: function (menuitem
) {
210 this.playSpeed
= menuitem
.speed
;
213 onRecord: function () {
214 this.recorder
.start();
218 onStop: function () {
231 syncBtnUI: function () {
233 idle
= !me
.player
&& !me
.recorder
.active
;
235 Ext
.each(me
.query('[whenIdle]'), function (btn
) {
236 btn
.setDisabled(!idle
);
238 Ext
.each(me
.query('[whenActive]'), function (btn
) {
239 btn
.setDisabled(idle
);
242 var view
= me
.getEventView();
243 view
.setReadOnly(!idle
);
246 stringifyEvents: function (events
) {
250 Ext
.each(events
, function (ev
) {
253 Ext
.Object
.each(ev
, function (name
, value
) {
259 line
.push(name
, ': ');
260 line
.push(Ext
.encode(value
));
264 lines
.push(line
.join(''));
267 return '[\n' + lines
.join(',\n') + '\n]';
270 updateEvents: function () {
272 text
= me
.stringifyEvents(me
.recorder
.getRecordedEvents()),
273 view
= me
.getEventView();
276 view
.scrollToBottom();