- defaultFlagsNoView = wx.GetApp().GetDocumentManager().GetFlags()|wx.lib.docview.DOC_SILENT|wx.lib.docview.DOC_OPEN_ONCE|wx.lib.docview.DOC_NO_VIEW
- self.GetAppInfo().CopyToDeployment(deployment)
-
- for file in self.GetModel()._files:
- if not file.type:
- continue
- elif file.type == basedocmgr.FILE_TYPE_SERVICE: # set serviceRefs
- doc = wx.GetApp().GetDocumentManager().CreateDocument(file.filePath, flags=defaultFlagsNoView)
- if (doc == None): # already open
- doc = FindOpenDoc(file.filePath)
- if doc:
- serviceRef = doc.GetModel()
- if serviceRef:
- documentRef = copy.copy(serviceRef)
- deployment.serviceRefs.append(documentRef)
-
- if not productionDeployment:
- # filePath should point to location of wsdl file
- # wsdlag filePath points to relative path to wsdl file from wsdlag location
- # but deployment needs relative path from deployment location, so here's the conversion
- curDir = os.path.dirname(self.GetFilename()) + os.sep
- filePath = file.document.fileName
- if (filePath == None):
- raise Exception("Cannot find file \"%s\"" % file.filePath)
- if filePath.startswith(curDir):
- filePath = filePath[len(curDir):]
- if os.sep != '/':
- filePath = filePath.replace(os.sep, "/")
- documentRef.filePath = filePath
-
- documentRef.document = file.document
-
- if serviceRef.serviceType == deploymentlib.SERVICE_DATABASE and serviceRef.databaseService:
- dataSourceService = wx.GetApp().GetService(DataModelEditor.DataSourceService)
- ds = dataSourceService.getDataSource(serviceRef.databaseService.datasourceName)
- if ds:
- found = False
- for d in deployment.dataSources:
- if d.name == ds.name:
- found = True
- break
- if not found:
- deployment.dataSources.append(ds)
- else:
- curDir = os.path.dirname(self.GetFilename()) + os.sep
- filePath = file.filePath
- if filePath.startswith(curDir):
- filePath = filePath[len(curDir):]
- if os.sep != '/':
- filePath = filePath.replace(os.sep, "/")
-
- if file.type == basedocmgr.FILE_TYPE_XFORM:
- documentRef = deploymentlib.XFormRef()
- deployment.xformRefs.append(documentRef)
- elif file.type == basedocmgr.FILE_TYPE_PROCESS:
- documentRef = deploymentlib.ProcessRef()
- deployment.processRefs.append(documentRef)
- elif file.type == basedocmgr.FILE_TYPE_SCHEMA:
- # set schemaRefs
- documentRef = deploymentlib.SchemaRef()
- deployment.schemaRefs.append(documentRef)
-
- # set dataSources
- doc = wx.GetApp().GetDocumentManager().CreateDocument(file.filePath, flags=defaultFlagsNoView)
- if (doc == None): # already open
- doc = FindOpenDoc(file.filePath)
- if doc:
- dataSourceService = wx.GetApp().GetService(DataModelEditor.DataSourceService)
- ds = dataSourceService.getDataSource(doc.GetModel().getDefaultDataSourceName())
- if ds:
- found = False
- for d in deployment.dataSources:
- if d.name == ds.name:
- found = True
- break
- if not found:
- deployment.dataSources.append(ds)
-
- # set keyServices
- keyServices = doc.GetModel().keyServices
- for keyService in keyServices:
- # add default key service to deployment
- if not productionDeployment:
- mainModuleDir = sysutils.mainModuleDir
- else:
- mainModuleDir = sysutils.MAINMODULE_DIR_VAR
- wsdlFullPath = os.path.join(mainModuleDir, "..", "wsdl", DataModelEditor.DEFAULT_KEYSERVICE_WSDL_FILENAME)
- keyServiceRef = deploymentlib.ServiceRef(filePath=wsdlFullPath)
- deployment.serviceRefs.append(keyServiceRef)
-
- keyServiceRef.name = keyService
- keyServiceRef.serviceType = deploymentlib.SERVICE_LOCAL
- keyServiceRef.localService = deploymentlib.LocalService()
- if keyService == DataModelEditor.DEFAULT_KEYSERVICE:
- keyServiceRef.filePath = wsdlFullPath
- keyServiceRef.localServiceClassName = DataModelEditor.DEFAULT_KEYSERVICE_CLASSNAME
-