|  | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | 
|  | <html> | 
|  | <head> | 
|  | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | 
|  | <link rel="stylesheet" type="text/css" href="../../../netbeans.css" media="screen"> | 
|  | <meta name="author" content="Tinuola Awopetu"> | 
|  | <meta name="keywords" content="NetBeans IDE, NetBeans Platform, iReport, Jaspersoft, Giulio Toffoli"> | 
|  | content="NetBeans, NetBeans IDE 6.0, iReport, NetBeans 6.1"> | 
|  | <title>iReport for NetBeans - An Interview with Giulio Toffoli, iReport Project Leader </title> | 
|  | </head> | 
|  | <body> | 
|  | <h1>iReport for NetBeans - An Interview with Giulio Toffoli, iReport | 
|  | Project Leader <br> | 
|  | </h1> | 
|  | <br> | 
|  | JasperSoft's <a | 
|  | href="http://www.jasperforge.org/jaspersoft/opensource/business_intelligence/ireport/">iReport</a>, | 
|  | the popular open source graphical report and dashboard design tool | 
|  | supports the NetBeans IDE as a native plug-in. iReport for NetBeans | 
|  | enables developers to build and edit complex reports for rich-client | 
|  | and web applications in a native development environment. | 
|  | In this interview, iReport creator Giulio Toffoli discusses the latest | 
|  | release of the plugin, his experience creating the module using the | 
|  | NetBeans Platform, and what users can expect from future updates.<br><br><br> | 
|  | <div | 
|  | style="padding: 10pt 10pt 10px 10px; background-color: rgb(255, 255, 255); width: 250px; float: left; font-size: 90%;"> | 
|  | <div style="text-align: left;"><img style="width: 200px; height: 199px;" | 
|  | alt="Giulio Toffoli, Project Lead of iReport" | 
|  | src="../../../images_www/articles/interviews/giulio-toffoli.jpg" | 
|  | align="top" hspace="5" vspace="5"><br> | 
|  | </div> | 
|  | <div style="text-align: left;"><br> | 
|  | Giulio Toffoli is a Senior | 
|  | Software Engineer at <a href="http://www.jaspersoft.com/index.html">JasperSoft | 
|  | Corporation</a>, where he serves as the iReport project leader. He has | 
|  | been | 
|  | developing Java applications since 1999 and founded the iReport project | 
|  | in | 
|  | 2001. His expertise includes designing complex software architectures | 
|  | and implementing | 
|  | custom software solutions with a focus on desktop and multi-tiered | 
|  | web-based | 
|  | client-server applications using Java (J2EE/JEE) and open-source | 
|  | technologies. He | 
|  | has a Master’s Degree in Computer Science from the University of | 
|  | Bologna and currently | 
|  | resides in Italy.<br> | 
|  | </div> | 
|  | </div> | 
|  | <span style="font-weight: bold;"> | 
|  | </span> | 
|  | <h4>What are the | 
|  | highlights of the latest release of iReport for | 
|  | NetBeans (v0.9.1)?</h4> | 
|  | We introduced support for the crosstabs, conditional styles, | 
|  | and the new border and pen definitions. We fixed several bugs and | 
|  | refactored | 
|  | some code portions, thus improving the performance.<br> | 
|  | <br> | 
|  | <h4>When and where can users get the plugin, and what version of | 
|  | the NetBeans IDE does it work with?<o:p></o:p> | 
|  | </h4> | 
|  | The first version of the plugin (v0.9.0) is already | 
|  | available on the <a href="http://plugins.netbeans.org/PluginPortal/">NetBeans | 
|  | Plugin Portal</a>, where it is extremely popular. | 
|  | The new version | 
|  | (v0.9.1) will be out in early April and will be fully | 
|  | compatible with | 
|  | NetBeans 6.0 and NetBeans 6.1.<br> | 
|  | <o:p></o:p><br> | 
|  | <table | 
|  | style="text-align: left; width: 50%; margin-left: auto; margin-right: auto;" | 
|  | border="0" cellpadding="2" cellspacing="2"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <td style="vertical-align: top;"> | 
|  | <div style="text-align: center;"><a | 
|  | href="../../../images_www/articles/ireport-screenshot1.jpg"><img | 
|  | alt="iReport for NetBeans - New Crosstab Designer in Action" | 
|  | src="../../../images_www/articles/ireport-screenshot1-small.jpg" | 
|  | style="border: 0px solid ; width: 520px; height: 320px;" align="top"></a><br> | 
|  | </div> | 
|  | <div style="text-align: center;"><span style="font-style: italic;">iReport | 
|  | for NetBeans: New Crosstab | 
|  | Designer<br> | 
|  | Click for larger view</span><br> | 
|  | </div> | 
|  | </td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | <h4>Are there significant differences between the plugin and the | 
|  | stand-alone | 
|  | versions of iReport?<o:p></o:p><span style="font-weight: bold;"></span></h4> | 
|  | <span style="font-weight: bold;"></span><span style="font-weight: bold;"></span> | 
|  | There are no particular | 
|  | differences in terms of | 
|  | functionalities. In the future we plan to improve the integration with | 
|  | Java | 
|  | projects when iReport is executed as a plugin inside the IDE, allowing | 
|  | the use | 
|  | of the project classpath to run a report. The stand-alone version | 
|  | better serves | 
|  | non-technical users who are interested only in design reports and not | 
|  | in writing | 
|  | code; and developers using other environments and looking for something | 
|  | lighter | 
|  | than the whole IDE.<o:p></o:p> | 
|  | <br> | 
|  | <br> | 
|  | <h4>Why integrate iReport with the | 
|  | NetBeans IDE? </h4> | 
|  | NetBeans provides a set of services and functionalities that we had to | 
|  | write on | 
|  | our own in the previous version of iReport. Moving to NetBeans gave us | 
|  | a lot of | 
|  | features—in a modern implementation and completely maintained by Sun— | 
|  | for free. | 
|  | Such as the visual library for the main designer, the window docking | 
|  | system, | 
|  | the property sheets, the data oriented tree, and much more. <br> | 
|  | <o:p> </o:p> | 
|  | <br> | 
|  | We were thus able to concentrate efforts on the core | 
|  | functionalities of our application. A standard platform enables the use | 
|  | of | 
|  | modules provided by third parties to quickly grow the set of | 
|  | functionalities | 
|  | offered out-of-the-box. It is easier for new developers to be involved | 
|  | in the | 
|  | project since all the platform APIs are well-known and documented, thus | 
|  | making | 
|  | the source code of iReport results easy to understand and extend. | 
|  | <br> | 
|  | <br> | 
|  | <h4>What features of the NetBeans IDE does the plugin use? </h4> | 
|  | iReport makes good use of pretty much all the base NetBeans API. The DB | 
|  | module | 
|  | in particular functions as a way to define the database connections, | 
|  | and the | 
|  | user can use it to design SQL queries and explore the database as | 
|  | well—a handy | 
|  | feature that’s beyond the scope of the application, but that we got for | 
|  | free | 
|  | using the module just to manage the JDBC drivers and connections. As I | 
|  | already | 
|  | mentioned, tight integration with Java projects is on the roadmap. <o:p></o:p> | 
|  | <br> | 
|  | <br> | 
|  | <h4>Prior to creating iReport, what was your experience with the | 
|  | NetBeans Platform? | 
|  | </h4> | 
|  | My experience was essentially null. I started by reading the book: | 
|  | “<a | 
|  | href="http://vig.prenhall.com/catalog/academic/product/0,1144,0132354802,00.html"><span | 
|  | style="font-style: italic;">Rich Client | 
|  | Programming: Plugging into the NetBeans Platform</span></a>”, written | 
|  | by Tim Boudreau, Jaroslav Tulach and Geertjan | 
|  | Wielenga.<o:p></o:p> | 
|  | <o:p></o:p>The book was a good starting point. <br> | 
|  | <br> | 
|  | It does | 
|  | not make assumptions about your knowledge of the NetBeans Platform, | 
|  | making it perfect | 
|  | for people approaching platform development for the first time. Using | 
|  | real life | 
|  | samples, it goes through all the main APIs and allows you to start | 
|  | writing code | 
|  | almost immediately. It is not a exhaustive reference of the NetBeans | 
|  | APIs and | 
|  | the Platform (this would require more than a single book) but it | 
|  | gives you | 
|  | the tools to find out the rest.<br> | 
|  | <o:p> </o:p> | 
|  | <br> | 
|  | The second great place to get started with plugin development | 
|  | is looking at the code. This may be a bit rude, but there are so many | 
|  | code | 
|  | patterns that when you compare several modules you discover that you | 
|  | are more | 
|  | or less writing the same code. Finally, the <a | 
|  | href="https://netbeans.org/community/lists/top.html">NetBeans | 
|  | mailing lists</a> are great | 
|  | sources of knowledge. It’s where you really get the sense that there is | 
|  | a strong | 
|  | and passionate community centered around NetBeans. And finding someone | 
|  | to help | 
|  | solve a problem is pretty easy. | 
|  | <br> | 
|  | <br> | 
|  | <h4>Why did you choose to build iReport with the NetBeans Platform? </h4> | 
|  | I began to consider moving iReport to the NetBeans Platform after | 
|  | attending | 
|  | JavaOne in 2007. During that occasion, I met Toni Epple who was already | 
|  | working | 
|  | on a designer for JasperReports based on the NetBeans Platform, and | 
|  | that | 
|  | I | 
|  | thought was pretty cool. I was looking for a platform to move iReport | 
|  | onto; | 
|  | iReport was completely written using Swing, so the opportunity to reuse | 
|  | a lot | 
|  | of the existing code for the UI in the new version was great.<o:p></o:p> | 
|  | <br> | 
|  | <o:p> </o:p> | 
|  | <br> | 
|  | <h4>Are there improvements you'd like to see in the NetBeans Platform? | 
|  | </h4> | 
|  | An easy way to dynamically extend the global classpath. Currently, | 
|  | several | 
|  | third parties libraries still rely on the system classpath when they | 
|  | dynamically look for a class (using the Class.forName() method instead | 
|  | of | 
|  | relying on the thread context class loader). In the original version, | 
|  | iReport | 
|  | had a special directory (lib) for this purpose: all the jars in that | 
|  | directory | 
|  | were added to the system classpath at startup. Of course, there are | 
|  | lots of | 
|  | implications to allowing users to add a jar with a global visibility in | 
|  | the | 
|  | NetBeans IDE: this would break all the rules and the efforts to manage | 
|  | classpath visibility of each module, but it would solve a lot of | 
|  | problems at | 
|  | platform level, where the risk of a class conflict is really low.<o:p></o:p> | 
|  | <br> | 
|  | <br> | 
|  | <h4>Are there updates to the plugin for NetBeans 6.1?</h4> | 
|  | We just fixed a couple of incompatibilities (due to API changes). The | 
|  | good news | 
|  | is that Sun has been really responsive in helping to figure out the | 
|  | problem and | 
|  | reconsidering the particular API change.<o:p></o:p> | 
|  | <br> | 
|  | <br> | 
|  | <h4>What is the roadmap for iReport for NetBeans, and what can users | 
|  | expect?<o:p></o:p> | 
|  | </h4> | 
|  | We still have a lot of work to do, but iReport 0.9.1 | 
|  | represents a very important milestone since it is the first version | 
|  | that | 
|  | provides visual support of all the JasperReports 2.0.5 features | 
|  | (meaning you do | 
|  | not have to write a single line of jrxml). | 
|  | <br> | 
|  | <o:p> </o:p> | 
|  | <br> | 
|  | The next major steps will be better support for export | 
|  | formats (currently the export of a report in a particular format can be | 
|  | done | 
|  | only using the preview window), full support for internationalization | 
|  | (i18n) | 
|  | and usability improvements (and here the list is very long). <br> | 
|  | <o:p> </o:p> | 
|  | <br> | 
|  | We plan to reach all the functionalities offered by the | 
|  | current standard version of iReport in June, at which time the port | 
|  | will | 
|  | be | 
|  | complete and the old version will be no longer be developed in favor of | 
|  | the | 
|  | NetBeans version.<o:p></o:p><o:p></o:p><br> | 
|  | <div style="text-align: right;"><span style="font-style: italic;">(April | 
|  | 2008)</span><br> | 
|  | </div> | 
|  | <br> | 
|  | <br> | 
|  | </body> | 
|  | </html> |