001: /**********************************************************************************
002: * $URL: https://source.sakaiproject.org/svn/presentation/tags/sakai_2-4-1/api-impl/src/java/org/sakaiproject/component/app/presentation/PrPresentation.java $
003: * $Id: PrPresentation.java 8654 2006-05-02 01:40:40Z ggolden@umich.edu $
004: ***********************************************************************************
005: *
006: * Copyright (c) 2004, 2005, 2006 The Sakai Foundation.
007: *
008: * Licensed under the Educational Community License, Version 1.0 (the "License");
009: * you may not use this file except in compliance with the License.
010: * You may obtain a copy of the License at
011: *
012: * http://www.opensource.org/licenses/ecl1.php
013: *
014: * Unless required by applicable law or agreed to in writing, software
015: * distributed under the License is distributed on an "AS IS" BASIS,
016: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: * See the License for the specific language governing permissions and
018: * limitations under the License.
019: *
020: **********************************************************************************/package org.sakaiproject.component.app.presentation;
021:
022: import java.util.List;
023: import java.util.Vector;
024:
025: import org.osid.shared.Id;
026: import org.sakaiproject.api.app.presentation.Slide;
027: import org.sakaiproject.time.api.Time;
028:
029: /**
030: * The Presentation class allows content to be grouped together in a linear sequence.
031: * Any type of presentation control is handled by the presentation manager.
032: * @author Mark Norton
033: */
034: public class PrPresentation implements
035: org.sakaiproject.api.app.presentation.Presentation {
036: private Id id = null; // The Id of this presentation.
037: private String title = null;
038: private List slides = new Vector(); // The ordered set of slides in this presentation.
039: private Time modificationTime = null;
040:
041: /** Creates a new instance of Presentation */
042: public PrPresentation(Id id) {
043: this .id = id;
044: }
045:
046: /** Creates a new instances of Presentation given a list of slides. */
047: public PrPresentation(Id id, List slides) {
048: this .id = id;
049: if (slides != null)
050: this .slides = slides;
051: }
052:
053: public PrPresentation(Id id, List slides, String title, Time time) {
054: this .id = id;
055: if (slides != null)
056: this .slides = slides;
057: this .title = title;
058: this .modificationTime = time;
059: }
060:
061: /**
062: * Return the id of this presentation.
063: *
064: * @author Mark Norton
065: */
066: public Id getId() {
067: return this .id;
068: }
069:
070: /**
071: * Set the id of this presentation.
072: *
073: * @author Mark Norton
074: */
075: public void setId(Id id) {
076: this .id = id;
077: }
078:
079: public String getTitle() {
080: return this .title;
081: }
082:
083: public void setTitle(String title) {
084: this .title = title;
085: }
086:
087: public String getModificationDate() {
088: return this .modificationTime.toStringLocalFull();
089: }
090:
091: /**
092: * Return an iterator which lists the slides in this presentation.
093: *
094: * @author Mark Norton
095: */
096: public List getSlides() {
097: return this .slides;
098: }
099:
100: /**
101: * Return the slide at the given offset.
102: *
103: * @author Mark Norton
104: */
105: public Slide getSlide(int offset) {
106: return (Slide) this .slides.get(offset);
107: }
108:
109: /**
110: * Append a slide to the end of the slide list.
111: *
112: * @author Mark Norton
113: */
114: public void addSlide(Slide slide) {
115: this .slides.add(slide);
116: }
117:
118: /**
119: * Insert a slide at the position given.
120: *
121: * @author Mark Norton
122: */
123: public void insertSlide(int position, Slide slide) {
124: this .slides.add(position, slide);
125: }
126:
127: /**
128: * Return the number of slides in this presentation.
129: *
130: * @author Mark Norton
131: */
132: public int getSlideCount() {
133: return this .slides.size();
134: }
135:
136: /**
137: * Delete the slide at the given position.
138: *
139: * @author Mark Norton
140: */
141: public void deleteSlide(int position) {
142: this.slides.remove(position);
143: }
144:
145: }
|