def setPersistentData( self, data ):
    baseClassData, rootNode = data
    Project.setPersistentData( self, baseClassData )
    
    assert isinstance( rootNode, TreeNode )
    
    self._outline   = OutlineModel( rootNode )
    
    try:
       self.validate( )
    except:
       self.setDefaultData( )
class MindTreeProject( Project, QObject ):
   def __init__( self, data=None, workspace=None, filename=None, name=None ):
      self._outline   = None
      self._bookmarks = { }    # map name to node id
      
      Project.__init__( self, data, workspace, filename, name )
      QObject.__init__( self )

   def outline( self ):
      return self._outline
   
   def bookmarks( self ):
      return self._bookmarks

   # Required Overrides
   def validate( self ):
      Project.validate( self )
      self._outline.validate( )
   
   def setDefaultData( self ):
      Project.setDefaultData( self )
      
      self._outline   = OutlineModel( )

   def setPersistentData( self, data ):
      baseClassData, rootNode = data
      Project.setPersistentData( self, baseClassData )
      
      assert isinstance( rootNode, TreeNode )
      
      self._outline   = OutlineModel( rootNode )
      
      try:
         self.validate( )
      except:
         self.setDefaultData( )

   def getPersistentData( self ):
      self.validate( )
      rootNode = self._outline.root()
      
      baseClassData = Project.getPersistentData( self )
      return ( baseClassData, rootNode )

   def _defaultFileExtension( self ):
      return RES.get('Application','fileExtension')
 def setDefaultData( self ):
    Project.setDefaultData( self )
    
    self._outline   = OutlineModel( )