package railo.runtime.tag;
import javax.servlet.jsp.tagext.Tag;
import railo.runtime.exp.ApplicationException;
import railo.runtime.exp.PageException;
import railo.runtime.ext.tag.TagSupport;
/**
* implementation of the tag Compiler
*/
public class VideoPlayerParam extends TagSupport {
private VideoPlayerParamBean param=new VideoPlayerParamBean();
@Override
public void release() {
super.release();
param=new VideoPlayerParamBean();
}
/**
* @param video the video to set
* @throws PageException
*/
public void setVideo(String video) throws PageException {
param.setVideo(pageContext,video);
}
/**
* @param flash the flash to set
*/
public void setFlash(String flash) throws PageException {
param.setFlash(pageContext,flash);
}
/**
* @param show the show to set
*/
public void setShow(String show) throws PageException {
param.setShow(show);
}
/**
* @param index the index to set
* @throws PageException
*/
public void setIndex(double dIndex) throws PageException {
param.setIndex((int) dIndex);
}
/*public void setAutostart(boolean autostart) {
param.setAutostart(autostart);
}*/
public void setTitle(String title) {
param.setTitle(title);
}
/**
* @param preview the preview to set
* @throws PageException
*/
public void setPreview(String preview) throws PageException {
param.setImage(pageContext,preview);
}
public void setImage(String preview) throws PageException {
param.setImage(pageContext,preview);
}
public void setLink(String link) {
param.setLink(link);
}
public void setAuthor(String author) {
param.setAuthor(author);
}
@Override
public int doStartTag() throws PageException {
if(param.getFlash()==null && param.getVideo()==null)
throw new ApplicationException("you have to define video or flash source");
if(param.getFlash()!=null && param.getVideo()!=null)
throw new ApplicationException("you can define only one source");
// get VideoPlayer Tag
Tag parent=getParent();
while(parent!=null && !(parent instanceof VideoPlayerJW)) {
parent=parent.getParent();
}
if(parent instanceof VideoPlayerJW) {
VideoPlayerJW mail = (VideoPlayerJW)parent;
mail.setParam(param);
}
else {
throw new ApplicationException("Wrong Context, tag VideoPlayerParam must be inside a VideoPlayer tag");
}
return SKIP_BODY;
}
}