Wednesday February 10, 2010
Chemical Dictionary Software on the NetBeans Platform
And yet another new NetBeans Platform application is a distribution mechanism on top of the NetBeans Platform for delivering chemical dictionaries. The Chemical Dictionaries are a well established source of information about molecules, including chemical, biological, physical, clinical and literature data. Informatics Matters has created an application for distributing these dictionaries on CDROM or DVD.
Two screenshots (click to enlarge them):
Another NetBeans Platform application by the same developers is Instant JChem, a desktop application for scientists to manage and work with chemical structures and data, using local and shared databases.
Feb 10 2010, 02:27:56 AM PST Permalink
Commercial Data Mining Software on the NetBeans Platform
Yet another NetBeans Platform application comes from South Africa... the Maltego client, a "frontend used to graphically allow you to look at various inter-relationships between data". Maltego itself is an open source intelligence and forensics application. It is an application for data mining and information gathering, as well as the representation of this information in an easy to understand format. Coupled with its graphing libraries, Maltego allows you to identify key relationships between information and identify previously unknown relationships between them.
Screenshots from the site are listed below, together with their captions from the site.
- Easily identify relationships and links between nodes:
- Identify relationships with n degrees of separation:
- Maltego allows you to quickly enumerate various entities such as domains and DNS names.
- Enumerate social networks and relationships within these networks:
- Use the various layout options to identify nodes based on their importance:
- Quickly scan large graphs with the zoom tool:
All the above info is from the Maltego site, where you can also get a limited edition of the application for free, in the form of the Maltego Community Edition. You'll then also clearly see that the application is making use of the NetBeans Platform as its basis:
Take a look at the user guide for all the other powerful features!
Feb 09 2010, 01:28:48 AM PST Permalink
Inventory Management Software on the NetBeans Platform
Recently I mentioned the E-Mail Management System that is part of a customer service suite provided by Artificial Solutions in Stockholm Sweden:
However, it turns out that that same organization also has inventory management software on the NetBeans Platform. Their internal Time Reporting, Project Management and Resource Allocation system is based on the NetBeans Platform, while they've worked on quite a few different prototypes and mock-ups, using the NetBeans Platform as a natural base, using a wide array of the different APIs provided.
And the NetBeans Platform was also chosen for the UI for their internal computer hardware, server and virtual machine inventory system:
All three of the above applications are extremely data-intensive, which is a typical reason for wanting to use the NetBeans Platform, since it provides so much UI (especially complex Swing components that aren't found in standard Swing) for managing large sets of data out of the box.
In other news. Read an interview, published today, with the developers behind these applications here on NetBeans Zone!
Feb 08 2010, 01:15:24 AM PST Permalink
Airport & Passenger Management on the NetBeans Platform
In case you missed it, there's a new interview/article on NetBeans Zone entitled "Airport Operation Management on Oracle and the NetBeans Platform".
You'll find out about two NetBeans Platform applications created by AirIT in Orlando, FL, for managing airports and passengers. AirIT's solutions are operational at many airports around the world including Detroit, Minneapolis, Memphis, Philadelphia, Miami, Puerto Rico's, Luis Munoz Marin International Airport, Frankfurt, Berlin, and Düsseldorf International Airports in Germany.
Why is the NetBeans Platform being used? "When we began thinking about evolving our rich client framework, we wanted a proven foundation to base it on. The NetBeans Platform provides us with a module-based system that includes many conveniences that we now take for granted: full Swing integration, allowing us to reuse existing UI components; a robust windowing framework, modes and undocking windows enhance user productivity; loose coupling between modules, allows for the recombination of modules to build new suites of products to meet the needs of a specific customer; and the ease of use, the underlying APIs are easy to pick up and use even for a developer new to the platform. The NetBeans Platform has been integral in our efforts to integrate our products into a comprehensive enterprise suite."
The first of the two applications is Flight Information System, used by airport personnel to plan for and manage flights of all types, airport usage (such as concourses, terminals, gates, ticket counters), and flight schedules, among other information:
The second is Local Departure Control System, which is a passenger processing solution that allows airline operations without proprietary departure control systems to deliver first-rate passenger and baggage handling by alleviating the need to manually process passengers and baggage:
Next week more recently discovered NetBeans Platform applications will be highlighted here and on netbeans.dzone.com. If you have applications on the NetBeans Platform that the world should know about, please say so!
Feb 06 2010, 02:45:06 AM PST Permalink
Swedish Ministry of Defence on the NetBeans Platform
The Swedish Defence Research Agency is a Swedish government agency for defence research that reports to the Ministry of Defence. In this document (or here in Swedish) you can read about its MOSART Research Testbed, which is a framework for integration, testing, visualization, and evaluation of research results relating to surveillance data. The primary goal of MOSART is to simplify the integration of research results and other advanced functionality into larger simulations and demonstrators.
One part of MOSART is an application called NetScene. It is a tool for creating, editing, and executing scenarios in the testbed and is especially developed with distributed simulation in mind. Its main features are that it uses an XML based scenario format, that it has a GUI for adding, editing, and removing entities and paths, and that it connects to other parts of the MOSART testbed, such as HLA (High Level Architecture), which relates to real-time processing.
Here's a screenshot to give an impression of what NetScene is, i.e., an application created atop the NetBeans Platform:
These developments and the documents referred to above were created in co-operation with the Swedish Armed Forces in 2005 and 2006.
Feb 05 2010, 12:06:16 AM PST Permalink
French Ministry of Defence on the NetBeans Platform
"ASTRAD, which stands for "architecture and simulation tool for radar analysis and design", is a powerful software platform fitted to radar techniques. It provides users with all the functions needed to model, simulate and design radar systems. Launched as a joint project between French Ministry of Defence and the radar industry community, the ASTRAD software has the ambition to stand out as a reference platform for engineering and scientific applications."
Don't take my word for it, read the article (assuming you want to pay $36 too) published May 2008, here:
ASTRAD: Simulation platform, a breakthrough for future electromagnetic systems development
Here are some small and grainy screenshots from within the article above:
When you read the article you'll find the following paragraph: "ASTRAD includes open-source components to avoid license pending issues and to maintain control over the software. The IDE is based on the NetBeans Platform, a Sun Microsystems open-source reusable framework for assisting in the development of other desktop applications. ASTRAD is a set of NetBeans modules providing many additional features. The resulting architecture inherits from NetBeans modularity and is easily tailored to different deployments."
And guess how the article ends? "Launched as a joint project between French Ministry of Defence and radar industry community, the ASTRAD software has the ambition to stand out as a reference platform for engineering and scientific applications. A common objective is also to promote ASTRAD as the European solution and propose built-in solution for the design and assessment of complex systems."
That reminds me a bit of what Saab Systems Grintek is doing with the NetBeans Platform for the South African National Defence Force: http://kitt.co.za. Hmmm. Along the way there are now so many defence related NetBeans Platform screenshots on NetBeans Platform Showcase that the time has come to create two separate categories from the "Aerospace and Defence" section.
In other news. Tomorrow's blog entry will be entitled "Swedish Ministry of Defence on the NetBeans Platform".
Feb 04 2010, 12:05:37 AM PST Permalink
Fingerprint Reader on the NetBeans Platform
I've come across a whole bunch of new (to me, anyway) NetBeans Platform applications in the past few weeks. Mostly commercial applications. While working on interviews with the related developers, I'm also gathering their cool screenshots for inclusion in our evergrowing NetBeans Platform Showcase.
Here's one of them, from Fermax Electronica SAE, a company specializing in audio and video door entry systems. The application is designed to manage an Access Control installation based on thermal fingerprint readers, manufactured by Fermax:
Pretty cool stuff and I'm interested in finding out more about thermal fingerprint readers and how that works with Java, aren't you? That's what the interview will spend some time on, so watch this space (and NetBeans Zone) for that interview in the coming days! (Update: here it is.)
In other news. Read Building an OSGi declarative service with Maven using NetBeans, by Kayode Odeyemi, published this week in his blog.
Feb 03 2010, 07:16:17 AM PST Permalink
MyDoggy... Integrated into the NetBeans Platform!!!
MyDoggy is a really cool Java docking framework... and not only because of its name! Based on the recent blog entry about creating your own window system... I integrated MyDoggy into my own window system implementation... so that your application can look something like this:
Yes, you see two TopComponents, synchronized explorer views, Nodes... and a completely different appearance to what you'd expect from a NetBeans Platform application (yes, it can really look like the above!), simply because I am using the MyDoggy API, within my WindowManager implementation:
protected void initToolWindowManager() {
// Create a new instance of MyDoggyToolWindowManager passing the frame:
MyDoggyToolWindowManager myDoggyToolWindowManager = new MyDoggyToolWindowManager();
// Register the TopComponent providing the bean tree view:
myDoggyToolWindowManager.registerToolWindow("BeanTreeView", // Id
"Bean Tree View", // Title
null, // Icon
new View1TopComponent(), //Component
ToolWindowAnchor.LEFT); // Anchor
// Register the TopComponent providing the icon view:
myDoggyToolWindowManager.registerToolWindow("IconView", // Id
"Icon View", // Title
null, // Icon
new View2TopComponent(), //Component
ToolWindowAnchor.TOP); // Anchor
// Make all the windows available:
for (ToolWindow window : myDoggyToolWindowManager.getToolWindows()) {
window.setAvailable(true);
}
// Add myDoggyToolWindowManager to the main window (a JFrame).
// MyDoggyToolWindowManager is an extension of a JPanel:
mw.add(myDoggyToolWindowManager, TableLayout.CENTER);
}
Only the following three MyDoggy import statements are needed:
import org.noos.xing.mydoggy.ToolWindow; import org.noos.xing.mydoggy.ToolWindowAnchor; import org.noos.xing.mydoggy.plaf.MyDoggyToolWindowManager;
Also:
import info.clearthought.layout.TableLayout;
And, then, in the constructor of the WindowManager implementation, right before setting the main window visible, I call the above method. Yes, so the layer.xml registrations are not used at all: in this case we're registering TopComponents within the WindowManager implementation, not ideal, but it's a starting point for further exploration. Wouldn't take much work to read the registrations from the layer.xml file, so that there'd be no hardcoded views within the WindowManager implementation. In other words, all the values for "MyDoggyToolWindowManager.registerToolWindow" would come from the layer.xml file... meaning that TopComponents could be added from external plugins registering their TopComponents in the layer.xml file of the module providing them! And maybe this way it's sufficient already, if you have control over your WindowSystem implementation, i.e., you're creating your own implementation anyway and you're not expecting external contributions via plugins, so then it doesn't matter that your window system isn't extendable and that you're registering your TopComponents right inside of the WindowManager implementation.
Here's another screenshot, this time showing the NetBeans Platform Paint application (one of the demo applications distributed with NetBeans IDE), using the MyDoggy docking framework instead of the default window system provided by the NetBeans Platform:
Modular MyDoggy-based applications... hmmm... sweet. And let the integration of other window systems begin!
Feb 02 2010, 04:32:48 AM PST Permalink
Het Lid van Jan Smit
With the recent developments relating to Oracle's acquisition of Sun, I thought that the tone of my blog had become too serious and technically-focused. Sometimes blog entries should be personal and just plain fun, without any business content to speak of. After all, that's how you find out about the person behind the blog and the individual behind the employee.
So, it's time to turn over a new leaf. Occasionally frivolous content will now be added to this blog, since it has for the past 5 years been so overwhelmingly dry and, dare I say it, boring. Here's the first: "Het Lid van Jan Smit", which is about posters all over the Netherlands advertizing underwear, with Jan Smit (a semi famous Dutch singer) wearing them:
It's a funny song even if you don't understand Dutch. Listening to it is a great way to start your week. And that's why I posted it. Happy Oracle years to you all!
Feb 01 2010, 01:46:23 AM PST Permalink
Create Your Own Window System on the NetBeans Window System
One big reason for using the NetBeans Platform is its out-of-the-box window system. However, maybe you like the concept of a window system, but not how it is implemented in the NetBeans Platform? Not to worry. You can create your own window system on top of the NetBeans Platform's Window System API, which means you'll have a custom window system that still integrates with all of the other NetBeans idioms, via ExplorerManager to explorer views (e.g., BeanTreeView) and Nodes.
Eppleton, the Munich-based NetBeans Platform consultancy, has been learning about this area of the NetBeans Platform recently, for one of its customers. The end result was the integration of the SwingX project's "org.jdesktop.swingx.JXPanel", together with "javax.swing.JLayeredPane", to create the translucent effects of the TopComponents in the screenshot below:
I.e., your TopComponents could be JXPanels, if that's the way you'd prefer them to be. Or something else.
In the image above, there are in fact 3 TopComponents, one of which has this client property in its constructor:
// setting this property informs the Windowmanager that this window is // our Main Window. Not a standard property. putClientProperty(TranslucentWindowManager.MAINWINDOW, Boolean.TRUE);
But how to get started with all of this? There's a "DummyWindowManager" in the NetBeans sources that you can start experimenting with. Let's do so now.
- In your application, remove core-windows.jar, i.e., you do not want the "Core - Windows" module to be installed in your application, since you'll be providing your own window system.
A simple way to remove that JAR is to go to "platform.properties" in your application and use this list of disabled modules (definitely won't work in all cases, since your dependencies will be different depending on what else you're using, but if you're starting from scratch, this will be all you'll need):
disabled.modules=\ org.netbeans.api.visual,\ org.netbeans.core.execution,\ org.netbeans.core.multiview,\ org.netbeans.core.nativeaccess,\ org.netbeans.core.windows,\ org.netbeans.libs.jsr223,\ org.netbeans.modules.applemenu,\ org.netbeans.modules.autoupdate.services,\ org.netbeans.modules.autoupdate.ui,\ org.netbeans.modules.core.kit,\ org.netbeans.modules.favorites,\ org.netbeans.modules.options.keymap,\ org.netbeans.modules.templates,\ org.openide.compat,\ org.openide.execution,\ org.openide.options,\ org.openide.util.enumerationsNote the line in bold below, i.e., that's the line that will result in the "core-windows.jar" to be excluded.
- Now add this class to a module in your application:
Especially note this class-level annotation, which results in your window manager replacing the one provided by the NetBeans Platform:
@ServiceProvider(service = WindowManager.class, supersedes = "org.netbeans.core.windows.WindowManagerImpl")
In other words, when the module has been built, you'll find a META-INF/services registration consisting of these entries:
org.demo.winsys.MyWindowManager #-org.netbeans.core.windows.WindowManagerImpl
Note: Make sure to add the required NetBeans API modules to the application (i.e., Nodes API, Window System API, and Utilities API).
- Somehow you now need to open your TopComponents into your new window system. Normally the opening of the TopComponents would be handled by core-windows.jar, which you have now excluded. So now you need to open them manually, i.e., yourself. For example, in a ModuleInstall class, add this code:
@Override public void restored() { WindowManager.getDefault().invokeWhenUIReady(new Runnable() { public void run() { View1TopComponent.findInstance().open(); View2TopComponent.findInstance().open(); } }); } - When you run the application, you'll see this result:
Now look more closely at MyWindowManager.java and change it to fit your business requirements.
Jan 31 2010, 03:48:34 AM PST Permalink
Microchip on the NetBeans Platform
"The NetBeans Platform, used by developers around the world to develop a wide variety of rich clients, continues to garner the attention of the developer community. Microchip is a leading provider of microcontrollers, analog semiconductors, and development tools for embedded designs. 'Microchip sees great potential for the embedded developer base in the new NetBeans IDE 6.8 release,' said Derek Carlson, vice president, Development Tools, Microchip Technology. 'While other open source IDE frameworks have grown cumbersome and required significant customization for the embedded market over the past 2+ decades, NetBeans 6.8 delivers a fully capable, modern, lightweight and flexible platform for future embedded IDEs.'"
That's a pretty interesting paragraph at the end of the NetBeans IDE 6.8 Release Notes! The company referred to above, Microchip Technology Inc, is "a leading supplier of field-programmable embedded control solutions by manufacturing the popular PIC® microcontrollers; a broad spectrum of innovative analog products; and related non-volatile memory products".
And, as can be seen from the paragraph above, Microchip has been working with the NetBeans Platform as the basis of their own IDE. Hope to be able to show some screenshots of this soon.
Jan 30 2010, 03:15:56 AM PST Permalink
E-Mail Management System on the NetBeans Platform
The next commercial YANPA to look at is CSO E-Mail Management System (EMS) by Artificial Solutions in Stockholm, Sweden: "EMS is a contact center application that helps organizations in optimizing their Customer Service. EMS, an application boosted by natural language based technology, focuses primarily on the management of issues and incoming e-mails."
Here are some screenshots, including the Office LAF applied to the application in the final screenshot below:
An interview with Nicklas Löf (@nicklaslof), from the team that develops the above application, will follow soon!
Jan 29 2010, 06:50:43 AM PST Permalink
Wouldn't it have been cool if Oracle had said...
Wouldn't it have been cool if Oracle had said the following, sometime during all those announcements yesterday:
"The NetBeans Platform is very important to a lot of our customers, who are actually building their products on top of the NetBeans Platform. We want to make that the best platform that we can for doing that for you."
If Oracle had said that, based on the plain fact of the existence of customers (some of them using Oracle, many of them being very large corporations and institutions) on the NetBeans Platform, then a simple logical, rational, direction would have been given, flowing directly from Sun VP Jim Parkinson's comparable statement (here in his blog) end of last year.
So, bummer.
Hey, but wait a minute! That's exactly what Ted Farrell, (Oracle Chief Architect and Vice President, Tools and Middleware), did say yesterday:
Click this link and see/hear it for yourself. (Go to approximately the 11th minute.)
And, note, here I am saying nothing other than what has already been said. By Ted Farrell himself, i.e. this blog entry provides a simple direct quote, unvarnished and unspun, straight from a publicly available statement: "The NetBeans Platform is very important to a lot of our customers, who are actually building their products on top of the NetBeans Platform. We want to make that the best platform that we can for doing that for you."
It's a great day for the NetBeans Platform, the world's only modular Swing application framework. Those who have been hesitating to adopt it because of the uncertain state that Sun has found itself in over the past months, should at least find the above words worth thinking about.
Jan 28 2010, 04:00:25 AM PST Permalink
New! Book! NetBeans! Platform! 6.8!

Jan 27 2010, 01:22:10 AM PST Permalink
Swedish Blood Bank Application on Oracle and the NetBeans Platform
Here's a YANPA from Scandinavia. Over the past two years, Databyrån in Stockholm, Sweden, has been building a blood bank application on top of the NetBeans Platform, replacing a legacy application. The client is web-started from a JBoss server, communicating with the server application via EJB 3.0. Data is persisted in an Oracle database.
Björn Nord, from the development team, tells me: "Our project is built using Maven and we use Jemmy/Jelly for GUI tests. We use the Lookup API, Progress API, Options Dialog and SPI, and the Windows System API."
Looking forward to finding out about more NetBeans Platform applications in Sweden and around the rest of Scandinavia. They need to be added to this long list of applications!
Jan 26 2010, 12:21:08 AM PST Permalink


















