DevDocFileManagement - JUCMNAV/projetseg-update GitHub Wiki

File Management

Overview

  • We've already covered loading in Dev Doc Multi Page Editor.
  • Saving is also handled by the multi page editor
  • We delegate the actual handling to seg.jUCMNav.editors.resourceManagement.MultiPageFileManager and other files in the same package.
  • Currently, XMI handles the actual low level serialization.

Saving

* The editor's doSave() and doSaveAs() methods are invoked. * Delegation to MultiPageFileManager doSave() and doSaveAs(). * This class does all the save/save-as logic and uses the UrnModelManager's for the low level stuff. UrnModelManager handles the link between URNspec and an XMI resource. * Behaviour is similar to DevDocMultiPageEditor-Map156-init.jpg

Save-as

  • We have had many problems with the save-as. We've try to keep it simple but it seems we failed miserably. :)
  • Our UrnModelManager keeps a reference to our URNspec and XMI resource and we have to manipulate multiple files in doSaveAs().
  • The main difficulty here is that if we do a save-as, we must refresh the editor so that is linked to the new file. This seems easy but is not as straightforward as planned:
    • The low-level xmi resource must be changed
    • the URNSpec used in the editors must be changed.
    • the graphical viewers must be refreshed so that they use the new model and not the old one
    • command stacks must be updated
    • ... many dependencies on the new URNspec to be refreshed
    • At first, we tried re-invoking the init procedures as mentioned in Dev Doc Multi Page Editor and Dev Doc UCMEditor.
    • We ended up with something that worked but broke later when we added new general editor features.
    • Not wanting to update the init code every time we add a new feature (because we would obviously forget), we decided on simply closing the current editor/reopening a new one.

-- Main.JasonKealey - 07 Jul 2005