5.6. Main View (main-view.rsl)



object MainView is 
    components: ViewWindow* and DrawingTools;
    description: (* This is the window through which all of the drawing and viewing
                  of the lecture takes place.*);
end MainView;

object ViewWindow is
    components: LectureView and Permissions and ViewSelector;
    operations: ChangeSlide, ZoomPoint;
    description: (* A Lecture view is all the necessary information to render one of
                  the tabs in the MainView. *);
end ViewWindow;

operation ZoomPoint is
    inputs: LectureView and PointToZoom;
    outputs: LectureView;
    description: (* Changes which point is zoomed in the LectureView *);
end ZoomPoint;

object PointToZoom is integer;

operation ChangeSlide is
    inputs: LectureView and NewIndex and Permissions;
    outputs: LectureView;
    description: (* Changes which slide the LectureView represents *);
end ChangeSlide;

object NewIndex is integer;

object ViewSelector is
    components: WhiteboardView or SlidesView;
    description: (* This is simply an enumeration *);
end ViewSelector;

object WhiteboardView;
object SlidesView;

object Permissions is
    description: (* Information about what permissions a User has.  These can be:
            Read    - Read the data from the slide deck
            Write   - Change the contents of the slide deck
            Change  - Manipulate the slide deck *);
end Permissions;

object LectureView is 
    components: (LectureTextXML and LectureDrawList) and Whiteboard and
                SlideIndex and DetailLevel and TopicLevel and ZoomedPoint;
    operations: GetRenderedSlide;
    description: (* This contains all the information about a particular Lecture that
                    would be loaded or saved to a file *);
end LectureView;

operation GetRenderedSlide is
    inputs: LectureTextXML, LectureDrawList, SlideIndex, DetailLevel, TopicLevel, ZoomedPoint;
    outputs: RenderedSlide;
    description: (* Does a transformation on the raw lecture XML to produce a 
                    Rendered Slide *);
end GetRenderedSlide;

object LectureDrawList is
    components: DrawSurface*;
    description: (* This is a list of all the drawings that have been added to the lecture
                    in "Slides" mode. *);
end LectureDrawList; 
    
object SlideIndex is integer;
object DetailLevel is integer;
object TopicLevel is integer;

object RenderedSlide is
    components: Render and DrawSurface;
    description: (* The LectureTextXML is eClasses XML markup for lectures.
                    DrawSurface is defined in drawing.rsl *);
end RenderedSlide;

object Render is
    description: (* This is a bitmap representation of something *);
end Render;

object Whiteboard is
    components: DrawSurface;
    description: (* DrawSurface is defined in drawing.rsl *);
end Whiteboard;






Prev: schedule.rsl | Next: markup.rsl | Up: spec | Top: index