Friday Jul 20, 2007

Making Other Components Work in NetBean VisualWeb Pages

A reader asks:

Im using Netbeans 5.5 for a JSF web application that is about to kick off soon… We’re using Apache Myfaces Trinidad, and want to add these components to the Netbeans palette to we can drag and drop the components as we need them. I’m not sure how this is done in a Netbeans Visual Web Application, and reading over you blog we might need a complib for this?

I've tried doing some of this in the past. (For example, see this link.) You are correct that you need to create a component library and package it up as a complib file. Unfortunately, it's not as easy as it should be and requires a major commitment if you are doing it yourself. The last time I worked in this area was with visualweb jMaki components. Project jMaki contains a rich set of components many developed from other independent projects such as Yahoo, Dojo, and Scriptaculous. Sun also has a team of engineers working on Project Woodstock. The Woodstock components are the built-in components that are part of NetBeans visualweb pages.

BTW, the most current version of NetBeans is NetBean 6 M10.

Tuesday Jul 10, 2007

New Blueprints Ajax Component Library Version

Matt has fixed several bugs (104788, 92496, 99144, 108695) in the Blueprints Ajax Component Library and released version 0.1.2. To download the latest, go to this page of complib files. I am told that the posted version 0.1.2 has not yet gone through extensive testing and to remind users that these are sample components and so are not supported at the same priority level as the built-in components.

Friday May 04, 2007

JMaki Support for NetBeans Visual Web Pages

A project I've been spending much of my time on recently is support for NetBeans Visual Web development on the jMaki project. This means creating components, or rather wrapper components, for the jMaki components. The jMaki project is a JavaScript framework that itself wraps other JavaScript components (i.e. widgets) and it also provides some of its own native components. Craig McClanahan started this sub-project of JMaki by creating JSF wrappers for widgets for the Yahoo yui TreeView and Tabbed View components. I added three others: Menu, AutoComplete, and Slider. You can download a prototype complib file.

Why would you want to wrap existing JavaScript components? Creating good JavaScript and Ajax components is hard, so why not leverage the work of others? I mostly worked on Yahoo yui widgets and many of them are well-designed and tested in the real world. After all, they're deployed on yahoo pages and other sites as well. Plus, there is an active user community and the code is open-sourced.

So why use an additional jMaki JavaScript wrapper instead of just creating JSF wrappers for the yui components? Yahoo yui is just one example of a nice JavaScript widget library. The same argument applies to other widget libraries too like Dojo and Scriptaculous. By using jMaki, it is possible to mix widgets from different underlying widget libraries and get them to work together.

Here are some screenshots of an older prototype which I haven't had time to update, but it still gives a good idea of how the widgets look in the IDE.

The next screenshot shows the same (older) prototype web application but deployed on a server and viewed in a browser. In this image, I hovered the mouse over "Goto" which caused a sub-menu of two web sites to slide out. Then, I moved the mouse over the "" sub-menu item, but the mouse does not show in the screenshot. Activating the item will go to that URL. This behavior was specified at design-time in the IDE.

So what did I learn from this work? Visual web component development is possible but it isn't the simplest task. Re-using an existing JavaScript widget does save a significant chunk of work, but there is still additional work with wrapping the widget with JSF and possibly jMaki, along with the accompanying debugging work. Making the components product quality would require a commitment of engineering resources -- though, less than if you were to also have to create the JavaScript widgets themselves from scratch.

If you're interested in learning more about the jMaki project and tools support and you will be in the neighborhood of San Francisco around the week of Monday, May 7, 2007 (ISO 2007-05-07), some of the key players will be speaking at JavaOne and CommunityOne. Even if you can't make it to JavaOne because of the cost, this year there is a free CommunityOne event that you can register for. For example, I did a search for Craig McClanahan and came up with this list of talks. You can also search for Greg Murray for jMaki talks and Ludo Champenois for other tools related talks.

Sample complib Files for NetBeans Visual Web Development

One feature of the original Creator IDE that has been carried over and improved into the current NetBeans 6 Visual Web IDE are complib files. Complib files provide web app developers access to third-party components that are not pre-packaged with the IDE itself. I've created a complib files wiki page with links to some complib files that I know about.




« July 2016