Superficial is a fresh approach to design and coding of GUI applications that bridges the gap between general concepts such as Model-View-Controller (MVC) and widget toolkits such as Java Swing,

Superficial's novel conceptual approach offers practical resolutions to key issues in construction and management of GUI applications, covering much of the same ground as the now-inactive JSR 295 and JSR 296.

Superficial provides a powerful solution for data binding and application construction. Applications can be developed using Superficial with such features 'out of the box' as

  • concise, semi-declarative definition of widget layouts
  • advanced data binding, transparent to client code
  • multiple viewers on the same content
  • multiple content open at the same time (MDI interface)
  • data transfer (cut and paste, drag and drop) between viewers
  • multiple content types in the same application
  • custom painting and manipulation in viewers

The spike application (WebStart requiring Java plug-in) demonstrates the full range of features offered by Superficial, while a tutorial provides basic coding examples.

The Facets implementation of Superficial in Java includes a binding to the Swing toolkit, and provides for binding to custom Swing components.

Exploring Superficial

To explore the potential of Superficial for your GUI development projects, you can

  • get an overview of the core Superficial concepts
  • take the coding tutorial
  • explore the Java API of the Facets implementation of Superficial
  • download the latest Facets distribution
  • download the white paper for a detailed account of how Superficial works

Superficial in use

Real-world applications coded with Facets include the following:

Simple utility that can be extended to produce more complex XML-based applications.
Wraps the Apache PDFBox library in a rich GUI including custom content viewers.

© 2011 David M Wright