I finally finished my analysis phase. So i'm familiar with the RCP framework and (i guess just the basics of) the uDig SDK.
So as i said the original plan was to create my own pure E4 application and add just the uDig plugins i need to have the mapeditor, layerview and catalogview so i can use openstreetmap as basic layer with my own layer with georeferences on top.
But i have to say i have no clue where i should start to get this to work.
The best i came up with is following the customapplication tutorial and creating an application.e4xmi file in the resulting plugin as product extension. This allowed me to have uDig as the base application with just the views i need. Plus i could add E4 parts by defining part descriptors and adding the ids to the perspective layout in the customperspective class.
I undertand (or i at least hope so) that this is basically an E4 application by using the compatibility mode but thats unfortunately not what i originaly intended to do, as there would be already a pure E4 application present as basis and i just want to add some parts of uDig.
So is there a way to create a real pure E4 application and just add the views i need. I went through dependecies and saw that the plugins required by the views are: project.ui, style, style.sld, project.edit, project, catalog.ui, catalog, ui, core and libs. So can i just add those (by creating my own feature that includes them and not using the whole application and platform feature) and maybe the rendering and tool plugins and use them in my application without the rest?
Or is it required to use the e3 workbench classes? Or even more?
Another issue is that i still have not figured out how the mapeditor gets added to the applicationmodel. In the customapp tutorial a custom perspective is created and the mapeditor is just there at application startup. I guess it is because the custom application class is a subclass of the udigapplication class? But where exactly is the editor added to the applicationmodel and could i add it myself without using a subclass of the udigapplication? Or do i fundamentally not understand how the uDig views and editors work together internally?
The next thing i found was this:
And this made it possible to add the layersview via the application.e4xmi file. Atleast in the plugin that was created using the customapp tutorial. I could not get it to work in a pure E4 application. I also had the issue that most of the functionality of the view was not included. And adding the mapeditor this was (even by using bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor) not possible at all for me.
So i more and more get the feeling that i have some very basic problems with understanding the interactions between uDig plugins. And honestly i dont know what i should read next to resolve these problems.
And Cam, thanks for the tipp. I wish i had even come that far. But it sounds like you already created a pure E4 application and using just some views of uDig. So basically exactly what im looking for. Can you tell me what your basic approaches where to get all the components working together? So basically what is your project setup and how do you add the uDig views to your applicationmodel? And the mapeditor?
I know thats a lot to ask but i'm at point where i just dont know where to continue. I see that there are a lot of different approaches how e3 and e4 can work together but i dont seem to find the right one for my problems.
I'm happy about every help i can get as i'm really stuck right now.
Jonas.