package railo.runtime.tag; import railo.commons.io.res.Resource; import railo.commons.io.res.util.ResourceUtil; import railo.commons.lang.StringUtil; import railo.runtime.PageContext; import railo.runtime.exp.ApplicationException; import railo.runtime.exp.PageException; public class VideoPlayerParamBean { public static final int NONE = 0; //public static final int YES = 1; //public static final int NO = 2; private Resource video=null; private Resource flash=null; private railo.runtime.video.Range show=railo.runtime.video.Range.TRUE; private int index=0; private String pathVideo; private String pathFlash; private String title; private String link; private String author; //private int autostart=NONE; private Resource image; public void release() { video=null; flash=null; pathVideo=null; pathFlash=null; show=railo.runtime.video.Range.TRUE; index=1; } /** * @return the video */ public Resource getVideo() { return video; } public Resource getResource() { return video!=null?video:flash; } /** * @param video the video to set * @param pathVideo * @throws PageException */ public void setVideo(Resource video, String pathVideo) throws PageException { if(!"flv".equalsIgnoreCase(getExtension(video))) throw new ApplicationException("only flv movies are supported"); this.video = video; this.pathVideo = pathVideo; } public void setVideo(PageContext pc,String video) throws PageException { setVideo(toResource(pc,video),video); } /** * @return the flash */ public Resource getFlash() { return flash; } /** * @param flash the flash to set * @throws PageException */ public void setFlash(Resource flash, String pathFlash) throws PageException { if(!"swf".equalsIgnoreCase(getExtension(flash))) throw new ApplicationException("only swf movies are supported"); this.flash = flash; this.pathFlash = pathFlash; } /** * @param flash the flash to set * @throws PageException */ public void setFlash(PageContext pc,String flash) throws PageException { setFlash(toResource(pc,flash),flash); } /** * @return the show */ public railo.runtime.video.Range getShow() { return show; } public void setShow(String show) throws PageException { this.show=railo.runtime.video.Range.toRange(show); } public void setShow(railo.runtime.video.Range show) { this.show=show; } /** * @return the index */ public int getIndex() { return index; } /** * @param index the index to set */ public void setIndex(int index) throws PageException { if(index<0) throw new ApplicationException("index have to be a a none negative integer"); this.index = index; } private Resource toResource(PageContext pc,String str) throws PageException { Resource res=ResourceUtil.toResourceNotExisting(pc ,str); //Resource res = Caster.toResource(str,false); //print.out(res); if(res.getResourceProvider().getScheme().equalsIgnoreCase("file") && !res.exists()) throw new ApplicationException("Resource ["+res+"] does not exist"); return res; } private static String getExtension(Resource res) { String strFile = res.getName(); int pos=strFile.lastIndexOf('.'); if(pos==-1)return null; return strFile.substring(pos+1); } /** * @return the pathVideo */ public String getPathVideo() { return pathVideo; } /** * @return the pathFlash */ public String getPathFlash() { return pathFlash; } public String getPath() { return StringUtil.isEmpty(pathVideo)?pathFlash:pathVideo; } @Override public String toString() { return "video:"+pathVideo+";flash:"+pathFlash+";index:"+index+";show:"+show; } /* * * @return the autostart * / public int getAutostart() { return autostart; } /* * * @param autostart the autostart to set * / public void setAutostart(boolean autostart) { this.autostart = autostart?YES:NO; }*/ /** * @return the title */ public String getTitle() { return title; } /** * @param title the title to set */ public void setTitle(String title) { this.title = title; } public void setImage(PageContext pc,String image) throws PageException { this.image=toResource(pc,image); } /** * @return the image */ public Resource getImage() { return image; } /** * @return the link */ public String getLink() { return link; } /** * @param link the link to set */ public void setLink(String link) { this.link = link; } /** * @return the author */ public String getAuthor() { return author; } /** * @param author the author to set */ public void setAuthor(String author) { this.author = author; } }