Eclipse 4 and Web [message #895717] |
Sun, 15 July 2012 05:45  |
Eclipse User |
|
|
|
Hi. I am working on vaadin renderer for E4. I have implemented the renderer itself in one user case and know think how to get it work in multi-user case. I was looking on this options:
1. Start the Equinox instance per user session. It seems this is not capable in terms of memory.
2. Use one Equinox instance and one workbench and every user has it's own window in workbench (MWindow). Because all change operations on workbench model we execute yourself (without any support from eclipse code), we must synchronize only our code (Vaadin renderer) and no additional assumption about workbench threadsafe need.
I decided to choose the second option. Maybe someone else has an idea? I read that the the one of reason why eclipse 4 was developed is moving the Eclipse in web. Perhaps the assumption is already there as you do?
[Updated on: Sun, 15 July 2012 05:45] by Moderator
|
|
|
|
|
Re: Eclipse 4 and Web [message #895733 is a reply to message #895722] |
Sun, 15 July 2012 10:06   |
Eclipse User |
|
|
|
Thomas Schindl
Thank for idea. I want to make sure I understand correctly. So I must create the E4Workbench instance in each user session and configure it from IApplicationContext that created with VaadinE4Aplication globally ones at server start. Also I create the implementation of IEventBroker (for example - the VaadinEventBroker) that sends events only to own subsrcibers (current implementation of IEventBroker named EventBroker will send to ALL subsribers because work over general OSGi EventAdmin). Then I set the instance of VaadinEventBroker to root IEclipseContext object of correspondence E4Workbench instance - now each workbench will use own event broker that will be send events to own subsribers. Is it correctly?
Sopot Cela
Of cource, it will be open source under the same licence as Eclipse and I will be happy if anybody will contribute to it. I don't have possibility to share project on next week because I am in buisness travel now, but I return to home in friday and in few days I will move it to github. Now it has some legacy pieces from previous project, and the first I clean it (to become it clearer). This project was the new workbench that I develop from zero (it is not relevant to eclipse) because I didn't know about E4. It is look very like E4 except the model is not EMF, it also can be rendered by different toolkits. I work on it 2 month until I see that E4 exists - it happened only when the Juno was releazed )) Of cource, now this project makes no sense, it is not needed now and must be utilized, because now we can use so great platform as Eclipse. I desire about the universal eclipse during long time and know it really happened. There are the javafx renderer already and when the vaadin renderer will be ready, the E4 will be finally the extrapower thing.
[Updated on: Sun, 15 July 2012 10:14] by Moderator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: Eclipse 4 and Web [message #902879 is a reply to message #902766] |
Mon, 20 August 2012 16:44   |
Eclipse User |
|
|
|
Components published.
Was implemented Placeholders and Areas. Now the IDE demo will be done right. Now I created only frame of it and called it Cassandra Demo, in few days I move from old demo (called vaadock) to Cassandra.
Short description of published components.
1. org.semanticsoft.vaaclipse.app - bundle with main rcp application. It start the RCP application and async. event queue.
2. org.semanticsoft.vaaclipse.vaadinapp - bundle with vaadin application. It register using org.vaadin.osgi the Vaadin Application. Vaadin application is created per user session and per session workbench created. The details above in Thomas's message.
3. org.semanticsoft.vaaclipse.presentation - the renderer code.
4. org.semanticsoft.vaaclipse.behaviour - the eclipse e4 addons that add behavour to eclipse model. I made it total isolated from platform specific code (vaadin code). The idea was from Kai's generic renderer, but I remove abstract dependencies from platform code. Shortly, the behavour addon do this thing. When one property of model's element is changed, it cause the changes of properties other element's (or other props of this element). So, we must collect this waves of changes in one place and maximum decople it from Platform code. Kai Toedter did this in his generic renderer, I did his addon more isolated from platform removing even abstract dependencies from platform code.
5. org.semanticsoft.vaaclipse.resources - resources using by vaaclipse that deploed using org.vaadin.staticres
6. org.semanticsoft.vaaclipse.vaadinaddons - bundle with used vaadin addons
7. org.semanticsoft.vaaclipsedemo.cassandra.app - the demo cassandra project. Now it only carcas of showed above (screenshots above show the vaadock demo that now rewrite with new concepts - will be finished at this week). So, when prepared, it will be as in screens above.
8. org.semanticsoft.vaaclipsedemo.cassandra.resources - the resources of cassandra demo.
What is NOT published. Now I don't publish the client widgetset code - the modification of John Ahlroos's vaadin addon "dragdroplayouts". In future this modications must be done separately from this addon (I did fast hardcode to get it work as quickly as possible). If anyone interesting in it I can send sources or put it in temp repo. Also I don't publish the legacy demo vaadock (screenshots above). In few days vaadock's features will be move to Cassandra project in right way. And, at last, the drag and drop code. It partly located in client widgetset code (show previous note), the server support addon is need to be rewritten.
There are some issues how to use resources. Now working with resources is not ideal. All your resoure must be located in any fragment bundle (host bundle - com.vaadin) by path: platform:/plugin/your_fragment_bundle/VAADIN/themes/your_theme/... In future I want to locate the resources in any path and deploy it automatically to vaading theme, and so all working with resources must be transparent relative vaadin theme (we must not operate by Vaadin Theme, working at more high eclipse level).
Note: Was used the code fragments from Kai Toedter's generic renderer (I simple copy several files to do editing more easy of course with copyrites - when Kai or others will finilize the generic renderer it will be easy to go to resulting renderer dependency). Also I modified the John Ahlroos's great vaadin addon "dragdroplayouts" (the licence is allowed this), but in future this modifications must be fetched outside of John's addon - it is don't difficult.
[Updated on: Mon, 20 August 2012 17:24] by Moderator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: Eclipse 4 and Web [message #904905 is a reply to message #895717] |
Wed, 29 August 2012 07:05  |
Eclipse User |
|
|
|
The info about development process in future will be published at github prject page (see the project page and issues). Last report: the problems with client hangs caused by frequent update is fixed (the additional info see in correpondence issue in github) and now I will begin work on cassandra demo and changes on renderer that required to implement this demo in right way.
|
|
|