jnex Application Framework for Java TM
Nexirius GmbH
Sonnhaldenweg 66
CH-4450 SISSACH
Switzerland
Tel: +41 61 973 01 23
marcel.baumann@nexirius.ch
Architectural Overview
jnex
Application Framework for JavaTM
This document gives a short overview of the classes, which are defined in the Nexirius Application Framework for JavaTM (jnex).
Author:
Marcel Baumann
Version:
3.0
Date:
02.05.02 09:15
File:
U:\data\fw\ArchitecturalOverview.doc
Introduction
This Document describes shortly how jnex works and how you save a lot of programming while loosing no flexibility and code quality. This framework is designed in a way that experienced JavaTM programmers can speed up their application programming time by a factor of 10.
The basic concept allows the complete separation of business objects from the graphical user interface. Business objects can be defined as hierarchical structures and arrays, which are automatically persistent (streamable).
Who Should Read This Document
The typical reader of this document wants to get a short overview of what you can do with jnex and how its components are designed.
Why use jnex?
jnex and Swing™
Swing™ is the part of the Java™ Standard Development Kit. It is a class library which is used to generate interactive visual components like windows, menus, text fields or buttons. It is not easy to cope with all the functionality which is contained in Swing™. And there is always more than one way to achieve a certain result.
This leads to the fact, that the code which is responsible for the GUI is not easy to read it contains a lot of similar sections and it is mixed with the business logic.
jnex relieves the programmer of most GUI programming. The code which is responsible for the layout is 100% separated from the business logic and the look and feel is centralized in the base classes.
jnex and Software Design
jnex changes the process of software design by moving the focus from GUI design towards business object design. The structure and the behavior of the business objects are the first things which can be implemented. The GUI can be generated automatically for the first beta versions.
While the test team is already testing the behavior of the application, the programming team is designing a nice GUI on top of it all.
jnex is not epidemic
Epidemic frameworks lead to the bondage of using the same framework all over. They even force the programming team to change existing code to adapt to the new policies. Not so with jnex. Because jnex can easily live side by side with classic Swing™ components and programming techniques. It is even possible to extend existing applications step by step with jnex components.
The Model View Controller Concept
Goal
The basic idea is to separate the GUI (graphical user interface) code from the BOM (business object model) code. With that strategy the code will be structured in a way that is easier to maintain and understand. Changes in the GUI will not affect the BOM and vice versa.
Basic Idea
In the Nexirius Application Framework every BOM is defined as a hierarchical structure of structures and arrays and simple types. Each structure member has a name, a type, a value and a state. Based on this information the framework can create a GUI element, which is an editor or a viewer for the value.
Type (Data Model)
Default Viewer
Default Editor
String
Label
Text field
Integer
Label
Text field
Floating point number
Label
Text field
File Name
Label
File selection dialog
Bitmap file name
Image viewer
File selection dialog
One out of a list
Label
Combo box
Boolean
Label
Check box
Array
Table
Table with New, Edit, Delete
Method
Push button
Structure
Viewer panel
Editor panel
Password
Label (displaying *)
Password editor (displays *)
Events
All the value changes of a data model lead to events, which are sent to the hierarchical parents and to all the attached listeners. The listeners can be the currently attached viewers and editors or other data models, which react upon value changes of a certain elements.
Structure Editors
Structures are containers of simple data models and arrays and other structures (sub-structures). They are usually displayed on panels where every structure member is located at a certain position together with a label or a title frame (form).
The location, size, color and font properties of each member are defined in a layout class. If for a certain class no layout is assigned then the default structure editor creates a default editor for every structure member.
Viewer Factory
The Viewer Factory is the heart of the model view controller system. It has a default mapping which assigns default editors and viewers and layouts to data model classes. The user extends this map for his own data models. It is also very simple to extend the viewers and editors with own classes, which handle the display and/or editing of associated own data models.
The Application Framework
Pull Down Menu and Tool Bar
The application framework is a basis for rapid JavaTM application development. The application class uses a text file to create a pull down menu and a tool bar. The command names, which are used in the text file are compared to commands, which are attached to the main data model. If the command exists then the menu button is linked to that command. If the command is disabled then the menu item and the toolbar button are grayed.
Multi Language Support
All the text elements like labels, button texts, menu texts, combo box values are based on resource key strings, which are translated into the actual language specific string at creation time. The property file contains not only strings for the textual information, it also describes the tooltip text and the associated icon of a button or label or text field.
Persistence
All the data models automatically streamable. Based on that fact a class is predefined which handles all the methods like open, save, save as, need saving stuff. It asks before overriding an existing model and it pops up a file dialog when a file name has not yet been assigned.
Popup Editors
It is very simple (one line of code) to create a popup dialog window of any data model with an ok, cancel and help button. The data model is duplicated and a dialog window with the appropriate editor is generated. If the ok button was pressed then the value of the copy model is automatically assigned to the original model (via streaming).
This program is no longer available for download from our website. Please contact the author of jnex (Nexirius Application Framework For Java) at for any additional information.