MIRA
RCP - Rich client platform


Below an overview is given about the rich client platform used by MIRA.

RCP in MIRA provides the programmer to rapidly create reusable components that benefit from proven and tested features of the core system. It consists of a workbench with multiple views, editors and perspectives and is built on top of a dynamic plugin management system, that allows to load additional plugins at runtime. Based on a minimal set of plugins the user is able to develop rich client applications.
Before we start let us define some concepts and interfaces that are used by our RCP system.

Components

Interfaces and communication

There are a few interfaces used for communication between WorkbenchParts and the Workbench itself.

View and Editors

As mentioned before, there are two main WorkbenchParts defined - ViewParts and EditorParts.

ViewParts

The ViewPart base class provides basic functionality of a dockable widget. It takes care of informing the Workbench about construction and destruction and provides a context menu in the titlebar where the user can add actions to. When implementing a ViewPart, the user needs to overwrite the createPartControl() method to create the widget that is shown by the view. In addition to the ViewPart members, the PageViewPart base class implements the IPartListener interface. It provides a stacked widget that can show different content based on the currently active/focused WorkbenchPart. When deriving from that class, the user must implement two methods.

For more information and examples see ViewParts.

EditorParts

The EditorPart class implements the functionality of an MDI sub-window. The user needs to implement the createPartControl() method where the content is created that is shown in the MDI window.

An example for an EditorPart is the VisualizationView. This part is specialized in the derived classes Visualization2DView, Visualization3DView and VisualizationTextView. These editors can display multiple visualization plugins at once in an editor window. For more details see VisualizationView editors.