Difference between revisions of "Tool Dialog Prompts"

m (Displaying Dialog Prompts, the Other Way)
m
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
[[Category:EiffelStudio]]
 
[[Category:EiffelStudio]]
[[Category:Extending_EiffelStudio]]
+
[[Category:Extending EiffelStudio]]
{{UnderConstruction}}
+
[[Category:EiffelStudio Foundations]]
  
 
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.
 
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 ==
 
== 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.
+
As of [[:Category:EiffelStudio|EiffelStudio]] [[EiffelStudio_6.1_Releases|6.1]], [[:Category:EiffelStudio|EiffelStudio]] uses custom dialog prompts that come in a flavor of presentation that stands above the stock dialog prompts found in [[:Category:EiffelVision2|EiffelVision2]]. As such all dialog prompts in EiffelStudio should be using the new prompt classes instead of those found in [[:Category:EiffelVision2|EiffelVision2]] or the slightly specialized versions found in previous versions of [[:Category:EiffelStudio|EiffelStudio]].
  
 
Just to get an idea of what the new prompts look like, here’s an example:
 
Just to get an idea of what the new prompts look like, here’s an example:
  
 
[[Image:Dialog_prompts_example_question.png|New prompts in EiffelStudio]]
 
[[Image:Dialog_prompts_example_question.png|New prompts in EiffelStudio]]
 +
 +
For more examples of the new dialog prompts in [[:Category:EiffelStudio|EiffelStudio]] [[EiffelStudio_6.1_Releases|6.1]] see [[Taxonomy of Dialog Prompts]].
  
 
== New Features ==
 
== New Features ==
Line 20: Line 22:
 
* Dual-model; providing agent actions to perform on button presses and/or retrieval of the dialog result code.
 
* 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.
 
* Simplified interfaces with less code to write.
* Extendable (see <eiffel>ES_DISCARDABLE_COMPILE_SAVE_FILES_PROMPT</eiffel>.)
+
* Extendable (see [https://eiffelsoftware.origo.ethz.ch/svn/es/trunk/Src/Eiffel/interface/new_graphical/dialogs/prompts/es_discardable_compile_save_files_prompt.e ES_DISCARDABLE_COMPILE_SAVE_PROMPT].)
 
* Provides both standard and advanced creation routines for quick or complex creation.
 
* 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.
 
* 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.
 
* 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 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'', ...)
+
* Automatic key navigation binding; Use of {{key|TAB}}, {{key|LEFT}} or {{key|RIGHT}} cursor keys and button first(or next)-character key ('''Yes''' => {{key|Y}}, '''Create''' => {{key|C}}, ...)
 
* Ability to set a default active button.
 
* Ability to set a default active button.
  
Line 32: Line 34:
  
 
== Displaying Dialog Prompts, the Easy Way ==
 
== Displaying Dialog Prompts, the Easy Way ==
For the simplest way to show dialog prompts inside [[EiffelStudio]] or to use dialog prompts in the Eiffel [https://eiffelsoftware.origo.ethz.ch/svn/es/trunk/Src/framework/ framework library] see [[Using Dialog Prompts (Basic)]].
+
For the simplest way to show dialog prompts inside [[:Category:EiffelStudio|EiffelStudio]] or to use dialog prompts in the Eiffel [https://eiffelsoftware.origo.ethz.ch/svn/es/trunk/Src/framework/ framework library] see [[Using Dialog Prompts (Basic)]].
  
 
== Displaying Dialog Prompts, the Other Way ==
 
== Displaying Dialog Prompts, the Other Way ==
Line 39: Line 41:
 
== Displaying Discardable Dialog Prompts ==
 
== 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)]].
 
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 [https://eiffelsoftware.origo.ethz.ch/svn/es/trunk/Src/Eiffel/interface/new_graphical/dialogs/prompts/es_discardable_compile_save_files_prompt.e ES_DISCARDABLE_COMPILE_SAVE_PROMPT] class.
 

Latest revision as of 09:16, 14 May 2008


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 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

For more examples of the new dialog prompts in EiffelStudio 6.1 see Taxonomy of Dialog Prompts.

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_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).