package org.jboss.seam.ui.component.html;
import javax.el.ELException;
import javax.el.ValueExpression;
import javax.faces.FacesException;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import org.jboss.seam.ui.graphicImage.UIGraphicImage;
public class HtmlGraphicImage extends UIGraphicImage{
final static public String COMPONENT_FAMILY = "org.jboss.seam.ui.graphicImage.GraphicImage";
final static public String COMPONENT_TYPE = "org.jboss.seam.ui.graphicImage.GraphicImage";
/*
* Id of Converter to be used or reference to a Converter
*/
private Converter _converter = null;
/*
* File name for the generated URL - allows a stable file name and thus browser caching
*/
private String _fileName = null;
public HtmlGraphicImage(){
setRendererType("org.jboss.seam.ui.GraphicImageRenderer");
}
public Converter getConverter(){
if (this._converter != null) {
return this._converter;
}
ValueExpression ve = getValueExpression("converter");
if (ve != null) {
Converter value = null;
try {
value = (Converter) ve.getValue(getFacesContext().getELContext());
} catch (ELException e) {
throw new FacesException(e);
}
return value;
}
return null;
}
public void setConverter(Converter _converter){
this._converter = _converter;
}
public String getFileName(){
if (this._fileName != null) {
return this._fileName;
}
ValueExpression ve = getValueExpression("fileName");
if (ve != null) {
String value = null;
try {
value = (String) ve.getValue(getFacesContext().getELContext());
} catch (ELException e) {
throw new FacesException(e);
}
return value;
}
return null;
}
public void setFileName(String _fileName){
this._fileName = _fileName;
}
public String getFamily(){
return COMPONENT_FAMILY;
}
@Override
public Object saveState(FacesContext context){
Object [] state = new Object[3];
state[0] = super.saveState(context);
state[1] = saveAttachedState(context, _converter);
state[2] = _fileName;
return state;
}
@Override
public void restoreState(FacesContext context, Object state){
Object[] states = (Object[]) state;
super.restoreState(context, states[0]);
_converter = (Converter)restoreAttachedState(context, states[1]);
_fileName = (String)states[2];;
}
}