How to reuse the Eclipse 4 IDE Perspective Features in an RCP Application - eclipse

is there an easy way to reuse the complete Perspective implementation from the Eclipse Juno 4.2 IDE ("Open Perspective", Customize Perspective, "Save Perspective As ...", "Reset Perspective...", "Close Perspective...", ... ) in an e4 RCP application (if possible without using the Eclipse 3 compatibility layer)?
Thanks and Best Regards
Marc

I am assuming you mean to reuse them as Menu items, just as they are in Eclipse.
You can locate their ids using the Plugin Spy - on your Eclipse development platform, press Alt++Shift+F2 and then click on the Window menu and then on Customize Perspective... (for example). This will give you its id as org.eclipse.ui.window.customizePerspective.
Then go to your plugin.xml and to the menu extension where you want to add this command, right click and add a command. For the commandId you put that id you found (org.eclipse.ui.window.customizePerspective). You can even find these ids when you click on Browse, next to commandId.
Unfortunately for E4 RCP you must use plugin.xml for the Eclipse defined commands. If you do not wish to, then you can get an idea of the implementation of the command by viewing its source code.
I have a more detailed answer here - https://stackoverflow.com/a/14370898/462285

Related

Eclipse : Run an external software in editor view

I am using Eclipse to edit almost any file that I code. But for some, I prefer to use gEdit (for instance CoffeeScript files).
I wondered if there was a way to somehow embed the UI of gEdit (or any other software) in the Editor view of Eclipse. I could use my favorite editor in an unified environment and this could also bring the richness of the Eclipse environment to those files (even if I'm well aware that most of it won't work).
But is it ever possible ? Better, is there already a plugin for that ?
Thanks for your help !
I wondered if there was a way to somehow embed the UI of gEdit (or any other software) in the Editor view of Eclipse.
No, there isn't.
However, you can execute an external editor from Eclipse.
From the main Eclipse menu, left click on Window -> Preferences.
On the Preferences dialog, left click General -> Editors -> File Associations.
For any file type, you can associate one or more editors. These editors can be external to Eclipse.
Once you've done this, you can bring up your external editor by double clicking on the module name in the Package Explorer.
After you're finished editing with an external editor, refresh the module so Eclipse knows you've made changes.
SWT allows to integrate apps using OLE. Unluckily this is obviously available only when running on Windows.
For more info, see this article by Lars Vogel.

how to format code in eclipse "git repository browsing prespective"?

How to format code to specific coding style in Git Repository perspective in Eclipse ? like Ctrl+shift+f works in Java perspective. Can anybody help me to solve this ?
Here My problem is to format a android repo.
The "format" actions are tied to specific editors. Use ctrl+shift+L twice in a row to open the list of all available hotkeys. Filter that list on "format" and you should see a number of potential candidates... and their context. The Java ctrl+shift+F (Format) action is available in any Java editor ... even when in the Git perspective (at least, that's true with Eclipse 4.2 as I just tried it). That is, as long as you have a Java editor open and it has focus. The Ant "format" action should work the same way : as long as you have an "ant build file" editor opened and focused.
Whether the "ctrl+shift+F" you want is active or not depends on which action exactly you are trying to trigger : java format, ant format, xtext format... and how that specific action is contributed (and bound) by its contributing plugin. To check that, you can open an editor where you know the action is active, hit alt+shift+F2 then right-click your editor and locate the "format" action. When you click that action just after alt+shift+F2 has been pressed, it will not be triggered : rather, a dialog will pop-up to tell you which action that is, who contributes it, through which plugin.xml...
I found the answer, it was very easy,
Right Click on project in Git perspective -> import project -> check import as a general project ->select the working directory which you want to import -> finish
Now go to the java perspective and find the project :) thats all

Eclipse plug-in development - Multiple workbanches/pages

I am developing an eclipse plugin application.
I have the following scenario:
Main application gui will be based on eclipse, a workbench with a page.
In this page there will be a toolbar, menu bar, some views and multiple editor.
Until now the task is standard.
But here is a "twist": I want to show a popup window (org.eclipse.jface.dialogs.Dialog) and in this dialog i want to insert another editor. In this editor I want to use GEF framework.
Currently I access page like this (which is used by all editors):
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
Eclipse, especially eclipse 3.x (Helios, Indigo) won't allow editors in dialogs gracefully. With no IEditorSite (the editor's link to the workbench page) many of the services it uses won't be available, and it might not even start.

Slim down Eclipse context menus

I have several plugins (Apatana, SVN, Pydev, Zend Debugger, PHP) installed in my Eclipse 3.5.2 (Ubuntu 10.10) installation. The one problem that keeps bugging me since I first used Eclipse years ago is, that each plugin puts new entries into the context menus.
Unfortunately, it seems that the various perspectives are not able to determine, what menu entries are useless. So while programming PHP the menus are full of java and pydev stuff, I really have no use for!
The more plugins are installed the messier the menus get. It seems a bit odd, that such a rich IDE doesn't have support for context sensitive "context" menus ... :-(
My hope is, that somewhere out there on the internet, someone knows how to remove unused menu entries, or even has created a small plugin for that??
Any ideas?
Screenshot: http://i.stack.imgur.com/D9HjN.png
Eclipse provides "capabilities" as a functionality for the plugin developpers to provide a way to the users to disable the features and UI contributions of their plugins. I don't really know if that feature will help in your case (that is : if the plugins contributing the menu entries that bother you have defined the necessary capability to disable them).
If you go to Window > Preferences, then General > Capabilities, you can see a number of "capabilities" categories to enable or disable. I don't recommend disabling the categories themselves (for example "development") as you would disable all of Ant, Java, Python... menus and extension at once. Rather, use the "Advanced..." menu at the bottom of this page to see not only the categories, but also what they contain. There, under "Development", you should be able to disable "java development" (JDT) extensions and menus, "Ant Development" (remember that "Run Ant Tool" button that is visible on all perspectives beside the "Run" button? That would remove it)... You should be able to disable most of the clutter with this.
Note that if the provided capabilities are not sufficient, you can create your own very easily, allowing you to disable even the contributions from other plugins. For this the steps are simple :
Use the File > New > Other... menu item
Select Plug-in Project and name the new project as you desire, click Finish
In the editor that has opened, select the "Extensions" tab
Click Add, untick "Show only extensions points from the required plug-ins"
search for the extension point org.eclipse.ui.activities, select it, and hit Finish
Right click the item org.eclipse.ui.activities on the left and select New > Activity
enter the id of your new activity on the right of the page, for example my.disable.activity.id. Enter a human-readable name below it; for example "disable JDT".
Right click the item org.eclipse.ui.activities on the left and select New > activityPatternBinding.
re-enter your activity Id (my.disable.activity.id) in the "activityId" field, then enter the "pattern" of the contributions you wish to disable. This is a regex. In order to disable all "JDT" (java development) contributions, enter org\.eclipse\.jdt\..*
Right click the item org.eclipse.ui.activities on the left and select New > categoryActivityBinding
re-enter your activity Id (my.disable.activity.id) in the "activityId" field once again; then click Browse... at the right of the "categoryId" field. Double click the org.eclipse.categories.developmentCategory so that it appears in the preference menu for capability enablement.
Now, if you export this plugin (I won't detail the update site creation here, you should be able to adapt the explanation from Stephane Begaudeau's blog), all menus from the JDT will be disabled (I tested this, so I know it at least disables those I checked (the "source" and "refactor" menus from a right-click on a Java file). As you specified a category, you can re-enable these menu items from the capabilities preference page I hinted at in the beginning of this answer.
Not really a solution for your problem, but worth mentioning anyway: Eclipse does support the context sensitive menus, but in a way where the plug-in developer defines the contexts where the menu entries should be displayed.
Unfortunately many developers don't care and say "Make it visible everywhere". The solution then is to complain loudly to them.
Not a complete solution, but more of a workaround. You can install clearlooks compact theme for Ubuntu. It considerably reduces the size of components, even in Eclipse.

Developing an Eclipse Plugin and adding a submenu item to navigator

This is my first attempt at an Eclipse plugin- the plugin architecture is vast and a little overwhelming, but I've found a number of tutorials and how-to's online which is helping, but trying to do the following is driving me nuts:
I want to add a submenu item that is available in the navigator context menu when you right click on an Eclipse project.
I can get a submenu to appear on a project file or folder, but absolutely no idea how to have it appear on a project.
Would someone be so kind as to provide me with step by step instructions, starting with creating a new plugin-project? This is probably a lot to ask, but I can't seem to find an online guide that has just the right amount of detail. I specifically want to use the plugin-project wizard rather than hand code a plugin.xml file as I am not very familiar with the Eclipse plugin architecture.
Ok- I got it- it was simple, but I got lost in the noise of the API-
Create a new Plug-in Project using the Plugin-Project Wizard and when the wizard has launched...
1.
On the Plug-in Project page, use anything as the project name and 3.5 as target platform eclipse version
2.
On the Content page, skip ahead and just press next
3.
On the Templates page, select "plug-in with a popup menu" and press next
4.
On the Sample Popup Menu page, you will see that eclipse has prefilled the field
"Target Object's Class" with a value of "org.eclipse.core.resources.IFile".
This means that when your popup menu will only appear when you right-click on a file in
a project. As we want the menu to appear when we right click on a Project when
we are using the Navigator view, simply use "org.eclipse.core.resources.IProject" instead
5.
Finish
You can validate that your pop-up will appear as expected by right-clicking the MF file
and "Run-as" > Eclipse Application
Now to refactor the resulting code to use menuContributions and commands rather than objectContributions and actions :)
I think you have a similar question (menu in the package explorer) here:
Renaming packages in Eclipse (thanks to Rich Seller)
This could be a good start, and is a complete plugin project.
You should look into the Eclipse Common Navigator Framework there are a few tutorials on this side that tell you what to do in detail The Project Explorer is an implementation of the CNF. You should also consider using the Platform Commands to add your commands (and popup menu item) to the popup menu associated with the project explorer. It's somewhat easier to use commands than actions. You should be able to do it with by adding a Command in your plugin extensions. Unfortunately off the top of my head I don't know the right incantation to have the command appear in the project explorer. But you will be able to find it in these resources.