Advanced Class and Feature Wizard

Revision as of 12:41, 5 May 2006 by Thertli (Talk | contribs)

Overview

As a summary we could say that we improve the usability of the most important wizards, e.g. classwizard and featurewizard, by adding new features, extending the user interface and simplifying the handling.

Following the priority list of our project, beginning with the most important aspect of our work

  • editor based wizard execution
  • combobox for post- and precondition
  • pick & drop
  • undo/redo functionality within the wizard
  • docking the wizard in a fixed window - not a pop-up anymore
  • update permanently the editor while using the wizard
  • tooltips which provides help
  • beginner-tour

Work

Right now, we are occupied with:

  • compiling ES on Linux systems
  • supplying work to every member of the team

Problems

  • cannot open projects in ES (waiting for new release/build)

TO-DO

  • ...

Milestones

M1: April 30, 2006

  • editing wikipage
  • ES compiled on windows/linux-x86

Project Details

Editor Based Wizard Execution

Motivation

Wizards are usually only accessible through a GUI Window. This is convenient for beginners, but will slow down advanced programmers. So there should be a possibility to access the wizard through the editor directly with an interface similar to a command line interface.

Idea

To execute the wizard with the editor you have to do the following:

  • Write the command (possibly over some lines)
  • Press a hotkey to execute the command

Which hotkey we use is to be determined.

Example

To create class TEST which is deferred you have to do the following:

  • Write "c test,d"
  • Press the hotkey

Syntax

As the project is still in a starting phase, the information here is incomplete and could be changed.

'##' means that the two symbols have no whitespace bewteen

These symbols represent a stream of tokens:

  • classCreate ::= [num_of_parents] ## 'c' className [inheritance-list] [','{attribute}+]
  • inheritance-list ::= {inheritance_clause}*
  • inhertitance_clause ::=...
  • attribute ::= letter
  • className ::= identifier

These symbols represent one token:

  • identifier ::= {letter}*
  • letter ::= 'a'..'z'
  • number ::= digit+
  • digit ::= '0'..'9'

Team

if you have questions or constructive criticism concerning our project and this wiki-page then write an Email to the project leader or just join our mailinglist:

es-wiz 'at' origo '.' ethz '.' ch