|By Jason Weathersby, Iana Chatalbasheva, Tom Bondur||
|October 23, 2006 06:00 PM EDT||
After defining the plug-in framework in the Eclipse PDE, the developer makes the code-based extensions required to complete the plug-in development process.
The rotated label report item extension implements the following interfaces and classes:
- org.eclipse.birt.report.designer.ui.extensions specifies the following interfaces:
- IPropertyTabUI - Represents a new tab in the Property Editor view, creating the UI, updating property values on request, and notifying the BIRT framework of any UI-based property change. PropertyTabUIAdapter is the adapter class that implements this interface.
- IReportItemLabelProvider - Defines the interface for the accessor method that provides the label text. ReportItemLabelProvider is the adapter class that implements this interface.
- IReportItemPropertyEditUI - Provides the interface for defining tabs in the Property Editor.
- org.eclipse.birt.report.designer.ui.views.attributes.providers.PropertyProcessor provides accessor methods for processing general property information.
- IRowSet - Defines the interface to a row set. Provides metadata, grouping level, and row navigation methods.
- IReportItemPresentation - Defines the interface for presentation of a report item extension. IReportItem-Presentation sets the locale, resolution, output, and image formats and processes the extended item in the report presentation environment. ReportItemPresentationBase is the adapter class that implements this interface.
- DesignElementHandle - Functions as the base class for all report elements. DesignElementHandle provides a high-level interface to the BIRT report model. The class provides the generic services for all elements. Derived classes provide specialized methods for each element type. DesignElementHandle implements the interface, org.eclipse.birt.report.model.elements.interfaces.IDesignElementModel.
- DesignEngine - Provides an interface to the BIRT design engine. DesignEngine instantiates a session handle to use when creating a new design, opening an existing design, and managing design processing. The session handle contains the report design's state. DesignEngine implements the interface, IDesignEngine interface.
- ExtendedItemHandle - Provides a handle to an extended item that appears in a section of a report. The extended report item can have properties such as size, position, style, visibility rules, or a binding to a data source. ExtendedItemHandle extends ReportItemHandle, an abstract base class that extends DesignElement-Handle.
- org.eclipse.birt.report.model.elements.Style extends org.eclipse.birt.report.model.core.StyleElement, the base class for report elements with a style, and implements org.eclipse.birt.report.model.elements.interfaces.IStyleModel, the interface for storing style element constants.
- org.eclipse.birt.report.model.api.extension specifies the following interfaces:
- IMessages - Defines the interface for getting a localized message from a message file using a resource key.
- IPropertyDefinition - Defines the interface for the accessor methods that describe a property. PropertyDefinition is the adapter class that implements this interface.
- IReportItem - Defines the interface for an instance of an extended report element. There is a one-to-one correspondence between the BIRT report item and this implementation. ReportItem is the adapter class that implements this interface.
- IReportItemFactory - Defines the interface for the factory that creates an instance of the extended element, IReportItem. IReportItem stores the model data and serializes the model state. ReportItemFactory is the adapter class that implements this interface.
- org.eclipse.birt.report.model.metadata.PropertyType functions as the base class for the metadata of a property type. A property type provides the display name, data validation and conversion methods, XML name, and other processing. PropertyType implements the interface, org.eclipse.birt.re-port.model.api.metadata.IPropertyType.
- org.eclipse.core.runtime.Plugin defines the basic methods for starting, managing, and stopping the plug-in instance.
For example, the RotatedLabelItemFactoryImpl class instantiates a new report item when the user drags a rotated label report item from the Palette and drops the report item in the BIRT Report Designer Editor. This class extends the adapter class, org.eclipse.birt.report.model.api.extension.ReportItemFactory.
In the implementation class, the newReportItem( ) method receives a reference to DesignElementHandle, which provides the interface to the BIRT report model. The newReportItem( ) method instantiates the report item, as shown in Listing 2.
In the RotatedLabelUI class, the getLabel( ) method provides the text representation for the label to BIRT Report Designer. RotatedLabelUI extends the adapter class, org.eclipse.birt.report.designer.ui.extensions.ReportItemLabelProvider. Listing 3 shows the code for the getLabel( ) method.
The RotatedLabelPresentationImpl class specifies how to process and render the report item at presentation time. This class extends the org.eclipse.birt.report.engine.extension.ReportItemPresentationBase class.
The method, onRowSets( ), renders the rotated label report item as an image, rotated by the angle specified in the report design, as shown in Listing 4.
In the RotatedLabelReportItemImpl class, the method, getPropertyDefinitions( ), instantiates RotatedLabelPropertyDefinitionImpl objects for the displayText and rotationAngle properties. RotatedLabelReportItemImpl extends the adapter class, org.eclipse.birt.report.model.api.extension.ReportItem. Listing 5 shows the code for the getPropertyDefinitions( ) method.
The RotatedLabelPropertyEditUIImpl class builds the UI using the RotatedLabelGeneralTabUIImpl class to set up the controls for the UI. RotatedLabelPropertyEditUIImpl implements the org.eclipse.birt.report.designer.ui.extensions.IReportItemPropertyEditUI interface.
In the RotatedLabelPropertyEditUIImpl class, the getCategoryTabs ( ) method instantiates the RotatedLabelGeneral-TabUIImpl class, as shown in Listing 6.
The RotatedLabelGeneralTabUIImpl class contains an internal class GeneralCategoryWrapper that creates the UI contents, as shown in Listing 7.
The GraphicsUtil class creates the image containing the specified text and rotates the text image to the specified angle, using the following methods:
- createRotatedText( ) performs the following operations:
- Gets the display text and rotation angle properties
- Sets the display text font and determines the font metrics
- Creates an image the same size as the display text String
- Draws the display text as an image
- Calls the rotateImage( ) method to rotate the image at the specified angle
- Disposes of the operating system resources used to render the image
- Returns the image object
- rotateImage( ) rotates the image and determines the width, height, and point of origin for the image
On the PDE Manifest Editor, in Overview, the Testing section contains links to launch a plug-in as a separate Eclipse application in either Run or Debug mode. In Testing, choose Launch an Eclipse application. Eclipse launches the runtime workbench.
In Report Design, choose File->New->Project, and choose Report Project. Create a new report in the project by choosing File->New->Report.
In File name, type a file name if you want to change the default file name. Choose Next. New Report displays the report templates. In Report templates, choose Blank Report, and choose Finish.
The layout editor displays the report design, new_report.rptdesign. The Palette contains the RotatedText report item.
From the Palette, drag RotatedLabel to Layout, as shown in Figure 1. In new_report.rptdesign, choose Preview. The preview appears, displaying the rotated label report item, as shown in Figure 2.
This article is an excerpt from the book, Integrating and Extending BIRT by Jason Weathersby, Don French, Tom Bondur, Jane Tatchell, and Iana Chatalbasheva, soon to be published by Addison-Wesley. The book is the second volume in a two-book series about business intelligence and reporting technology. The book introduces programmers to BIRT architecture and the reporting framework. It shows programmers how to build and deploy customized reports using scripting and BIRT APIs. It also describes how to use key extension points to create a customized report item, a rendering extension for generating output other than HTML or PDF, and an Open Data Access (ODA) driver for a new data source. Integrating and Extending BIRT. Copyright 2007 Actuate. ISBN 0321443853. For more information, please visit www.awprofessional.com.
|JDJ News Desk 10/23/06 05:29:14 PM EDT|
The Eclipse platform is an Open Source, integrated system of application development tools that you implement and extend using a plug-in interface. Eclipse provides a set of core plug-ins that configures the basic services for the platform's framework. A platform developer can build and integrate new tools in this application development system.
Bert Loomis was a visionary. This general session will highlight how Bert Loomis and people like him inspire us to build great things with small inventions. In their general session at 19th Cloud Expo, Harold Hannon, Architect at IBM Bluemix, and Michael O'Neill, Strategic Business Development at Nvidia, discussed the accelerating pace of AI development and how IBM Cloud and NVIDIA are partnering to bring AI capabilities to "every day," on-demand. They also reviewed two "free infrastructure" pr...
Apr. 24, 2017 02:45 AM EDT Reads: 751
In his keynote at @ThingsExpo, Chris Matthieu, Director of IoT Engineering at Citrix and co-founder and CTO of Octoblu, focused on building an IoT platform and company. He provided a behind-the-scenes look at Octoblu’s platform, business, and pivots along the way (including the Citrix acquisition of Octoblu).
Apr. 24, 2017 02:45 AM EDT Reads: 758
Data is an unusual currency; it is not restricted by the same transactional limitations as money or people. In fact, the more that you leverage your data across multiple business use cases, the more valuable it becomes to the organization. And the same can be said about the organization’s analytics. In his session at 19th Cloud Expo, Bill Schmarzo, CTO for the Big Data Practice at Dell EMC, introduced a methodology for capturing, enriching and sharing data (and analytics) across the organization...
Apr. 24, 2017 12:30 AM EDT Reads: 6,327
The explosion of new web/cloud/IoT-based applications and the data they generate are transforming our world right before our eyes. In this rush to adopt these new technologies, organizations are often ignoring fundamental questions concerning who owns the data and failing to ask for permission to conduct invasive surveillance of their customers. Organizations that are not transparent about how their systems gather data telemetry without offering shared data ownership risk product rejection, regu...
Apr. 24, 2017 12:00 AM EDT Reads: 1,005
Grape Up is a software company, specialized in cloud native application development and professional services related to Cloud Foundry PaaS. With five expert teams that operate in various sectors of the market across the USA and Europe, we work with a variety of customers from emerging startups to Fortune 1000 companies.
Apr. 23, 2017 11:45 PM EDT Reads: 1,985
Financial Technology has become a topic of intense interest throughout the cloud developer and enterprise IT communities. Accordingly, attendees at the upcoming 20th Cloud Expo at the Javits Center in New York, June 6-8, 2017, will find fresh new content in a new track called FinTech.
Apr. 23, 2017 11:30 PM EDT Reads: 2,181
SYS-CON Events announced today that Interoute, owner-operator of one of Europe's largest networks and a global cloud services platform, has been named “Bronze Sponsor” of SYS-CON's 20th Cloud Expo, which will take place on June 6-8, 2017 at the Javits Center in New York, New York. Interoute is the owner-operator of one of Europe's largest networks and a global cloud services platform which encompasses 12 data centers, 14 virtual data centers and 31 colocation centers, with connections to 195 add...
Apr. 23, 2017 11:00 PM EDT Reads: 1,593
Multiple data types are pouring into IoT deployments. Data is coming in small packages as well as enormous files and data streams of many sizes. Widespread use of mobile devices adds to the total. In this power panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists will look at the tools and environments that are being put to use in IoT deployments, as well as the team skills a modern enterprise IT shop needs to keep things running, get a handle on all this data, and deli...
Apr. 23, 2017 09:45 PM EDT Reads: 1,955
The age of Digital Disruption is evolving into the next era – Digital Cohesion, an age in which applications securely self-assemble and deliver predictive services that continuously adapt to user behavior. Information from devices, sensors and applications around us will drive services seamlessly across mobile and fixed devices/infrastructure. This evolution is happening now in software defined services and secure networking. Four key drivers – Performance, Economics, Interoperability and Trust ...
Apr. 23, 2017 09:30 PM EDT Reads: 3,545
The Internet of Things is clearly many things: data collection and analytics, wearables, Smart Grids and Smart Cities, the Industrial Internet, and more. Cool platforms like Arduino, Raspberry Pi, Intel's Galileo and Edison, and a diverse world of sensors are making the IoT a great toy box for developers in all these areas. In this Power Panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists discussed what things are the most important, which will have the most profound e...
Apr. 23, 2017 03:30 PM EDT Reads: 1,954
@ThingsExpo has been named the Most Influential ‘Smart Cities - IIoT' Account and @BigDataExpo has been named fourteenth by Right Relevance (RR), which provides curated information and intelligence on approximately 50,000 topics. In addition, Right Relevance provides an Insights offering that combines the above Topics and Influencers information with real time conversations to provide actionable intelligence with visualizations to enable decision making. The Insights service is applicable to eve...
Apr. 23, 2017 02:15 PM EDT Reads: 2,405
SYS-CON Events announced today that Grape Up will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct. 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Grape Up is a software company specializing in cloud native application development and professional services related to Cloud Foundry PaaS. With five expert teams that operate in various sectors of the market across the U.S. and Europe, Grape Up works with a variety of customers from emergi...
Apr. 23, 2017 02:00 PM EDT Reads: 1,656
SYS-CON Events announced today that Hitachi, the leading provider the Internet of Things and Digital Transformation, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Hitachi Data Systems, a wholly owned subsidiary of Hitachi, Ltd., offers an integrated portfolio of services and solutions that enable digital transformation through enhanced data management, governance, mobility and analytics. We help globa...
Apr. 23, 2017 01:45 PM EDT Reads: 1,891
SYS-CON Events announced today that SoftLayer, an IBM Company, has been named “Gold Sponsor” of SYS-CON's 18th Cloud Expo, which will take place on June 7-9, 2016, at the Javits Center in New York, New York. SoftLayer, an IBM Company, provides cloud infrastructure as a service from a growing number of data centers and network points of presence around the world. SoftLayer’s customers range from Web startups to global enterprises.
Apr. 23, 2017 09:45 AM EDT Reads: 1,893
20th Cloud Expo, taking place June 6-8, 2017, at the Javits Center in New York City, NY, will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud strategy.
Apr. 23, 2017 04:45 AM EDT Reads: 2,821
SYS-CON Events announced today that Super Micro Computer, Inc., a global leader in compute, storage and networking technologies, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Supermicro (NASDAQ: SMCI), the leading innovator in high-performance, high-efficiency server technology, is a premier provider of advanced server Building Block Solutions® for Data Center, Cloud Computing, Enterprise IT, Hadoop/...
Apr. 23, 2017 04:00 AM EDT Reads: 1,797
Amazon has gradually rolled out parts of its IoT offerings in the last year, but these are just the tip of the iceberg. In addition to optimizing their back-end AWS offerings, Amazon is laying the ground work to be a major force in IoT – especially in the connected home and office. Amazon is extending its reach by building on its dominant Cloud IoT platform, its Dash Button strategy, recently announced Replenishment Services, the Echo/Alexa voice recognition control platform, the 6-7 strategic...
Apr. 23, 2017 03:45 AM EDT Reads: 4,792
Judith Hurwitz is president and CEO of Hurwitz & Associates, a Needham, Mass., research and consulting firm focused on emerging technology, including big data, cognitive computing and governance. She is co-author of the book Cognitive Computing and Big Data Analytics, published in 2015. Her Cloud Expo session, "What Is the Business Imperative for Cognitive Computing?" is scheduled for Wednesday, June 8, at 8:40 a.m. In it, she puts cognitive computing into perspective with its value to the busin...
Apr. 23, 2017 03:15 AM EDT Reads: 3,484
Cognitive Computing is becoming the foundation for a new generation of solutions that have the potential to transform business. Unlike traditional approaches to building solutions, a cognitive computing approach allows the data to help determine the way applications are designed. This contrasts with conventional software development that begins with defining logic based on the current way a business operates. In her session at 18th Cloud Expo, Judith S. Hurwitz, President and CEO of Hurwitz & ...
Apr. 23, 2017 01:45 AM EDT Reads: 8,761
Cybersecurity is a critical component of software development in many industries including medical devices. However, code is not always written to be robust or secure from the unknown or the unexpected. This gap can make medical devices susceptible to cybersecurity attacks ranging from compromised personal health information to life-sustaining treatment. In his session at @ThingsExpo, Clark Fortney, Software Engineer at Battelle, will discuss how programming oversight using key methods can incre...
Apr. 22, 2017 05:45 PM EDT Reads: 3,725