Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[birt-dev] Actuate Extension - Has A Relationship

BIRT Developers,

I have a basic question on functionality/extension of the BIRT model. As I understand the extension scheme, I can create any new type of ReportItem I want using the reportItemModel extension point. This will create the equivalent of a Subclass of ReportItem that has overloaded basic ReportItem functionality. So, using this I can create a RotatedText control as shown in the samples. In OO terminology, I am creating an 'Is A' relationship, my new Extension Point 'Is A' ReportItem, which means I am using a variation of inheritance.

Inheritance is a great way to add functionality, but it is limited in that the new functionality only will apply to objects that descend from my new plug-in. What I would like to be able to do is add function to the BIRT model that will be used by existing BIRT objects through composition. Perhaps it is easiest to describe through an example.

Imagine that I have a sophisticated security system that I would like to integrate into my BIRT reports. I want a report developer to empower any component (Table, Grid, Row, Cell, Control) to be able to access this functionality through a simple process (e.g. Add a property to all of those objects that is named useExternalSecurity). In OO terminology, I want to have a Table that 'Has A' Security module. I can not see a way to make this type of extension in the existing BIRT model. I know that I could go out and add JavaScript code to each control that I want to use the function, but that is a fairly code intensive solution. What I would like to be able to do is within the context of one or more reports be able to over-ride / extend functionality of any BIRT component, in a common location. Is there any way to do this in BIRT as it exists today?
If not, is there a way that this functionality could be added?

Scott Rosenbaum

Back to the top