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    }