Overview of JCNIX packages

no.rwr.x
A Java interface to Xlib. This is where development started. This is where all the all the Xlib native code is located. As with X, this package gives access to mechanism, but does not dictate policy. This package has no significant outward dependencies.
no.rwr.xutil
Contains various support classes that make it easier to implement X clients using the no.rwr.x package. Development on b this package has mostly been abandoned, in favor of making a proper AWT toolkit based on the no.rwr.x package. However, this package contains a lot of useful code for creating new toolkits that are not AWT specific. All code in this package is pure Java, and only build on top of the classes in no.rwr.x.
java.awt.image
Cleanroom implementations of a significant part of the Java2D / JDK1.3 API. The most significant part of this package is the data buffers, sample model and color model classes that can be used to gain access to memory regions containing image data in any imaginable image format. All code in this package is pure Java, but with the help of either no.rwr.xutil or no.rwr.awt.x, it can be used to access XImage data directly, safely, and efficiently through Java.
java.awt.color
Cleanroom implementations of colorspace API needed by java.awt.image. Currently consists of stubs that make the default sRGB colorspace work properly. All code in this package is pure Java.
no.rwr.data
Utility classes that can be used to manipulate the data buffers defined in java.awt.image. Is used by the implementation of some of the classes in java.awt.image to make the code cleaner. All code in this package is pure Java.
no.rwr.image
Package that contains routines to convert between color formats defined in java.awt.image. Contains APIs that makes it possible given two image formats, to find the best optimized renderer to convert image data from the one format to the other. All code in this package is pure Java. The no.rwr.image package can now offload work to dedicated libraries such as no.rwr.image.hermes, or falls back on pure Java implementations that use the conversion code contained in java.awt.image.
no.rwr.util
Misc. general purpose classes.
no.rwr.image.hermes
Package that contains native code that interfaces the Hermes library. This is a specialized (LGPL, portable) library for doing image data conversion (and little else), that will employ things such as optimized MMX assembler, if available, to do the most efficient conversion possible. The no.rwr.image.hermes package conforms to a pluggable renderer interface, that makes the Hermes support optional, and will allow other rendering libraries to be implemented.
no.rwr.image.codec.libjpeg
Package that contains native code that interfaces the IJG JPEG library to allow JPEG images to be loaded into the image buffers defined by java.awt.image. The idea is that this package should be pluggable, but this has not been done yet.
java.awt
Clean room implementation of parts of the Java AWT. This implementation targets the JDK 1.3 API, and it thus significantly different than other available clean room implementations. The implementation leverages of the implementations in java.awt.image, and provides preliminary support for the GraphicsDecive abstraction. All code in this package is pure Java. The package does not depend upon no.rwr.awt, but in combination, it provides a working AWT implementation that runs on platforms with the X Window System.
no.rwr.awt.x
An AWT toolkit for the X Window System. This is a specific implementation of java.awt.Toolkit and the component peer classes. This implementation uses the classes from no.rwr.x to create an AWT toolkit that works under the X Window System. This implementation targets the 1.3 AWT API, and abstractions such as GraphicsDevice are mapped into X11 screen/visual combination. All code in this package is pure Java. The code depends on some code from the no.rwr.awt package to implement general AWT policies that are hidden behind the scenes of the AWT API.
no.rwr.awt
Package that contains general purpose AWT support classes. These classes are not toolkit specific, but can be used by any toolkit implementation to implement some of the mechanisms that takes place behind the scenes of the AWT API.
javax.swing, javax.swing.border, javax.swing.plaf, javax.swing.event
The beginnings of a clean room implementation of the Swing API. Since X11 does not have an inherent widget set, all widgets used by the X toolkit are implemented in pure Java. Swing consists of an API to pure Java components. The idea is to implement portions of Swing, and use Swing components as heavyweight peers in the X toolkit. Eg. an java.awt.Button has a button peer that is implmented using javax.JButton.
no.rwr.plaf
The beginnings of a specific Pluggable Look and Feel for Swing. The current plan is to create a look and feel similar to GTK. In a long term perspective, it would be nice to abandon this package and make SkinLF (GPL, GTK and KDE Theme Support) from L2F Productions work with the clean room implementation of Swing.