| 
        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 
     |