| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html><head></head><script charset="utf-8" id="injection_graph_func" src="nbm_interview_toni-1_bestanden/injection_graph_func.js"></script><link href="nbm_interview_toni-1_bestanden/injection_graph.css" type="text/css" rel="stylesheet" charset="utf-8" id="injection_graph_css"><body> |
| <h1>Meet a NetBeans Module Writer: Toni Epple</h1> |
| <table class="ltblue" align="right" border="1" cellpadding="5" cellspacing="0" width="190"> |
| <tbody> |
| <tr> |
| <td align="center"><img src="nbm_interviews/toni/toni.png" alt="Toni's picture" align="middle"> |
| |
| <br><b>Toni Epple</b></td> |
| </tr> |
| <tr> |
| <td> |
| <ul><li><a href="http://maxnitribitt.blog-city.com/">My Blog</a></li></ul> |
| |
| </td></tr> |
| |
| </tbody> |
| </table> |
| |
| <p>Toni Epple is the NetBeans module writer behind Jarvis, which is the JasperReports Visual Designer |
| at <a href="https://jarvis.dev.java.net/">https://jarvis.dev.java.net/</a>. Here he answers |
| some questions, explains what he's been up to, and gives you some pointers on how to |
| contribute to his project. He also shows us a very cool Flash demo, proving how far |
| along his project has already come. |
| |
| |
| <h3>Toni, you've been working very hard on a visual designer for |
| JasperReports in NetBeans IDE! The world wants to know who you are—so please |
| introduce yourself. Where are you from, who are you, and what do you do |
| in your day to day life?</h3> |
| |
| <p> |
| I live in the heart of Munich, Germany, about 200 meters from the annual Oktoberfest. |
| Originally I'm a geneticist, but after my studies I decided that it was more fun to |
| analyze the data than to produce it, |
| so I studied computer science, and now I develop <a href="http://en.wikipedia.org/wiki/Systems_biology">systems biology applications</a>. |
| I'm leading our small group of Java developers at |
| <a href="http://www.genomatix.de/">Genomatix Software GmbH</a>. |
| I've created lots of web and database applications and the rich-client platform |
| we use for our Java applications. |
| My main project is <a href="http://www.genomatix.de/products/BiblioSphere/BiblioSpherePE3.html">BiblioSphere</a>, |
| a software product that uses information extraction techniques to derive gene networks from scientific literature. |
| <h3>Are you active in the Java community there?</h3> |
| |
| <p> |
| Not really, I must admit that I haven't been too active during the last few years, but I'm a member of the NetBeans User Group. |
| <h3>How long have you been using NetBeans and how did you first hear about it? </h3> |
| |
| <p>I first worked with NetBeans, or "Forte for Java" in 2000, I guess, |
| but I didn't like it too much. Back then, I thought a text editor is |
| all one needs as a Java developer. Later, I used JBuilder for some years. |
| NetBeans 4.1 got my attention again in 2005, when I started looking for |
| a new rich-client platform for our software. I watched the progress and |
| when module development got really simple with 5.0, I slowly started to |
| migrate to NetBeans, which is now the IDE I use most. <h3>What do you think of the IDE?</h3> |
| |
| <p>The hype around Matisse attracted many new developers last year, and deservedly so. |
| I like the IDE in general and the fact that the NetBeans team seems to be pretty enthusiastic about their product. |
| The editor in the current version is a bit slow, but NetBeans is gaining on that too, |
| and the NetBeans 6.0 Milestone releases look very promising. |
| What I'm really looking forward to is the integration of <a href="http://graph.netbeans.org/">David Kaspar's Visual Library</a>. |
| I used it to create the visual part of Jarvis. It's the kind of tool |
| that makes you actively search for problems where you can apply it. <h3>What do you like and what do you dislike?</h3> |
| |
| |
| <p> |
| I like the NetBeans Platform in general. When I started working with it, I |
| discovered much more functionality to reuse than I would ever have |
| expected. |
| On the downside, I don't like the BPEL support, because there is no |
| support for adding Java code, and although the designer looks neat, it |
| is too slow for working with larger workflows. It would be a good idea |
| to use David Kaspar's Visual Library for this. |
| |
| <h3>So why did you want to create a visual designer for JasperReports in NetBeans anyway?</h3> |
| |
| <p> |
| We wanted to add reports to our applications, and we wanted our users |
| to be able to design their own reports. I searched for what is readily |
| available first, but the only software that is close enough to what I |
| needed is iReports, which is GPLed. So I decided to implement |
| something similar myself, but with a tight integration into the IDE. |
| |
| <h3>What functionality does your visual designer provide? And please show us some screenshots!</h3> |
| |
| <p> |
| The JasperReports Visual Designer (Jarvis) is a NetBeans module for the |
| <a href="http://jasperforge.org/sf/projects/jasperreports">JasperReports reporting engine</a>. The |
| project aims to provide complete support for the design and execution |
| of report templates. Among the supported features are: |
| </p><ul> |
| <li><p>JasperReports template file type support</p> |
| </li><li><p>Integration of the JasperReports viewers as |
| TopComponents (preview, and jasperprint viewer)</p> |
| </li><li><p>Multiview editor for report design</p> |
| </li><li><p>XML text editor</p> |
| </li><li><p>Design view for visually editing the report layout</p> |
| |
| </li><li><p>Editable PropertySheets for all Report Elements</p> |
| </li><li><p>Drag & Drop palette for charts, parameters, fields, |
| variables, text and graphic elements |
| </p></li><li><p>Add custom parameters, fields, |
| variables to the palette |
| </p> |
| </li> <li><p>Configuration of datasources |
| (in progress)</p> |
| </li><li><p>Actions for the execution of |
| reports</p> |
| </li><li><p>Advanced property editors for |
| report elements (in progress)</p> |
| |
| </li><li><p>User defined element templates</p> |
| </li> |
| </ul> |
| |
| Instead of screenshots, I would like to show you a little Flash demo that shows how Jarvis speeds up report design: |
| <center> |
| <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" |
| codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" |
| width="888" height="563" ID="Captivate1"> |
| |
| <param name="movie" value="https://jarvis.dev.java.net/files/documents/6065/50601/jarvis.swf"> |
| <param name="quality" value="high"> |
| <param name="menu" value="true"> |
| |
| <param name="loop" value="0"> |
| <embed src="https://jarvis.dev.java.net/files/documents/6065/50601/jarvis.swf" |
| width="888" height="563" loop="0" quality="high" |
| pluginspage="http://www.macromedia.com/go/getflashplayer" |
| type="application/x-shockwave-flash" menu="false"></embed> |
| </object> |
| </center> |
| |
| <p> |
| |
| <h3>What are your plans for this visual designer? What functionality would you like to add? When are your planning to be 'finished'?</h3> |
| |
| <p> |
| First we need to make Jarvis really useful for developers and expert users who know how JasperReports work. |
| An expert user needs to be able to design, test and execute his reports in the Visual Designer, |
| and a Java developer needs support for using the reports from Java code. |
| The main thing that is missing for that part are property sheets for the charts |
| and some Java templates for the execution of reports. |
| |
| |
| |
| In the next step, I want to simplify the design of reports for end users. |
| The plan is to add templates for standard reporting tasks like showing a table or a chart, |
| and wizards to configure them, so a user doesn't have to know anything about how JasperReports works. |
| |
| |
| <h3>Can I already use your visual designer in production?</h3> |
| |
| <p>You wouldn't want to add it to your rich-client application, but I |
| think it is quite useful for developers already. If you have a report |
| design, you can open it in the IDE and work on it with the visual |
| designer or the XML view. Jarvis also reads the iReports format, so you |
| can import your JDBC data sources. Thanks to Geertjan, there is a |
| predefined library with all the JARs you need for executing the report. |
| Jarvis uses the IDE's Database Explorer to get hold of available |
| database connections and you can execute your reports with them. If you |
| want to design a report from scratch, you will still have to use the |
| XML view a lot, but it works. |
| So, yes, I think you could use it as it is. I'll soon add an update |
| center to the Jarvis project page, with an official pre-release to make |
| it easier to try it. |
| |
| |
| <h3>What do I need to get started if I want to use the visual designer?</h3> |
| |
| <p> |
| Jarvis works with NetBeans 5.5. Right now you will need to |
| <a href="https://www.dev.java.net/servlets/Join">register at dev.java.net</a> |
| and <a href="https://jarvis.dev.java.net/servlets/ProjectMemberList">request the Observer role</a> to check out the project from the project's CVS. |
| After checking out the Jarvis module suite and opening it as a project, |
| you should be able to build and run the module. |
| |
| |
| |
| |
| <h3>It is open sourced. So would you like code |
| contributions? What kind of things, specifically? Please provide a very |
| specific list, if possible.</h3> |
| |
| <p> |
| Not only code, but also bug reports, tutorials and articles are highly |
| appreciated. Right now we are two active developers working on the |
| project. Tanja Drüke, who also works for Genomatix, has recently |
| joined the project. She is working on the datasource integration and |
| the advanced property sheets. If you want to contribute code, there are lots of places where |
| you can start. Here is a list of tasks where a developer could step in: |
| </p><ul> |
| <li><b>Datasources.</b> Jarvis has an API for |
| the configuration of Datasources. You could add |
| configuration forms for XML files, JavaBeans sets, |
| Custom JRDataSources, File CSV, JRDataSourceProviders, |
| Hibernate Connections, and Spring loaded Hibernate Connection. |
| <li><b>Property Sheets.</b> We need some forms to |
| simplify setting the properties of Reports (a |
| wizard that chooses from a set of templates would also be fine), Charts, and |
| SubReports. |
| <li><b>Layout.</b> Actions to align, group and distribute ReportElements, such as |
| Bring to Front / Send to back, Align left, right, bottom, top, center..., |
| Distribute vertically/horizontally..., Group/Ungroup, and Baseline support. |
| <li><b>Expression Editor.</b> |
| <li><b>Document Tree.</b> A component to work with the document as a tree structure. |
| </ul> |
| <p> |
| |
| |
| |
| <h3>What do I need to do to start contributing code?</h3> |
| |
| <p> |
| You will need to <a href="https://www.dev.java.net/servlets/Join">register at dev.java.net</a> |
| and <a href="https://jarvis.dev.java.net/servlets/ProjectMemberList">request the Observer role</a> in the project. |
| Please start contributing by writing bug reports, and joining the discussions in the mailing lists. |
| |
| If you would like to request the Developer role, please contact me at maxnitribitt@dev.java.net first. |
| |
| |
| |
| <h3>Do you have plans for making other modules or rich-client applications after the visual designer is done?</h3> |
| |
| <p> |
| We have just begun to port two of our applications, <a href="http://www.genomatix.de/products/BiblioSphere/BiblioSpherePE3.html">BiblioSphere</a> and <a href="http://www.genomatix.de/products/ChipInspector/ChipInspector3.html">ChipInspector</a>, to the NetBeans Platform. |
| |
| |
| Besides that, I've got plans for some additional open source modules: |
| |
| <ul><li><strong>IzPack support</strong>: Sven Reimers, who wrote the <a href="http://fnleisurehacker.fn.funpic.de/wordpress/?page_id=102">FindBugz plugin</a>, and I have plans for a NetBeans module that creates installers with IzPack. |
| I did some basic <a href="http://maxnitribitt.blog-city.com/izpack_tutorial_2.htm">IzPack integration for NetBeans</a>. |
| The project is asleep, but I'm planning to work on it in June, |
| when I will have to write some installers anyway. |
| <li><strong>Schema2Beans wizard</strong>: I've published a <a href="http://maxnitribitt.blog-city.com/netbeans_schema2beans_support_3.htm">tutorial</a><a> on how to create XML-binding classes with schema2beans. |
| I would like to make this available as a module after a bit of code polishing. |
| <li><strong>Property annotations</strong>: There are lots of Java beans in Jarvis that needed to be configurable via property sheets. |
| I created some </a><a href="http://maxnitribitt.blog-city.com/jarvis_propertysheets_and_annotations.htm"> annotations and an Introspector</a> |
| to automate the creation of property sheets. You can create property |
| sheets for nested beans, and there is additional support for |
| schema2beans. It works really well and I guess it would be quite useful |
| for other module developers. I guess this could also get a spin-off |
| project.</ul> |
| |
| <h3>What do you think of developing on the NetBeans Platform?</h3> |
| |
| <p> |
| It's very easy to get started using the project templates and there are <a href="https://platform.netbeans.org/tutorials/">tons of good tutorials and demos</a> out there. |
| What I was missing, when I started, was a comprehensive book on the platform. |
| So it's really good to know that there is <a href="https://netbeans.org/books/rcp.html">a book</a> underway that covers this topic. |
| |
| <h3>Can you give us some tips and tricks, with code snippets?</h3> |
| |
| <p> |
| For my <a href="http://maxnitribitt.blog-city.com/schema2beanssupport4.htm">schema2beans module I needed a package chooser</a> to decide where the beans should be generated. |
| <p><img src="nbm_interviews/toni/parameter-dialog.jpg"> <p> |
| It's very easy to get this from the Java Project Support API: |
| |
| </p> |
| <pre class="examplecode">Project p = FileOwnerQuery.getOwner(fileObject); |
| Sources sources = ProjectUtils.getSources(p); |
| SourceGroup[] groups = sources.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA); |
| private ComboBoxModel comboBoxModel = PackageView.createListView(sourceGroups[0]); |
| JComboBox packageComboBox = new javax.swing.JComboBox(); |
| packageComboBox.setRenderer(PackageView.listRenderer()); |
| packageComboBox.setModel(comboBoxModel); |
| //..... do something with it |
| packageComboBox.getEditor().getItem().toString();// get the selected package</pre> |
| |
| <p> |
| |
| <h3>What should be improved on the NetBeans Platform, in your opinion?</h3> |
| |
| <p>If you look at the sources, there are lots of APIs that I think |
| should be public. There is, e.g., no standard way to add something to the |
| <tt>layer.xml</tt> programmatically. But there are non-public APIs hidden to us |
| developers that could be used for that. I know it's a hard road until |
| an API goes public, but this one would help. It would also be great if |
| the Database Explorer API would offer many more features, because this |
| is an API that will be used in many module projects. |
| For starters, better drag & drop support and the possibility to |
| listen for connection state changes would be nice. The most important |
| improvement to me is that the Visual Library will be part of NetBeans. |
| That will definitely boost module development for NetBeans. |
| |
| |
| <h3>What are the main benefits of the NetBeans Platform to you?</h3> |
| |
| <p> |
| About four years ago I had to write my own rich-client platform with an application launcher, |
| splash screen, update and download managers, preferences, proxy handling and so on. |
| With the NetBeans Platform all that stuff is there for free. |
| And there is so much more like the Window system, the Lookup API, Projects, the FileSystems API, Wizards, you name it. |
| Working with the NetBeans Platform really speeds up development for rich-client platform applications. |
| There is a steep learning curve, but once you get the main principles, it's just fun to work with. |
| <h3>Anything else you'd like to say?</h3> |
| <p> |
| Keep up the good work! |
| |
| |
| </p></body></html> |