Version History
Update Log:

March 30, 2017 - 2.4.28

Bug Fixes

  • (JDAF) Fixed the save as shows duplicated suffix. See bug report here.

February 3, 2017 - 2.4.27

Bug Fixes

  • (JDAF) Fixed the same file name on different path confused the DocumentPane. See bug report here.

February 7, 2013 - 2.4.26

Bug Fixes

  • (JDAF) Fixed so that the frame position and state are saved when there is no open DataView.

December 13, 2012 - 2.4.25

Bug Fixes

  • (JDAF) Fixed an NPE issue while isAllowsMultipleOpens() returns false. See bug report here.

November 15, 2012 - 2.4.24

Bug Fixes

  • (JDAF) Added Resources#clearBundleCache() to clear the cache for resource bundles. See bug report here.
  • (JDAF) Fixed so that invoking BasicDataModel#dataChanged() could notify the registered property change listeners properly. See bug report here.

October 16, 2012 - 2.4.23

Bug Fixes

  • (JDAF) Added a protection to avoid throwing IllegalArgumentException while instantiating BufferedImage. See bug report here.
  • (JDAF) Fixed so that DockingApplicationFeature#getDataView(DockableFrame) could return the correct DataView instance when there are multiple DockableFrame's.

September 25, 2012 - 2.4.22

Bug Fixes

  • (JDAF) Fix the NPE exception. See bug report here.

September 13, 2012 - 2.4.21

Bug Fixes

  • (JDAF) Fixed memory leak of MenuGroup. See bug report here.

June 19, 2012 - 2.4.20

Bug Fixes

  • (JDAF) Fixed the NPE issue while using CommandLine.set() to set arguments which contains an existing file. See bug report here.
  • (JDAF) Fixed so that the exception could still be thrown out instead of being swallowed silently in DockingApplicationFeature.

May 29, 2012 - 2.4.19

Bug Fixes

  • (JDAF) Added DialogOptions#createCancelButtons() to create cancel buttons only without yes/no or ok button. See bug report here.
  • (JDAF) Fixed so that DATAVIEW_ACTIVATED event will be automatically fired when a new view is just opened. See bug report here.

April 18, 2012 - 2.4.18

Bug Fixes

  • (JDAF) Fixed the FileDialogRequest setFilePath is not used when AWT file dialog is used.

March 27, 2012 - 2.4.17

Bug Fixes

  • (JDAF) Fixed so that closing a SDI window will not exit when there is another SDI window with views. See bug report here.

March 01, 2012 - 2.4.16

Enhancement Requests

  • (JDAF) Added guiOpened event to GUIApplicationLifecycleListener. See enhancement request here.

Bug Fixes

  • (JDAF) Fixed so that StandardDialogRequest's setUseModal(false) will be respected even when the parenting mode is GLOBAL_PARENTING_MODE. See bug report here.

December 06, 2011 - 2.4.15

Bug Fixes

  • (JDAF) Fixed so that setting bounds inside WindowCustomizer could be honored. See bug report here.

November 22, 2011 - 2.4.14

Bug Fixes

  • (JDAF) Fixed so that the ComponentBlock could block/unblock container correctly. See bug report here.
  • (JDAF) Added error print for unexpected exceptions. See bug report here.
  • (JDAF) Do not change the tab shape of DocumentPane to SHAPE_WINDOWS if the L&F is not a Windows L&F. See bug report here.

August 12, 2011 - 2.4.13

Bug Fixes

  • (JDAF) Updated to use OFFICE2007 style on Windows 7 and Vista.

July 21, 2011 - 2.4.12

Bug Fixes

  • (JDAF) Made several methods public for easier customization. See bug report here.

June 30, 2011 - 2.4.11

Bug Fixes

  • (JDAF) Fixed so that setManageLayoutPersistence(false) will respect the customer's layout loading procedure first. See bug report here.

June 9, 2011 - 2.4.10

´íÎóÐÞ¸´

  • (JDAF) Added API so that the customer could add customizer without breaking the existing default layout persistence management.
  • (JDAF) Fixed so that opened data views will not be replaced by another open action if it's not dirty.
  • (JDAF) Fixed the issue that installing EditActionEnabler causes the delete action in JTextComponent being disabled. See bug report here.
  • (JDAF) Fixed the NPE while user throws ApplicationVetoException to prevent a document being closed. See bug report here.

May 13, 2011 - 2.4.9

Bug Fixes

  • (JDAF) Fixed so that DockingApplicationFeature could support multiple views for the same data model in different dock configuration. See bug report here.
  • (JDAF) Fixed the regression that the layout saving and loading mechanism is broken if the default layout does not exist in current computer.
  • (JDAF) Added German translation for JDAF. See bug report here.
  • (JDAF) Correct the version number on JDAF release process. See bug report here.

April 22, 2011 - 2.4.8

Bug Fixes

  • (JDAF) Fixed so that GUIApplication#setNewDataOnRun(false) could still open a window in SDI style. See bug report here.
  • (JDAF) Fixed so that the event could be published immediately if it was triggered inside eventDispatcherThread.
  • (JDAF) Fixed so that Resources always uses ISO-8859-1 as the encoding to read properties file. See bug report here.
  • (JDAF) Fixed the compatibility issue that Resources implementation required ASCII. See bug report here.
  • (JDAF) Fixed the encoding of the resources_de properties files. See bug report here.

April 7, 2011 - 2.4.7

Bug Fixes

  • (JDAF) Fixed the NPE issue while removing existing button from tool bar. See bug report here.

April 4, 2011 - 2.4.6

Enhancement Requests

  • (JDAF) Closing the empty no-dirty view when opening a new view. See enhancement request here.

Bug Fixes

  • (JDAF) Fixed the NPE issue on removing some features dynamically.
  • (JDAF) Fixed the issue that DEFAULT_APPLICATION_STYLE and setNewDataOnRun(false) could not popup the application window. See bug report here.
  • (JDAF) Fixed wrong a dataview is used which cause NPE when closing the app.

March 10, 2011 - 2.4.5

Bug Fixes

  • (JDAF) Fixed so that ApplicationUIManager#setLoadLayout(false) and setManageLayoutPersistence(false) work as expected. See bug report here.
  • (JDAF) Fixed the access control issue while applet starting a jdaf application by adding default value for those properties. See bug report here.
  • (JDAF) Fixed the actionPerformedDetached() typo issue. See bug report here.

February 21, 2011 - 2.4.4

Bug Fixes

  • (JDAF) Fixed so that setting new action map could release the memory for old action. See bug report here.
  • (JDAF) Fixed the issue that DialogButtonsPanel#getDialogButtons() might throw a ClassCastException.

February 7, 2011 - 2.4.3

Enhancement Requests

  • (JDAF) Added loadLayout flag so that the customer could choose loading layout or not. See enhancement request here.
  • (JDAF) Made JDAF be able to save layout to XML format.

Bug Fixes

  • (JDAF) Fixed an NPE issue. See bug report here.
  • (JDAF) Added some Germany translation.

December 30, 2010 - 2.4.2

Bug Fixes

  • (JDAF) Fixed a potential ClassCastException while the focus falls into the JRootPane.

October 25, 2010 - 2.4.1

Bug Fixes

  • (JDAF) Fixed NPE causes window not showing up in X session. See bug report here.

July 2, 2010 - 2.4.0

Bug Fixes

  • (JDAF) Fixed bug in StandardDialogRequestHandler where FRONT_WINDOW_PARENT_MODE was not properly positioning dialog. See bug report here.
  • (JDAF) Fixed issue where JDAF was recording UndoableEdits for text editors embedded in popup editors such as DateComboBox. See bug report here.
  • (JDAF) Fixed GlassPaneBlock where it wasn't executing a block window properly. Added some API to block a window directly for other uses. See bug report here.
  • (JDAF) Fixed NPE in ActivityAction when it is not added to the GUIApplication ActionMap and hence missing a GUIApplication reference. Always add GUIApplicationActions to the GUIApplication ActionMap for proper behavior. See bug report here.
  • (JDAF) Fixed issue in Linux so the AWT file open dialog is not shown when there is more than one filter (because of bug in Linux/AWT). See bug report here.

New Features

  • (JDAF) Added API for custom help-key detection. Implement a HelpKey subclass and override the detect() method. Set the HelpKey using ApplicationMenuBarsUI.setHelpKey(). See enhancement request here.
  • (JDAF) In Activity, INFINITE_STEPS represents a thread that will loop infinitely until you call finish() or cancel(). It was a state defined by totalSteps == Integer.MAX_VALUE. We added Activity.isInfinite() so that totalSteps and stepsCompleted can be manipulated based on application needs. You still set Activity.INFINITE_STEPS in the constructor, but you then can modify the Activity totalSteps and stepsCompleted in a ProgressListener according to the real-time feedback of your application.

API Changes

  • (JDAF) DockingApplicationFeature.getDockableConfigurationByName() has been made public.
  • (JDAF) DockingApplicationFeature.getDockableConfigurationByCriteria() has been made public.
  • (JDAF) DockingApplicationFeature.addDockableMapping(n,n,n...) methods have been depricated. Please use addDockableMapping(DockableConfiguration).
  • (JDAF) FramedApplicationFeature.addFrameMapping(n,n,n...) methods have been depricated. Please use addFrameMapping(FrameConfiguration).
  • (JDAF) FramedApplicationFeature.getFrameConfigurationByName() has been made public.
  • (JDAF) FramedApplicationFeature.getFrameConfigurationByCriteria() has been made public.
  • (JDAF) Removed FramedApplicationFeature.getDockableConfigurationByName().
  • (JDAF) Removed FramedApplicationFeature.getDockableConfigurationByCriteria().

December 7, 2009 - 2.3.0

New Features

  • (JDAF) Added ability to specify GraphicsConfiguration for new windows. Simply call ApplicationWindowsUI.setGraphicsConfiguration() prior to the origination of data that produces a window. See enhancement request here.

October 31, 2009 - 2.2.4

New Features

  • (JDAF) Added ApplicationToolBarsUI methods removeToolBarButton() and getToolBarButton(). Please keep in mind, the pre-run removal of default Actions is the preferred method of removing menu items and toolbar buttons.
  • (JDAF) GUIApplication will not throw a MissingResourceException when using the empty constructor. Instead a console message will alert the developer to add the resources file.
  • (JDAF) Added MessageDialogRequest constructors and static usability methods convenient for resource-based messages.

Bug Fixes

  • (JDAF) FrameApplicatonFeature regression where it was no longer setting the initial divider location of a components preferred size.
  • (JDAF) On some platforms a MissingResourceException was thrown when running a GUIApplication with the empty or no-name constructor. This minor exception is now appropriately caught and reported less dramatically. The exception had no impact on the integrity of the GUIApplication instance in any case.
  • (JDAF) Standard file message composition was erroneously reporting the wrong DataModel when closing a non-targeted DataModel tab in TDI mode.
  • (JDAF) Fixed CCE regression on MDI_APPLICATION_STYLE on Windows.
  • (JDAF) Fixed modal dialog issue on Mac OS X after dismissing a dialog in GLOBAL_PARENTING_MODE.
  • (JDAF) Document titles on Linux KDE where not formatted properly according to guidelines.

August 17, 2009 - 2.2.3

Bug Fixes

  • (JDAF) A regression caused multiple possible anomalies including potentially disappearing DataViews, non-closing windows and strange menubar behavior.
  • (JDAF) Only the focused tab/DataView was being closed when using the close box, no matter which tab was clicked when using TDI. See bug report here.
  • (JDAF) In TDI mode using DocumentPane, the tab title was not properly updating with the DataModel name change. See bug report here.
  • (JDAF) SDIApplicationWindowsUI.setStatusBar() was not setting the status bar in a window when using Docking Framework.

August 4, 2009 - 2.2.2

New Features

  • (JDAF) Added criteria property to BasicDataModelFactory. You can simply define one-off factory mappings as opposed to having to use a HashedDataModelFactory for a single DataModel-criteria mapping.
  • (JDAF) Added SDIApplicationWindowsUI.setStatusBar() to easily set a status bar component. Make this call in a WindowCustomizer..

Bug Fixes

  • (JDAF) Messages not showing in DialogBlock when set in an Activity via the set methods prior to running.
  • (JDAF) FileHandlingFeature would not allow files with same name but different locations to be open at the same time.
  • (JDAF) Windows without primary DataViews where not being considered in the front window detection logic. See bug report here.
  • (JDAF) DialogRequests not called on the event thread where not blocking with the Swing Thread causing the request to return immediately. See bug report here.
  • (JDAF) Custom Application menus without the name property defined where being ignored by JDAF. See bug report here.
  • (JDAF) Fixed NPE in MacOSXApplicationMenuBarsUI if certain Actions are missing. See bug report here.

June 28, 2009 - 2.2.1

New Features

  • (JDAF) Enhancement to DefaultEventContext to bifurcate (fork) event publishing based on new EventSubscriber implementations.
  • (JDAF) Added isInitialized() method in DataViewPane. This can be used in threaded situations when it is important to know that the ui has been constructed.
  • (JDAF) Added INFINITE_STEPS mode to Activity, allowing infinite execution..
  • (JDAF) Added useThreadedOrigination to DesktopApplication. When true DataModels open in a separate thread. This can be useful when newData() or openData() block by keeping the gui responsive.

Bug Fixes

  • (JDAF) ApplicationmenuBarsUI was allowing multiple menus to be added having the same menuId (store in the menus name property.).
  • (JDAF) AutoInstallActionsFeature was not installing actions properly in user defined menus.

June 16, 2009 - 2.2

New Features

  • (JDAF) Added static GUIApplication.run() inversion of control methods. These magically create and run a GUIApplication. There is no faster way to make a robust Java desktop application..
  • (JDAF) JDAF now supports multiple DataViews per DataModel (beta). This is accomplished by installing more than one DataViewFactory that returns a unique DataView for the same DataModel instance. The first view is the primary view, following views are considered auxiliary. A new getDataViews(DataModel) returns all the DataViews for the given model. DataViews may be appended and removed for an existing DataModel using the AppliationUIManager method openDataView() and closeDataView(). This new capability should not effect existing JDAF applications, however if you experience odd behavior, you may call the GUIApplication method setAllowMultipleDataViewsPerModel(false) to revert to the previous functionality. DockingApplicatonFeature and FramedApplicationFeature do not yet support the multiple-views capability, though it may be handled manually with a custom DataViewHandler.
  • (JDAF) Added active state to JDAF supplied DataModelFactories and DataViewFactories to turn off a factories behavior (cause the factory to return null). This may be important particularly when creating auxiliary views outside of the openData() or newData() origination cycles.
  • (JDAF) Added passiveExceptionHandling property to ApplicationFeature. See enhancement request here.
  • (JDAF) Added uninstallOnExit property to ApplicationFeature. GUIApplication will not call uninstall after UI shutdown on any ApplicationFeatures where this property is true. This allows for the possible releasing of resources on shutdown..
  • (JDAF) ApplicationFeature uninstall() is no longer abstract. We provide an implementation that throws an FeatureException to prevent uninstallation by default. Override only if you intend for your feature to be removed during the lifecycle of the application or require the releasing of resources on application end. See enhancement request here.
  • (JDAF) Introduced DialogLoggingFeature. Register your Java Logging API Loggers with this feature and all your logging is redirected to a message dialog.
  • (JDAF) Introduced BasicComponentViewFactory. Similar to BasicDataViewFactory except you supply a JComponent class as opposed to a DataView. The component is automatically wrapped in a DataViewPane. Use a DataViewListener to configure the view.
  • (JDAF) Added getMappingKeys() to HashedDataModelFactory, MappedDataModelFactory, and SemanticNameDataViewFactory to expose the underlying mapping keys.
  • (JDAF) Added SplitApplicationUI.getUserComponentSide() to access the side constant that a component may be installed under. Convenient when uninstalling the component in a DataViewHandler.

Bug Fixes

  • (JDAF) Activity was eating Exceptions thrown from ProgressListeners. These are now sent to the DesktopApplication Logger. See bug report here.
  • (JDAF) Attempted intermittent NPE fix in ProgressFeedback. See bug report here.
  • (JDAF) Fixed DesktopApplication property reference race condition issue in Activity. See bug report here.
  • (JDAF) Fixed NPE in FileDialogRequestHandler when using usability methods without FileFilters.

API Changes

  • (JDAF) ActivityManager now has a constructor that takes the DesktopApplication instance. This is required to guarantee a reference for Activities. Normally this should not cause an issue unless you have provided your own ActivityManager subclass. See enhancement request here.
  • (JDAF) ApplicationUIManager methods installDataView() and uninstallDataView() are now protected due to state issues given the new multi-view capability.

May 15, 2009 - 2.1.13

New Features

  • (JDAF) Added isOriginating() state in DesktopApplication. True when the application is in process of a newData or openData call. See enhancement request here.
  • (JDAF) Added Vsn.getProductVersion() to return JDAF version number. See enhancement request here.

Bug Fixes

  • (JDAF) DesktopApplication was aborting DataModel origination when a previously closed model was dirty. See bug report here.
  • (JDAF) Close button on window not working in state useDockingFramework/non-DockingApplicationFeature/exitOnLastDataView=false/no models. See bug report here.
  • (JDAF) Fixed race condition when accessing GUIApplcation from inside an Action. GUIApplication object would not be accessible in time. See bug report here.
  • (JDAF) Fixed possible NPE in systemPropertyInstance(). See bug report here.
  • (JDAF) Fixed wrong parameter type at subscribeAll/unsubscribeAll methods of EventManager. See bug report here.
  • (JDAF) Fixed the wrong value is used to lookup in the map in subscribeAll method of EventManager.

API Changes

  • (JDAF) PreferencesPane was setting a preferredSize of 475, 400. This was test data and has been removed. The result will cause pack() to be called on your components. If you prefer the same behavior, simply set the preferredSize yourself in the initComponents() method. See enhancement request here.
  • (JDAF) Now preventing DesktopApplication from exiting when originating data. This is a stability concession.
  • (JDAF) Now preventing DesktopApplication.run() from executing more than once since this is undefined and likely hazardous behavior.
  • (JDAF) Refactored/wrapped System.exit() calls to DesktopApplication.systemExit(). This is for future use. We highly discourage depending on this call for aborting application behavior, as the OS can kill the process. (same reason ApplicationVetoException is not thrown from ApplicationLifecyleListener.applicationClosed). Please continue to use applicationClosing with an ApplicationVetoException. See enhancement request here.

April 17, 2009 - 2.1.12

Bug Fixes

  • (JDAF) GUIApplication was not using WindowTitleFormater when using DockingApplicationFeature having no initial primary DataViews. See bug report here.
  • (JDAF) Fixed NPE when using FileHandlingFeature and removing ActionKeys.NEW and ActonKeys.OPEN actions.
  • (JDAF) RecentDocuments was not responding to save and reset/revert events. See bug report here.
  • (JDAF) RecentDocuments.setRecentItemLimit() was not working. See bug report here.

March 30, 2009 - 2.1.11

Bug Fixes

  • (JDAF) DockingApplicationFeature was not allowing criteria to be mapped to DataModel. See bug report here.
  • (JDAF) DockingApplicationFeature under certain circumstances was causing an infinite loop. This might have appeared as a race condition or freezing. See bug report here.
  • (JDAF) Comments corrected in FramedApplicationFeature. An error in global replace caused some erroneous javadoc comments.

API Changes

  • (JDAF) FramedApplicationFeature.getDockableConfigurationByCriteria() is obsolete. Use getFramedConfigurationByCriteria().
  • (JDAF) FramedApplicationFeature.getDockableConfigurationByName(). Use getDockableConfigurationByName().
  • (JDAF) FramedApplicationFeature.removeDockableConfiguration(). Use removeDockableConfiguration().

March 27, 2009 - 2.1.10

Bug Fixes

  • (JDAF) Fixed memory leak in GUIApplication. OpenWindows was not properly disposing MenuItems when DataModels/Views where closed. Internal Toolbar references not being removed properly when windows closed. See bug report here.
  • (JDAF) Fixed bug where GUIApplication exits on Windows XP/Vista and Linux when setAllowMultipleOpens(false). See bug report here.

March 19, 2009 - 2.1.9

New Features

  • (JDAF) Added Experimental File Drop recognition to GUIApplications running on Java 6.x. GUI must support an application style where an empty window exists where files can be dropped (35401).
  • (JDAF) Mac OS X Applications will have their dock icon set if running on Java 6+. (35164).
  • (JDAF) FileFormat now supports a readOnly designation. You must provide alternate FileFormats and follow the file conversion guidelines in FileFormat if you wish to save in various formats. (35226).
  • (JDAF) Added convenience method addWindowCustomizer() to GUIApplication.
  • (JDAF) Added DockingApplicationFeature.getLayoutPersistence() to return the correct LayoutPersistence object for the front-most window. See enhancement request here.
  • (JDAF) Default Mac OS X Icon has been changed to the generic Mac OS X application icon..

Bug Fixes

  • (JDAF) Fixed threading issue with opening DataModels that have long initialization times. See bug report here.
  • (JDAF) ActivityManager ProgressListener calls where swallowing exceptions. Now they output to DesktopApplication logger. See bug report here.
  • (JDAF) Fixed NPE in SplitCodeEditor demo. Exception was in the FileSystemDataView. See bug report here.
  • (JDAF) When using AWT save dialogs, and supporting multiple FileFormats, dialogs would not show multiple file formats, which is an AWT design flaw. JDAF now automatically switches to the Swing dialog for this situation and restores accordingly. See bug report here.
  • (JDAF) When using AWT open dialogs, and supporting multiple FileFormats, dialogs would not allow the multiple file formats. See bug report here.
  • (JDAF) Fixed NPE issues when MenuGroupings are not available as standard menus are loaded.

API Changes

  • (JDAF) Please use 'jdaf.dockable' instead of 'jdaf.dockablebar' for System property replacement of JDAF Swing window when using either the Action Framework or Docking Framework or both. Just be sure to descend from the proper class.

February 16, 2009 - 2.1.8

Bug Fixes

  • (JDAF) Regression with Action Framework on non-Mac platforms was keeping Action Framework from displaying menubar when also using the Docking Framework. See bug report here.

February 12, 2009 - 2.1.7

Bug Fixes

  • (JDAF) Regression with WindowCustomizers not firing on application exit. Among other possible side effects, the layout state was not getting auto-saved in docking applications. See bug report here.
  • (JDAF) Action Framework CCE on Mac OS X. See bug report here.

February 7, 2009 - 2.1.6

API Changes

  • (JDAF) Please use jdaf.dockable.toolbar" instead of "jdaf.dockable.menubar" System property when attempting to replace CommandBar instances".

Bug Fixes

  • (JDAF) A recent update introduced a bug where Mac OS X was showing its hidden root window.
  • (JDAF) Added some verbosity to env parsing in Environment. See bug report here.
  • (JDAF) Fixed NPE concerning Action Framework on OS that use a root window (Mac OS X and Windows XP w/MDI).
  • (JDAF) Mac OS X System Properties are no longer called unless the platform is Mac OS X.
  • (JDAF) Removed redundant call to saveData() for SecondaryDataModels when using the DockingApplicationFeature. See bug report here.
  • (JDAF) AutoInstallActionsFeature now used JideMenu. Was using JMenu which was causing some JIDE look and feel display issues.
  • (JDAF) ApplicationLifeCycleListener.applicationClosing() was fired twice under certain conditions. See bug report here.
  • (JDAF) ApplicationLifeCycleListener.applicationClosed() was not being fired under certain conditions. See bug report here.
  • (JDAF) ApplicationvetoException from ApplicationLifeCycleListener.applicationClosing() was not being honored under certain conditions. See bug report here.
  • (JDAF) TDI Tab DataView reference not being removed properly under certain conditions, resulting in an inaccurate DataView count.
  • (JDAF) BasicDataModelFactory was requiring a resources.property file unecessarily.

  • () .
  • December 19, 2008 - 2.1.5

    New Features

    • (JDAF) Global Swing class replacement allows you to set a system property to substitute JDAFs use of a Swing class with your own subclass. See enhancement request here.
    • (JDAF) Mac OS X Now supports Action Framework is you so desire. See enhancement request here.

    Bug Fixes

    • (JDAF) Fixed regression where custom layout loading not properly restoring window size. See bug report here.

    October 31, 2008 - 2.1.4

    Bug Fixes

    • (JDAF) Fixed NPE and general operation with GlassPaneBlock when there is no primary DataView. See bug report here.
    • (JDAF) Fixed NPE if no ActionKey.NEW action not available and NewAction is used under another key.
    • (JDAF) Fixed memory leaks in ListeningAction subclasses.
    • (JDAF) ProgressFeedback with ProgressStatusBarItem doesn't set initial message if Activity has few steps. The message for first step is ignored. See bug report here.
    • (JDAF) ApplicationVetoException ignored from DataModelClosing when DocumentPane installed. See bug report here and here.
    • (JDAF) StandardDialogRequestHandler threading issue not blocking dialog when called outside the EventThread. See bug report here.

    API Changes

    • (JDAF) Changed install() and uninstall() to install(DesktopApplicaton) and uninstall(DesktopApplication) in AbstractApplicationAction and ConsoleCommand.

    October 14, 2008 - 2.1.3

    New Features

    • (JDAF) Introduced IconSetIconTheme for automatic JDAF integration of the new JIDE Stock Icon libraries and/or IconSetManager.
    • (JDAF) Added associatePropertiesByCriteria to HashedDataModelFactory allow DataModel properties to be associated by criteria as opposed to DataModel class. This allows the use of different Properties for identical DataModel types.
    • (JDAF) Added MapObjectConverter as a complement to PropertiesObjectConverter.
    • (JDAF) Added allowNonGUIListeners to GlobalSelectionFeature to allow non-GUI subscribers.
    • (JDAF) Added addGlobalSelectionListener() and removeGlobalSelectionListener() to GlobalSelectionFeature so that the EventManager need not be directly involved.
    • (JDAF) JTextComponents are automatically wired to the DataModel UndoManager, whether installEditables() is called or not. You may now set any Component client property EditUtils.SKIP_UNDO_REDO to Boolean.TRUE to avoid having its UndoableEdits posted. See enhancement request here.
    • (JDAF) StandardDialogRequest can now define whether the Dialog is modal or not. Use StandardDialogRequest.setUseModal() or pass boolean into one of the static usability methods. See enhancement request here.

    Bug Fixes

    • (JDAF) Some JIDE Components where throwing IAE when using installEditables(). See bug report here.
    • (JDAF) Exit Dialog set using ApplicationUIManager.setShowExitDialog() not working properly under non-MDI configurations.
    • (JDAF) Throwing an ApplicationVetoException from dataModelClosing was not preventing DataView from closing under some circumstances. Mostly MDI and when using DocumentPane under certain conditions.
    • (JDAF) MissingResourceException was thrown if GUIApplication subclassed and a bundle file is not available at same location.
    • (JDAF) Regression initially sizing window when not using JIDE Docking or JIDE Action Frameworks.
    • (JDAF) Fixed when both a small and large icon is set in an Action. The ApplicationToolBarsUI was favoring the small icon.
    • (JDAF) Fixed detection of localized resources concerning FileDialogRequest and button and title labels. See bug report here.
    • (JDAF) Fixed Mac OS X native FileChooser not allowing directory selection when using FileDialogRequest.SELECT_DIRECTORY_DIALOG.

    September 30, 2008 - 2.1.2

    Bug Fixes

    • (JDAF) The isExiting flag not set correctly when DesktopApplication was exiting.
    • (JDAF) When using both JIDE Docking Framework and JIDE Action Framework layouts window sizes where reset on open window. See bug report here.
    • (JDAF) When using DockingManagerListener to manage layout, layout of Dockable information was not persisting. See bug report here.
    • (JDAF) HashedDataModelFactory and MappedDataModelFactory not producing DataModels when resource.properties not available.

    September 24, 2008 - 2.1.1

    New Features

    • (JDAF) Enhanced javadoc for Resources API. See enhancement request here, here, here, and here.
    • (JDAF) Added PropertiesConverter - An ObjectConverter that can convert a String in the form key=value;key=value;... to a Properties object.
    • (JDAF) Add namespacing to MappingResourcesBinding and BeanResourcesBinding.
    • (JDAF) Windows XP Application L&F now shows icons in menus by default. See enhancement request here.

    API Changes

    • (JDAF) MappingResourcesBinding Map changed from Map to Map since resource keys are always Strings.

    Bug Fixes

    • (JDAF) Fixed bug in Resources where access to ResourceBundles requiring the System ClassLoader (root-level) bundles would cause an NPE. See bug report here.
    • (JDAF) .

    September 18, 2008 - 2.1

    New Features

    • (JDAF) Enhancements to DockingApplicationFeature that allow tighter integration with JDAF. DockableConfiguration allows more customizable mappings and tighter data cycle control. ToggleFrameAction allow easy menu and toolbar integration. See enhancement request here and here.
    • (JDAF) Initial Release of FramedApplicationFeature. Eases and enhances use of SPLIT_APPLICATION_STYLE by facilitating MVC integration of side-framed DataViews. Similar interface to DockingApplicationFeature.
    • (JDAF) Initial Release of Event API (Included in JDAF standard). Use the EventManager to facilitate centralized events throughout your application.
    • (JDAF) Initial Release of AutoInstallActionsFeature. Action properties can be set that cause menu items and toolbars buttons to be populated automatically.
    • (JDAF) Initial Release of GlobalSelectionFeature. Supports a global selection and response mechanism. See enhancement request here.
    • (JDAF) Introduced SemanticNameDataViewFactory. Vend DataViews based on the semanticName of the DataModel.
    • (JDAF) When running on OS X Leopard/Java5 with ApplicationToolBarsUI.setUseToolBars(true), JDAF now supports the Unified Toolbar" style by setting setToolBarsStyle(UNIFIED_TOOLBAR). Bitwise-or this with LARGE_TOOLBAR_STYLE and/or TEXT_TOOLBAR_STYLE to capture the appropriate look. You will need to place OSXProperties.setBackgroundEffect(OSXProperties.UNIFIED_TOOLBAR) immediately before GUIApplication instantiation. Toolbars will be evenly distributed as per guidelines".
    • (JDAF) To go with the new OS X Unified toolbar style on Leopard/Java5, we have added some methods to set Mac-Specific buttons styles. The makeStyledToolbar(), makeSegmentedToolbar(), and makeSizedToolBar().
    • (JDAF) Added GUIApplication.getApplication(JComponent) as a convenience method for access of GUIApplication instance from a JComponent.
    • (JDAF) Added GUIApplication constructor GUIApplication(String, DataModelFactory, DataViewFactory).
    • (JDAF) DataView classes may now be used to map DataViewHandlers in ApplicationUIManager in addition to DataModel classes. DataModel class takes precedence on match.
    • (JDAF) ApplicationMenuBarsUI and ApplicationToolBarsUI are now sensitive to the Action.SELECTED_KEY of an Action, and will install Toggle" versions of menu items and toolbar buttons automatically. Java 5 users may use the GUIApplicationAction.SELECTED_KEY".
    • (JDAF) Added warnings for when JIDE Docking Framework, JIDE Action Framework, or DocumentPane APIs are requested, but not in the classpath. See enhancement request here.
    • (JDAF) Added ApplicationActonMap.getPropertyChangeListeners().
    • (JDAF) Added ApplicationMenuBarsUI.getMenuGroupingID(Action) - get the MenuGrouping key name that the Action belongs to.
    • (JDAF) Added ApplicationMenuBarsUI.getMenuGroups(JMenu) - get all the MenuGroups that make up the menu.
    • (JDAF) Added ApplicationToolBarsUI.addToolBarButton(Container, Action). Used to only be able to add by actionKey.
    • (JDAF) Added ApplicationToolBarsUI.getStandardToolBarName() to return the localized name of the Standard" toolbar".
    • (JDAF) Added MenuGrouping.insertMenuGroup().
    • (JDAF) MenuGroup is now a Comparable by its anchorIndex.
    • (JDAF) BasicDataModel now sets the criteria in the data property, if it is null, in the newData() and openData() methods as oppose to the init() method. This is more consistent with the idea of data origination. Should not have an effect on current usage.
    • (JDAF) Added ApplicationToolbars method addToolbarSpace() to add a non-separator space in a toolbar.
    • (JDAF) The icon property in AbstractDataModel is now mutable. See enhancement request here.
    • (JDAF) Added targetObject to BeanResourceBinding so that the Object to bind can be different from the resource root.

    API Changes

    • (JDAF) Changed signatures in ApplicationToolBarsUI that create and install ToolBar Buttons from JButton to AbstractButton to support Action.SELECTED_KEY. This should't effect most users unless you have overridden the ApplicationUIManagerFactory.
    • (JDAF) OSXProperties.getInstance() is depricated. All methods are now static.
    • (JDAF) DockingApplicationFeature now uses the SemanticNameDataViewFactory instead of MappedDataViewFactory. We have kept MappedDataViewFactory installed for those who expect it, but it is no longer used.
    • (JDAF) Note that all internal JDAF resource bundle files have changed to remove the en_US" Locale identifier. The OS-variants remain as supported by the new OS-extended variant support. See documentation for more details".
    • (JDAF) Added ResourceBinding.getBindTarget() to return the object to bind other than the resource root.

    Bug Fixes

    • (JDAF) Corrected bug in Resources ResourceBundle lookup algorithm. This was causing anomalies in non-en_US" Locales ranging from disappearing Icons to wrong button orders; anything resource related. Those of our international users who had to set an "en_US" Locale may remove this workaround". See bug report here, here, and here.
    • (JDAF) Fixed bug in MappedDataModelFactory - DataModel properties where not getting applied as documented.
    • (JDAF) Fixed bug that kept default layout from restoring when both the Docking and Action frameworks where in operation. See bug report here.
    • (JDAF) Removing some standard Actions was causing NPE. It is now safe to remove all standard Actions (but not recommended). See bug report here.
    • (JDAF) Fixed IOBE in Environment when checking for Linux/KDE. See bug report here.

    July 25, 2008 - 2.0.3

    New Features

    • (JDAF) KDE is now supported automatically. See documentation for details..

    Bug Fixes

    • (JDAF) The JavaCrossPlatformApplicationUI had a regression in the form of an NPE. This would have effected all UNIX platforms or any apps running the -usecp option. See enhancement request here.
    • (JDAF) DATAMODEL_OPENING event was not respecting an ApplicationVetoException. See enhancement request here.

    July 3, 2008 - 2.0.2

    New Features

    • (JDAF) Added ApplicationToolBarsUI.getToolbar(window, name) to return a specific toolbar from a window. See enhancement request here.

    Bug Fixes

    • (JDAF) ApplicationToolBarsUI.getToolBars(name) was returning all toolbars, not just the named one. See enhancement request here.
    • (JDAF) Regression in Docking LayoutPersistence support - was not respecting setPreferedWindowSize due to new support of frame bounds. New behavior respects preferred size until layout is persisted. See enhancement request here and here.
    • (JDAF) Regression when adding program arguments - GUIApplication may not open if argument is not a file that exists. See enhancement request here.

    June 20, 2008 - 2.0.1

    New Features

    • (JDAF) Added getFocusedViews() to the GUIApplication to easily return all focused DataViews (primary and all secondary) from the front-most window.
    • (JDAF) Added getFocusedModels() to the GUIApplication to easily return all focused DataModels (primary and all secondary) from the front-most window.
    • (JDAF) Added getDockingManager(), getDockingManager(DataView), getDataModel(DockableFrame) and getDataView(DockableFrame) to the DockingApplicationFeature for convenience. See enhancement request here.
    • (JDAF) Added reset feature to ProgressFeedback. Now component can be reset to a zero-progress state at progressEnd. Useful for on-screen components if showHide is not desirable.
    • (JDAF) To use the secondary status message in ProgressFeedback, set the client property ProgressFeedback.USE_SECONDARY_STATUS_MESSAGE in your component with Boolean.TRUE.
    • (JDAF) JDAF/Docking Framework auto-persistence now saves/restores window bounds.

    API Changes

    • (JDAF) AbstactDataModel no longer exposes the PrpertyChangeSupport. Instead firePropertyChange() methods are provided.
    • (JDAF) Deprications due to spelling of Persistence"".

    Bug Fixes

    • (JDAF) Explicit Save As" from menu continued to save when canceled".
    • (JDAF) JDAF Application Wizard not exiting on Cancel.
    • (JDAF) JDAF Code Generation presenting wrong installActions() signature when subclassing GUIApplication. There should be no arguments.
    • (JDAF) Fixed issue where XP icons revert to classic when swapping out default Actions.
    • (JDAF) BasicDataModel dataChanged not sending correct property name. (Was sending Name" instead of "Data")".
    • (JDAF) DockingApplicationFeature would not reopen DataViews once closed. See enhancement request here.
    • (JDAF) HelpAction causing NPE if name not provided. Added new constructor to provide for name and help topic.
    • (JDAF) Fixed issue where ProgressFeedback was not updating upon reuse when using explicit component. See enhancement request here.

    April 15, 2008 - 2.0

    New Features

    • (JDAF) Added static DataViewPane.getDataViewPane(Component). This method will climb up the container hierarchy to access a top-level DataViewPane, diffusing the need to pass the DataView reference to nested components.
    • (JDAF) Added EDIT_EDIT_SPECIAL_GROUP MenuGrouping to Mac OS X and Windows XP Edit menu. This was not normally available because it is not Guidelines-specified, but we have added it so that users may use it. This provides two MenuGroups in the Edit menu to customize; use EDIT_EDIT_SPECIAL_GROUP_ID and EDIT_USER_GROUP_ID.
    • (JDAF) Added ConsoleCommand resetToIdle().
    • (JDAF) Improved robustity in Environment capture.
    • (JDAF) Added ApplicationWindowsUI sizeToScreen property. In the past JDAF windows are constrained to fit to screen. This option now allows this to be turned off, for example to allow a window to span multiple screens.
    • (JDAF) DefaultWindowTitleFormat now supports UL-syntax. Simply set the appropriate pattern using ${applicaton.x} where "x" is a property of your application or aggregate extension.
    • (JDAF) ActivityAction now has getters and setters for the Activity as opposed to only accepting an Activity in the constructor. This provides more flexibility both with resource binding and Activity configuration.
    • (JDAF) You may use the new pre-run option setUseRecentDocuments(false) on the FileHandlingFeature to turn off this functionality if desired.

    API Changes

    • (JDAF) Completed java 5 syntax refactoring.
    • (JDAF) Removed FileDataViewFactory.removePrintViewClass(). Old and unused artifact.
    • (JDAF) com.jidesoft.app.framework.gui.BasicTransferable refactored to com.jidesoft.utils.BasicTransferable.
    • (JDAF) Single string ExecuteCommand constructor mistakenly used argument as newCommand. Changed to use as the external command.

    Bug Fixes

    • (JDAF) NPE when using null as dir argument in FileDialogRequest.showSaveDialog().
    • (JDAF) Opacity setting moving out of bounds on occasion on Mac OS X fade of GlassPaneBlock for Activity ProgresssListener.
    • (JDAF) Fixed ExternalCommand occasional deadlock.
    • (JDAF) Fix extra margin in Wizard generated About box with splash image.
    • (JDAF) Cascade feature now wraps windows to the top when extending past the screen.
    • (JDAF) Fixed intermittent NPE when many windows open on OS X and option-clicked to close all.
    • (JDAF) ObjectFormat was not re-configuring ELFormatTokens when new pattern set.
    • (JDAF) Fixed bug in Activity where Exception in activiyPerformed was not property canceling the Activity as advertised.
    • (JDAF) The MenuGroup method addMenuItem(Action) was adding an empty menu item if the Action was null.
    • (JDAF) BasicDataModel data property change event was firing using PROPERTY_NAME constant. (Regression).
    • (JDAF) BasicDataModelFactory was setting over DataModel name after creation if criteria is null.

    February 27, 2008 - 1.2.2 beta

    New Features

    • JDAF now automatically sets the ModalityType on 1.6 JVMs based on DialogRequest parenting mode setting. You may manually access Modality API in a JDK version-resiliant manner using ApplicationDialogsUI.setModaltyType(). Use a DialogListener to call this method.
    • New Split UI demo called "SplitCodeEditor" featuring a navigation tree.
    • Added convenience getSDIWindowsUI() and getMDIWindowsUI() to ApplicationUIManager. These methods return null if the application style is mismatched with the ApplicationWindowsUI implementation.
    • Added reuseWindow feature for SDI (Non-TDI) style applications. In this mode the front-most window will always host a new DataView as opposed to being hosted in a new Window. If a DataView is currently hosted, it is first closed. To use, set application.getApplicationUIManager().getSDIWindowsUI().setReuseWindow(true).
    • Improved SplitApplicationUI behavior - Border panes now remain at their fixed size and only the center DataView content resizes when the window resizes. Before this change, all content resized proportionately.

    API Changes

    • Deprecated Code Removed.

    Bug Fixes

    • Fixed some issues related to conversion from J4 to J5 syntax in FileDataModelFactory. (24337)
    • OSXProperties tweaked to remove deprecated OS X constants.
    • DialogPane was not calling initializeComponents() (Regression)
    • Fixed NPE on Mac OS X when setNewDataOnRun(false) and SplitAppliationUI and TabbedApplicationUI.
    • TabbedUI failing to keep application alive when last tab closed even when setExitApplicationOnLastDataView(false). (Regression)
    • Version string not successfully getting initialized to "1.0" if resources where not being used.
    • JDAF Application Wizard was not exiting System on finish on Mac OS X.
    • JDAF Application Wizard was generating openHelp() method of HelpSource even if Help option was turned off.
    • JDAF Application Wizard SplashScreen generation was tweaked to remove the 1.6 case logic and set the splash time to 2 seconds.


    Update Log:

    February 1, 2008 - 1.2.1 beta

    New Features

    • You can now easily set the New and Open criteria using the application methods setNewCriteria() and setOpenCriteria().


    API Changes

    • DataModel getData(), setData(), dataChanged() have moved to BasicDataModel and removed from the DataModel interface. This allows a clean data implementation without the presumption of a data property.
    • DataViewPane initComponents() changed to initializeComponents() to be compatible with NetBeans GUI Builder.
    • DialogPane initComponents() changed to initializeComponents().

    Bug Fixes

    • Docking and/or Action Framework not saving state when setNewOnRun(false) and last windowClose.
    • Docking and/or Action Framework not saving state ExitAction used.
    • Criteria was overriding data in BasicDataModel if data set in the constructor. Besides the fact that data should be set using newData(), we now check for non-null value before setting criteria.
    • DataModel.dataChanged() was sending PropertyChangeEvent on PROPERTY_NAME instead of PROPERTY_DATA. (See API Changes: data property is implementation detail for BasicDataModel and is no longer in he DataModel interface.)
    • ApplicationWindowsUI.setPreferredWindowSize() was not working on Mac OS X.
    Update Log:

    December 17, 2007 - 1.2 beta

    New Features

    • Introduced the notion of Primary and Secondary DataModels. This is a broad feature change that enhances the MVC architecture to permit secondary DataModel/DataViews that are under developer control.
    • Introduced DataViewHandler to allow developer-installation of DataViews for Secondary DataModels. See documentation for details.
    • Introduced SplitAppplicationUI (SPLIT_APPLICATION_STYLE) to support applications requiring a split pane UI (outside of docking behavior).
    • Introduced WindowCustomizer (Add to ApplicationWindowsUI). This is called whenever a new window is opened or disposed.
    • Introduced MappedDataModelFactory - Map criteria classes to DataModel classes.
    • Introduced HashedDataModelFactory - Map criteria values to DataModel classes.
    • Introduced DockingApplicationFeature - Integrate JIDE Docking Framework into the JDAF MVC architecture.
    • Added default layout behavior when using Docking and/or Action Framework.
    • Introduced PreferencesPane to enforce some general guidelines. Subclass and use in a PreferencesDialogRequest.
    • Added ApplicationWindowsUI.setPreferredWindowSize(). Setting will override JDAF sizing behavior for all new windows.
    • Added DataModel.dataChanged() to force a property change when the state of the object in a DataModel's data property changes. This is useful when the data value is a bean.
    • DataModel now stores the criteria which generated it as a member variable. This is a bound property.
    • BasicDataModel now sets the data property to the input criteria by default.
    • Added constants for bound DataModel properties.
    • All JDAF-supplied DataModelFactory implementations now allow a Map of properties to be used for initializing a DataModel's properties. If no Map is defined, the DataModel instance of bound to resources based on the BeanResourceBinding rules (ClassName.propertyName).
    • FileDataModelFactory can now specify a FileDataModel class per FileFormat.
    • Added DataViewPane.setDefaultFocusComponent() to allow definition of the focused component upon DataView open.
    • DataViewPane initComponents() is no longer abstract since it conflicted with NetBeans GUI builder.
    • Now JDAF will always place a primary DataView in a generic JPanel parent. So it is safe to simply use getParent().
    • Each window and dialog now references the Application instance that created it. You can use the static ApplicationWindowsUI.getApplicationFromWindow(window) method to access the GUIApplication instance.
    • GUIApplication ApplicationFeatures is now a bound property.
    • Better HelpSource trigger integration using HelpSource.HELP_HINT_PROPERTY_NAME for hint. Put in DialogOptions for Help button or in JRootPane or DataView component as a Client Property to define the help topic.
    • StandardDialogRequest now contains signatures and method behaviors to automatically register the content component as a DialogListener automatically, since this it the most common and recommended use.
    • FileHandlingFeature useSemanticNameInMenus() is now true by default. If no semantic name is set, this behavior should not effect existing codebases.
    • ApplicationFeature now additionally implements GUIApplicationLifecycleListener and WindowCustomizer.
    • FileBasedApplication now provides a factory method called defaultFileHandlingfeature() to allow a feature subclass to be defined implicitly.
    • Some refactoring in the file handling area has allowed the new FileHandlingFeature methods openDataFiles() and saveDataAs() to reflect certain scenarios in FileHandlingFeature/FileBasedApplication. These are called internally by Actions but we thought we mention the new availability.
    • A DataModelFactory may now return a reference to an existing DataModel without error. It will be set as the focused model.
    • Added FileSystemResponseHandler.handleFileNotFound(). Was handled by just handleError().
    • DialogPane has been refactored. IT now has an interface more convenient to the dialog lifecycle.
    • Help button on Mac OS X, now shows as just the help icon as per guidelines.
    • DialogEvent.isListening() allows Component implementations of DialogListener to determine whether the DialogEvent is intended for itself in the event of secondary dialogs.
    • Added convenience DialogResponse isOption(buttonName) to check for other button selections.
    • NewAction, NewFileAction, OpenAction and OpenFileAction now support setting a queued dialog request key. This allows custom dialogs to derive the criteria for the action. (by virtue of the DataAction derision).
    • Activity API now supports a way to suppress canceling of the Activity. Call Activity.setCanCancel(false).
    • Activity API now supports secondary status message. Call setSecondaryStatusMessage(String).
    • Improved guidelines when using DialogBlock (progress Dialog) on Mac OS and Linux-Gnome.
    • You can now set an ErrorHandler in the XMLFileFormat.
    • Since we have rearranged the licensing logic, it is no longer necessary to specify the special Mac OS System properties at the beginning of the program. JDAF does this automatically.
    • Addition of Vendor property in DesktopApplication. This shows in the default About dialog as well.
    • Added DesktopApplication empty constructors to facilitate name, version, and vendor loaded from resources file using "{classname}.property" syntax. (If using instance place "resources.properties" file in scr root, otherwise place file in subclass package.)
    • Added setManageLayoutPersistance() to keep ApplicationUIManager from loading the default layout when using Docking or Action Framework.
    • Added getLayoutPersistance() to provide access to the correct LayoutPersistance object when using one or more JIDE libraries.
    • Added getPreferredMaximumWindowSize() in ApplicationWindowsUI. This returns an appropriate maximum window size that is more intelligent than simply the screen size.
    • Added ApplicationMenuBarsUI.setUsesMenuBars() to turn off installation of menubars for the entire application.
    • Added ApplicationMenuBarsUI.getMenuBar(window).
    • Added high-level addMenuItem() and removeMenuItem() to ApplicationMenusUI for convenience.
    • Now MenuGroup and MenuGrouping implement MenuConstants for more readable code.

    Bug Fixes

    • DesktopApplication setNewDataOnRun(false) still opened a DataView for sizing and other purposes. While not technically a bug, it now truely does nothing. Warning: this can keep an application's UI from starting.
    • If you used a DataViewListener to install DockableFrames and are using setNewDataOnRun(false), this will no longer work. Please migrate your code to use the WindowCustomizer. Here is a migration guide
    • TextComponent edit menu binding stopped working in Java 6.x due to Java regressions in property changes. We've done an internal fix. Enabling is working again.
    • Fixed multiple-undo bug in text editor EditUtils binding.
    • FileDataViewFactory was throwing Exception if null criteria presented. This was causing issues mixing DataViewFactories.
    • FileHandlingFeature useSemanticNameInMenus was not working properly.
    • FileBasedApplication addFileMapping(FileFormat) was removing the file mapping. Renamed to removeFileMapping().
    • APPLICATION_CLOSED event was not firing properly.
    • DATAVIEW_CLOSED event was not firing properly.
    • DATAMODEL_OPENING event was not firing properly.
    • Standard File menu (non-file handling) was missing the "user" MenuGrouping (FILE_USER_GROUP_ID).
    • DialogButtonsPanel.getButtonAction() was not returning some button Actions.
    • Windows OS titling logic appending DataModel count unnecessarily to uniquely named models.
    • GlassPaneBlock was not correctly blocking when multiple Activity objects are running on same DataView.
    • Icon detection in dialog buttons on Linux-Gnome was not functioning properly for custom button icons.

    API Changes

    • DesktopApplication openModel() and newModel() now return the instantiated DataModel.
    • Depricated DesktopApplication getVersionString() and setVersionString() changed to getVersion() and setVersion().
    • Added DataModel isPrimary(), getCriteria(), setCriteria(), dataChanged(), setSemanticName().
    • Various refactorings in GUIApplication, ApplicationUIManager, ApplicationUIWindows to support DataViewHandlers and DataModel primary mode.
    • Depricated MappedDataViewFactory.addViewMapping() changed to addDataViewMapping() for consistancy.
    • Depricated ApplicationWindowsUI.getMainContainer(DataView). It will not be replaced. There are entirely too many configurations possible in the framework for this method to be meaningful. For decorating the corners of a DataView component, JDAF will always place a DataView in a generic JPanel parent with a BorderLayout. So it is safe to use getParent(). Otherwise, getPrimaryContainer() may be of use.
    • Depricated HelpSource.COMPONENT_HELP_PROPERTY_NAME changed to HelpSource.HELP_HINT_PROPERTY_NAME.
    • ApplicationFeature.getApplication() is now public.
    • Depricated FileHandlingFeature.isUseSemanticNameForNewMenus() to isUseSemanticNameInMenus().
    • Depricated GUIApplicationAction.checkIconLock() moved to IconTheme.GUIApplicationAction.checkIconLock().
    • ApplicationFeature now implements GUIApplicationLifecycleListener. The net effect being the extra support method guiOpening().
    • Depricated FileBasedApplication addFileMapping(FileFormat). Misnamed.
    • ToolBarsUI getTooBarContainer now returns Container instead of Object
    • Inner StandardDialog constructors in StandardDialogRequest now take StandardDialogRequest as opposed to individual arguments from the request.
    • DEFAULT_BUNDLE_NAME_PROPERTY System property name changed from "JDAFBundleName" to "jdaf.bundle.name".
    • More Java 1.5 syntax integration.
    Update Log:

    October 12, 2007 - 1.1 beta

    New Features

    • Initial Release of Activity Framework (Included in JDAF standard)
    • Added DialogPane as a simple starter/adapter for creating content for a dialog using StandardDialogRequest. It is a JPanel that implements DialogListener.
    • Added STOP_COMPONENT_PROPERTY to ComponentVisitor to control Container traversal by using a client property in a given Container

    Bug Fixes

    • MappedDataViewFactory incorrectly validating arguments in addDataViewMapping. (21720#21720)
    Update Log:

    October 3, 2007 - 1.0.05 beta

    New Features

    • Added XPath helper methods to XMLFileFormat
    • DesktopApplication.getDataPath() now creates the directory if it doesn't exist.

    Bug Fixes

    Update Log:

    September 27, 2007 - 1.0.04 beta

    New Features

    • New accelerators added to Windows OS Application UI to facilitate traditional hotkeys
    • DataView is now hosted in a DataViewLayeredPane (a JLayeredPane) for added flexibility such as overpainting, overlaying, or glass pane type functionality.
    • Added DesktopApplication method getDataDirectory() as an alternative to Preferences node where this location can be used to store properties, preferences, or other application data.
    • Added static helper method DialogButtonsPanel.getDialogButtons(DialogEvent).
    • Added new DialogButtonsPanel methods setButtonEnabled(String) and executeButtonAction(String).
    • Cascade and Arrange Actions are now disabled when only one window is open. (Where supported)

    Bug Fixes

    • License detection now checks later in the classloading cycle. Was making it inconvenient to apply license.
    • MenuItem mnemonics where not showing due to bug in ActionResourceBinding.
    • Eval example DockedTextEditor could not be run from the ant script.
    • Resources API was improperly degrading to en_US in non en_US Locales causing various UI anomalies.
    • JDAF Application Wizard generated some source files with missing package statements.
    • Removed accidental dependancy on DocumentPane in last release. DocumentPane is lazy-loaded as needed.
    Update Log:

    August 28, 2007 - 1.0.03 beta

    New Features

    • It is now safe to fire DialogRequests from any thread. JDAF ensures that ApplicationDialogsUI always shows dialog on the Event thread.
    • Created a utility Map called ClassMap that maps Classes to Objects polymorphically. Refactored various code to use it.
    • Added MenuBarsUI.defaultMenuItem(String actionName) as a productivity method. This will fetch the action from the applications ActionMap.

    Bug Fixes

    • Improper setting of DialogResponse value when using Escape or Enter. Causes NPE in DialogEvent.getResponseCode(). (See topic 20724)
    Update Log:

    August 20, 2007 - 1.0.02 beta

    New Features

    • BasicDataViewFactory will now create an empty DataViewPane if no class is specified. This makes it consistant with the behavior of the BasicDataModelFactory.
    • Added GUIApplication.setExitApplicationOnLastDataView() convenience method. Only works on SDI/TDI/Docking. Ignored otherwise.
    • DesktopApplication.setNewDataOnRun(false)now works if TDI or Docking Framework is used. Use in conjunction with setExitApplicationOnLastDataView(false).

    Bug Fixes

    • Fixed XMLFileFormat.documentToString(). Not operating correctly in 1.5.
    • Fixed PrintAction not disabling if no valid DataView
    • Fixed ActiveStateAction. Was basing disable state on dataModel count as opposed to DataView count. Not very noticable accept in particular application styles.
    • Fixed TDI Style bug when using DocumentPane where closing last tab closes application always.
    • Fixed TDI Style bug when using DocumentPane where it takes two exit commands/close clicks to terminate the application.

    Changed API

    • Changed setExitApplicationOnLastWindow() to setExitApplicationOnLastDataView(). Was inconsistant with isExitApplicationOnLastDataView().
    • Moved openTabInNewWindow property to TDIApplicationUI from SDIApplicationWindowsUI.

     

    Update Log:

    August 6, 2007 - 1.0.01 beta

    New Features

    • Added DocumentPaneFactory for custom DocumentPane implementations
    • Added DesktopApplication.executeAction() method as a preferred interface for accessing application built-in functionality
    • Added GUIApplicationLifecycleListener and supporting classes to notify when the gui is created but not shown
    • Added DataViewPane.installEditables() to auto-register components compatible with EditUtils
    • Introduced ComponentVisitor utility class

    Bug Fixes

    • Fixed ComponentAction enable state syncing. Had stopped working. This would have effected enable states of edit menu Actions.
    • Windows OS Tab Style was mistakenly being set when using DocumentPane option on Cross-Platform Application UI
    • Fixed NPE with Preferences node and an empty Application name
    • Fixed CCE concerning the use of Jide Action Framework when in Windows MDI mode
    • Fixed Windows MDI full-expansion remote window controls positioning issues
    • Fixed NPE when setting dirty flag from DataViewPane.initComponents() on Mac OS X
    • Fixed NPE When adding an FileHandlingFeature subclass to GUIApplication

     

    Update Log:

    July 23, 2007 - 1.0 beta

    New Product

    • Introduced JIDE Desktop Application Framework