1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| package fr.societe.projet.birt.handler;
import fr.societe.projet.domain.Personne;
import java.util.List;
import org.eclipse.birt.report.engine.api.script.IReportContext;
import org.eclipse.birt.report.engine.api.script.IScriptedDataSetMetaData;
import org.eclipse.birt.report.engine.api.script.IUpdatableDataSetRow;
import org.eclipse.birt.report.engine.api.script.ScriptException;
import org.eclipse.birt.report.engine.api.script.eventadapter.ScriptedDataSetEventAdapter;
import org.eclipse.birt.report.engine.api.script.instance.IDataSetInstance;
/**
* Handler sur un ScriptedDataSet qui contient des objets de type Personne.
*
* @author BiM
*/
public class PersonneHandler extends ScriptedDataSetEventAdapter {
private final static String COL_ID = "Id";
private final static String COL_NOM = "Nom";
private final static String COL_PRENOM = "Prenom";
private final static String COL_SEXE = "Sexe";
private final static String COL_AGE = "Age";
private List<Personne> personnes = null;
private int taille = 0;
private int enCours = 0;
@Override
public boolean describe(IDataSetInstance dataSet, IScriptedDataSetMetaData metaData) {
metaData.addColumn(COL_ID, Long.class);
metaData.addColumn(COL_NOM, String.class);
metaData.addColumn(COL_PRENOM, String.class);
metaData.addColumn(COL_SEXE, Character.class);
metaData.addColumn(COL_AGE, Integer.class);
return true;
}
@Override
@SuppressWarnings("unchecked")
public void beforeOpen(IDataSetInstance dataSet, IReportContext reportContext) {
if (reportContext != null) {
personnes = (List<Personne>)reportContext.getParameterValue("Personnes");
if (personnes != null) {
taille = personnes.size();
}
}
}
@Override
public void open(IDataSetInstance dataSet) {
enCours = 0;
}
@Override
public boolean fetch(IDataSetInstance dataSet, IUpdatableDataSetRow row) throws ScriptException {
if (enCours < taille) {
Personne personne = personnes.get(enCours);
enCours++;
row.setColumnValue(COL_ID, personne.getId());
row.setColumnValue(COL_NOM, personne.getNom());
row.setColumnValue(COL_PRENOM, personne.getPrenom());
row.setColumnValue(COL_SEXE, personne.getSexe());
row.setColumnValue(COL_AGE, personne.getAge());
return true;
}
return false;
}
} |