FileMgr.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import os
  2. import imp
  3. from ObjectMgr import ObjectMgr
  4. from ObjectHandler import ObjectHandler
  5. from ObjectPalette import ObjectPalette
  6. from ProtoPalette import ProtoPalette
  7. import ObjectGlobals as OG
  8. class FileMgr:
  9. """ To handle data file """
  10. def __init__(self, editor=None):
  11. self.editor = editor
  12. def saveToFile(self, fileName):
  13. try:
  14. f = open(fileName, 'w')
  15. f.write("from pandac.PandaModules import *\n")
  16. f.write("\nif hasattr(base, 'le'):\n")
  17. f.write(" objectMgr = base.le.objectMgr\n")
  18. f.write(" ui = base.le.ui\n")
  19. f.write(" ui.sceneGraphUI.reset()\n\n")
  20. f.write("else:\n")
  21. f.write(" objectMgr = base.objectMgr\n")
  22. f.write("# temporary place holder for nodepath\n")
  23. f.write("objects = {}\n")
  24. saveData = self.editor.objectMgr.getSaveData()
  25. for data in saveData:
  26. f.write(data)
  27. f.write('\n')
  28. saveDataLayers = self.editor.ui.layerEditorUI.getSaveData()
  29. for data in saveDataLayers:
  30. f.write(data)
  31. f.write('\n')
  32. f.close()
  33. except IOError:
  34. print 'failed to save %s'%fileName
  35. if f:
  36. f.close()
  37. def loadFromFile(self, fileName):
  38. dirname, moduleName = os.path.split(fileName)
  39. if moduleName.endswith('.py'):
  40. moduleName = moduleName[:-3]
  41. file, pathname, description = imp.find_module(moduleName, [dirname])
  42. try:
  43. module = imp.load_module(moduleName, file, pathname, description)
  44. except:
  45. print 'failed to load %s'%fileName