杰笛桌面应用框架 Desktop Application Framework

对于大多数开发人员来说,做一个小的Swing应用程序很容易。用JFrame和大多数Swing组件都不难。再加上JIDE提供的一些组件,把它们都用在一起也还行。可是,当您的应用程序越来越大时,问题就出现了。您会发现Swing的应用程序无规律可循。比如说,让您做出一个多文档界面,外面根本没有这样的框架可借鉴。从我们多年的经验来看,我们还很少看到小的Swing项目。这也不奇怪。事实上,很多企业在选择用Swing时,都是因为项目很大。感觉上Swing就是要么不做,要是做的话,Swing的项目一定是大项目。不过问题就出在这。大项目,如果没有规律可循,实在有点让人不放心。 我们当然也注意到这个问题,所以才引进了这样一个桌面应用程序框架。

和网页方面的开发不一样,桌面软件开发没有什么优秀的架构。一方面,您们应该听说过JSR 296。它提供一个非常简单的框架。不幸的是这个项目随着Hans Muller这个最初的作者离开Sun之后,基本上处在一个半死不活的状态。另外一方面,我们有Eclipse和NetBeans中两个RCP平台。您要是用过这两个平台,您就会发现它们怎么这么复杂。也不怪它们。它们最初都是Java IDE方面应用程序的底层,经过多年的改动和调整,才形成目前的RCP平台,所以或多或少还有一些拼凑的成分在里面。所以我们还是需要一个平台。它要强大但是灵活,可以支持跨平台应用程序,不像JSR 296。与此同时,它还要易于使用和维护,不像那两个RCP平台。

我们很高兴地推出杰笛桌面应用框架 Desktop Application Framework (简称JDAF)!JDAF 是有史以来第一个跨平台的应用程序平台。为什么这么说呢?难道Swing不是吗?Swing的确可以在各个平台上运行,可是区别就在它仅仅是可以运行,而不能和平台完美结合。只有JDAF才可能让您写一次代码,产生的应用程序,不但是可以运行,还可以符合各个平台的界面设计要求。

JDAF 基于一个强大的“Managed Application”的技术,意思就是应用程序的生命周期都在我们这个平台的管理之下。它还提供了很多现成的功能,让您随时可以用。比如,Model-View-Controller 架构下的data-view的管理。比如,符合各个平台界面设计标准的标准对话框、菜单、工具栏、图标等等。再比如,打印和帮助集成,还有一个产生console类型应用程序的框架。所有这些都让JDAF成为最强大最易用的桌面应用程序开发平台。

主要功能 

"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 界面设计指南)

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

一些重要的类

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

按照OS界面设计指南来制作的界面


菜单

Windows XP Java Linux
(Ubuntu)
Mac OS X


标准对话框

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应用程序向导