racket/collects/profjWizard/todo
Matthias Felleisen 0ef215c58c checkbox for templates commented out
svn: r6107
2007-05-01 01:57:22 +00:00

60 lines
2.0 KiB
Plaintext

#|
The Java Wizard helps programmers create
* classes
* datatypes via classes.
The class wizard requests class name, superclass, and field specifications.
From these, it generates a class, its constructor, and optionally a partial
template for methods, a toString method, and a diagram.
The union wizard requests a union name and specifications for the variants.
From these, it generates an abstract class (for the union name) and one
variant class that extends the abstract class per variant specification.
Again, it optionally adds templates, a toString method, and a diagram.
Both wizards generate their text in a language-sensitive manner. For
Beginner and Intermediate, they omit privacy specifications.
The wizards are added to the Special menu and insert text at the current
point.
At the moment they cannot read back code and help with natural program
edits and transformations.
The two major files are:
wizard.ss, which is the view and provides the user interaction
class.scm, which is the model and provides the functions for turning
a spec into a string that represents a class or a union.
Also, class.scm does not use the Java implementation to perform basic
checks on the information. It just leaves this to the programmer. So, for
example, if a programmer says a field has type "moo" and "moo" doesn't
exist as a class, then the wizard inserts a buggy class.
|#
BUGS:
* union:
** when a programmer changes the name of the Union after the variants have
been specified, the wizard fails to change the type name in the
variants.
* drawing:
** the Union wizard draws the method specs into the boxes for the
classes. The book "thinks" of them as inherited.
view
FEATURES:
** re-enable the method template creation in view
== the creation of method stubs depends on language level
** allow the introduction of an abstract class for common features in
Unions (common fields, common methods)
** specification of mutually recursive features