JIDE Desktop Application Framework

Making a small frame-based Swing application is fairly straightforward. Most developers are comfortable with classes like JFrame and the normal palette of Swing Components. You may even be familiar with our JIDE family of Swing Components. However, things start to get out of hand quickly when an application gets larger. For example, introducing the concept of multiple documents starts one down a path of requirements such as data management, menu wiring, dialog negotiations, and multiple window management; behavior that is expected by users but has little to do with core application functionality, yet takes a significant amount of time and resources to accomplish. Compound this with the challenges of cross-platform deployment such as OS Guidelines integration and varying Java VM versions and implementations, and you suddenly have a non-trivial venture. Often, underestimating the cost of providing this functionality can cause release delays or compromises in quality and usability.

Unlike web development, there have been precious few architectures available for desktop developers who wish to create robust cross-platform desktop applications. On one side is JSR 296, still in development, setting out to address the nominal needs of a Java application. On the other side is the developing trend to use large RCP platforms like Eclipse and NetBeans as generic application frameworks. But these involve a steep learning curves due to their origins as complex tools platforms, and the likelihood of inheriting infrastructure that may either be overkill or ill-suited often out-weighs the benefit of using their architectures for general application development. We still need a solution that is powerful and flexible enough to meet the challenge of cross-platform development, yet is easy to use and produces maintainable and quality applications.

So we present the JIDE Desktop Application Framework (JDAF)! JDAF is a ground-breaking platform for developing truly cross-platform desktop applications in Java. Decades of application development experience, extensive R&D into developing trends, and OS Guidelines studies have been engineered into a modern solution that will not only save significant development time and resources, but will bring order, quality and an unprecedented level of OS integration to your desktop projects.

JDAF is based on a powerful "Managed Application" technology which manages the entire application lifecycle, ensuring that you need only focus on application-specific features. JDAF provides out-of-the-box functionality such as a Model-View-Controller architecture for data/view management, unique resource bundle features, robust file handling, and 30+ application-related Actions handling single or multiple documents, editing, and window management. Additionally, with a managed UI your users will experience a native-feeling and intuative application because of our OS Guidelines-driven UI implementing standard dialogs, menus, icons and toolbars. Top it all off with printing and help integration features, and even a console application API, and you have the most powerful yet easy to use desktop application platform available.

General

"Managed Desktop Application" - facilitates the entire application lifecycle
OS Guidelines-driven Application UI - Supports Java Cross Platform, Linux/Gnome, Mac OS X, Windows XP
Model-View-Controller Architecture - data and view management
GUI and Console Application Support - or extend to make your own application types
Integration with JIDE Docking Framework, Action Framework, and other components
Robust File-Handling - unprecedented file-based application support
Polymorphic Resource Binding - bind resource bundles to objects automatically
ObjectFormat - powerful MessageFormat replacement makes localization easier
Command Line Parsing - capture, parse, convert and type check command line arguments
Environment Variables - capture and access environment variables, single 1.4.2+ solution
FileFormat API marshals data to/from application - default support for common formats
Map file formats to data views
Robust implementation of platform-dependant, application-specific file system checks
20+ file-related OS-specific standard dialogs such as save alerts and file replace
Recent Documents menu with native path formatting
Printing Integration - compatible integration of the Java Printing API
Help Integration - snap-in integration of your existing help system
Open files from the command line
Comprehensive JavaDoc and Developer Guide, including migration guide
Optional JSR-296 Compatibility API
JDAF Wizard - code generation wizard gets you going quickly

Desktop Application UI (OS Guidelines-Driven)

Standard Windows - automatic windowing harness manages UI, emulates native document windowing behavior such as titling semantics, dirty status, and dialog interaction
Supports SDI, MDI, TDI, Split, Docking, and mixed windowing styles
Standard Icons - platform icons for Actions, including large icon support
Standard Menus - Fully functional implementations of File, Edit, Window, and Help menus
Standard Toolbars - Fully functional implementations of standard toolbars
Standard Dialogs - Organizes dialogs and provides highest-fidelity and integration features
Unique OS behavior such as automatic Mac OS X system integration, Windows XP MDI and arrange commands, Linux document age in dialogs, and much more...

Classes Sampler

DesktopApplication - root class serves as the controller and center of your application
GUIApplication - OS Guidelines-driven GUI application with managed UI
FileBasedApplication - direct support for document-centric applications
ConsoleApplication - direct support for console applications (Yes, and MVC console application!)
ApplicationLifecycleListener - listen to application lifecyle events
DataModel/DataModelFactory/DataModelListener - create and manage datspan and datspan lifecycle
DataView/DataViewFactory/DataViewListener - create and manage views and view lifecycle
ApplicationFeature - create reusable, cross-cutting application features
ApplicationAction - Create application-related Actions. Over 30 standard Actions installed and pre-wired
MenubarCustomizer - Modify the standard menus and create your application-specific menus
ToolBarCustomizer - Modify the standard toolbar and create your application-specific toolbars
DialogRequest/DialogResponse/DialogListener - Request/response model for dialogs that facilitate native fidelity, dialog caching, and lifecycle
Resources - read and convert resource values, bind resources to objects

Screenshots of OS Guideline-driven Application UI


Menu

Windows XP Java Linux
(Ubuntu)
Mac OS X


Standard Dialogs (example)

Windows XP Java Linux
(Ubuntu)
Mac OS X


 



 


 

Single Document Interface (SDI)


 

Windows XP Java Linux
(Ubuntu)
Mac OS X

Without Dock


With Dock 


Without Dock


With Dock   


Without Dock


With Dock 


Without Dock


With Dock  

 

Tabbed Document Interface (TDI)

Windows XP Java Linux
(Ubuntu)
Mac OS X

Without Dock


With Dock
 


Without Dock


With Dock    


Without Dock


With Dock    


Without Dock


With Dock   

Multiple Document Interface (MDI)


Without Dock


With Dock
 

     
       

JDAF Application Wizard