Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [e4-dev] E4 Keyboard Macros

Christian,

A quick comment on this, based on experience from a student who worked on a similar problem. In his case (a smart Eclipse tutorial), he wanted to recognize that a certain sequence of steps had been taken, and if not provide means of doing it for the user.

- Events can be thought of as lexical (keyboard and mouse), syntactic (enter text, select item, click button) or semantic (invoke action or command). The lexical and syntactic events often correspond to SWT's. It's not always clear which of these you want in a specific case. Syntacic er normally better than lexical, but you need to capture both and know how lexical events where translated to syntactic by a widget.

- Inputs occur in an input context (provide by previous output), and when replaying you need to ensure the context is correct, e.g. has had time to appear. This can partly be done by capturing widget life-cycle events, but isn't easy.

Even if Eclipse (SWT + JFace + the workbench) was built with this in mind, it would be difficult. My personal conclusion after watching my student struggle with making sense of the Display event stream, is that a UI scripting DSL is needed for automation, rather than relying on capturing events. It would have constructs for describing and waiting for output, e.g. window with three labels and input fields, and input, e.g. enter text in the second input field and click OK button:

require output (waiting 10 seconds):
Window {
  Label, TextField,
  Label { text: "name"}, TextField is tf,
  Label, TextField,
  Button { text: "OK" } is ok
}
provide input:
tf.input("Hallvard")
ok.click

With EMF, Xtext and Xbase it shouldn't be that difficult to make a prototype... Some capture mechanism could be helpful for generating fragments of such a script, but in general a person would need to validate and most often edit it.

It's certainly an interesting task.

Hallvard

On 16.06.15 20:21, Christian Pontesegger wrote:
Brian, you are right. Also for mouse events it would be extremely hard
to replay them. Just a small change to the perspective layout or timing
constraints for eg popups would make it extremely hard to replay such
macros correctly. What I am thinking of is a recorder that tries its
best to figure out what a user does. so instead of recording a click on
the file menu and afterwards a click on the Import... item I would like
to map this to a command execution of the import action.
This is an idea I am playing with for a long time without finding a good
solution to this. Maybe there is none. However your key recorder is one
step in the right direction.
I will keep you informed when I start to play around with these things.

Christian

_______________________________________________
e4-dev mailing list
e4-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/e4-dev

--
Hallvard Traetteberg, Associate Professor
Dept. of Computer and Information Sciences (IDI)
Norwegian University of Science and Technology (NTNU)


Back to the top