JDAF - Docking Framework Migration from 1.1 beta to 1.2 beta

The original recommended means of integrating the JIDE Docking Framework consisted of a two-part process.

1. Make JDAF aware of the Docking Framework

application.getApplicationUIManager().setUseJideDockingFramework(true);

2. Add DockableFrames using a DataViewListener

addDataViewListener(new DataViewAdapter() {
      public void dataViewOpening(DataViewEvent e) {
         if(getApplicationUIManager().isUseJideDockingFramework()) {
               DockableHolder holder = (DockableHolder)e.getWindow();
               holder.getDockingManager().setInitSplitPriority(DockingManager.
SPLIT_EAST_WEST_SOUTH_NORTH);
               installDockableFrame(holder, null, "Frame1", DockContext.
DOCK_SIDE_WEST);
               installDockableFrame(holder, null, "Frame2", DockContext.
DOCK_SIDE_SOUTH);
               //...
            }
      }
   });
This is still a valid approach if your application opens a new DataView on run. However, starting with JDAF 1.2, if you use the setNewDataOnRun(false) option, JDAF no longer fires a dataViewOpening() event, because it no longer opens a temporary DataView. Therefore, we have a new recommendation that you use a WindowCustomizer instead of a DataViewListener , like so:
getApplicationUIManager().getWindowsUI().addWindowCustomizer(new WindowCustomizer() {
       public void customizeWindow(ApplicationWindowsUI windowsUI, Container window) {
            if(getApplicationUIManager().isUseJideDockingFramework()) {
              DockableHolder holder = (DockableHolder)window;
              holder.getDockingManager().setInitSplitPriority(DockingManager.
SPLIT_EAST_WEST_SOUTH_NORTH); installDockableFrame(holder, null, "Frame1", DockContext.
DOCK_SIDE_WEST); installDockableFrame(holder, null, "Frame2", DockContext.
DOCK_SIDE_SOUTH); } } public void disposingWindow(ApplicationWindowsUI windowsUI, Container window) { } });
The disposingWindow() can be used to save the layout data.

Layout Management

Pre-JDAF 1.2 is was not clear how the Docking Framework layout was handled. Basically, JDAF called loadLayout() when the window was opened and did no customization otherwise. You would simply reload your own layout and manage a save layout when the DataView closed using a DataViewListener.

With the recommendation of using a WindowCustomizer you can use a similar strategy with one caveat, you must tell JDAF not to manage its own layout. This is done with a call to getApplicationUIManager().setManageLayoutPersistence(false) from your customizeWindow() method. This is because JDAF now manages a layout file called "default.layout" from which it will load and save layout data. The JDAF layout file can be found in the platform-specific data directory returned from GUIApplication.getDataDirectory().