Class PersistenceManager

All Implemented Interfaces:
ActionListener, EventListener, IdvConstants, PrototypeManager

McIDAS-V has 99 problems, and bundles are several of 'em. Since the UI of alpha 10 relies upon component groups and McIDAS-V needs to support IDV and bundles prior to alpha 10, we must add facilities for coping with bundles that may not contain component groups. Here's a list of the issues and how they are resolved:
  • Bundles prior to alpha 9 use the TabbedUIManager. Each tab is, internally, an IDV window. This is reflected in the contents of bundles, so the IDV wants to create a new window for each tab upon loading. Alpha 10 allows the user to force bundles to only create one window. This work is done in injectComponentGroups(List).
  • The IDV allows users to save bundles that contain both ViewManagers with component groups and without! This is actually only a problem when limiting the windows; injectComponentGroups has to wrap ViewManagers without component groups in dynamic skins. These ViewManagers must be removed from the bundle's internal list of ViewManagers, as they don't exist until the dynamic skin is built. Do not simply clear the list! The ViewManagers within component groups must appear in it, otherwise the IDV does not add them to the VMManager. If limiting windows is off, everything will be caught properly by the unpersisting facilities in UIManager.
See Also: