The Java desktop team at Sun has not been very active in the blogosphere as of late, providing only a few hints of what will be added to the 6.0 update N. The biggest pieces available so far in the (not so) weekly drops were the Nimbus look-and-feel and Direct3D-accelerated pipeline for Windows. Not much else has been officially confirmed, with hints being dropped on media support and importing artwork from Adobe tools.

Sun has put a significant amount of effort into open-sourcing the JDK (OpenJDK project) and proclaiming that anybody can chip in and contribute to the project. Sadly, the current state of affairs is not quite so close to what the marketing / evangelizing would lead you to believe. One of the biggest obstacles for the community is the planning / scoping process for both 6.0 update N (which is not part of OpenJDK if i understand correctly) and 7.0. Sure, one can always pick the low-hanging fruit from the bug parade, but what about people who want to work on new features (in JDK in general and in desktop in particular)? Why would anyone want to start working on adding a new feature in his private Mercurial forest (or whatever it’s called) when he can’t be sure that the same feature is not being worked on by the core team?

This brings me to pretty much the only “peephole” into what is going on during the development cycle – the much-maligned bug parade. Thanks to the comments on Ben’s blog entry, i’ve found two quite interesting entries:

6656651 – The Java 2D LCD glyph rasterisation is not the same as that of the customer Cleartype rasteriser. Some of the resulting differences are observable on Vista and XP in applications which utilise the Windows L&F. [Evaluation] This can be fixed by asking GDI to perform the rasterisation of glyphs, then caching these glyphs in the same way as now. This avoids disruption to the various 2D rendering pipelines, particularly its hardware acceleration architecture. This has been verified with software and D3D and OpenGL pipelines, and with SwingSet and Font2DTest. […]

6655001 -When window translucency is enabled for windows with accelerated surfaces the tranlucency doesn’t work well on Windows systems prior to Windows Vista: there are artifacts when a window is dragged away, and it doesn’t appear transparent. Shaped windows work fine. […]

Am i dreaming? Is the first one talking about native font rasterization? Is the second one talking about shaped and translucent top-level windows? Now if only 6633275 hasn’t been marked as private (transparency, transparency, transparency)…

Here are some Swing links that you might have missed during this week:

  • Alexander Potochkin continues his work on the advanced overlay functionality. His latest entry describes a solution for disabling Swing containers, including blocking mouse events, focus transitions and keyboard actions. While the proposed solution uses a clever trick (calling JComponent.print() instead of JComponent.paint() to address the double-buffer quirks on some containers), you’ll find some interesting discussion in the comments section. Some applications will result in incorrect painting on components that provide custom implementation of print() and the specific print methods like printComponent().
  • Ben Galbraith kicks off an interesting discussion on the quality of AWT font rasterizer. I don’t agree with his recommendation of choosing the UI font based on the rendering quality (especially since the quality is very subjective). If anything, the font family, size, style and rasterization is what makes Swing applications stand apart (and not in a good way) from the native applications, even more than colors and skins do. This is why the native text rasterizer is so important, especially coupled with platform-specific font policy lookup.
  • Jeff Friesen writes an overview of the Balloons Tip project at java.net.
  • Patrick Gotthardt announces the first beta drop of version 1.1 of Pagosoft look-and-feel.
  • Vincent Cobra announces his new project that aims to provide a file chooser component based on the Apache Commons VFS library.

The release candidate for version 4.2 of Substance look-and-feel (code-named Memphis) is available. The list of new features includes:

Target date for release is February 4. Only defects will be fixed until this date.

In addition to the core release candidate, the following Substance plugins and modules have been updated as well:

Here are some Swing links that you might have missed during this week:

  • Dusan Pavlika writes about a Master’s thesis by Jan Taus on skinning Swing components. The PDF file of the thesis provides a very detailed overview of how look-and-feels work – this is definitely a good introduction for the aspiring LAF writers.
  • Christopher Deckers announces release 0.92 of the native components for Swing (web browser, media player, flash viewer). This release features improved Flash player and includes support for Linux platforms.
  • Simon Morris shares his views on making Swing the best platform for the desktop development in the next few years. It brings together quite a few interesting ideas, including my number one wish for 2008 (full cross-platform video support) and echoing my lament on the amount of branding that Sun puts in the Java platform. His final vision of Java embedding native controls and native controls embedding Java components invokes the work that Christopher does on his DJ project (from the previous bullet).
  • Chet Haase shares more demoes from the Scene Graph project. This entry shows an iPhone-like interface (don’t you just love blurry icons with pixelated outlines? :) ), and this entry shows a few very basic demo applications. Hopefully, by the time the project is released, the demoes will match the level of sophistication found on professional Flash websites.
  • Andres Almiray writes a complete step-by-step introduction tutorial to the GraphicsBuilder. While you wouldn’t find anything that can’t be done in pure Java2D, the compactness and readability of the Groovy code is very impressive. Groovy-based look-and-feel anyone?
  • Dalton Filho writes a detailed tutorial for Swing developers that wish to learn the wxWidgets UI toolkit. This might be a nice addition to the UFacekit project that was mentioned last week.
  • Eric Burke posts a call to action on providing a full-fledged Java counterpart of Excel spreadsheet component. Along the way, he argues that the JTable is not a good fit as a base class for such a component, and he has quite a few good points. I’m quite skeptic that somebody would be able not only to start such a project, but also to follow through on all the complexities and functionality that is provided by the latest Excel :(
  • Tim Dalton updates on the bridge between Swing and Scala, posting information on the Google Code-hosted code repository for his SQUIB project.
  • Two new project releases using the JIDE component suite. Designer Vista is a UI design tool that allows quick UI prototyping in a Visio-like interface. MyMoney is a financial software tool for working with online banking services.
  • The Synthetica look-and-feel is used in the new release of MyUniPortal project. See the screenshots here.