Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » GMF (Graphical Modeling Framework) » Seeking feedback on Google Summer of Code idea implementation details
Seeking feedback on Google Summer of Code idea implementation details [message #223152] Sun, 29 March 2009 23:15 Go to next message
Jake  is currently offline Jake Friend
Messages: 17
Registered: July 2009
Junior Member
Hi all,

I've been familiarizing myself with GEF and GMF in order to determine the
best way for my Google Summer of code idea[0] to slot into EMF's existing
projects. I believe the right place to put it is in the final diagram
generation step of the workflow prescribed by GMF. I'd appreciate it if the
developers of GMF could please read through this and let me know if this
sounds feasible. Specifically, here is what I would like to propose:

I believe that the first step would be to expose a graphics API similar to
Draw2d/GEF for the browser environment. The Dojo JavaScript library's
dojox.gfx[1] project already provides a good foundation for this, and my
work on this part would consist of extending their API.

I believe that the next step would be to allow the dynamic generation of the
browser-based editing environment from GMF. In terms of the GMF workflow,
this would slot into the step after you develop the mapping model. Just
like how you now have an option to generate a generator model for a
lightweight RCP client, this would allow you to generate a generator model
for a lightweight browser-based diagram editor and abstract syntax HTTP
server backend. Specifically, this generator model would generate:

1) JavaScript and (X)HTML files for a browser-based visual diagram editor
client,
2) Java files for an HTTP server that exposes the abstract syntax layer via
RESTful interfaces, and
3) more JavaScript files for client-side data bindings onto the server's
RESTful interfaces.

Running the generated diagram editor project I believe would not entail
running an Eclipse plugin, as would be normal in the GMF workflow, but
instead would involve deploying a JAR inside of a Servlet container inside
of Eclipse, and starting the server. Then in your web browser you would
navigate to http://localhost:<some_port>/<restful_uri_to_some_diagram>,
which would launch the client in your browser, which would bind to the
server as expected.

Later on it might be possible to look into exporting a WAR file from the
generated code, that would contain all of the project dependencies, for
deployment outside of Eclipse.

I'm sure I'll have many more questions in the future, but that's the gist of
it. I'd appreciate it if anyone could let me know whether this seems sound.

I also have two questions right now:

1. I understand that GMF is using Xtend to generate Java source code. At the
moment, I don't have a good sense of how Xtend works, and thus was hoping
someone could advise me as to whether there will be any major, forseeable
technical challenges to generating JavaScript code, as opposed to Java? If
there are forseeable technical challenges, I'd appreciate it if someone
could please let me know what you believe they might be.

2. This might be a bit off-topic, but I spent about three hours yesterday
trying to get the first GMF tutorial[2] to work, without success. I am
consistently able to reach the point where I'm able to run the generated
diagram, but when I attempt to instantiate graphical Topic elements,
nothing shows up on the Canvas. The domain model shows that I have
instantiated a Topic, but under the diagram model, where the Topic should
be, it instead shows "null". As I've now completed the tutorial a number of
times through, starting from scratch each time, and I feel reasonably
certain that I have completed all of the steps correctly, and I'm wondering
if instead the tutorial might be missing some information. Has anyone tried
to work through the tutorial recently? I'd be interested to know what
people's experiences are with this.

I'd appreciate any guidance anyone can provide. Thanks for your help,

Jake

[0] http://wiki.eclipse.org/Google_Summer_of_Code_2009_Ideas , navigate to
the row with my name, Jacob Beard.
[1]
http://dojotdg.zaffra.com/2009/03/dojo-now-with-drawing-tool s-linux-journal-reprint/
[2] http://wiki.eclipse.org/index.php/GMF_Tutorial
Re: Seeking feedback on Google Summer of Code idea implementation details [message #223634 is a reply to message #223152] Tue, 31 March 2009 12:23 Go to previous message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Jacob,

> existing projects. I believe the right place to put it is in the final
> diagram generation step of the workflow prescribed by GMF. I'd
Sounds reasonable. In future you can thing of extending map->gen and gmfgen
model to handle some specific cases important for your project, but I think
you can start with the existing genmodel.

Proposed implementation idea looks good for me – I think you can start with
this.

> 1. I understand that GMF is using Xtend to generate Java source code.
Right.

> major, forseeable technical challenges to generating JavaScript code,
> as opposed to Java? If there are forseeable technical challenges, I'd
No problem – you can generate any text with Xpand.

> missing some information. Has anyone tried to work through the
> tutorial recently? I'd be interested to know what people's experiences
> are with this.
I personally did not try to run this tutorial on latest M6 GMF build, but
it definitely is working with latest release, so I suggest you first to make
it working with latest GMF release first and then you can repeat same with
latest GMF M6 to determine if the problem is in M6 build.

-----------------
Alex Shatalin
Previous Topic:Problem Saving diagram: URI changing
Next Topic:Change editor with navigation in outline
Goto Forum:
  


Current Time: Fri Apr 26 06:19:35 GMT 2024

Powered by FUDForum. Page generated in 0.02634 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top