Tool Integration Development

Revision as of 15:20, 10 August 2007 by Paulb (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Construction.png Not Ready for Review: This Page is Under Development!

Welcome to the the EiffelStudio tool integration development page. The content held within this page will show you how to develop and integrate an new tool in EiffelStudio.

Getting Started

We are just getting started so this tutorial will only cover the basics for more advanced tutorials, see Tool_Integration_Advanced_Development and Tool_Integration_Service_Development and Services.

Requirements

The content of this tutorial relates to the working version of EiffelStudio 6.1, current attainable from the open source repository https://eiffelsoftware.origo.ethz.ch/svn/es/trunk/Src/Eiffel. Please see the pages on attain the EiffelStudio source code from the Repository, Compiling EiffelStudio and Debugging_EiffelStudio.

Once you have EiffelStudio compiled and in a state where it can be debugged then continue reading.

Creating a Tool

Before anything else can be done you need to create a tool. Most tools inside EiffelStudio utilized a class call EB_TOOL (as of 6.1.) EB_TOOL is current the most basic tool class and has become a little outdated. In 6.1 a new abstract base class call ES_DOCKABLE_TOOL_WINDOW was created for the purpose of creating EiffelStudio tools with greater ease. ES_DOCKABLE_TOOL_WINDOW still derives from EB_TOOL but this may change in the future if all tools are converted to use ES_DOCKABLE_TOOL_WINDOW instead.

So to be clear, only use ES_DOCKABLE_TOOL_WINDOW as your base for tool development.

ES_DOCKABLE_TOOL_WINDOW requires a generic parameter constrained to EV_WIDGET. The generic parameter, G, represents the "user widget". The user widget, defined by the feature user_widget is the top level widget you tool should interact with. If you tool consists of just a grid, list or tree widget then the user control will be of the respective type.

To start out create a new Eiffel class and inherit ES_DOCKABLE_TOOL_WINDOW, specifying the generic parameter for your user widget.

Information.png Note: Through out this tutorial I'll be creating a tool that uses ES_GRID, an EiffelVision 2 grid (EV_GRID widget that has been specialized for use in EiffelStudio.