|[ANN] Novocode Application Framework 0.2 released [message #448009]
||Thu, 23 December 2004 18:32
| Stefan Zeiger
Registered: July 2009
I'd like to announce release 0.2 of Novocode Application Framework,
available from http://www.novocode.com/swt/.
Novocode Application Framework is a layer on top of SWT and JFace which
adds MVC functionality and an XML-based UI description language to SWT.
NAF does not only allow you to describe SWT component hierarchies and
layouts in XML instead of Java code, you can also link the components to
models and describe many properties of Controls and Layouts with a
simpler and more powerful syntax.
I started working on this project in my spare time in November 2003.
This is the second release (after 0.1 on 2004-09-19) with some major
improvements and architectural changes:
- Integration of MVC models and persistence.
- Requires Java 5.0. NAF makes heavy use of Generics, Annotations and
Enumerations. The SWT Controls in package
com.novocode.naf.swt.custom have not been modified for Java 5.0 and
should still work down to Java 1.2.
- Build environment is now Eclipse 3.1 (I20041216-1600 or newer; Older
milestone and integration builds will not work!) because Java 5.0
support is required.
- Widget attributes in XML descriptors are not parsed by the widget
classes anymore. Instead the ResourceManager uses Reflection to set
widget properties which are marked with an Annotation.
- Resources are referenced via URLs instead of the URL-like file +
fragment paths used in NAF 0.1.
- The ResourceManager supports processing instructions for XSLT, so it
can now load XML files which can be transformed on the fly into a
NAF resource file by a suitable stylesheet. This XSLT facility can
also be used as a macro / template processor for NAF. See
TestExample (with test.xsl).
- Layout creators are now NGComponents.
- The ability to create ToolItems and MenuItems has been moved from
NGWidget to separate interfaces which declare the required factory
methods. The creation of ToolItems from Controls is now implemented
- Creating a default model (via model/@create attribute) is now the
default. Setting create="no" is required if no model should be
- NGWidget classes are now resolved by an import mechanism which can
import single classes or packages (just like in Java) instead of
using a static lookup table in a properties file. The default
imports for the GUI classes are contained in the resource file
"default-imports.naf" in package com.novocode.naf.gui.
- Experimental XPath support using the Jaxen XPath interpreter
(http://jaxen.werken.com). XPath expressions can be used to navigate
in NGComponent trees. You can try this with the new XPathExample.
- New concise syntax for simple model bindings. See XPathExample and
- New concise syntax for FormData. See SplashExample, XPathExample and
BrowserExample. This syntax can also be used directly in SWT
applications with com.novocode.naf.gui.layout.FormDataCreator.
- NAF is now licensed under the EPL instead of CPL (with some
exceptions; see ReadMe.txt in the NAF archive for detailed licensing
- The NAF Eclipse Project now depends directly on the required Eclipse
plugins. If these are imported as binary projects into the same
folder as NAF (usually the workspace), the supplied .launch files
will also find the platform-specific SWT libraries without further
- NGTable is now using the JFace TableViewer instead of a proprietary
table model based on a raw SWT Table. NGTableTree has been added as
a wrapper for JFace's TableTreeViewer.
- Basic Browser support. See NGBrowser and BrowserExample.
Many implementation details and some conceptual work are still
unfinished, especially in the following areas:
- Better support for JFace Viewers
- Dynamic widget creation (only implemented for menu items at the
- XML serialization of deserialized UI descriptions
- More documentation
- Better integration of UI resource management with JFace
- Support for the Eclipse Forms API
I am making this release available in the hope that other developers
will be interested in this project and may want to join me in
implementing the missing features. Of course, you're also welcome to use
the NAF classes for your own projects.
PS: FollowUp-To set.
Stefan Zeiger http://www.szeiger.de http://www.novocode.com
My SWT controls: http://www.novocode.com/swt
Powered by FUDForum
. Page generated in 0.02037 seconds