I am working on an Eclipse e4 RCP application with multiple fragments/plug-ins.
I upgraded from Neon to Oxygen and now I have the problem, that I can't add any handler or command in my fragments/plug-ins.
When trying the same in the main application.e4xmi it's no problem, but the other e4xmi-models don't have the context-menu item to add a handler to the model-fragment (also not possible in the details view of the fragment --> list to select the child is empty).
All my previous handlers and command are there.
Am I missing some plug-in oder dependency? I only upgraded to Oxygen.
Added: To clarify, I did not upgrade my existing eclipse to oxygen. I installed a new Oxygen RCP-Client. Did I forget to add anything to make this work again?
Added Nr2:
As greg-449 proposed using the "xpath:/"-Expression instead of the full ID of the main e4xmi Model as a reference for the "Extenden Element ID" works when trying to reference elements on the first level of the model like commands, handerls and key bindings.
But whe trying to use more complex expressions like for referencing the perspective stack or a toolbar this method doesn't work any more.
Related
I have been working with Eclipse RCP for over a week now, and I've now been given an Eclipse plugin written in 3.x, which I need to migrate to 4.x. I'm using a book called Eclipse 4 RCP by Lars Vogel which has a small section on this, but I can't for the life of me figure out what I'm to do.
I'm trying to do this throught the use of the compatiblity layer. It mentions to add a couple of features for this (org.eclipse.rcp, org.eclipse.emf.ecore, org.eclipse.emf.common) and your ready to go, but I don't exactly know what I'm to do here. Like do I add these to the existing product file of the 3.x plugin I've been given, or do I create a separate e4 project and point to that. Many of the tutorials I read are a bit vague with the details and its a shame there's no proper step by step guide for beginners with this. Any help would be great.
Probably, you should be creating a separate e4 plug-in project for this. And where you have to configure your extensions/extension points in e4 ways.
Basically, like creating a new project.
If you want to migrate your Eclipse 3.x RCP application to the Eclipse 4 programming model, you can't directly reuse existing plugin.xml based user interface components, e.g. Views or Editors based on the definition in plugin.xml .
Components based on the plugin.xml file must be adjusted to avoid inheritance of Eclipse classes and to use the programming model based on #Inject . They also must be contributed to the application model.
Components which are not directly based on the plugin.xml file must be adjusted if they use Eclipse 3.x singletons, as for example Platform or PlatformUI , to access Eclipse API
you may want to take a look at this page: https://www.eclipse.org/community/eclipse_newsletter/2013/february/article3.php
I have defined a custom builder for an Eclipse project (Project -> Properties -> Builders -> New ...)
The task that the Builder does is not important, since it is working correctly.
The problem is then: what happens if, for example due to the configuration of the developer, such Builder fails? An error is shown in the console, but the project is not marked as "failed". I would like the project to be marked as failed, since the developers are used to watch for red crosses in the Package Explorer and not to proceed if they see it.
Can I somehow configure the builder to do so? Any idea how? Any workaround?
Thanks,
The Laid Problem Marker plug-in is a tool for creating problem markers from builder output.
The plug-in adds a Problem Markers tab to the build configuration dialog for Program builders and Ant builders.
Screenshot:
A custom build output parser can be created either with a regex or by implementing a parser in Java. The parser is passed the console output from the builder, and the result from the parser is used to put problem markers on project resources that appear in editors and the Problems view.
See to project description for details.
The plug-in can be installed using the Install New Software GUI from the project update site:
https://bitbucket.org/lii/laid_language_tools/raw/master/se.lidestrom.laid.update_site/
Disclaimer: I am the project author.
After downloading the latest Eclipse (Luna 4.4.1), I installed the GWT / GWT designer plugin.
I concluded I that I am missing WindowsBuilderPro, and so I installed it via Eclipse Help->Install New Software.
Now I want to create a new GTW Designer project, and get the following choices, which I think are wrong:
Tutorials, perhaps older, show the following project choice:
Is my installation messed up? I reversed the installation order, and nothing changed.
Is GWT Designer out of date, should I no longer be using it?
I'm a bit more confused based on your answer (Phil). I found this presentation:
The Future of GWT, 2013 Report
and it shows:
Does GWT Designer still exist (2014) as something separate from UI Binder (I don't really want to do any HTML)?
If not, do I need the WindowBuilder plugin for UIBinder?
You don't directly create a GWT Designer project. Create a "Web application project" as displayed in your first screenshot. Then create a new "UiBinder":
It will create two files: one java file and one .ui.xml file.
When you will open the .ui.xml file, you will have two tabs at the bottom of the window: one for the code, and one for the graphic designer:
As I have done the following tutorials:
http://www.vogella.com/tutorials/EclipseRCP/article.html
http://www.vogella.com/tutorials/EclipseJFaceTable/article.html
http://www.vogella.com/tutorials/EclipseJFaceTableAdvanced/article.html
I wanted to combine the JFace table viewer (plugin from 2nd and 3rd tutorial) and the ToDo application from the first tutorial. In the JFace table example(s) there is a View extended from a ViewPart. In this the call:
getSite().setSelectionProvider(view)
inside the createPartControl method is fine and works.
But when I do the same in the other tutorial it does not work, I get a NullPointerException. The first article creates a plugin and then transform it using features and products into an Eclipse 4 application. So the classes in the application are not derived from a 'Part'. They are referenced using the application model and only use the annotation #PostConstruct.
Why is it that I get this NullPointerException?
And really, how can I get the SelectionProvider service linked to the Workbench?
I also tried to use PlatformUI.getWorkbench() but it says that the workbench does not yet exist.
Any help highly appreciated.
Thanks.
Eclipse 4 (e4) applications are completely different from traditional Eclipse 3.x style applications.
In an e4 application you cannot use a lot of things that are used in a Eclipse 3.x application - so you need to check which style the example you are using is based on. The e4 application has access to a lot of new features that are not available in a 3.x application.
In an e4 application you inject the ESelectionService to get and set the current selection.
Is it possible to create Eclipse plug-ins (e.g view parts) using Eclipse e4 incubator?
Or is e4 only useful for 'window-based' applications?
I already checked How can I create a view using the E4 programming model to be a plug-in for Eclipse 4.2 or above?, but this did not give me an useful answer.
Add:
I want to create an Eclipse plug-in and not a standalone rcp application.
I'm not sure what exactly you want to achieve.
Option 1:
You want to write a plug-in for an e4 RCP application:
You can do this (e.g., contribute ViewParts to an e4 application model) via a model fragment.
Basically, instead of extending the org.eclipse.ui.views extension point in Eclipse 3.x you create an application model fragment file in your plug-in and reference this in an extension to the extension point org.eclipse.e4.workbench.model.
In the model fragment, you define the parts, commands, etc. you want to contribute.
See for example these tutorials for more details:
http://eclipsesource.com/blogs/2012/06/26/eclipse-4-e4-tutorial-part-3-extending-the-application-model/
http://www.vogella.com/articles/Eclipse4Modularity/article.html
Option 2:
You want to write a plug-in e4 style for Eclipse itself.
As far as I know this is not possible straightforward, because currently, the Eclipse IDE cannot be enhanced with fragments (at least that is what https://bugs.eclipse.org/bugs/show_bug.cgi?id=376486 indicates ...)
But when that works, see Option 1.
Until then, you'd have to use the classic extension points. You can still write your view using the POJO/Injection approach of e4, but you need to use the 3.x to e4 bridge. You can get some hints from
http://eclipsesource.com/blogs/2012/06/18/migrating-from-eclipse-3-x-to-eclipse-4-e4/ .
In particular, see the paragraph starting "The third option is to use the 3.x e4 bridge from the e4 tools project"