Tool Dialog Prompts

Revision as of 08:54, 6 September 2007 by Paulb (Talk | contribs) (Displaying Dialog Prompts, the Other Way)

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

Dialog prompts are an essential part of Tool Integration Development and Services in EiffelStudio. As such we have provide a number of EiffelStudio specific classes for creating and displaying EiffelStudio dialog prompts.

Consistent Look and Feel

As of EiffelStudio 6.1 (EiffelStudio 6.1 Releases), EiffelStudio uses custom dialog prompts that come in a flavor of presentation that stands above the stock dialog prompts found in EiffelVision2. As such all dialog prompts in EiffelStudio should be using the new prompt classes instead of those found in EiffelVision2 or the slightly specialized versions found in previous versions of EiffelStudio.

Just to get an idea of what the new prompts look like, here’s an example:

New prompts in EiffelStudio

New Features

The new dialog prompts in EiffelStudio no only have an update look and feel to them but the come with a number of added benefits for both end-users and EiffelStudio tool developers:

  • Brand new look.
  • Automatic layout of widgets and other text.
  • Button layouts are platform-dependent (Ok|Cancel on Windows, Cancel|Ok on Mac OSX.)
  • Dual-model; providing agent actions to perform on button presses and/or retrieval of the dialog result code.
  • Simplified interfaces with less code to write.
  • Extendable (see ES_DISCARDABLE_COMPILE_SAVE_FILES_PROMPT.)
  • Provides both standard and advanced creation routines for quick or complex creation.
  • An abstraction that makes it easy to replace the prompts in the future, updating the look etc.
  • Dialog prompts are always modal to the parent window.
  • Automatic location of the last active EiffelStudio window so tools need not worry about window management.
  • Automatic key navigation binding; Use of TAB, LEFT or RIGHT cursor keys and button first(or next)-character key (Yes => Y, Create => C, ...)
  • Ability to set a default active button.

Choosing a Dialog Prompt

Making the correct choice as to which dialog prompt to display is crucial, and is not as easy as you think. There is a page dedicate to deciding what dialog prompt is best suited for the need of a particular message - Taxonomy of Dialog Prompts. For help on choosing and formatting dialog prompt messages, see Dialog Prompt Messages and Formatting.

Displaying Dialog Prompts, the Easy Way

For the simplest way to show dialog prompts inside EiffelStudio or to use dialog prompts in the Eiffel framework library see Using Dialog Prompts (Basic).

Displaying Dialog Prompts, the Other Way

For more control over the way dialog prompts are display and how users interact with them, see Using Dialog Prompts (Advanced).

Displaying Discardable Dialog Prompts

The final set of dialog prompts are discardable dialog prompt. Discardable dialog prompts allows the user to opt out of seeing the dialog prompt subsequent showings. For information on using discardable dialog prompts, see Using Dialog Prompts (Advanced Discardable).

Discardable Dialog Prompts

Showing dialog prompts showing the same messages over and over again can be annoying for some, if not most. Take the security or alert notifications in your browser, most of us just turn them off after we have read them after they have been shown for the first time. EiffelStudio is full of cases where "discardable" dialog prompts are useful as not to hinder or annoy end-users. One such prime example is performing a finalization compilation. Finalization asks the end-user if they want to discard or keep assertions. For the most part (95%-99% of cases) assertions are always discarded. It makes sense to offer a way to suppress the dialog in the future and perform a default, commonly used, pre-defined action (discarding assertions in this case) when performing a finalization in the future.

Like the regular dialog prompts, discardable dialog prompts can also be extended. For an example of extension inside EiffelStudio, see the ES_DISCARDABLE_COMPILE_SAVE_PROMPT class.