GMF’s incoherent cursor

by Ugo

I really believe in GMF’s potential. To take an Ecore, work on some models and generate the GEF code automatically to edit it its no less than beautiful. Even considering that its a new technology with a wide road ahead, still there is much you can done with it and it can be already used by common users. I have a nice story with GMF professionally, i did an editor for optical fiber network design called HiperionCAD, for Eletronorte (the brazillian electrical consortium of north’s region) and it was real fine, from the beginning to the end, its a nice, usable software, its rich on features and has a neat diagram editor. 🙂
But you guys using GMF or even pure GEF, does this cursor looks OK to you? If you had done at least one editor with GMF you will be familiar with it, then you know it is the default (the only one actually) cursor that appears when you add elements to your diagram. To be honest, I never paid much attention to it, as a developer, but after applying a HCI method of inspection called Semiotic Inspection Method on an editor i’ve been working on (MoLIC Designer), it started to call my attention every time I edit my diagrams, i cant help it.

I will blog more about it later, but the Semiotic Inspection Method is based on Semiotic Engineering (I will do a post about it as well) which is a novel theory of HCI (developed at PUC-Rio) that, in a rough way, considers interaction between users and softwares as one-shot messages between the designer of the software and the user, not between just the software and the user. In other words, in this theory what the designer means counts, and counts a lot! He (or she) is a human too, and has his own interpretations of what the user wants and everything else. And he fails.

What this cursor “says” to you? Perhaps “drag, drawing a rectangle and this element will be added” or something like that? Its ok when you have elements that can be resized, is indeed a nice feature to have the size already set at insertion-time, I bet that GEF programmers thought about it, to make the editing nicer.
Here is how it is done, you select an element from the toolbar (make it Scene, which is resizeable) click, drag and you have your element inserted at the size you drawed. Perfect.

But when it comes to GMF, you have a Fixed Size: true or false on the .gmfgraph, things doesnt get so nice. See, on the toolbar above there is also Opening Point and Closing Point, which has fixed size, they are respectively a circle of size 50 and a square of size 50. When we select and click one time at the diagram (because, of course, you dont want to set the size, they are fixed anyway! you designed the software so you know that) the diagram show no handlers at the sides, only at resizeable figures such Scene.

But, the cursor is the same and again telling the users “drag me around, make the size you want right now”. Ok, let me act like the user and interpret that this way. The cursor is showing me something, but if I drag the cursor during the reation of a fixed size element, it will still add the element?
Not only it adds, the element is added properly on the xmi underneath, and it cant be resized [of course, there are no handlers 🙂 its fixed size]

Its an ugly bug, I’d started a thread on the newsgroups and I will await for the discussion to start (if so) to file a bug, meanwhile I’ll try to fix it myself, i dont think it will be hard to solve. That was noticed on GMF 1.0, we are on GMF 2.0 now, with a new GEF palette and everything, and the problem wasnt noticed by anyone. The bug is posted here ( )

Book Review: The Semiotic Engineering of Human-Computer Interaction
Design as Communication – Don Norman