Exemple #1
0
 def newDocument(self, isFirstNewDoc=False, fp=None):
     """
     Creates a new document, ensuring that a document controller is also instantiated if required.
     If isFirstNewDoc is True, a new documentController is always instantiated.
     A new documentController will create a new document during __init__().
     This method is called by finishInit() to ensure a document is created on application init.
     """
     from controllers.documentcontroller import DocumentController
     defaultFile = fp or os.environ.get('CADNANO_DEFAULT_DOCUMENT', None)
     if defaultFile and isFirstNewDoc:
         defaultFile = path.expanduser(defaultFile)
         defaultFile = path.expandvars(defaultFile)
         dc = DocumentController()
         doc = dc.document()
         from model.io.decoder import decode
         decode(doc, file(defaultFile).read())
         print "Loaded default document: %s" % doc
     else:
         dc = next(iter(self.documentControllers), None)
         # cadnano currently only supports ONE documentcontroller per app instance, controlling exactly ONE document.
         if dc:                  # if a documentcontroller already exists
             dc.newDocument()    # currently, this just empties the existing document object.
         else: # first dc
             # A DocumentController creates a new doc during init and adds itself to app.documentControllers:
             dc = DocumentController()
     return dc.document()
Exemple #2
0
 def newDocument(self, isFirstNewDoc=False):
     from controllers.documentcontroller import DocumentController
     defaultFile = environ.get('CADNANO_DEFAULT_DOCUMENT', None)
     if defaultFile and isFirstNewDoc:
         defaultFile = path.expanduser(defaultFile)
         defaultFile = path.expandvars(defaultFile)
         from model.decoder import decode
         doc = decode(file(defaultFile).read())
         print "Loaded default document: %s" % doc
         dc = DocumentController(doc, defaultFile)
     else:
         dc = DocumentController()  # DocumentController is responsible
                                    # for adding itself to
                                    # app.documentControllers
     return dc.document()
 def application_openFile_(self, app, f):
     if f == "main.py":  # ignore
         return
     extension = os.path.splitext(f)[1].lower()
     if extension not in ('.nno', '.json', '.cadnano'):
         print "Could not open file %s (bad extension %s)" % (f, extension)
         return
     doc = decode(file(str(f)).read())
     DocumentController(doc, str(f))
     return None
Exemple #4
0
 def newDocument(self, isFirstNewDoc=False):
     from controllers.documentcontroller import DocumentController
     defaultFile = environ.get('CADNANO_DEFAULT_DOCUMENT', None)
     if defaultFile and isFirstNewDoc:
         defaultFile = path.expanduser(defaultFile)
         defaultFile = path.expandvars(defaultFile)
         from model.decoder import decode
         doc = decode(file(defaultFile).read())
         print "Loaded default document: %s" % doc
         dc = DocumentController(doc, defaultFile)
     else:
         docCtrlrCount = len(self.documentControllers)
         if docCtrlrCount == 0:  # first dc
             # dc adds itself to app.documentControllers
             dc = DocumentController()
         elif docCtrlrCount == 1:  # dc already exists
             dc = list(self.documentControllers)[0]
             dc.newDocument()  # tell it to make a new doucment
     return dc.document()
Exemple #5
0
 def newDocument(self, isFirstNewDoc=False):
     from controllers.documentcontroller import DocumentController
     defaultFile = os.environ.get('CADNANO_DEFAULT_DOCUMENT', None)
     if defaultFile and isFirstNewDoc:
         defaultFile = path.expanduser(defaultFile)
         defaultFile = path.expandvars(defaultFile)
         dc = DocumentController()
         doc = dc.document()
         from model.io.decoder import decode
         decode(doc, file(defaultFile).read())
         print "Loaded default document: %s" % doc
     else:
         docCtrlrCount = len(self.documentControllers)
         if docCtrlrCount == 0:  # first dc
             # dc adds itself to app.documentControllers
             dc = DocumentController()
         elif docCtrlrCount == 1:  # dc already exists
             dc = list(self.documentControllers)[0]
             dc.newDocument()  # tell it to make a new doucment
     return dc.document()