UFaceKit works on different levels using a layered setup first and fore most UFaceKit needs to have an Eclipse-Databinding for Widget and Model-Technologies it wants to use. Some of them are provided by other projects (SWT-Observable, EMF-Observables) and UFaceKit reuses them. For other technologies it provides the implementation as part of the UFaceKit project.

+

UFaceKits goal is to reduce the development time of datacentric, formbased RichClient- and RichInternet-Applications using native technologies to create the UI on the deployment platform.

+

+

A very important aspect of UFaceKit is its use of the Factory pattern to create instance of widget this allows users to easily provide their own factory and e.g. replace SWT-Table through Nebula-Grid. The use of the Factory-Pattern has another important advantage because it provides you the possibilities to add interceptors informing you about the creation of a widget and directly react upon its creation (e.g. adding an auto-completion feature to text input fields).

+

+

=== SWT vs UFaceKit ===

+

+

SWT is already providing a first class implementation to make Java-Applications behave and look native on the deployment platform so why do we invented one more API to do UI-Development in Java. The main "problem" of SWT is that it is designed to abstract the native drawing and widget API from the developer (hence the name SimpleWidgetToolkit) but when it comes to higher level concepts like binding your domain model to your widgets, providing support for declarative styling and declarative UI construction it misses many features you'd expect to be built in into a modern UI-Toolkit.

+

+

UFaceKit is working at a higher level abstracting higher-level UI-Concepts similar to JFace but goes further in terms of abstraction and features. One of the main problems of JFace is that it is tightly bound to SWT-API it abstracts. This makes it hard to port the high-level JFace-API to new platforms because it assumes an SWT port is available and because is working at such a low-level it is a huge task port SWT to a new platform if possible at all.

+

+

In contrast to this porting UFaceKit to a new platform is much easier because many functions provided by SWT as Java-API are not provided by UFaceKit at the Java-API level but are controlled for example by using Declarative-Styleing.

+

+

=== Overview ===

+

+

UFaceKit works on different levels using a layered setup. First and fore most UFaceKit needs to have an Eclipse-Databinding for Widget and Model-Technologies it wants to use. Some of them are provided by other projects (SWT-Observable, EMF-Observables) and UFaceKit reuses them. For other technologies it provides the implementation as part of the UFaceKit project.

[[Image:UFaceKit_Overview_1.png|500px]]

[[Image:UFaceKit_Overview_1.png|500px]]

Line 22:

Line 36:

* automatic decoration support

* automatic decoration support

* ...

* ...

+

+

==== Releases / Project Plans ====

+

+

A detail plan of features is [http://wiki.eclipse.org/UFaceKit/Features_And_Versions not yet here]

== The Modules ==

== The Modules ==

=== The Core Module ===

=== The Core Module ===

−

The core modules of UFaceKit define the common ToolKit-Independent UFaceKit-API and features like styling and JavaScript expressions. A detailed description of the modules can be found [http://wiki.eclipse.org/UFaceKit/CoreModules here].

+

The core modules of UFaceKit define the common ToolKit-Independent UFaceKit-API and features like styling and JavaScript expressions.

=== The Technology-Specific Module ===

=== The Technology-Specific Module ===

Line 35:

Line 53:

=== Contributing to UFaceKit ===

=== Contributing to UFaceKit ===

+

+

* [http://wiki.eclipse.org/UFaceKit/Development_Setup_In_Eclipse Setting up within Eclipse]

Goals / Project Description

UFaceKits goal is to reduce the development time of datacentric, formbased RichClient- and RichInternet-Applications using native technologies to create the UI on the deployment platform.

A very important aspect of UFaceKit is its use of the Factory pattern to create instance of widget this allows users to easily provide their own factory and e.g. replace SWT-Table through Nebula-Grid. The use of the Factory-Pattern has another important advantage because it provides you the possibilities to add interceptors informing you about the creation of a widget and directly react upon its creation (e.g. adding an auto-completion feature to text input fields).

SWT vs UFaceKit

SWT is already providing a first class implementation to make Java-Applications behave and look native on the deployment platform so why do we invented one more API to do UI-Development in Java. The main "problem" of SWT is that it is designed to abstract the native drawing and widget API from the developer (hence the name SimpleWidgetToolkit) but when it comes to higher level concepts like binding your domain model to your widgets, providing support for declarative styling and declarative UI construction it misses many features you'd expect to be built in into a modern UI-Toolkit.

UFaceKit is working at a higher level abstracting higher-level UI-Concepts similar to JFace but goes further in terms of abstraction and features. One of the main problems of JFace is that it is tightly bound to SWT-API it abstracts. This makes it hard to port the high-level JFace-API to new platforms because it assumes an SWT port is available and because is working at such a low-level it is a huge task port SWT to a new platform if possible at all.

In contrast to this porting UFaceKit to a new platform is much easier because many functions provided by SWT as Java-API are not provided by UFaceKit at the Java-API level but are controlled for example by using Declarative-Styleing.

Overview

UFaceKit works on different levels using a layered setup. First and fore most UFaceKit needs to have an Eclipse-Databinding for Widget and Model-Technologies it wants to use. Some of them are provided by other projects (SWT-Observable, EMF-Observables) and UFaceKit reuses them. For other technologies it provides the implementation as part of the UFaceKit project.

On top of this enabling bits UFaceKit provides higherlevel APIs for easier use