blob: 535db522d58b6017899cef677a72abea13b2d643 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005 Actuate Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Actuate Corporation - created
*******************************************************************************/
package org.eclipse.org.demo.de;
import java.io.IOException;
import org.eclipse.birt.report.model.api.CellHandle;
import org.eclipse.birt.report.model.api.DesignElementHandle;
import org.eclipse.birt.report.model.api.DesignEngine;
import org.eclipse.birt.report.model.api.ElementFactory;
import org.eclipse.birt.report.model.api.GridHandle;
import org.eclipse.birt.report.model.api.ImageHandle;
import org.eclipse.birt.report.model.api.LabelHandle;
import org.eclipse.birt.report.model.api.ReportDesignHandle;
import org.eclipse.birt.report.model.api.RowHandle;
import org.eclipse.birt.report.model.api.SessionHandle;
import org.eclipse.birt.report.model.api.activity.SemanticException;
/**
* Simple BIRT Design Engine API (DEAPI) demo.
*/
public class DeDemo
{
public static void main( String[] args )
{
try
{
buildReport( );
}
catch ( IOException e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch ( SemanticException e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// This function shows how to build a very simple BIRT report with a
// minimal set of content: a simple grid with an image and a label.
static void buildReport( ) throws IOException, SemanticException
{
// Create a session handle. This is used to manage all open designs.
// Your app need create the session only once.
SessionHandle session = DesignEngine.newSession( null );
// Create a new report design.
ReportDesignHandle design = session.createDesign( );
// The element factory creates instances of the various BIRT elements.
ElementFactory factory = design.getElementFactory( );
// Create a simple master page that describes how the report will
// appear when printed.
//
// Note: The report will fail to load in the BIRT designer
// unless you create a master page.
DesignElementHandle element = factory.newSimpleMasterPage( "Page Master" ); //$NON-NLS-1$
design.getMasterPages( ).add( element );
// Create a grid and add it to the "body" slot of the report
// design.
GridHandle grid = factory.newGridItem( null, 2 /* cols */, 1 /* row */ );
design.getBody( ).add( grid );
// Note: Set the table width to 100% to prevent the label
// from appearing too narrow in the layout view.
grid.setWidth( "100%" ); //$NON-NLS-1$
// Get the first row.
RowHandle row = (RowHandle) grid.getRows( ).get( 0 );
// Create an image and add it to the first cell.
ImageHandle image = factory.newImage( null );
CellHandle cell = (CellHandle) row.getCells( ).get( 0 );
cell.getContent( ).add( image );
image.setURI( "http://www.eclipse.org/birt/tutorial/multichip-4.jpg" ); //$NON-NLS-1$
// Create a label and add it to the second cell.
LabelHandle label = factory.newLabel( null );
cell = (CellHandle) row.getCells( ).get( 1 );
cell.getContent( ).add( label );
label.setText( "Hello, world!" ); //$NON-NLS-1$
// Save the design and close it.
design.saveAs( "sample.rptdesign" ); //$NON-NLS-1$
design.close( );
// We're done!
}
}