[MonoDevelop] class wizard
m.j.hutchinson at gmail.com
Mon Feb 4 00:46:42 EST 2008
On Feb 3, 2008 12:17 PM, olivier dufour <olivier.duff at gmail.com> wrote:
> I want to start to help on monodevelop.
> So I take the first easy task on TODO list: class wizard.
> Here is a screenshot about the class wizard. What do you think about it?
> The main question is about all browse button.
> Do you prefer Browse button with entry box or combobox or even just entry
I'd echo Christian in suggesting autocompleting ComboBoxEntry for the
Namespace, base class, interface and members.
Also, the interface and members entries should probably have an "+"
(gtk-add stock IIRC) button next to them that adds the item to the
list, and the list should have a corresponding "-" button. To aid
navigation, I'd have the enter key as a quick path through -- enter on
a filled namespace, class name and base class would jump to the next
item. Enter on an filled interface or member entry would trigger the
"add" action and clear the box for the next entry, while enter on an
empty box would jump to the next item.
However, that's just a tidying-up of your proposed interface. There
are other things that could be included -- constructor generation
(especially when the base class has no public "simple" contructor).
The list of members could be a treeview with checkboxes, listing all
overridable members, with abstract base members automatically
selected. Also consider modifiers on the new class -- public,
internal, static, abstract. After factoring all that in, you might
need a multi-page wizard :)
The multi-page idea becomes more attractive when you consider that the
wizard's pages could be refactoring tools in their own right, with the
class wizard as simply a combination of these steps.
1. New class (modifiers, base class, name, namespace)
2. Implement interfaces (implicit, explicit, generate in named regions?)
3. Generate constructors
4. Override members
Steps 2,3,4 would be useful independently of the wizard -- indeed, Ben
Motmans has already done some work on 3 IIRC.
More information about the Monodevelop-list