Eclipse GEF graphical editor without header - eclipse

I am developing RCP plug-in with GEF framework.
I've created basic graphical editor (GraphicalEditor and IEditorInput)
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
page.openEditor(new TEditorInput("T"), TGraphicalEditor.ID,false);
When I run the application I get editor with a header that contains the tab with the name of the editor and control buttons to maximize and minimize the editor.
What I need is to display just the editor, without the header.
Can it be done?

To my knowledge, it is not possible to just hide an editor's tab.
However, you can try two workarounds:
Have your GEF editor be displayed in an Eclipse view instead of an editor and open such a view as a standalone view. An example of how to open a GEF diagram in a view can be found in GEF's Directed Graph Example. An example of how to open a view as standalone can be found in one the Eclipse RCP official tutorials.
Extend the presentation factories extension point to control how workbench parts are displayed (which includes control over the part stack tab).
I suggest you try the first approach, as to me it seems easier to implement.

The idea with editors is that you can instantiate them multiply for different editor inputs. I am not aware of any way to restrict the number of open editors to just one (well, it appears you can in Eclipse 4.2 if that helps you)
For views, what you want can be done by setting the perspective to fixed and set showTitle of the org.eclipse.ui.perspectiveExtensions extension to false on the view. Maybe you can use a view instead of an editor and control the editor input yourself?
(For example, using an editor, the default Open action would instantiate a new editor, while you probably want to replace the contents in your only editor, right?)

Related

Is there a way to programmatically change the color of an editor tab in my Eclipse Plugin?

I have a SharedHeaderFormEditor in my Eclipse RCP plugin.
One of my requirements is to draw attention to the editor's tab when something happens outside of the editor and it needs a refresh.
Some of the ideas discussed included
changing the color of the tab
adding an icon to the editor's text (instead of the standard * for a dirty editor)
Are either of those possible? I've been looking around and have not found anything that could address this issue.
Thanks!
ViewPart and EditorPart both allow changing the title label and icon (setPartName(…) and setTitleImage(…) respectively). The Eclipse Workbench also offers an IWorkbenchPartProgressService to each part, which allows a part to indicate that it's busy (via incrementBusy()/decrementBusy()) and that its content has changed (via warnOfContentChange()). You can see this used in the Search and Console views (org.eclipse.search2.internal.ui.SearchView and org.eclipse.ui.internal.console.ConsoleView).

Open two editors with the same label

I've recently developed a new RCP application with eclipse e4 and now I have run into a problem that whenever I want to open another editor which has the same label, that I cannot open it because I always check if there is already an open editor with the same label and then grant this editor focus in order to bring it on top of the part stack.
I use a part descriptor to dynamically open an editor whenever the user double-clicks on a tree element and then uses the tree elements name as label. Now it can happen that some tree elements have the same label ...
Is there any other way in eclipse e4 I can check if an editor is already open, besides comparing the label of all open editors with the label of the editor I want to open?
Any help or pointers would be appreciated.
The default way is assigning an input uri while creating an editor (InputPart in e4)
MInputPart inputPart = MBasicFactory.INSTANCE.createInputPart();
inputPart.setInputURI("someInputUri");
And then you can call:
Collection<MInputPart> inputParts = partService.getInputParts("someInputUri");
Where partService is an instance of EPartService. You can manage a group of input parts using this approach.

Is it possible to duplicate the view of the same source file in Eclipse?

I'm doing some manteinance to a .cpp file with eclipse and I need to compare two methods. It's very uncomfortable to jump ahead and back to check differences.
Is there a way to duplicate the view of the same source file, in order to compare them side by side?
Edit the file and use Window > New Editor to open a second editor on the file. Then drag the title tab of the second editor and Eclipse will show on outline of how it is going to arrange the two editors. You can arrange the two editors vertically or horizontally.
Update:
Eclipse 4.4 Luna (currently only available as Milestone builds) adds support for splitting the editor directly using Ctrl+_ and Ctrl+{.

How to associate an Eclipse sample Editor with a file in project explorer view

I have an sample editor which opens up by selecting an action from a sample Menu created in the menu bar.
How do i associate this editor with a file in Project explorer view?
I mean if i double click on the file in project explorer view , the editor should spawn up.
Basically i want this editor to work like a regular eclipse editor.
Please let me know your suggestions or any online material which explains the framework on how to achieve this.
Thanks,
Karthik
Have a look at IWorkbenchPage.openEditor(IEditorInput input, String editorId). Here you specify the input object of the editor and the ID for the editor.
In a RCP application, the IEditorInput is usually made up by you - nothing fancy is needed unless you want to persist the editors - and ID is specified via the org.eclipse.ui.editors.

How can I take eclipse out of MDI mode?

Does anyone know of a way to make Eclipse an SDI application rather than an MDI one?
SDI - Single document interface, each pane is its own window
MDI - Multiple document interface, all of the panes are stuck inside one "master" window.
Eclipse is an MDI application. All of the little panes (like the call stack, variable viewer, etc) are part of the one master Eclipse window. Rather than having all of the windows stuck inside one master "eclipse" window, I'd like them to all be their own free-floating windows.
To make a pane "free-floatting" just drag that pane outside the main eclipse window.
If you have only one monitor, you have to resize first your eclipse window: you can not leave eclipse maximized on all the screen space.
Then you have to drag your pane outside the eclipse window until you see the cursor change into a little window with a '+' in the middle.
Once all your panes are in the required position, save your configuration in a new perspective. (Menu Window\Save Perspective As)
That way, you can switch between panes configurations easily.
Regarding the SDI aspect however, the editor part of eclipse is made to edit several document (so, MDI only).
Karl's double-click suggestion is the most effective to focus on one of those edited document.
Hit the little X next to each document until there is only one open.
Alternatively, doubleclick on the tab to maximize it.
Then edit your question to give some more information about what you really want to do.
No, Unfortuantly Eclipse 3.x and lower do not allow the editor window to be outside the application window. You can drag other windows outside the main window to give you more editor space, but you cannot for example drag an editor outside the main eclipse window onto a second monitor and to have another code window open on the main monitor. This feature seems to be scheduled for Eclipse 4. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=8886 for this feature.