package au.com.vaadinutils.crud;
import net.sf.jasperreports.engine.JRException;
import au.com.vaadinutils.jasper.ui.JasperReportPopUp;
import au.com.vaadinutils.jasper.ui.JasperReportProperties;
import com.vaadin.addon.jpacontainer.EntityItem;
import com.vaadin.ui.Notification;
import com.vaadin.ui.Notification.Type;
public abstract class CrudActionPrint<E extends CrudEntity> implements CrudAction<E>
{
private static final long serialVersionUID = 1L;
private boolean isDefault = false;
@Override
public void exec(final BaseCrudView<E> crud, EntityItem<E> entity)
{
try
{
new JasperReportPopUp(prepareReport(entity));
}
catch (JRException e)
{
Notification.show(e.getMessage(), Type.ERROR_MESSAGE);
}
}
abstract protected JasperReportProperties prepareReport(EntityItem<E> entity) throws JRException;
public String toString()
{
return "Print";
}
public boolean isDefault()
{
return isDefault;
}
public void setIsDefault(boolean isDefault)
{
this.isDefault = isDefault;
}
}