package hep.aida.web.taglib.jsp20;
import hep.aida.IBaseStyle;
import hep.aida.IPlotterRegion;
import hep.aida.web.taglib.RegionTag;
import hep.aida.web.taglib.RegionTagSupport;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/**
* @author The AIDA Team @ SLAC
*
*/
public class RegionTagImpl extends SimpleTagSupport implements RegionTag {
private RegionTagSupport regionTagSupport = new RegionTagSupport();
RegionTagSupport getRegionTagSupport() {
return regionTagSupport;
}
public void doTag() throws JspException, IOException {
PageContext pageContext = (PageContext) getJspContext();
PlotterTagImpl plotterTag = (PlotterTagImpl) findAncestorWithClass(
this, PlotterTagImpl.class);
if (plotterTag == null) {
throw new JspException(
"a <region> tag must be nested in a <plotter> tag");
}
// The RegionTagSupport needs to call back on the PlotterTagSupport in
// order to create an IPlotterRegion. This is because nested <plot> tags
// within a <region> tag need access to the <region> so that they can
// render their plot in it.
regionTagSupport.doStartTag(plotterTag.getPlotterTagSupport(), pageContext);
// Evaluate any nested tags.
JspFragment jspBody = getJspBody();
if (jspBody != null) {
jspBody.invoke(getJspContext().getOut());
}
}
/**
* Create and return an AIDA plotter region from the IPlotter managed by our
* parent ELPlotterTagImpl.
*
* @return An AIDA plotter region
*/
IPlotterRegion getPlotterRegion() {
return regionTagSupport.getPlotterRegion();
}
/*
* (non-Javadoc)
*
* @see hep.aida.web.taglib.RegionTag#setX(double)
*/
public void setX(double x) {
regionTagSupport.setX(x);
}
/*
* (non-Javadoc)
*
* @see hep.aida.web.taglib.RegionTag#setY(double)
*/
public void setY(double y) {
regionTagSupport.setY(y);
}
/*
* (non-Javadoc)
*
* @see hep.aida.web.taglib.RegionTag#setWidth(double)
*/
public void setWidth(double width) {
regionTagSupport.setWidth(width);
}
/*
* (non-Javadoc)
*
* @see hep.aida.web.taglib.RegionTag#setHeight(double)
*/
public void setHeight(double height) {
regionTagSupport.setHeight(height);
}
/*
* (non-Javadoc)
*
* @see hep.aida.web.taglib.RegionTag#setRowSpan(int)
*/
public void setRowSpan(int rowSpan) {
regionTagSupport.setRowSpan(rowSpan);
}
/*
* (non-Javadoc)
*
* @see hep.aida.web.taglib.RegionTag#setColSpan(int)
*/
public void setColSpan(int colSpan) {
regionTagSupport.setColSpan(colSpan);
}
/*
* (non-Javadoc)
*
* @see hep.aida.web.taglib.util.StyleProvider#getStyle()
*/
public IBaseStyle getStyle() throws JspException {
return regionTagSupport.getStyle();
}
/*
* (non-Javadoc)
*
* @see hep.aida.web.taglib.util.StyleProvider#getStyle(java.lang.String)
*/
public IBaseStyle getStyle(String type) throws JspException {
return regionTagSupport.getStyle(type);
}
/*
* (non-Javadoc)
*
* @see hep.aida.web.taglib.RegionTag#setHref(java.lang.String)
*/
public void setHref(String href) {
regionTagSupport.setHref(href);
}
public String getHref() {
return regionTagSupport.getHref();
}
/*
* (non-Javadoc)
*
* @see hep.aida.web.taglib.RegionTag#setTitle(java.lang.String)
*/
public void setTitle(String title) {
regionTagSupport.setTitle(title);
}
public String getTitle() {
return regionTagSupport.getTitle();
}
public void setVar(String var) {
regionTagSupport.setVar(var);
}
public String getVar() {
return regionTagSupport.getVar();
}
public void setScope(String scope) {
regionTagSupport.setScope(scope);
}
}