⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 project.py

📁 wxPython的基本示例程序
💻 PY
📖 第 1 页 / 共 2 页
字号:
            return self._docModelCallbackCacheReturnValue        return None    document = property(_GetDocumentModel)    def _GetDocument(self):        # Return the IDE document wrapper that corresponds to the runtime document model        if (self._docCallbackCacheReturnValue        and (self._parentProj.cacheEnabled or self._docCallbackCacheReturnValue.IsDocumentModificationDateCorrect())):            return self._docCallbackCacheReturnValue        if self._getDocCallback:            self._docCallbackCacheReturnValue, self._docModelCallbackCacheReturnValue = self._getDocCallback(self.filePath)            return self._docCallbackCacheReturnValue        return None    ideDocument = property(_GetDocument)    def ClearCache(self):        self._docCallbackCacheReturnValue = None        self._docModelCallbackCacheReturnValue = None    def _typeEnumeration(self):        return basedocmgr.FILE_TYPE_LIST    def _GetPhysicalFolder(self):        dir = None        if self.filePath:            dir = os.path.dirname(self.filePath)            if os.sep != '/':                dir = dir.replace(os.sep, '/')  # require '/' as delimiter        return dir    physicalFolder = property(_GetPhysicalFolder)    def GetRelativeFolder(self, parentPath):        parentPathLen = len(parentPath)        dir = None        if self.filePath:            dir = os.path.dirname(self.filePath)            if dir.startswith(parentPath + os.sep):                dir = "." + dir[parentPathLen:]  # convert to relative path            if os.sep != '/':                dir = dir.replace(os.sep, '/')  # always save out with '/' as path separator for cross-platform compatibility.        return dir    def AbsToRelativePath(self, parentPath):        """ Used to convert path to relative path for saving (disk format) """        parentPathLen = len(parentPath)        if self.filePath.startswith(parentPath + os.sep):            self.filePath = "." + self.filePath[parentPathLen:]  # convert to relative path            if os.sep != '/':                self.filePath = self.filePath.replace(os.sep, '/')  # always save out with '/' as path separator for cross-platform compatibility.        else:            pass    # not a decendant of project, use absolute path    def RelativeToAbsPath(self, parentPath):        """ Used to convert path to absolute path (for any necessary disk access) """        if self.filePath.startswith("./"):  # relative to project file            self.filePath = os.path.normpath(os.path.join(parentPath, self.filePath))  # also converts '/' to os.sep    #----------------------------------------------------------------------------    # BaseDocumentMgr methods    #----------------------------------------------------------------------------    def _GetDoc(self):        # HACK: temporary solution.        import wx        import wx.lib.docview        if not self._doc:            docMgr = wx.GetApp().GetDocumentManager()            try:                doc = docMgr.CreateDocument(self.filePath, docMgr.GetFlags()|wx.lib.docview.DOC_SILENT|wx.lib.docview.DOC_OPEN_ONCE|wx.lib.docview.DOC_NO_VIEW)                if (doc == None):  # already open                    docs = docMgr.GetDocuments()                    for d in docs:                        if d.GetFilename() == self.filePath:                            doc = d                            break                self._doc = doc            except Exception,e:                aglogging.reportException(e, stacktrace=True)                        return self._doc    def _GetLocalServiceProcessName(self):        # HACK: temporary solution to getting process name from wsdlag file.        doc = self._GetDoc()        if doc:            return doc.GetModel().processName        else:            return None    processName = property(_GetLocalServiceProcessName)    def _GetStateful(self):        # HACK: temporary solution to getting stateful from wsdlag file.        return self._GetDoc().GetModel().stateful    def _SetStateful(self, stateful):        # HACK: temporary solution to setting stateful from wsdlag file.        self._GetDoc().GetModel().stateful = stateful    stateful = property(_GetStateful, _SetStateful)    def _GetLocalServiceCodeFile(self):        # HACK: temporary solution to getting class name from wsdlag file.        return self._GetDoc().GetModel().localServiceCodeFile    def _SetLocalServiceCodeFile(self, codefile):        # HACK: temporary solution to setting class name from wsdlag file.        self._GetDoc().GetModel().localServiceCodeFile = codefile    localServiceCodeFile = property(_GetLocalServiceCodeFile, _SetLocalServiceCodeFile)    def _GetLocalServiceClassName(self):        # HACK: temporary solution to getting class name from wsdlag file.        return self._GetDoc().GetModel().localServiceClassName    def _SetLocalServiceClassName(self, className):        # HACK: temporary solution to setting class name from wsdlag file.        self._GetDoc().GetModel().localServiceClassName = className    localServiceClassName = property(_GetLocalServiceClassName, _SetLocalServiceClassName)    def getServiceParameter(self, message, part):        return self._GetDoc().GetModel().getServiceParameter(message, part)# only activate this code if we programatically need to access these values##    def _GetRssServiceBaseURL(self):##        return self._GetDoc().GetModel().rssServiceBaseURL######    def _SetRssServiceBaseURL(self, baseURL):##        self._GetDoc().GetModel().rssServiceBaseURL = baseURL######    rssServiceBaseURL = property(_GetRssServiceBaseURL, _SetRssServiceBaseURL)######    def _GetRssServiceRssVersion(self):##        return self._GetDoc().GetModel().rssServiceRssVersion######    def _SetRssServiceRssVersion(self, rssVersion):##        self._GetDoc().GetModel().rssServiceRssVersion = rssVersion######    rssServiceRssVersion = property(_GetRssServiceRssVersion, _SetRssServiceRssVersion)    def _GetServiceRefServiceType(self):        # HACK: temporary solution to getting service type from wsdlag file.        doc = self._GetDoc()        if not doc:            return None        model = doc.GetModel()        if hasattr(model, 'serviceType'):            return model.serviceType        else:            return None    def _SetServiceRefServiceType(self, serviceType):        # HACK: temporary solution to getting service type from wsdlag file.        self._GetDoc().GetModel().serviceType = serviceType    serviceType = property(_GetServiceRefServiceType, _SetServiceRefServiceType)    def getExternalPackage(self):        # HACK: temporary solution to getting custom code filename from wsdlag file.        import activegrid.model.projectmodel as projectmodel        import wx        import ProjectEditor        appInfo = self._GetDoc().GetAppInfo()        if appInfo.language == None:            language = wx.ConfigBase_Get().Read(ProjectEditor.APP_LAST_LANGUAGE, projectmodel.LANGUAGE_DEFAULT)        else:            language = appInfo.language        if language == projectmodel.LANGUAGE_PYTHON:            suffix = ".py"        elif language == projectmodel.LANGUAGE_PHP:            suffix = ".php"        pyFilename = self.name + suffix        return self._GetDoc().GetAppDocMgr().fullPath(pyFilename)#----------------------------------------------------------------------------# Old Classes#----------------------------------------------------------------------------class Project_10:    """ Version 1.0, kept for upgrading to latest version.  Over time, this should be deprecated. """    __xmlname__ = "project"    __xmlrename__ = { "_files":"files"}    __xmlexclude__ = ('fileName',)    __xmlattributes__ = ["version"]    def __init__(self):        self.version = PROJECT_VERSION_050730        self._files = []    def initialize(self):        """ Required method for xmlmarshaller """        pass    def upgradeVersion(self):        currModel = Project()        for file in self._files:            currModel._files.append(ProjectFile(currModel, file))        return currModel#----------------------------------------------------------------------------# XML Marshalling Methods#----------------------------------------------------------------------------if ACTIVEGRID_BASE_IDE:    KNOWNTYPES = {"ag:project" : Project, "ag:file" : ProjectFile}else:    KNOWNTYPES = {"ag:project" : Project, "ag:file" : ProjectFile,                  "ag:appInfo" : AppInfo.AppInfo,                  "ag:deploymentDataSource" : AppInfo.DeploymentDataSource,                  "ag:dataSourceBinding" : AppInfo.DataSourceBinding}def load(fileObject):    version = xmlutils.getAgVersion(fileObject.name)    # most current versions on top    if version == PROJECT_VERSION_050826:        fileObject.seek(0)        project = xmlutils.load(fileObject.name, knownTypes=KNOWNTYPES, knownNamespaces=xmlutils.KNOWN_NAMESPACES, createGenerics=True)    elif version == PROJECT_VERSION_050730:        fileObject.seek(0)        project = xmlutils.load(fileObject.name, knownTypes={"project" : Project_10}, createGenerics=True)        project = project.upgradeVersion()    else:        # assume it is old version without version number        fileObject.seek(0)        project = xmlutils.load(fileObject.name, knownTypes={"project" : Project_10}, createGenerics=True)        if project:            project = project.upgradeVersion()        else:            print "Project, unknown version:", version            return None    if project:        project._projectDir = os.path.dirname(fileObject.name)        project.RelativeToAbsPath()    return projectdef save(fileObject, project, productionDeployment=False):    if not project._projectDir:        project._projectDir = os.path.dirname(fileObject.name)    project.AbsToRelativePath()  # temporarily change it to relative paths for saving    savedHomeDir = project.homeDir    if productionDeployment:        # for deployments, we don't want an abs path in homeDir since that        # would tie the app to the current filesystem. So unset it.        project.homeDir = None    xmlutils.save(fileObject.name, project, prettyPrint=True, knownTypes=KNOWNTYPES, knownNamespaces=xmlutils.KNOWN_NAMESPACES)    if productionDeployment:        project.homeDir = savedHomeDir    project.RelativeToAbsPath()  # swap it back to absolute path

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -