Agricultural Management on the NetBeans Platform
Ram Vijapurapu (@rvijapurapu) lives in Auckland, New Zealand, and is co-founder & technical director of FieldLinx. The majority of his work relates to software design & development.
Below follows an interview about FieldLinx and about its usage of the NetBeans Platform.
Hi Ram. Please tell us a bit about FieldLinx?
Founded in 2004, FieldLinx is a creative software development company with specialist focus on building end-to-end mobile & web solutions. Our solutions cater to diverse industries.
Over the years, we have developed many clever mobile & web software solutions which brought about huge cost savings and productivity gains for companies who use our solutions. We also provide consultancy services for organisations who intend to bring in productivity within their organisation.
What's the FarmLinx Software Suite about?
FarmLinx is a software solution which helps Agri-Consultants to better manage their data-collection and collate the collected information for further analysis. The mobile version, which runs on a PDA (Palm & WinMo), works as data-collection mechanism.
The desktop version runs the analysis and data management:
Finally, there is a facility to output the farm report as an OpenOffice document.
Here's the workflow:
FarmLinx was initially targeted at Agri-Consultants, while these days we are able to provide solutions directly to the farmer for better management of their farms, via http://www.farmlinx.com.
Why does the desktop version run on the NetBeans Platform?
The version 1 of FarmLinx was developed using plain Swing. As and when we needed to add new features, we ended up with a non-modular monolithic application which was becoming very hard to manage. Hence we set out to build a modular application.
The NetBeans Platform provided us with the opportunity to build a modular application from day one & to integrate it with our existing application, without needing a major re-write.
Also, as our business was progressing further we wanted to integrate with other third-party solutions. The NetBeans module system came in very handy because we didn't need to build our own plugin framework since it comes out of the box with the NetBeans Platform. That simplified our work significantly. The NetBeans Platform is fairly standardised, hence it took us very little effort to convey the required information to third parties.
How did you choose to use the NetBeans Platform?
We had two choices: Eclipse RCP and NetBeans Platform. We chose the NetBeans Platform as we were able to port components of our existing application almost immediately without a major re-write.
Along with that, the NetBeans Platform has a pretty straightforward set of APIs and it was very easy to port to it.
Generally, we didn't want to take up the route of SWT as we programmers were more experienced with Swing.
How was it to develop this application?
FarmLinx is a fairly large sized project and had way too many modules to begin with. The conversion project took about a month, including the mobile software.
The initial plugin trial involved us going through a few iterations, but all in all it was a happy makeover. The plugin framework needed us to make some specific threading changes within our application -- that is probably the biggest challenge we had and at the end of the day it was nothing. :).
There were three programmers involved in the project, me included.
Please say something about the 3rd party libraries used, such as JFreeChart.
- Derby (JavaDB) for the Database
- JFreeChart for the charting
- OpenOffice (UNO / UDK) for Reporting
- Apache POI for file conversions from other applications (we could have used OpenOffice here as well, but POI was simplistic and did the job well)
- Also we used the Swing DnD framework which allows us to grab tables of other websites and paste it directly into the Application / NetBeans Platform
- NetBeans Platform for the desktop application framework
We split the key features into different modules, which saved us a lot of time and effort.
Is it now in production? What do its users think about it?
This solution has been in production since 2005, hence you will see many screenshots are still using NetBeans Platform 5.0.
The solution has been very productive for our clients - it saved them a lot of time and effort. It improved their productivity many fold.
Do you have some tips and tricks for using the NetBeans Platform?
Much technical interest has been shown in our integration with OpenOffice. I should say that is one of the features which we are very proud of.
We used a template-based OpenOffice document and simply used the Java UNO based connection to populate the template. We used the Bookmark feature of OpenOffice Doc to place bookmarks in the document and then simply populated them using the UNO connection. You can find this forum post very helpful in this regard:
The consultants had different requirements for providing Reports for different kinds of customers/seasons and using the OpenOffice based report generator served this purpose very well.
Though we were very tempted to integrate OpenOffice directly inside the NetBeans Platform, as a window via OfficeBean, we had to keep it simple as our customers were accustomed to using OpenOffice as it is, rather than being part of another application. But you can always do this if that suits your requirements.
And what's new about the application and what's coming up in the next releases?
We have not been doing much development on the FarmLinx Desktop Application. We've been focusing mainly on our web based FarmLinx Application which caters to Farmers directly.
That said, we have used NetBeans Platform for many small projects and prototypes. For example, we are at the moment building a prototype of a Fleet Management Desktop Applications, which works in harmony with the Web based FleetLinx framework.
This desktop application is from ground up... built on the NetBeans Platform!
Thanks Ram and keep in touch with your ongoing NetBeans Platform developments!