views:

382

answers:

2

How to add a fast view to my eclipse rcp applicatio?

A: 

You can add the right button, as in this thread:

that can be done by adding a button to fast view bar and by opening a standard view in button event

Button button = new Button ((Composite)((WorkbenchWindow) window).getFastViewBar ().getControl (), SWT.PUSH);

to avoid overlapping in button event first create folder layout for this view with reference to initial view and then call the action to add view.

IFolderLayout ViewLayout1 = layout.createFolder ( "ViewLayout1",
                                                  IPageLayout.BOTTOM,
                                                  0.50f, initalView.ID);
OpenViewAction ov = new OpenViewAction (window, "label", secondview.ID);
ov.run ();

Showing and minimizing a fast view programmatically should be done through command "org.eclipse.ui.views.showView" with the parameter "org.eclipse.ui.views.showView.makeFast".

See Eclipse RCP: open a view via standard command org.eclipse.ui.handlers.ShowViewHandler:

Eclipse provides the standard command org.eclipse.ui.views.showView to open an arbitrary view.
The default handler is org.eclipse.ui.handlers.ShowViewHandler. This handler is a nice example how you could add your own command with arguments. It takes two parameters:

  • The first has the ID org.eclipse.ui.views.showView.viewId and identifies the view ID which should be opened,
  • the next one has the ID org.eclipse.ui.views.showView.makeFast and determines if the view should be open as a fast view.

Without parameters the command will let the user choose which view to open.

See Parameter for commands for some examples

Lets see the real world example: "Show View" command. The command is generic and can show any view. The view id is given to the command as a parameter:

<command
     name="%command.showView.name"
     description="%command.showView.description"
     categoryId="org.eclipse.ui.category.views"
     id="org.eclipse.ui.views.showView"
     defaultHandler="org.eclipse.ui.handlers.ShowViewHandler">
  <commandParameter
         id="org.eclipse.ui.views.showView.viewId"
         name="%command.showView.viewIdParameter"
         values="org.eclipse.ui.internal.registry.ViewParameterValues" />
  <commandParameter
     id="org.eclipse.ui.views.showView.makeFast"
     name="%command.showView.makeFastParameter"
     optional="true"/>
</command>

The list of all possible values of the parameter is given by the class ViewParameterValues. The class would iterate through the view registry and return it.


Note: just to be complete, in theory (this thread)

RCP apps can disable fast views by calling WorkbenchWindowConfigurer.setShowFastViewBar(false) from their WorkbenchAdvisor's preWindowOpen() method.
This not only hides the fast view bar, but also hides the Fast View menu item on views.

VonC
A: 

The simple way to add a fast view to an Eclipse RCP or RAP application begins with creating a normal view. In the plugins xml, add a new extension for the view (I'll call it fast.view), with the correct attributes.

<view
    closable="true"
    id="fast.view"
    minimized="true"
    ratio=".30f"
    relationship="fast" <--- This attribute tells the view to be a fast view.
    relative="other.view"
</view>

After adding this extension, we must also show the fast view bar in the workspace. To do this, edit the ApplicationWorkbenhWindowAdvisor (or other advisor that launches your workbench window), and add the following lines to your preWindowOpen() method:

IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
configurer.setShowFastViewBars(true);

If you already have an IWorkbenchWindowsConfigurer, you don't need to make a new one. This method tells the workbench to display the fast bar, and your new fast view perspective extension should be there when it starts.

I got this information from an Eclipse Papercuts article written by Lars Vogel: http://www.vogella.de/blog/2009/09/15/fastview-eclipse-rcp/

Zoe Gagnon