}
private boolean createReport(String reportName, List dataSetNames) {
try {
DesignConfig dconfig = new DesignConfig();
DataSetHandle dataSetHandleToUse = null;
DataSourceHandle dataSourceHandle = null;
dconfig.setBIRTHome("C:/BIRT_RUNTIME_2_2/birt-runtime-2_2_0/ReportEngine");
IDesignEngine dengine = null;
// try to start up the eclipse platform
IDesignEngineFactory factory = (IDesignEngineFactory) Platform
.createFactoryObject(IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY);
dengine = factory.createDesignEngine(dconfig);
// create a new session, open the library, and retrieve the first
// data source since it is uniform in our library
SessionHandle session = dengine.newSessionHandle(ULocale.ENGLISH);
LibraryHandle design = session
.openLibrary("C:/eclipse/GWTBirt/BIRTGwt/src/reports/DataSets.rptlibrary");
dataSourceHandle = (DataSourceHandle) design.getDataSources()
.get(0);
// create a new report
ReportDesignHandle reportDesign = session.createDesign();
reportDesign.getDataSources().add(dataSourceHandle);
// find the correct data set based on dateSetName
int dataSetCount = 0;
for (Iterator dataSetIterator = dataSetNames.iterator(); dataSetIterator
.hasNext();) {
dataSetCount++;
String dataSetName = (String) dataSetIterator.next();
for (Iterator i = design.getDataSets().iterator(); i.hasNext();) {
DataSetHandle dataSetHandle = (DataSetHandle) i.next();
if (dataSetHandle.getName().contains(dataSetName)) {
dataSetHandleToUse = dataSetHandle;
dataSetHandleToUse.setName(dataSetHandle.getName());
}
}
// Add the current data set to the report design
boolean hasDataSetAlready = false;
for (Iterator i = reportDesign.getDataSets().iterator(); i
.hasNext();) {
DataSetHandle dataSetInReport = (DataSetHandle) i.next();
if (dataSetInReport.getName().equalsIgnoreCase(
dataSetHandleToUse.getName())) {
hasDataSetAlready = true;
}
}
if (hasDataSetAlready == false)