Hi Matt,
Thanks for the notes on selection behavior for Fact Editor entries. This is an important issue, as it gets to the heart of efficient entry and editing of Fact Types. The "weak" auto-layout is an understandable consequence of the development process (just not as high a priority as functional and stability issues).
It was the need to select the new Fact type, in order to relocate it in the designer that prompted the post - if it was an easy and uncomplicated fix; that would have been fine. The current situation isn't intolerable, just a drag (no pun intended).
Looking at it strictly from an end user's perspective, I wonder if splitting the functionality of the Fact Editor makes sense - perhaps not into two separate windows, but a way to easily switch between two modes. There is certainly a need to edit Fact Types; but a better way to enter a number of new Fact Types would be helpful. I guess this would move the functionality from being a Fact Editor, towards becoming a Fact Processor.
This issue seems related to something brought up about a year ago - concerning a grammar for ORM 2, and the ability to enter a fully constrained Fact Type using just text. Something like:
Employee(.id) has at most one FirstName()
Here, an IUC would be assigned to Role1 of the FT. Where:
Project(.id) has exactly one CodeName()
would have each role constrained. I don't know how difficult that would be, let alone considering disjunctive, external, subset and ring constraints. I don't know that it has to be all or nothing, however. I'd guess more than 80% of FTs could be entered using basic IUC on binary assignments. Is this something you are working toward?
Perhaps you already answered this; but is there a way to have the (edited) contents of the current Fact Editor not overwrite an existing FT, but rather generate a new FT in the designer?
Employee(.id) has access to Building(.name) on Date()
Employee(.id) has access to Building(.name) for Project(.id)
To enter the second FT, it would be easier (and less error prone), to select the first (existing) FT, edit the last part, then commit that as a new, additional, FT.
As central as the Fact Editor is to the whole process, I expect we'll see a lot of posts on the topic - so I'll refrain from adding any more bifurcations to this thread. I'll work with what you've provided already, and see where I can get with that.
I would say that your adding notes on the current functionality, as you make changes, is very important (just to let us know they are there). That may be too much to take in with the install README. Tagged posts in this forum would be a good way to let us know what you've done, and why the changes were made (with the added benefit of being searchable). When you have the time, please continue to do so.
BRN..