I'm looking for a little help, advice, or maybe even a flat out "you
can't do that" concerning the possibility of refactoring some of the
ooDialog classes.

Specifically, I would like to move some methods out of the
AdvancedControls mixin class back to the DynamicDialog class.

The DynamicDialog class has the methods that allow a dialog template
to be built in memory, by the Rexx programmer.  It has methods like
addButton(), addListBox() that add dialog controls to the template.

The AdvancedDialog class has methods that allow the use of, what was
probably at the time "newer" controls, like the Tree-view control.  Of
course today these "newer" controls are far from new.  But the class
also has several methods, like addTreeControl() that really should
have been in the DynamicDialog classe.  Because:

The DynamicDialog class has all the implementation code for managing
the in memory template, which is needed by addTreeControl().  The
functionality of adding a dialog control to the in memory template is
the functionality of the DynamicDialog class.  All dialog classes that
have the ability to use this functionality have inherited the
DynamicDialog class already in the ooDialog framework.

On the other hand, the AdvancedControls class is not inherited by any
class in the framework, it is up to the user to inherit if from the
user's subclass.  Which means the user can inherit the class in
dialogs that do not support the building of the in memory template.
In these cases, if the addXXXControl() methods are invoked they fail
with raised exceptions, because the methods have to invoke
DynamicDialog methods which are not available.  The AdvancedControls
class *is* inherited by dialog subclasses that do not support the
building of the in memory template, because the functionality it
provides, that of working with "new" controls, is useful to all
dialogs, whether they are "user defined" dialogs or not.

If I moved these methods out of the AdvancedControls class into the
DynamicDialog class, where I think they belong, in all programs where
the methods currently work, they would still work.  In all programs
where the methods currently don't work, they would still not work.

Any thoughts on this?

--
Mark Miesfeld

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to