R
Ruben
Hi all,
I'm working on a simple presentation-program. I've chosen for a Model
View Controller architecture. The model contains the (static) elements
of the presentation (such as text, images, etc) and the (dynamic)
transitions between presentation states (such as highlight an element,
continue to next slide, etc). The static and dynamic part are the
essence of a presentation, and is included in the "Model" part of the
MVC.
The view-component of the MVC is responsible for painting the
presentation to screen. For the static part of the presentation, the
view uses some kind of LayoutManager. The dynamic part uses something
like a TransitionManager, which maps each transition to an animation.
In the future, I intend to support multiple views (2d, 3d, etc.). Every
possible transition is supported by each view. Moreover, each view can
have multiple kinds of animations to visualize an action. In other
words, the LayoutManager and TransitionManager are view-dependent.
Example:
The presentation-action "next-slide" is supported by the 2D view, which
provides three different animations: no-animation, checkerboard, slide
(or whatever). It is also supported by the 3D view which uses entirely
different animations. The presentation action "highlight-bullet" is
also supported by the 2D and 3D view, again using entirely different
animations.
Based on these requirements, I have 2 questions:
1. Users think of presentations as the combination of the static,
dynamic (actions), and layout components, but layout is view-dependent.
Where do I put information about the layout of my presentation? Do I
include layout information for each possible view in the Presentation
object, or somewhere else?
2. What kind of OO-Design best supports the view-independent creation
of Layout and Animations? I'm thinking of some kind of AbstractFactory
which is capable of listing all Animations supported by a particular
view for a particular PresentationAction, and subsequently creating
them. I'm not sure if this is the best solution.
Maybe someone has the answers to these two questions, has some hints,
or has come across similar problems. Any help is much appreciated!
I'm working on a simple presentation-program. I've chosen for a Model
View Controller architecture. The model contains the (static) elements
of the presentation (such as text, images, etc) and the (dynamic)
transitions between presentation states (such as highlight an element,
continue to next slide, etc). The static and dynamic part are the
essence of a presentation, and is included in the "Model" part of the
MVC.
The view-component of the MVC is responsible for painting the
presentation to screen. For the static part of the presentation, the
view uses some kind of LayoutManager. The dynamic part uses something
like a TransitionManager, which maps each transition to an animation.
In the future, I intend to support multiple views (2d, 3d, etc.). Every
possible transition is supported by each view. Moreover, each view can
have multiple kinds of animations to visualize an action. In other
words, the LayoutManager and TransitionManager are view-dependent.
Example:
The presentation-action "next-slide" is supported by the 2D view, which
provides three different animations: no-animation, checkerboard, slide
(or whatever). It is also supported by the 3D view which uses entirely
different animations. The presentation action "highlight-bullet" is
also supported by the 2D and 3D view, again using entirely different
animations.
Based on these requirements, I have 2 questions:
1. Users think of presentations as the combination of the static,
dynamic (actions), and layout components, but layout is view-dependent.
Where do I put information about the layout of my presentation? Do I
include layout information for each possible view in the Presentation
object, or somewhere else?
2. What kind of OO-Design best supports the view-independent creation
of Layout and Animations? I'm thinking of some kind of AbstractFactory
which is capable of listing all Animations supported by a particular
view for a particular PresentationAction, and subsequently creating
them. I'm not sure if this is the best solution.
Maybe someone has the answers to these two questions, has some hints,
or has come across similar problems. Any help is much appreciated!