What is CrystalUI

Crystal is a Abstract Graphical User Interface. The goal of this project is experiment in the areas of GUI (concurrent/multithreading), advanced input devices camera based hand detection.

The Crystal API is divided into the public API, which is mainly a collection of interfaces and classes that act as glue code and various implementations of the public API.

There is no public release of the software at this time. It is currently under heavy development. As soon as a working alpha software is available it will be checked into SVN at http://crystalui.dev.java.net which has already been setup.

The goal of Crystal is provide a stunning GUI development kit that is extremely diverse in implementation. The extremes range from using Java's Swing as one implementations and a Java 3d one as another. Crystal will even provide a web based implementation.

The first two implementations to be released will be

Crystal on a Monkey - using jmonkey 3d graphical game engine (see http://jmonkeyengine.org)
Crystal on a Swing - the normal flat 2d java Swing implementation.
Some of the features of crystal.

Extreme animation - everything will be heavily animated. Every component will be animated and will provide sophisticated behaviors
Sound FX - a lot of audible feedback (of course configurable)
Advanced input devices - mouse is a little boring. The ultimate goal is to use a multi-touch device (preferably a screen) that will allow 5 finger touch and manipulation of the GUI.

For example here is the what the base component class looks like:

public class Component<M extends Model> {
	
	private M model;
	private View view;
	
	
	public M model() {
		return this.model;
	}
	
	public View view() {
		return this.view;
	}
}

This is it. The entire definition of the main Component class in Crystal. Compare that to the component found in AWT/Swing. The Swing/AWT counter parts are extremely heavy and loaded with too many properties that are exposed and that really should not be at that level.