001 package org.pscode.xui.ist;
002
003 import org.pscode.xui.image.bean.ImageCaption;
004
005 import java.util.ArrayList;
006
007 /** JavaBean used to store image sequences.
008 Designed for use with the J2SE XMLEncoder/Decoder.
009 @author Andrew Thompson
010 @version 2010-01-08
011 @license LGPL */
012 public class ImageSequence {
013
014 /** An array of the frames in this screen capture sequence. */
015 public ImageSequenceFrame[] frames = null;
016
017 public ImageSequenceCaption[] captions = null;
018
019 public String imageExtension = "png";
020
021 public ImageSequence() {}
022
023 public void setFrames(ImageSequenceFrame[] frames) {
024 this.frames = frames;
025 }
026
027 public String getImageExtension() {
028 return imageExtension;
029 }
030
031 public void setImageExtension(String imageExtension) {
032 this.imageExtension = imageExtension;
033 }
034
035 public ImageSequenceFrame[] getFrames() {
036 return frames;
037 }
038
039 public void setCaptions(ImageSequenceCaption[] captions) {
040 this.captions = captions;
041 }
042
043 public ImageSequenceCaption[] getCaptions() {
044 return captions;
045 }
046
047 public ImageCaption[] getCaptionsForFrame(int index) {
048 ImageCaption[] captionArray = new ImageCaption[0];
049 if (captions!=null) {
050 ArrayList<ImageCaption> captionList = new ArrayList<ImageCaption>();
051 // check captions and add to array list
052 for (ImageSequenceCaption isc : captions) {
053 if ( isc.getFrameStart()<= index && (isc.getFrameCount()+isc.getFrameStart())>=index ) {
054 captionList.add( isc.getImageCaption() );
055 }
056 }
057
058 captionArray = new ImageCaption[captionList.size()];
059 // fill the array
060 for ( int ii=0; ii<captionArray.length; ii++ ) {
061 captionArray[ii] = captionList.get(ii);
062 }
063 }
064 return captionArray;
065 }
066 }