cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <>
Subject Eclipse vs. Swing (Re: [jira] Commented: (CAY-762) ERDiagram for Object Entities in Cayenne Modeler)
Date Mon, 02 Nov 2009 08:55:53 GMT
Here is one of those "big strategy" emails that tend to have negative  
impact on things that we can do here and now, instead of doing the  
"right" thing some time later. So no intent to discourage CAY-762  
implementation, just a somewhat related issue that we may discuss in  

For all its undeniable advantages, IMO the main usability issue with  
CayenneModeler is the fact that it is separate from an IDE. This "gap"  
results in the following problems:

1. Losing work context when switching between the apps:
You have to often jump between the IDE and the Modeler. When  
switching, you lose your work context. E.g. click on a Java class name  
within some code, the class opens... Then you'd like to see its  
Cayenne mapping. To do that, you have to go to a different  
application, type something in a search box, open the entity, then tab  
between attributes/relationships, then look for DbEntity, tab between  
attributes/relationships again. It is too far away from the original  
Java class. I'd like to see Java/XML/Modeler representations of the  
same entity in the same view.

2. Manual Refresh
When the model is saved, you have to refresh files in IDE to pick up  
the change.

3. Class Generation:
You need to generate classes manually on model change, then refresh  
files in the IDE. For Maven/Eclipse users cgen problem is somewhat  
addressed, as you can tie cgen to Maven, and Maven to Eclipse, so  
classes are generated on refresh. Still you have to do refresh, and  
then a second refresh (first refresh for xml, second for the generated  
classes - totally annoying).

The best way to address the gap is to write an IDE plugin replacing  
the Modeler. There's a bunch of advantages and disadvantages to that:


* everything is integrated
* Eclipse environment provides lots of built in services that we can  
take advantage of (most notably it has a built in project model),  
including graph capabilities.


* not everybody's using Eclipse (e.g. Kevin mentioned he's an IDEA  
user). Supporting multiple IDE's is not realistic for us. I guess this  
can be addressed by packaging it into a standalone SWT app.
* we'll have to support multiple versions of Eclipse, and will be  
dependent on Eclipse API evolution.


* the time we invested in the Modeler. Reproducing that in Eclipse  
would be non-trivial.

Or we can go with some hybrid approach of having an Eclipse plugin  
exchanging events with the Modeler. Not sure if we can make the user  
experience as nice, we'll have to support 2 tools instead of 1, and  
we'll have to support an extra messaging layer. But this is probably  
less work overall...

Or we can write an Eclipse plugin in parallel with the Modeler and  
provide both as independent tools... Such internal competition will be  
a resource drain though.

So nothing is free, and these are some hard choices... I am sort of in  
favor of the last one, as even an initial plugin prototype will show  
whether we can have significant usability improvements, without being  
a full Modeler replacement.


On Oct 22, 2009, at 10:40 AM, Andrey Razumovsky (JIRA) wrote:
>    [

> #action_12768592 ]
> Andrey Razumovsky commented on CAY-762:
> ---------------------------------------
> JGraph has moved to BSD since 5.13:
> I assume this means we can now use it? The library seems to be quite  
> promising
>> ERDiagram for Object Entities in Cayenne Modeler
>> ------------------------------------------------
>>                Key: CAY-762
>>                URL:
>>            Project: Cayenne
>>         Issue Type: New Feature
>>         Components: CayenneModeler GUI
>>   Affects Versions: 3.0
>>           Reporter: Ahmed Mohombe
>>           Assignee: Andrus Adamchik
>> Please add an ER Diagram to the Cayenne Modeler. This is the  
>> feature that I miss the most from WebObjects.
>> For start it would be even enough to have  an ER Diagram View (so  
>> no interactive activities) - just display and layout of entities.
>> I think this would help allot and would increase the productivity  
>> with CM - most people think visually.
>> I don't think that it would be complicated to implement, the most  
>> complicated question to answer is what graph library is allowed to  
>> use, due to the restrictive "license compatibility" of the Apache  
>> license.
>> Thanks in advance,
>> Ahmed.
> -- 
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.

View raw message