cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aristedes Maniatis <>
Subject Re: Cayenne Modeler Prototype
Date Tue, 29 Mar 2016 04:55:14 GMT
On 29/03/2016 7:06am, Michael Gentry wrote:
> One thing I'm curious about is with the 4.0 CM, the
> attributes/relationships tabs have been merged.  With the approach I was
> taking, keeping them separate allowed an "inspector" to appear below the
> the attributes (I was going to take the same approach for relationships) so
> that you don't have to deal with a popup inspector.  I think this is very
> useful when adding the JavaDoc and Annotations support.  Having the
> inspector there obviously takes up valuable screen space, so I'm concerned
> that if the attributes and relationships remain merged, as in the 4.0 CM,
> the display area would be quite tight.  Maybe we should keep them separate?
> I've spent 3-4 days on it thus far, but would love some constructive
> feedback, especially if I'm heading down a bad path.

Visually, it looks much improved, and the JavaFX skin is clean and modern. Your icons are
much more consistent than what we have today, even though they aren't terribly informative

I can see what you are doing with the "inspector" however I don't think the hierarchy of information
is very clear. That is, a user can understand the left tree shows DataDomain -> DataMap
-> ObjEntity. And then they are shown a list of attributes and other properties of that
ObjEntity in the right panel when they click in the tree.

It is also clear that each of those properties (eg an attribute or relation) has a number
of 'options' they can adjust, displayed in columns: name, Java type, path, etc.

However I think it becomes confusing to then show additional options in a panel at the bottom:
annotations, docs, etc.

Possible solutions:

1. Move ObjEntity properties into the tree on the left. For an example of such an approach
(from MySQL Workbench) look at this:


* The overall structure is clearer
* Plenty of room in the right panel to clearly set out Java type, DB type, locking, and the
other options now shown in the table. This gives more room for clearer labels and help text.
* No more editing in tables which can be non-intuitive if you don't know where to click
* More easily expandable compared to what we have today
* Easier to show validation errors (it can be hard to style table cells to show errors)
* Existing floating windows like the "relationship inspector" now has enough room to fit in
the edit view.

* List of attributes sorted only by name, with callbacks, attributes and relations all mixed
(probably with different icons to distinguish them). Although the mysql example does separately
group columns/indexes/etc so they could be kept separated.
* More clicks to rapidly change options of lots of attributes (click on each, then change
property in right panel). Is this a common use-case?
* You don't see all the attributes with their options in a table in one glance

2. A three panel view. So, Michael's design but with the additional properties to the right
rather than at the bottom.

This sort of approach is common in email. Tree of mailboxes to the left. List of messages
in the middle and the details to the right. We'd have domain/map/objentities in the left tree.
Attributes in the middle. Options to the right.


* Left tree is simpler than in option 1
* Shows hierarchy better than option 0 (Michael's mockup)

* Middle panel (list of attributes) would need to have fewer columns than we do now in order
to keep the width to a minimum.
* Not as flexible as option 1
* combination of tree and multi-panel approach might be confusing

3. Move the additional options (javadoc, annotations, etc) into floating windows like the
Relationship Inspector.


* Least effort
* Yeah, nothing else.. its a pretty horrible UI choice.


* Ugh

I had a quick go at mocking some of these up, but spent so much time fighting the tools that
I didn't get very far. Michael, if convenient can you send through your SceneBuilder files
to play with?

I think the other problem to solve is the icons. Myself, I typically use Cayenne Modeler once
every few months. So every time I use it, I'm clicking on icons to try and remember which
one is which. Is blob-blob-plus a new relationship?


Aristedes Maniatis
GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A

View raw message