Eclipse vs. Swing (Re: [jira] Commented: (CAY-762) ERDiagram for Object Entities in Cayenne Modeler)

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Mon Nov 02 2009 - 03:55:53 EST

  • Next message: Aristedes Maniatis: "Re: Eclipse vs. Swing (Re: [jira] Commented: (CAY-762) ERDiagram for Object Entities in Cayenne Modeler)"

    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
    parallel.

    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:

    [good]

    * 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.

    [bad]

    * 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.

    [ugly]

    * 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.

    Andrus

    On Oct 22, 2009, at 10:40 AM, Andrey Razumovsky (JIRA) wrote:
    > [ https://issues.apache.org/jira/browse/CAY-762?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12768592
    > #action_12768592 ]
    >
    > Andrey Razumovsky commented on CAY-762:
    > ---------------------------------------
    >
    > FYI
    > JGraph has moved to BSD since 5.13:
    > http://www.jgraph.com/jgraphlog.html
    >
    > 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: https://issues.apache.org/jira/browse/CAY-762
    >> 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.
    >
    >



    This archive was generated by hypermail 2.0.0 : Mon Nov 02 2009 - 03:56:35 EST