I am indifferent to having an MDialog element, that's not where my concern lies. I think all of your points on why having an MDialog element are very valid and in addition to those, from a renderer standpoint having a concrete model element for Dialogs would make it cleaner. I also agree that we should avoid over use of tags.
My issue is with the MWizardDialog. As I said, I am probably more for having a modeled wizard than not. But it should be modeled as just a wizard, capable of being displayed in either an MDialog or MPartStack. The ability to use DI seamlessly in these top level elements is vital, but I know we can do this in a generic way.
What I am thinking of is something like this:
public interface MWizard extends MPart, MUIInteractionPageContainer {
// Wizard Specific API
}
public interface MUIInteractionPage extends MUIElement, MContribution, MUILabel, ?MHandlerContainer?, MDirtyable, ?MBindings?, MWindowElement {
// API Common to WizardPages and PreferencePages
// like ?isComplete? / ?performFinish? / etc?...
}
Then a wizard page implementation could look like:
public class MyCustomWizardPage {
@Inject
private MWizard wizard;
...
}
I believe this story is much more powerful than going down the road of MWizardDialog (and by no means is this story "complete").
I know I don't contribute as often as others would like, or even as much as I would like. But that is more a function of my employer. I will try to work something up for this in the next couple of days.
JD